mpv/video
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
..
decode vo_opengl: handle chroma location 2013-06-28 21:20:41 +02:00
filter vo_opengl: handle chroma location 2013-06-28 21:20:41 +02:00
out vo_opengl: handle chroma location 2013-06-28 21:20:41 +02:00
csputils.c vo_opengl: handle chroma location 2013-06-28 21:20:41 +02:00
csputils.h vo_opengl: handle chroma location 2013-06-28 21:20:41 +02:00
fmt-conversion.c Fix compilation with Libav 2013-05-01 17:02:06 +02:00
fmt-conversion.h
image_writer.c image_writer: Add PNG filter option (default "mixed") 2013-06-15 15:48:52 +02:00
image_writer.h image_writer: Add PNG filter option (default "mixed") 2013-06-15 15:48:52 +02:00
img_format.c img_format: fix broken condition 2013-05-06 23:11:10 +02:00
img_format.h video: add XYZ support 2013-05-01 16:26:45 +02:00
img_fourcc.h core: redo how codecs are mapped, remove codecs.conf 2013-02-10 17:25:56 +01:00
memcpy_pic.h vf_expand: support more image formats 2013-01-13 20:04:13 +01:00
mp_image.c vo_opengl: handle chroma location 2013-06-28 21:20:41 +02:00
mp_image.h vo_opengl: handle chroma location 2013-06-28 21:20:41 +02:00
mp_image_pool.c mp_image_pool: add pool to avoid frequent image reallocations 2013-01-13 17:39:32 +01:00
mp_image_pool.h mp_image_pool: add pool to avoid frequent image reallocations 2013-01-13 17:39:32 +01:00
sws_utils.c sws_utils: use libswscale for GBRP output if available 2013-01-27 13:30:53 +01:00
sws_utils.h sub: reimplement -spugauss as --sub-gauss 2012-11-25 23:40:07 +01:00
vfcap.h core: simplify OSD capability handling, remove VFCAP_OSD 2013-03-01 11:16:01 +01:00