aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPhilip de Nier <philip.denier@rd.bbc.co.uk>2011-09-12 11:13:44 +0100
committerMichael Niedermayer <michaelni@gmx.at>2011-09-12 18:17:49 +0200
commit47886e3644f94edb7bb78500da72975a9d7d2458 (patch)
tree98b74be1879b790cd3983471f40845af2bf4feb9
parent73211630110886d849e3de837ca80280a2df2b46 (diff)
downloadffmpeg-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
-rw-r--r--libavformat/mxfdec.c5
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;