From 9c91a0b0494a931a33b4a50c13280146751cbfaa Mon Sep 17 00:00:00 2001 From: Baptiste Coudurier Date: Tue, 10 Feb 2009 23:25:23 +0000 Subject: [PATCH] fix partition offset when only one stream present Originally committed as revision 17140 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavformat/mxfenc.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/libavformat/mxfenc.c b/libavformat/mxfenc.c index ae9e764b1f..a06ab4cacb 100644 --- a/libavformat/mxfenc.c +++ b/libavformat/mxfenc.c @@ -1021,6 +1021,7 @@ static void mxf_write_partition(AVFormatContext *s, int bodysid, ByteIOContext *pb = s->pb; int64_t header_byte_count_offset; unsigned index_byte_count = 0; + uint64_t partition_offset = url_ftell(pb); if (mxf->edit_units_count) { index_byte_count = 109 + (s->nb_streams+1)*6 + @@ -1037,7 +1038,7 @@ static void mxf_write_partition(AVFormatContext *s, int bodysid, av_realloc(mxf->body_partition_offset, (mxf->body_partitions_count+1)* sizeof(*mxf->body_partition_offset)); - mxf->body_partition_offset[mxf->body_partitions_count++] = url_ftell(pb); + mxf->body_partition_offset[mxf->body_partitions_count++] = partition_offset; } // write klv @@ -1050,7 +1051,7 @@ static void mxf_write_partition(AVFormatContext *s, int bodysid, put_be16(pb, 2); // minorVersion put_be32(pb, KAG_SIZE); // KAGSize - put_be64(pb, url_ftell(pb) - 25); // thisPartition + put_be64(pb, partition_offset); // ThisPartition if (!memcmp(key, body_partition_key, 16) && mxf->body_partitions_count > 1) put_be64(pb, mxf->body_partition_offset[mxf->body_partitions_count-2]); // PreviousPartition