mpv/video
wm4 7333bc6536 video: passthrough unknown AVPixelFormats
This is a rather radical change: instead of maintaining a whitelist of
FFmpeg formats we support, we automatically support all formats.

In general, a format which doesn't have an explicit IMGFMT_* name will
be converted to a known format through libswscale, or will be handled
by code which can treat pixel formats in a generic way using the pixel
format description, like vo_opengl.

AV_PIX_FMT_UYYVYY411 is a special-case. It's packed YUV with chroma
subsampling by 4 in both directions. Its component order is documented
as "Cb Y0 Y1 Cr Y2 Y3", meaning there's one UV sample for 4 Y samples.
This means each pixel uses 1.5 bytes (4 pixels have 1 UV sample, so
4 bytes + 2 bytes). FFmpeg can actually handle this format with its
generic mechanism in an extremely awkward way, but it doesn't work for
us. Blacklist it, and hope no similar formats will be added in the
future.

Currently, the AV_PIX_FMT_*s allowed are limited to a numeric value of
500. More is not allowed, and there are some fixed size arrays that need
to contain any possible format (look for IMGFMT_END dependencies).

We could have this simpler by replacing IMGFMT_* with AV_PIX_FMT_*
through the whole codebase. But for now, this is better, because we
can compensate for formats missing in Libav or older FFmpeg versions,
like AV_PIX_FMT_RGB0 and others.
2014-11-05 01:52:19 +01:00
..
decode dxva2: use gpu_memcpy with unmatched strides 2014-10-27 12:37:25 +01:00
filter vf_vapoursynth: add debug message when returning error from GetFrame 2014-10-13 14:35:03 +02:00
out vo_opengl: minimal EGL on X11 support 2014-11-04 01:41:37 +01:00
csputils.c video: adjust some Matroska 3D formats 2014-08-31 14:48:58 +02:00
csputils.h vo_opengl: draw OSD twice in 3D mode case 2014-10-29 23:14:46 +01:00
fmt-conversion.c video: passthrough unknown AVPixelFormats 2014-11-05 01:52:19 +01:00
fmt-conversion.h
hwdec.h video: move display and timing to a separate thread 2014-08-12 23:24:08 +02:00
image_writer.c Move compat/ and bstr/ directory contents somewhere else 2014-08-29 12:31:52 +02:00
image_writer.h
img_format.c video: passthrough unknown AVPixelFormats 2014-11-05 01:52:19 +01:00
img_format.h video: passthrough unknown AVPixelFormats 2014-11-05 01:52:19 +01:00
img_fourcc.h
memcpy_pic.h
mp_image.c video: refuse to allocate image data for hwaccel formats 2014-11-05 01:41:35 +01:00
mp_image.h video: initial Matroska 3D support 2014-08-30 23:24:46 +02:00
mp_image_pool.c
mp_image_pool.h
sws_utils.c
sws_utils.h
vaapi.c vaapi: try dealing with Intel's braindamaged shit drivers 2014-08-21 22:45:58 +02:00
vaapi.h vaapi: try dealing with Intel's braindamaged shit drivers 2014-08-21 22:45:58 +02:00
vdpau.c vdpau: allocate surfaces by age 2014-08-11 14:03:53 +02:00
vdpau.h vdpau: allocate surfaces by age 2014-08-11 14:03:53 +02:00
vdpau_functions.inc
vdpau_mixer.c vdpau: correctly mark invalid mixer as such on vdp_video_mixer_create() failure 2014-08-13 17:57:19 +02:00
vdpau_mixer.h
vfcap.h