]> git.sesse.net Git - ffmpeg/blobdiff - libavformat/ttaenc.c
avformat: Constify all muxer/demuxers
[ffmpeg] / libavformat / ttaenc.c
index d8e1136ead1a2ed7debc33ce1f5cba0aa8a39eb0..5f66695a9abcfbcf0ae719910b0bc97795160c9b 100644 (file)
@@ -22,6 +22,7 @@
 #include "libavutil/crc.h"
 #include "libavutil/intreadwrite.h"
 
+#include "libavcodec/packet_internal.h"
 #include "apetag.h"
 #include "avformat.h"
 #include "avio_internal.h"
@@ -29,7 +30,7 @@
 
 typedef struct TTAMuxContext {
     AVIOContext *seek_table;
-    AVPacketList *queue, *queue_end;
+    PacketList *queue, *queue_end;
     uint32_t nb_samples;
     int frame_size;
     int last_frame;
@@ -93,8 +94,8 @@ static int tta_write_packet(AVFormatContext *s, AVPacket *pkt)
     TTAMuxContext *tta = s->priv_data;
     int ret;
 
-    ret = ff_packet_list_put(&tta->queue, &tta->queue_end, pkt,
-                             FF_PACKETLIST_FLAG_REF_PACKET);
+    ret = avpriv_packet_list_put(&tta->queue, &tta->queue_end, pkt,
+                                 av_packet_ref, 0);
     if (ret < 0) {
         return ret;
     }
@@ -125,7 +126,7 @@ static void tta_queue_flush(AVFormatContext *s)
     AVPacket pkt;
 
     while (tta->queue) {
-        ff_packet_list_get(&tta->queue, &tta->queue_end, &pkt);
+        avpriv_packet_list_get(&tta->queue, &tta->queue_end, &pkt);
         avio_write(s->pb, pkt.data, pkt.size);
         av_packet_unref(&pkt);
     }
@@ -145,20 +146,26 @@ 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;
 }
 
-AVOutputFormat ff_tta_muxer = {
+static void tta_deinit(AVFormatContext *s)
+{
+    TTAMuxContext *tta = s->priv_data;
+
+    ffio_free_dyn_buf(&tta->seek_table);
+    avpriv_packet_list_free(&tta->queue, &tta->queue_end);
+}
+
+const AVOutputFormat ff_tta_muxer = {
     .name              = "tta",
     .long_name         = NULL_IF_CONFIG_SMALL("TTA (True Audio)"),
     .mime_type         = "audio/x-tta",
@@ -167,6 +174,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,