diff options
author | Philip de Nier <philip.denier@rd.bbc.co.uk> | 2011-09-12 11:13:44 +0100 |
---|---|---|
committer | Janne Grunau <janne-libav@jannau.net> | 2012-01-22 14:40:52 +0100 |
commit | 0662eea6b0b6a94753ed2fda813de1c3d8692fd8 (patch) | |
tree | e90ff29a44cb444c36abd526e4f9916708f15f05 | |
parent | d32b3f40c716785bb4073aca9bd0877ecac855b5 (diff) | |
download | ffmpeg-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.c | 5 |
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; |