aboutsummaryrefslogtreecommitdiffhomepage
Commit message (Collapse)AuthorAge
* vf_vapoursynth: fix aspect ratio passed to vapoursynthGravatar wm42014-05-03
| | | | | | This was recently either changed or clarified in vapoursynth. Pass the aspect ratio as pixel aspect to VS.
* input: fix stack overflow when checking for abort cmdGravatar wm42014-05-02
| | | | | | This can happen when the input stream is somehow blocking on network, and the user still send input in one way or another, and one of the commands is a compound command ("cmd a ; cmd b").
* client API: fix inverted conditionGravatar wm42014-05-02
| | | | Oops. Sigh.
* manpage: adjust description of vdpau deint sub-optionGravatar wm42014-05-02
|
* manpage: deprecated vo_vdpau postprocessing optionsGravatar wm42014-05-02
| | | | This seems a bit silly, but the way vf_vdpaupp works, this is cleaner.
* manpage: document vf_vdpauppGravatar wm42014-05-02
|
* video: removed unused stuffGravatar wm42014-05-02
|
* player: remove extremely obscure undefined behaviorGravatar wm42014-05-02
| | | | | | Apparently the value of a pointer is "indeterminate" after a free() call, even if you never dereference the pointer after the free. Since talloc_free() calls free(), this applies here.
* client API, video: signal reconfig at the right timeGravatar wm42014-05-02
| | | | Filter reconfig can now happen a few frames before VO reconfig.
* input: increase number of maximum sectionsGravatar wm42014-05-02
| | | | | | | This is because Lua scripts creating key bindings create 2 input sections per script. Probably fixes #759.
* lua: remove "lua/" prefix from script namesGravatar wm42014-05-02
| | | | | | | | | This affects the return value of mp.script_name, the "client name" (what's returned by mpv_client_name()) and all associated features, as well as the mpv terminal output module prefix when scripts print something. As discussed in #748.
* video: change everythingGravatar wm42014-05-02
| | | | | | | Change how the video decoding loop works. The structure should now be a bit easier to follow. The interactions on format changes are (probably) simpler. This also aligns the decoding loop with future planned changes, such as moving various things to separate threads.
* manpage: fix the alternative suggested for stream-pathGravatar wm42014-05-02
| | | | | ${filename} didn't make much sense, since that doesn't include the path components, and can be otherwise mangled.
* video: handle colorspace and aspect overrides separatelyGravatar wm42014-05-02
| | | | | Now the video filter code handles these explicitly, which should increase robustness (or at least find bugs earlier).
* vf: sanitize filter input, instead of overriding itGravatar wm42014-05-02
| | | | | | | | | vf_fix_img_params() takes care of overwriting image parameters that are normally not set correctly by filters. But this makes no sense for input images. So instead, check that the input is correct. It still has to be done for the first input image, because that's used to handle some overrides (see video_reconfig_filters()).
* vf: add alternate functions for retrieving filter outputGravatar wm42014-05-02
| | | | | | | These replace vf_read_output_frame(), although we still emulate that function. This change is preparation for another commit (and this is basically just to reduce the diff and signal/noise ratio in that commit).
* vf: expose input parameters; clear parameters on failureGravatar wm42014-05-02
| | | | Preparation (and simplification) for following commits.
* vf: mark auto-inserted conversion filters in verbose outputGravatar wm42014-05-02
| | | | | Nota that this flag is not set for other auto-inserted filters (like deinterlacing or rotation).
* vf_lavfi: reinit after libavfilter EOFGravatar wm42014-05-02
| | | | | | Basically, if we feed the filter a new image even after the EOF state has been reached (e.g. because the input stream "recovered"), we want the filter to restart, instead of returning an error forever.
* vo: verify format of queued imageGravatar wm42014-05-02
| | | | | Currently, only the configured format is accepted, so assert that the playback core code (which handles format changes) is correct.
* video: fix screenshots with anamorphic videoGravatar wm42014-05-02
| | | | | | | (Again.) This was caused by mp_image_set_params() not properly copying d_w/d_h, because mp_image_set_size() resets them.
* vf_vdpaupp: always provide past and future fieldsGravatar wm42014-05-02
| | | | | | | | | | | Some non-deinterlacing filters (potentially denoising) also use additional frames for filtering. The vdpau docs suggest providing at least 1 future and 2 past _fields_, which means we need to provide 1 past frame (the future field is already the other field of the current field, and both fields are in the same frame). We can easily achieve this by buffering an additional frame in the non- deint case.
* vo_vdpau: keep colorspace flagsGravatar wm42014-05-02
| | | | | Since vdpau_mixer.c initializes the YUV conversion using the mp_image flags, these images should have all flags set properly.
* video: move video frame queue from vo_vdpau.c to vo.cGravatar wm42014-05-02
| | | | | | | | | | | | | | | | | | | | | Remove the special casing of vo_vdpau vs. other VOs. Replace the complicated interaction between vo.c and vo_vdpau.c with a simple queue in vo.c. VOs other than vdpau are handled by setting the length of the queue to 1 (this is essentially what waiting_mpi was). Note that vo_vdpau.c seems to have buffered only 1 or 2 frames into the future, while the remaining 3 or 4 frames were past frames. So the new code buffers 2 frames (vo_vdpau.c requests this queue length by setting vo->max_video_queue to 2). It should probably be investigated why vo_vdpau.c kept so many past frames. The field vo->redrawing is removed. I'm not really sure what that would be needed for; it seems pointless. Future directions include making the interface between playloop and VO simpler, as well as making rendering a frame a single operation, as opposed to the weird 3-step sequence of rendering, drawing OSD, and flipping.
* vo_vdpau: always use mp_image for internal buffer queueGravatar wm42014-05-02
|
* command, vo_vdpau: respect vdpau deint sub-optionGravatar wm42014-05-02
| | | | | This is a horrible hack to keep compatibility with the vo_vdpau deint sub-option.
* command: redo deinterlace filter probingGravatar wm42014-05-02
| | | | | | | Give up on the deint_filters[] array, and probe using explicit code instead. Add additional checks to test the pixel format to avoid annoying warnings when a hardware deinterlacer is inserted when the current video chain is obviously incompatible.
* command: make enabling deinterlacing with vdpau workGravatar wm42014-05-02
| | | | | | This restores the capability of enabling deinterlacing with the 'cycle deinterlace' command with vo_vdpau, and also makes it work with vo_opengl.
* vf_vdpaupp: allow toggling deinterlaceGravatar wm42014-05-02
| | | | | Basically makes the 'D' key work again. (But only if the filter is already inserted.)
* vo_vdpau: apply vo_vdpau postprocessing optionsGravatar wm42014-05-02
| | | | | | | | | | | | | The previous commits changed vo_vdpau so that these options are set by vf_vdpaupp, and the corresponding vo_vdpau were ignored. But for compatibility, keep the "old" options working. The value of this is questionable - maybe the vo_vdpau options should just be removed. For now, at least demonstrate that it's possible. The "deint" suboption still doesn't work, because the framerate doubling logic required for some deint modes was moved to vf_vdpaupp. This requires more elaborate workarounds.
* vdpau_mixer: allow overriding frame optsGravatar wm42014-05-02
| | | | So a caller can override the filter options dictated by vf_vdpaupp.
* vo_vdpau: support vf_vdpauppGravatar wm42014-05-02
| | | | | | | | | | This is slightly incomplete: the mixer options, such as sharpen and especially deinterlacing, are ignored. This also breaks automatic enabling of interlacing with 'D' or --deinterlace. These issues will be fixed later in the following commits. Note that we keep all the custom vdpau queue stuff. This will also be simplified later.
* vo_opengl: make it work with vf_vdpauppGravatar wm42014-05-02
| | | | | | | This uses mp_vdpau_mixer_render(). The benefit is that it makes vdpau deinterlacing just work. One additional minor advantage is that the video mixer creation code is factored out (although that is a double- edged sword).
* vf_vdpaupp: allow non-vdpau inputGravatar wm42014-05-02
| | | | | | | So you can use vdpau deinterlacing without using vdpau hardware decoding. vf_vavpp does something similar.
* vdpau: add a postprocessing pseudo-filterGravatar wm42014-05-02
| | | | | | | | | | | This factors out some code from vo_vdpau.c, especially deinterlacing handling. The intention is to use this for vo_vdpau.c to make the logic significantly easier, and to use it for vo_opengl (gl_hwdec_vdpau.c) to allow selecting deinterlace and postprocessing modes. As of this commit, the filter actually does nothing, since both vo_vdpau and vo_opengl treat the generated images as normal vdpau images. This will change in the following commits.
* vo: document draw_imageGravatar wm42014-04-30
|
* vo_lavc: remove code with no effectGravatar wm42014-04-30
| | | | This field will also removed in the future.
* video: improve error messagesGravatar wm42014-04-30
|
* vf: print error if filtering a frame failsGravatar wm42014-04-30
| | | | | The filters don't always print an error on their own, and printing an error is better than silently dropping the frame.
* TOOLS: better documentation of lua scriptsGravatar Kevin Mitchell2014-04-29
|
* TOOLS: improve autocrop.luaGravatar Kevin Mitchell2014-04-29
| | | | | | | | | | It now inserts no filters and does nothing until the hot-key is pressed. This makes it more suitable to be put in ~/.mpv/lua. When the hot-key is pressed, it now inserts the cropdetect filter and waits 1 second (or a --lua-opts specified duration) before gathering the cropdetect metadata and inserting the appropriate crop filter. A second press of the hotkey removes the crop.
* vf_lavfi: reset metadata in reset()Gravatar Kevin Mitchell2014-04-29
| | | | | | It might have been nice not to do this so that metadata could accumulate accross seeks, but it seems libavfilter looses its copy anyway on recreate_graph.
* vf-metadata: fix handling of NULL metadataGravatar Kevin Mitchell2014-04-29
| | | | | | lavfi would segfault due to a NULL dereference if it was asked for its metadata and none had been allocated (oops). This happens for libav which has no concept of filter metadata.
* man: grammar tweak of mp.add_timeout()Gravatar Kevin Mitchell2014-04-29
|
* video: remove redundant mp_image display_w/_h membersGravatar wm42014-04-29
| | | | | | | | | | | | | | | | | Commit 5e4e248 added a mp_image_params field to mp_image, and moved many parameters to that struct. display_w/h was left redundant with mp_image_params.d_w/d_h. These fields were supposed to be always in sync, but it seems some code forgot to do this correctly, such as vf_fix_img_params() or mp_image_copy_attributes(). This led to the problem in github issue #756, because display_w/_h could become incorrect. It turns out that most code didn't use the old fields anyway. Just remove them. Note that mp_image_params.d_w/d_h are supposed to be always valid, so the additional checks for 0 shouldn't be needed. Remove these checks as well. Fixes #756.
* vo_vdpau: let vdpau scale anamorphic screenshotsGravatar wm42014-04-29
| | | | | | | In theory, returning the screenshot with original pixel aspect would allow avoiding scaling them with image formats that support non-square pixels, but in practice this isn't used anyway (nothing seems to understand e.g. jpeg aspect ratio tags).
* common: add mp_snprintf_append() utility functionGravatar wm42014-04-29
|
* TOOLS/umpv: make it work with Python 3 (again)Gravatar wm42014-04-29
| | | | | | | Apparently, the 3rd (2nd) parameter to string.translate() function was removed. Also, make_abs() had a mistake - not sure how this passed testing.
* TOOLS/umpv: don't mangle URLsGravatar wm42014-04-29
| | | | | This attempted to prefix the current directory to URLs, because it didn't recognize them as already absolute paths.
* TOOLS/umpv, mpv.desktop: use --no-terminal instead of --really-quietGravatar wm42014-04-29
| | | | | So this won't initialize terminal handling if stdout happens to be a terminal. It also suppresses all output to stdout/stderr.