summaryrefslogtreecommitdiff
path: root/libavformat/flvdec.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2012-02-23 02:33:21 +0100
committerMichael Niedermayer <michaelni@gmx.at>2012-02-23 04:31:55 +0100
commite99f1a8cc8b90926209b7390ae3f50d519c0e63f (patch)
treeb50f42ffe92fdb5fb2bc1efeaf9625d208e9c6ca /libavformat/flvdec.c
parent094673ff1b1a0f83584f3aeea76a3e9c9e3129bf (diff)
parent562ebc30775db243941db3c96396e7bf8a0e0a44 (diff)
downloadffmpeg-e99f1a8cc8b90926209b7390ae3f50d519c0e63f.tar.gz
Merge remote-tracking branch 'qatar/master'
* qatar/master: dxva2: don't check for DXVA_PictureParameters->wDecodedPictureIndex img2: split muxer and demuxer into separate files rm: prevent infinite loops for index parsing. aac: fix infinite loop on end-of-frame with sequence of 1-bits. mov: Add more HDV and XDCAM FourCCs. lavf: don't set AVCodecContext.has_b_frames in compute_pkt_fields(). rmdec: when using INT4 deinterleaving, error out if sub_packet_h <= 1. cdxl: correctly synchronize video timestamps to audio mlpdec_parser: fix a few channel layouts. Add channel names to channel_names[] array for channels added in b2890f5 movenc: Buffer the mdat for the initial moov fragment, too flvdec: Ignore the index if the ignidx flag is set flvdec: Fix indentation movdec: Don't parse all fragments if ignidx is set movdec: Restart parsing root-level atoms at the right spot prores: use natural integer type for the codebook index mov: Add support for MPEG2 HDV 720p24 (hdv4) swscale: K&R formatting cosmetics (part I) swscale: variable declaration and placement cosmetics Conflicts: configure libavcodec/aacdec.c libavcodec/mlp_parser.c libavformat/flvdec.c libavformat/img2.c libavformat/isom.h libavformat/mov.c libavformat/movenc.c libswscale/rgb2rgb.c libswscale/rgb2rgb_template.c libswscale/yuv2rgb.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavformat/flvdec.c')
-rw-r--r--libavformat/flvdec.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/libavformat/flvdec.c b/libavformat/flvdec.c
index ffb84e9794..7a0ac89c54 100644
--- a/libavformat/flvdec.c
+++ b/libavformat/flvdec.c
@@ -149,6 +149,9 @@ static int parse_keyframes_index(AVFormatContext *s, AVIOContext *ioc, AVStream
return 0;
}
+ if (s->flags & AVFMT_FLAG_IGNIDX)
+ return 0;
+
while (avio_tell(ioc) < max_pos - 2 && amf_get_string(ioc, str_val, sizeof(str_val)) > 0) {
int64_t** current_array;
unsigned int arraylen;
@@ -198,8 +201,9 @@ static int parse_keyframes_index(AVFormatContext *s, AVIOContext *ioc, AVStream
dts |= avio_r8(ioc) << 24;
if (size0 > filepositions[1] || FFABS(dts - times[1]*1000)>5000/*arbitraray threshold to detect invalid index*/)
goto invalid;
- for(i = 0; i < timeslen; i++)
- av_add_index_entry(vstream, filepositions[i], times[i]*1000, 0, 0, AVINDEX_KEYFRAME);
+ for(i = 0; i < timeslen; i++)
+ av_add_index_entry(vstream, filepositions[i], times[i]*1000,
+ 0, 0, AVINDEX_KEYFRAME);
} else {
invalid:
av_log(s, AV_LOG_WARNING, "Invalid keyframes object, skipping.\n");