mpv/libmpcodecs
wm4 219e1ab1e7 demux_lavf: add a hack to work around other hacks
mplayer (and all forks) use a single FourCC field to map codecs. This is
what sh_video->format and sh_audio->format is used for. Basically it's a
key into the codecs.conf table to find out what decoder to use. (There's
only one video codec and one major audio codec left - both libavcodec.
But we still have to deal with mapping coming from non-libavformat
demuxers.)

It seems this causes some video codecs to fail, such as WV1F in AVI [1].
demux_lavf generally throws away the codec_tag from libavformat if the
codec is MPEG-in-AVI. There are probably other cases like this. Add a
hack to enforce passing the correct codec tag when only ffmpeg demuxers
and decoders involved.

Note: the sample [1] needs to be flipped. With --demuxer=avi, this is
done correctly, because unlike demux_lavf, the demuxer uses the FourCC
directly for the sh_video->format tag, and finds the correct codecs.conf
entry (which contains the flip flag). We could just add a "whitelist" of
codec tags which can be passed through to sh_video->format, but I don't
want to do that just for such an obscure format as the sample at hand.

Note 2: when demux_lavf is used, the AVCodecContext could be passed
directly to vd_ffmpeg/ad_ffmpeg. The code to convert to/from the
internal mplayer stream headers is probably still needed, as there are
non-ffmpeg demuxers and audio decoders.

[1] http://samples.mplayerhq.hu/V-codecs/WV1F/AVI/title2.avi
2012-10-30 19:50:24 +01:00
..
ad.c ad_dvdpcm: add back PCM decoder for DVD 2012-09-18 21:08:14 +02:00
ad.h
ad_dvdpcm.c ad_dvdpcm: add back PCM decoder for DVD 2012-09-18 21:08:14 +02:00
ad_ffmpeg.c demux_lavf: add a hack to work around other hacks 2012-10-30 19:50:24 +01:00
ad_internal.h libaf: rename af_format.h to format.h 2012-08-29 00:50:26 +02:00
ad_mpg123.c cleanup: remove pointless #defines 2012-09-18 21:04:46 +02:00
ad_pcm.c rawaudio: use mplayer audio format for format option 2012-09-18 21:07:29 +02:00
ad_spdif.c libmpcodecs: add ad_spdif.c, S/PDIF passthrough decoder 2012-08-03 01:30:08 +02:00
dec_audio.c dec_audio: do not overwrite sh_audio->wf->wFormatTag 2012-09-18 21:06:40 +02:00
dec_audio.h
dec_video.c vf_rectangle: remove as it is very dirty and we have a replacement now 2012-09-18 21:08:20 +02:00
dec_video.h vf_rectangle: remove as it is very dirty and we have a replacement now 2012-09-18 21:08:20 +02:00
img_format.c VF: remove IMGFMT_MPEGPES 2012-10-22 22:52:22 +02:00
img_format.h VF: remove IMGFMT_MPEGPES 2012-10-22 22:52:22 +02:00
mp_image.c VF: remove IMGFMT_MPEGPES 2012-10-22 22:52:22 +02:00
mp_image.h mp_image: update description of MP_IMGFLAG_READABLE 2012-10-30 19:50:19 +01:00
mpc_info.h video, audio: use lavc decoders without codecs.conf entries 2012-07-24 09:01:47 +03:00
pullup.c Remove dead code 2012-08-01 17:07:35 +02:00
pullup.h Remove dead code 2012-08-01 17:07:35 +02:00
vd.c vd: remove references to vf_palette and vf_lavc 2012-10-22 22:38:37 +02:00
vd.h
vd_ffmpeg.c demux_lavf: add a hack to work around other hacks 2012-10-30 19:50:24 +01:00
vf.c vf: fix usage count for passthrough-only filters 2012-10-30 19:50:18 +01:00
vf.h vf_rectangle: remove as it is very dirty and we have a replacement now 2012-09-18 21:08:20 +02:00
vf_ass.c subs, vo_vdpau: support RGBA color for PGS subtitles 2012-09-18 21:07:30 +02:00
vf_crop.c
vf_delogo.c vf_delogo, vf_unsharp: clear mpi->priv for consistency 2012-10-30 19:50:19 +01:00
vf_divtc.c libmpcodecs: fix coverity issues 2012-10-30 19:50:20 +01:00
vf_dlopen.c VF: remove IMGFMT_MPEGPES 2012-10-22 22:52:22 +02:00
vf_dlopen.h vf_dlopen: add a generic filter to load external filters 2012-08-23 13:13:53 +02:00
vf_down3dright.c libmpcodecs: fix coverity issues 2012-10-30 19:50:20 +01:00
vf_dsize.c vf_dsize, vf_scale: fix behavior on multiple config() calls 2011-12-19 02:02:32 +02:00
vf_eq2.c
vf_expand.c vf_expand: remove outdated code causing crashes 2012-10-30 19:50:17 +01:00
vf_flip.c
vf_format.c
vf_gradfun.c Adjust ffmpeg/libav #includes to work with recent upstream changes 2012-08-21 18:22:00 +02:00
vf_hqdn3d.c
vf_ilpack.c libmpcodecs: fix coverity issues 2012-10-30 19:50:20 +01:00
vf_mirror.c
vf_noformat.c
vf_noise.c configure: remove checks for malloc.h and alloca() 2012-07-30 22:14:33 +02:00
vf_phase.c libmpcodecs: fix coverity issues 2012-10-30 19:50:20 +01:00
vf_pp.c configure: remove checks for malloc.h and alloca() 2012-07-30 22:14:33 +02:00
vf_pullup.c Rip out 3DNOW support 2012-07-30 01:38:14 +02:00
vf_rotate.c
vf_scale.c vf_scale: do the upscale detection AFTER calculating dimensions 2012-09-24 16:41:12 +02:00
vf_scale.h vf_scale: don't pass CPU flags anymore 2012-07-30 01:38:53 +02:00
vf_screenshot.c vf_screenshot: fix handling of out-of-order slice rendered frames 2012-10-30 19:50:19 +01:00
vf_softpulldown.c libmpcodecs: fix coverity issues 2012-10-30 19:50:20 +01:00
vf_stereo3d.c vf_stereo3d: add another anaglyph color variant 2012-10-30 19:50:17 +01:00
vf_swapuv.c
vf_unsharp.c vf_delogo, vf_unsharp: clear mpi->priv for consistency 2012-10-30 19:50:19 +01:00
vf_vo.c subs, vo_vdpau: support RGBA color for PGS subtitles 2012-09-18 21:07:30 +02:00
vf_yadif.c vf_yadif: fix green bottom line 2012-08-03 01:46:43 +02:00
vfcap.h subs, vo_vdpau: support RGBA color for PGS subtitles 2012-09-18 21:07:30 +02:00