1
mirror of https://github.com/mpv-player/mpv synced 2024-11-07 01:47:00 +01:00
mpv/video/filter
wm4 ac266da658 vo_opengl: handle chroma location
Use the video decoder chroma location flags and render chroma locations
other than centered. Until now, we've always used the intuitive and
obvious centered chroma location, but H.264 uses something else.

FFmpeg provides a small overview in libavcodec/avcodec.h:

-----------
/**
 *  X   X      3 4 X      X are luma samples,
 *             1 2        1-6 are possible chroma positions
 *  X   X      5 6 X      0 is undefined/unknown position
 */
enum AVChromaLocation{
    AVCHROMA_LOC_UNSPECIFIED = 0,
    AVCHROMA_LOC_LEFT        = 1, ///< mpeg2/4, h264 default
    AVCHROMA_LOC_CENTER      = 2, ///< mpeg1, jpeg, h263
    AVCHROMA_LOC_TOPLEFT     = 3, ///< DV
    AVCHROMA_LOC_TOP         = 4,
    AVCHROMA_LOC_BOTTOMLEFT  = 5,
    AVCHROMA_LOC_BOTTOM      = 6,
    AVCHROMA_LOC_NB             , ///< Not part of ABI
};
-----------

The visual difference is literally minimal, but since videophiles
apparently consider this detail as quality mark of a video renderer,
support it anyway. We don't bother with chroma locations other than
centered and left, though.

Not sure about correctness, but it's probably ok.
2013-06-28 21:20:41 +02:00
..
pullup.c Rename directories, move files (step 2 of 2) 2012-11-12 20:08:18 +01:00
pullup.h
vf_crop.c video: move handling of -x/-y/-xy options to VO 2013-01-23 10:55:00 +01:00
vf_delogo.c vf_delogo: copy in non-direct case, fix double-free 2013-05-26 17:13:09 +02:00
vf_divtc.c vf_divtc, vf_phase: Fix handling of subsampled formats 2013-04-10 00:22:00 +02:00
vf_dlopen.c fix compile, sorry 2013-06-16 17:26:28 +02:00
vf_dlopen.h
vf_down3dright.c video: decouple internal pixel formats from FourCCs 2013-01-13 20:04:11 +01:00
vf_dsize.c video/filter: change filter API, use refcounting, remove filter DR 2013-01-13 20:04:10 +01:00
vf_eq.c video: decouple internal pixel formats from FourCCs 2013-01-13 20:04:11 +01:00
vf_expand.c video: move handling of -x/-y/-xy options to VO 2013-01-23 10:55:00 +01:00
vf_flip.c vf_flip: move flipping code to mp_image.c 2013-03-01 11:28:59 +01:00
vf_format.c vf_format: fix forcing output format 2013-01-17 16:40:07 +01:00
vf_gradfun.c video/filter: fix option parser memory leak 2013-05-18 17:45:55 +02:00
vf_hqdn3d.c Fix some cppcheck / scan-build warnings 2013-05-06 23:11:11 +02:00
vf_ilpack.c video: decouple internal pixel formats from FourCCs 2013-01-13 20:04:11 +01:00
vf_lavfi.c video: add a new method to configure filters and VOs 2013-06-28 20:34:46 +02:00
vf_mirror.c video: move handling of -x/-y/-xy options to VO 2013-01-23 10:55:00 +01:00
vf_noformat.c video: decouple internal pixel formats from FourCCs 2013-01-13 20:04:11 +01:00
vf_noise.c video: decouple internal pixel formats from FourCCs 2013-01-13 20:04:11 +01:00
vf_phase.c vf_divtc, vf_phase: Fix handling of subsampled formats 2013-04-10 00:22:00 +02:00
vf_pp.c dec_video: get rid of two global variables 2013-05-21 00:45:42 +02:00
vf_pullup.c vf_pullup: remove check for MP_IMGFLAG_PLANAR 2013-01-13 20:04:12 +01:00
vf_rotate.c video: add a new method to configure filters and VOs 2013-06-28 20:34:46 +02:00
vf_scale.c video/filter: fix option parser memory leak 2013-05-18 17:45:55 +02:00
vf_screenshot.c screenshot: minor simplification, prefer VF over VO 2013-01-30 23:41:22 +01:00
vf_softpulldown.c video: reset filters on seek 2013-01-20 03:25:44 +01:00
vf_stereo3d.c video/filter: fix option parser memory leak 2013-05-18 17:45:55 +02:00
vf_sub.c video/filter: fix option parser memory leak 2013-05-18 17:45:55 +02:00
vf_swapuv.c vf_swapuv: support more image formats 2013-01-13 20:04:13 +01:00
vf_unsharp.c video: decouple internal pixel formats from FourCCs 2013-01-13 20:04:11 +01:00
vf_vo.c video: add a new method to configure filters and VOs 2013-06-28 20:34:46 +02:00
vf_yadif.c Fix some cppcheck / scan-build warnings 2013-05-06 23:11:11 +02:00
vf.c vo_opengl: handle chroma location 2013-06-28 21:20:41 +02:00
vf.h video: add a new method to configure filters and VOs 2013-06-28 20:34:46 +02:00