X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavformat%2Fttaenc.c;h=becd3e7153652e33724786e03098a44c2ffea33f;hb=4147f63d63358e5c1969bfe431ee08ca54f8434d;hp=d8e1136ead1a2ed7debc33ce1f5cba0aa8a39eb0;hpb=47e12966b75490cfa5fb8ed65a48a9a3d84a7bce;p=ffmpeg diff --git a/libavformat/ttaenc.c b/libavformat/ttaenc.c index d8e1136ead1..becd3e71536 100644 --- a/libavformat/ttaenc.c +++ b/libavformat/ttaenc.c @@ -145,19 +145,25 @@ static int tta_write_trailer(AVFormatContext *s) /* Write Seek table */ crc = ffio_get_checksum(tta->seek_table) ^ UINT32_MAX; avio_wl32(tta->seek_table, crc); - size = avio_close_dyn_buf(tta->seek_table, &ptr); + size = avio_get_dyn_buf(tta->seek_table, &ptr); avio_write(s->pb, ptr, size); - av_free(ptr); /* Write audio data */ tta_queue_flush(s); ff_ape_write_tag(s); - avio_flush(s->pb); return 0; } +static void tta_deinit(AVFormatContext *s) +{ + TTAMuxContext *tta = s->priv_data; + + ffio_free_dyn_buf(&tta->seek_table); + ff_packet_list_free(&tta->queue, &tta->queue_end); +} + AVOutputFormat ff_tta_muxer = { .name = "tta", .long_name = NULL_IF_CONFIG_SMALL("TTA (True Audio)"), @@ -167,6 +173,7 @@ AVOutputFormat ff_tta_muxer = { .audio_codec = AV_CODEC_ID_TTA, .video_codec = AV_CODEC_ID_NONE, .init = tta_init, + .deinit = tta_deinit, .write_header = tta_write_header, .write_packet = tta_write_packet, .write_trailer = tta_write_trailer,