demux, vd_ffmpeg: fix demux keyframe flag, set AV_PKT_FLAG_KEY
commit8079f4ff821aa811de449f08dfdba777e8dd0397
authorUoti Urpala <uau@mplayer2.org>
Tue, 24 Jul 2012 21:23:27 +0000 (25 00:23 +0300)
committerUoti Urpala <uau@mplayer2.org>
Tue, 24 Jul 2012 22:10:30 +0000 (25 01:10 +0300)
tree4f18f58d5e0fafc317e7d5541f5f291db7532d06
parent5f3c3f8c32d20405a2caf7de66aa1ea7f513d4d2
demux, vd_ffmpeg: fix demux keyframe flag, set AV_PKT_FLAG_KEY

There was some confusion about the "flags" field in demuxer packets.
Demuxers set it to either 1 or 0x10 to indicate a keyframe (and the
field was not used to indicate anything else). This didn't cause
visible problems because nothing read the value. Replace the "flags"
field with a boolean "keyframe" field. Set AV_PKT_FLAG_KEY based on
this field in packets fed to libavcodec video decoders (looks like PNG
and ZeroCodec are the only ones which depend on values from demuxer;
previously this was hardcoded to true for PNG).

Make demux_mf set the keyframe field in every packet. This matters for
PNG files now that the demuxer flag is forwarded to libavcodec.

Fix logic setting the field in demux_mkv. It had probably not been
updated when adding SimpleBlock support. This probably makes no
difference for any current practical use.
20 files changed:
libmpcodecs/vd_ffmpeg.c
libmpdemux/demux_asf.c
libmpdemux/demux_film.c
libmpdemux/demux_lavf.c
libmpdemux/demux_mf.c
libmpdemux/demux_mkv.c
libmpdemux/demux_mov.c
libmpdemux/demux_nut.c
libmpdemux/demux_ogg.c
libmpdemux/demux_packet.h
libmpdemux/demux_real.c
libmpdemux/demux_realaud.c
libmpdemux/demux_ts.c
libmpdemux/demux_ty.c
libmpdemux/demux_y4m.c
libmpdemux/demuxer.c
libmpdemux/demuxer.h
libmpdemux/video.c
mplayer.c
stream/tv.c