[FFmpeg-devel] [PATCH 03/18] avcodec/avpacket: make avpriv_packet_* use PacketListEntry
James Almer
jamrial at gmail.com
Wed Nov 18 18:52:32 EET 2020
Signed-off-by: James Almer <jamrial at gmail.com>
---
libavcodec/avpacket.c | 18 +++++++++---------
libavcodec/internal.h | 5 +++--
libavcodec/packet_internal.h | 6 +++---
libavformat/aiffenc.c | 4 ++--
libavformat/flacenc.c | 2 +-
libavformat/internal.h | 12 ++++++------
libavformat/matroskadec.c | 4 ++--
libavformat/mp3enc.c | 2 +-
libavformat/mux.c | 16 ++++++++--------
libavformat/mxfenc.c | 12 ++++++------
libavformat/ttaenc.c | 2 +-
libavformat/utils.c | 14 +++++++-------
12 files changed, 49 insertions(+), 48 deletions(-)
diff --git a/libavcodec/avpacket.c b/libavcodec/avpacket.c
index e4ba403cf6..c12515cf05 100644
--- a/libavcodec/avpacket.c
+++ b/libavcodec/avpacket.c
@@ -726,13 +726,13 @@ FF_ENABLE_DEPRECATION_WARNINGS
#endif
}
-int avpriv_packet_list_put(AVPacketList **packet_buffer,
- AVPacketList **plast_pktl,
+int avpriv_packet_list_put(PacketListEntry **packet_buffer,
+ PacketListEntry **plast_pktl,
AVPacket *pkt,
int (*copy)(AVPacket *dst, const AVPacket *src),
int flags)
{
- AVPacketList *pktl = av_mallocz(sizeof(AVPacketList));
+ PacketListEntry *pktl = av_mallocz(sizeof(PacketListEntry));
int ret;
if (!pktl)
@@ -763,11 +763,11 @@ int avpriv_packet_list_put(AVPacketList **packet_buffer,
return 0;
}
-int avpriv_packet_list_get(AVPacketList **pkt_buffer,
- AVPacketList **pkt_buffer_end,
+int avpriv_packet_list_get(PacketListEntry **pkt_buffer,
+ PacketListEntry **pkt_buffer_end,
AVPacket *pkt)
{
- AVPacketList *pktl;
+ PacketListEntry *pktl;
if (!*pkt_buffer)
return AVERROR(EAGAIN);
pktl = *pkt_buffer;
@@ -779,12 +779,12 @@ int avpriv_packet_list_get(AVPacketList **pkt_buffer,
return 0;
}
-void avpriv_packet_list_free(AVPacketList **pkt_buf, AVPacketList **pkt_buf_end)
+void avpriv_packet_list_free(PacketListEntry **pkt_buf, PacketListEntry **pkt_buf_end)
{
- AVPacketList *tmp = *pkt_buf;
+ PacketListEntry *tmp = *pkt_buf;
while (tmp) {
- AVPacketList *pktl = tmp;
+ PacketListEntry *pktl = tmp;
tmp = pktl->next;
av_packet_unref(&pktl->pkt);
av_freep(&pktl);
diff --git a/libavcodec/internal.h b/libavcodec/internal.h
index 17defb9b50..c72cce869e 100644
--- a/libavcodec/internal.h
+++ b/libavcodec/internal.h
@@ -31,6 +31,7 @@
#include "libavutil/mathematics.h"
#include "libavutil/pixfmt.h"
#include "avcodec.h"
+#include "packet_internal.h"
#include "config.h"
/**
@@ -145,8 +146,8 @@ typedef struct AVCodecInternal {
* for decoding.
*/
AVPacket *last_pkt_props;
- AVPacketList *pkt_props;
- AVPacketList *pkt_props_tail;
+ PacketListEntry *pkt_props;
+ PacketListEntry *pkt_props_tail;
/**
* temporary buffer used for encoders to store their bitstream
diff --git a/libavcodec/packet_internal.h b/libavcodec/packet_internal.h
index 9b9bef94f0..33c9513f16 100644
--- a/libavcodec/packet_internal.h
+++ b/libavcodec/packet_internal.h
@@ -41,7 +41,7 @@ typedef struct PacketListEntry {
* @return 0 on success, negative AVERROR value on failure. On failure,
the packet and the list are unchanged.
*/
-int avpriv_packet_list_put(AVPacketList **head, AVPacketList **tail,
+int avpriv_packet_list_put(PacketListEntry **head, PacketListEntry **tail,
AVPacket *pkt,
int (*copy)(AVPacket *dst, const AVPacket *src),
int flags);
@@ -58,7 +58,7 @@ int avpriv_packet_list_put(AVPacketList **head, AVPacketList **tail,
* @return 0 on success, and a packet is returned. AVERROR(EAGAIN) if
* the list was empty.
*/
-int avpriv_packet_list_get(AVPacketList **head, AVPacketList **tail,
+int avpriv_packet_list_get(PacketListEntry **head, PacketListEntry **tail,
AVPacket *pkt);
/**
@@ -67,7 +67,7 @@ int avpriv_packet_list_get(AVPacketList **head, AVPacketList **tail,
* @param head List head element
* @param tail List tail element
*/
-void avpriv_packet_list_free(AVPacketList **head, AVPacketList **tail);
+void avpriv_packet_list_free(PacketListEntry **head, PacketListEntry **tail);
int ff_side_data_set_encoder_stats(AVPacket *pkt, int quality, int64_t *error, int error_count, int pict_type);
diff --git a/libavformat/aiffenc.c b/libavformat/aiffenc.c
index c4ffe9f6d0..7c28109814 100644
--- a/libavformat/aiffenc.c
+++ b/libavformat/aiffenc.c
@@ -37,7 +37,7 @@ typedef struct AIFFOutputContext {
int64_t frames;
int64_t ssnd;
int audio_stream_idx;
- AVPacketList *pict_list, *pict_list_end;
+ PacketListEntry *pict_list, *pict_list_end;
int write_id3v2;
int id3v2_version;
} AIFFOutputContext;
@@ -48,7 +48,7 @@ static int put_id3v2_tags(AVFormatContext *s, AIFFOutputContext *aiff)
uint64_t pos, end, size;
ID3v2EncContext id3v2 = { 0 };
AVIOContext *pb = s->pb;
- AVPacketList *pict_list = aiff->pict_list;
+ PacketListEntry *pict_list = aiff->pict_list;
if (!s->metadata && !s->nb_chapters && !aiff->pict_list)
return 0;
diff --git a/libavformat/flacenc.c b/libavformat/flacenc.c
index 6b8ce8d7ee..a24d3be85d 100644
--- a/libavformat/flacenc.c
+++ b/libavformat/flacenc.c
@@ -39,7 +39,7 @@ typedef struct FlacMuxerContext {
int audio_stream_idx;
int waiting_pics;
/* audio packets are queued here until we get all the attached pictures */
- AVPacketList *queue, *queue_end;
+ PacketListEntry *queue, *queue_end;
/* updated streaminfo sent by the encoder at the end */
uint8_t streaminfo[FLAC_STREAMINFO_SIZE];
diff --git a/libavformat/internal.h b/libavformat/internal.h
index c29c7deec7..d366bdc452 100644
--- a/libavformat/internal.h
+++ b/libavformat/internal.h
@@ -74,8 +74,8 @@ struct AVFormatInternal {
* not decoded, for example to get the codec parameters in MPEG
* streams.
*/
- struct AVPacketList *packet_buffer;
- struct AVPacketList *packet_buffer_end;
+ struct PacketListEntry *packet_buffer;
+ struct PacketListEntry *packet_buffer_end;
/* av_seek_frame() support */
int64_t data_offset; /**< offset of the first packet */
@@ -86,13 +86,13 @@ struct AVFormatInternal {
* be identified, as parsing cannot be done without knowing the
* codec.
*/
- struct AVPacketList *raw_packet_buffer;
- struct AVPacketList *raw_packet_buffer_end;
+ struct PacketListEntry *raw_packet_buffer;
+ struct PacketListEntry *raw_packet_buffer_end;
/**
* Packets split by the parser get queued here.
*/
- struct AVPacketList *parse_queue;
- struct AVPacketList *parse_queue_end;
+ struct PacketListEntry *parse_queue;
+ struct PacketListEntry *parse_queue_end;
/**
* Remaining size available for raw_packet_buffer, in bytes.
*/
diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c
index 981e044263..0970e1d1ef 100644
--- a/libavformat/matroskadec.c
+++ b/libavformat/matroskadec.c
@@ -366,8 +366,8 @@ typedef struct MatroskaDemuxContext {
int64_t segment_start;
/* the packet queue */
- AVPacketList *queue;
- AVPacketList *queue_end;
+ PacketListEntry *queue;
+ PacketListEntry *queue_end;
int done;
diff --git a/libavformat/mp3enc.c b/libavformat/mp3enc.c
index 4f91c4f1c3..fddde33400 100644
--- a/libavformat/mp3enc.c
+++ b/libavformat/mp3enc.c
@@ -132,7 +132,7 @@ typedef struct MP3Context {
int pics_to_write;
/* audio packets are queued here until we get all the attached pictures */
- AVPacketList *queue, *queue_end;
+ PacketListEntry *queue, *queue_end;
} MP3Context;
static const uint8_t xing_offtbl[2][2] = {{32, 17}, {17, 9}};
diff --git a/libavformat/mux.c b/libavformat/mux.c
index d60bf2218b..cf52de5366 100644
--- a/libavformat/mux.c
+++ b/libavformat/mux.c
@@ -813,11 +813,11 @@ int ff_interleave_add_packet(AVFormatContext *s, AVPacket *pkt,
int (*compare)(AVFormatContext *, const AVPacket *, const AVPacket *))
{
int ret;
- AVPacketList **next_point, *this_pktl;
+ PacketListEntry **next_point, *this_pktl;
AVStream *st = s->streams[pkt->stream_index];
int chunked = s->max_chunk_size || s->max_chunk_duration;
- this_pktl = av_malloc(sizeof(AVPacketList));
+ this_pktl = av_malloc(sizeof(PacketListEntry));
if (!this_pktl) {
av_packet_unref(pkt);
return AVERROR(ENOMEM);
@@ -832,7 +832,7 @@ int ff_interleave_add_packet(AVFormatContext *s, AVPacket *pkt,
pkt = &this_pktl->pkt;
if (st->internal->last_in_packet_buffer) {
- next_point = (AVPacketList **)&(st->internal->last_in_packet_buffer->next);
+ next_point = &(st->internal->last_in_packet_buffer->next);
} else {
next_point = &s->internal->packet_buffer;
}
@@ -877,7 +877,7 @@ next_non_null:
this_pktl->next = *next_point;
*next_point = this_pktl;
- st->internal->last_in_packet_buffer = (PacketListEntry *)this_pktl;
+ st->internal->last_in_packet_buffer = this_pktl;
return 0;
}
@@ -915,7 +915,7 @@ static int interleave_compare_dts(AVFormatContext *s, const AVPacket *next,
int ff_interleave_packet_per_dts(AVFormatContext *s, AVPacket *out,
AVPacket *pkt, int flush)
{
- AVPacketList *pktl;
+ PacketListEntry *pktl;
int stream_count = 0;
int noninterleaved_count = 0;
int i, ret;
@@ -1001,7 +1001,7 @@ int ff_interleave_packet_per_dts(AVFormatContext *s, AVPacket *out,
if (!s->internal->packet_buffer)
s->internal->packet_buffer_end = NULL;
- if (st->internal->last_in_packet_buffer == (PacketListEntry *)pktl)
+ if (st->internal->last_in_packet_buffer == pktl)
st->internal->last_in_packet_buffer = NULL;
av_packet_unref(&pktl->pkt);
@@ -1020,7 +1020,7 @@ int ff_interleave_packet_per_dts(AVFormatContext *s, AVPacket *out,
if (!s->internal->packet_buffer)
s->internal->packet_buffer_end = NULL;
- if (st->internal->last_in_packet_buffer == (PacketListEntry *)pktl)
+ if (st->internal->last_in_packet_buffer == pktl)
st->internal->last_in_packet_buffer = NULL;
av_freep(&pktl);
@@ -1033,7 +1033,7 @@ int ff_interleave_packet_per_dts(AVFormatContext *s, AVPacket *out,
int ff_interleaved_peek(AVFormatContext *s, int stream,
AVPacket *pkt, int add_offset)
{
- AVPacketList *pktl = s->internal->packet_buffer;
+ PacketListEntry *pktl = s->internal->packet_buffer;
while (pktl) {
if (pktl->pkt.stream_index == stream) {
*pkt = pktl->pkt;
diff --git a/libavformat/mxfenc.c b/libavformat/mxfenc.c
index c7f98ac257..8f2649c31f 100644
--- a/libavformat/mxfenc.c
+++ b/libavformat/mxfenc.c
@@ -3053,23 +3053,23 @@ static int mxf_interleave_get_packet(AVFormatContext *s, AVPacket *out, AVPacket
stream_count += !!s->streams[i]->internal->last_in_packet_buffer;
if (stream_count && (s->nb_streams == stream_count || flush)) {
- AVPacketList *pktl = s->internal->packet_buffer;
+ PacketListEntry *pktl = s->internal->packet_buffer;
if (s->nb_streams != stream_count) {
- AVPacketList *last = NULL;
+ PacketListEntry *last = NULL;
// find last packet in edit unit
while (pktl) {
if (!stream_count || pktl->pkt.stream_index == 0)
break;
// update last packet in packet buffer
- if (s->streams[pktl->pkt.stream_index]->internal->last_in_packet_buffer != (PacketListEntry *)pktl)
- s->streams[pktl->pkt.stream_index]->internal->last_in_packet_buffer = (PacketListEntry *)pktl;
+ if (s->streams[pktl->pkt.stream_index]->internal->last_in_packet_buffer != pktl)
+ s->streams[pktl->pkt.stream_index]->internal->last_in_packet_buffer = pktl;
last = pktl;
pktl = pktl->next;
stream_count--;
}
// purge packet queue
while (pktl) {
- AVPacketList *next = pktl->next;
+ PacketListEntry *next = pktl->next;
av_packet_unref(&pktl->pkt);
av_freep(&pktl);
pktl = next;
@@ -3087,7 +3087,7 @@ static int mxf_interleave_get_packet(AVFormatContext *s, AVPacket *out, AVPacket
*out = pktl->pkt;
av_log(s, AV_LOG_TRACE, "out st:%d dts:%"PRId64"\n", (*out).stream_index, (*out).dts);
s->internal->packet_buffer = pktl->next;
- if(s->streams[pktl->pkt.stream_index]->internal->last_in_packet_buffer == (PacketListEntry *)pktl)
+ if(s->streams[pktl->pkt.stream_index]->internal->last_in_packet_buffer == pktl)
s->streams[pktl->pkt.stream_index]->internal->last_in_packet_buffer= NULL;
if(!s->internal->packet_buffer)
s->internal->packet_buffer_end= NULL;
diff --git a/libavformat/ttaenc.c b/libavformat/ttaenc.c
index 92f5053d52..39d9034f68 100644
--- a/libavformat/ttaenc.c
+++ b/libavformat/ttaenc.c
@@ -30,7 +30,7 @@
typedef struct TTAMuxContext {
AVIOContext *seek_table;
- AVPacketList *queue, *queue_end;
+ PacketListEntry *queue, *queue_end;
uint32_t nb_samples;
int frame_size;
int last_frame;
diff --git a/libavformat/utils.c b/libavformat/utils.c
index 0391e0da13..20bf723a55 100644
--- a/libavformat/utils.c
+++ b/libavformat/utils.c
@@ -799,7 +799,7 @@ int ff_read_packet(AVFormatContext *s, AVPacket *pkt)
av_init_packet(pkt);
for (;;) {
- AVPacketList *pktl = s->internal->raw_packet_buffer;
+ PacketListEntry *pktl = s->internal->raw_packet_buffer;
const AVPacket *pkt1;
if (pktl) {
@@ -1007,7 +1007,7 @@ static int has_decode_delay_been_guessed(AVStream *st)
return st->internal->nb_decoded_frames >= 20;
}
-static AVPacketList *get_next_pkt(AVFormatContext *s, AVStream *st, AVPacketList *pktl)
+static PacketListEntry *get_next_pkt(AVFormatContext *s, AVStream *st, PacketListEntry *pktl)
{
if (pktl->next)
return pktl->next;
@@ -1063,7 +1063,7 @@ static int64_t select_from_pts_buffer(AVStream *st, int64_t *pts_buffer, int64_t
* of the packets in a window.
*/
static void update_dts_from_pts(AVFormatContext *s, int stream_index,
- AVPacketList *pkt_buffer)
+ PacketListEntry *pkt_buffer)
{
AVStream *st = s->streams[stream_index];
int delay = st->internal->avctx->has_b_frames;
@@ -1092,8 +1092,8 @@ static void update_initial_timestamps(AVFormatContext *s, int stream_index,
int64_t dts, int64_t pts, AVPacket *pkt)
{
AVStream *st = s->streams[stream_index];
- AVPacketList *pktl = s->internal->packet_buffer ? s->internal->packet_buffer : s->internal->parse_queue;
- AVPacketList *pktl_it;
+ PacketListEntry *pktl = s->internal->packet_buffer ? s->internal->packet_buffer : s->internal->parse_queue;
+ PacketListEntry *pktl_it;
uint64_t shift;
@@ -1143,7 +1143,7 @@ static void update_initial_timestamps(AVFormatContext *s, int stream_index,
static void update_initial_durations(AVFormatContext *s, AVStream *st,
int stream_index, int64_t duration)
{
- AVPacketList *pktl = s->internal->packet_buffer ? s->internal->packet_buffer : s->internal->parse_queue;
+ PacketListEntry *pktl = s->internal->packet_buffer ? s->internal->packet_buffer : s->internal->parse_queue;
int64_t cur_dts = RELATIVE_TS_BASE;
if (st->first_dts != AV_NOPTS_VALUE) {
@@ -1727,7 +1727,7 @@ int av_read_frame(AVFormatContext *s, AVPacket *pkt)
}
for (;;) {
- AVPacketList *pktl = s->internal->packet_buffer;
+ PacketListEntry *pktl = s->internal->packet_buffer;
if (pktl) {
AVPacket *next_pkt = &pktl->pkt;
--
2.29.2
More information about the ffmpeg-devel
mailing list