avformat/ttaenc: add a deinit function
authorJames Almer <jamrial@gmail.com>
Mon, 21 Oct 2019 02:24:54 +0000 (23:24 -0300)
committerJames Almer <jamrial@gmail.com>
Mon, 21 Oct 2019 20:20:20 +0000 (17:20 -0300)
Reviewed-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
libavformat/ttaenc.c

index d8e1136..73c29ae 100644 (file)
@@ -147,6 +147,7 @@ static int tta_write_trailer(AVFormatContext *s)
     avio_wl32(tta->seek_table, crc);
     size = avio_close_dyn_buf(tta->seek_table, &ptr);
     avio_write(s->pb, ptr, size);
+    tta->seek_table = NULL;
     av_free(ptr);
 
     /* Write audio data */
@@ -158,6 +159,14 @@ static int tta_write_trailer(AVFormatContext *s)
     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 +176,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,