aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPhilip de Nier <philip.denier@rd.bbc.co.uk>2011-09-12 11:13:44 +0100
committerJanne Grunau <janne-libav@jannau.net>2012-01-22 14:40:52 +0100
commit0662eea6b0b6a94753ed2fda813de1c3d8692fd8 (patch)
treee90ff29a44cb444c36abd526e4f9916708f15f05
parentd32b3f40c716785bb4073aca9bd0877ecac855b5 (diff)
downloadffmpeg-0662eea6b0b6a94753ed2fda813de1c3d8692fd8.tar.gz
mxfdec: skip to end of structural sets
This fixes reading of partition packs. The code stops reading after the operational pattern and should skip the array of essence container labels that follow. Signed-off-by: Janne Grunau <janne-libav@jannau.net>
-rw-r--r--libavformat/mxfdec.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/libavformat/mxfdec.c b/libavformat/mxfdec.c
index 33c931e0e0..38e98a35a0 100644
--- a/libavformat/mxfdec.c
+++ b/libavformat/mxfdec.c
@@ -1053,8 +1053,11 @@ static int mxf_read_header(AVFormatContext *s, AVFormatParameters *ap)
int res;
if (klv.key[5] == 0x53) {
res = mxf_read_local_tags(mxf, &klv, metadata->read, metadata->ctx_size, metadata->type);
- } else
+ } else {
+ uint64_t next = avio_tell(s->pb) + klv.length;
res = metadata->read(mxf, s->pb, 0, 0, klv.key);
+ avio_seek(s->pb, next, SEEK_SET);
+ }
if (res < 0) {
av_log(s, AV_LOG_ERROR, "error reading header metadata\n");
return res;