#include "libavutil/crc.h"
#include "libavutil/intreadwrite.h"
+#include "libavcodec/packet_internal.h"
#include "apetag.h"
#include "avformat.h"
#include "avio_internal.h"
typedef struct TTAMuxContext {
AVIOContext *seek_table;
- AVPacketList *queue, *queue_end;
+ PacketList *queue, *queue_end;
uint32_t nb_samples;
int frame_size;
int last_frame;
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;
}
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);
}
/* 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);
- tta->seek_table = NULL;
- av_free(ptr);
/* Write audio data */
tta_queue_flush(s);
ff_ape_write_tag(s);
- avio_flush(s->pb);
return 0;
}
TTAMuxContext *tta = s->priv_data;
ffio_free_dyn_buf(&tta->seek_table);
- ff_packet_list_free(&tta->queue, &tta->queue_end);
+ avpriv_packet_list_free(&tta->queue, &tta->queue_end);
}
AVOutputFormat ff_tta_muxer = {