diff --git a/libavformat/matroskaenc.c b/libavformat/matroskaenc.c index 5deb8deeae37b45f1b4df37968bbc5b409d90bc0..22c5dc06ec588e9b5e75a6dbafe66fab4037ec8a 100644 --- a/libavformat/matroskaenc.c +++ b/libavformat/matroskaenc.c @@ -710,15 +710,9 @@ static int mkv_write_header(AVFormatContext *s) return 0; } -static int mkv_block_size(AVPacket *pkt) -{ - int size = 4; // track num + timecode + flags - return size + pkt->size; -} - static int mkv_blockgroup_size(AVPacket *pkt) { - int size = mkv_block_size(pkt); + int size = pkt->size + 4; size += ebml_num_size(size); size += 2; // EBML ID for block and block duration size += 8; // max size of block duration @@ -736,7 +730,7 @@ static void mkv_write_block(AVFormatContext *s, unsigned int blockid, AVPacket * "pts %" PRId64 ", dts %" PRId64 ", duration %d, flags %d\n", url_ftell(pb), pkt->size, pkt->pts, pkt->dts, pkt->duration, flags); put_ebml_id(pb, blockid); - put_ebml_num(pb, mkv_block_size(pkt), 0); + put_ebml_num(pb, pkt->size+4, 0); put_byte(pb, 0x80 | (pkt->stream_index + 1)); // this assumes stream_index is less than 126 put_be16(pb, pkt->pts - mkv->cluster_pts); put_byte(pb, flags);