diff options
author | Baptiste Coudurier <baptiste.coudurier@gmail.com> | 2009-02-10 23:25:23 +0000 |
---|---|---|
committer | Baptiste Coudurier <baptiste.coudurier@gmail.com> | 2009-02-10 23:25:23 +0000 |
commit | 9c91a0b0494a931a33b4a50c13280146751cbfaa (patch) | |
tree | a56d0ee38946a9e16c6b88e07e208ff51c2a80b3 /libavformat/mxfenc.c | |
parent | 9ea5e6f639fa9f050403fc07bd7a9b5cada9005f (diff) | |
download | ffmpeg-9c91a0b0494a931a33b4a50c13280146751cbfaa.tar.gz |
fix partition offset when only one stream present
Originally committed as revision 17140 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavformat/mxfenc.c')
-rw-r--r-- | libavformat/mxfenc.c | 5 |
1 files 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 |