[FFmpeg-cvslog] 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

Philip de Nier git at videolan.org
Mon Sep 12 18:18:38 CEST 2011


ffmpeg | branch: master | Philip de Nier <philip.denier at rd.bbc.co.uk> | Mon Sep 12 11:13:44 2011 +0100| [47886e3644f94edb7bb78500da72975a9d7d2458] | committer: Michael Niedermayer

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

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=47886e3644f94edb7bb78500da72975a9d7d2458
---

 libavformat/mxfdec.c |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)

diff --git a/libavformat/mxfdec.c b/libavformat/mxfdec.c
index 76b6859..307a2b2 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;



More information about the ffmpeg-cvslog mailing list