diff options
author | Philip de Nier <philip.denier@rd.bbc.co.uk> | 2011-09-12 11:13:44 +0100 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2011-09-12 18:17:49 +0200 |
commit | 47886e3644f94edb7bb78500da72975a9d7d2458 (patch) | |
tree | 98b74be1879b790cd3983471f40845af2bf4feb9 /libavformat/mxfdec.c | |
parent | 73211630110886d849e3de837ca80280a2df2b46 (diff) | |
download | ffmpeg-47886e3644f94edb7bb78500da72975a9d7d2458.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
Diffstat (limited to 'libavformat/mxfdec.c')
-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 76b6859526..307a2b2194 100644 --- a/libavformat/mxfdec.c +++ b/libavformat/mxfdec.c @@ -1039,8 +1039,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 -1; |