[FFmpeg-devel] [PATCH 34/35] ffplay: switch to new FIFO API
Anton Khirnov
anton at khirnov.net
Tue Jan 11 22:46:09 EET 2022
---
fftools/ffplay.c | 19 +++++++++----------
1 file changed, 9 insertions(+), 10 deletions(-)
diff --git a/fftools/ffplay.c b/fftools/ffplay.c
index e7b20be76b..4bef9a6ecc 100644
--- a/fftools/ffplay.c
+++ b/fftools/ffplay.c
@@ -424,19 +424,18 @@ int64_t get_valid_channel_layout(int64_t channel_layout, int channels)
static int packet_queue_put_private(PacketQueue *q, AVPacket *pkt)
{
MyAVPacketList pkt1;
+ int ret;
if (q->abort_request)
return -1;
- if (av_fifo_space(q->pkt_list) < sizeof(pkt1)) {
- if (av_fifo_grow(q->pkt_list, sizeof(pkt1)) < 0)
- return -1;
- }
pkt1.pkt = pkt;
pkt1.serial = q->serial;
- av_fifo_generic_write(q->pkt_list, &pkt1, sizeof(pkt1), NULL);
+ ret = av_fifo_write(q->pkt_list, &pkt1, 1);
+ if (ret < 0)
+ return ret;
q->nb_packets++;
q->size += pkt1.pkt->size + sizeof(pkt1);
q->duration += pkt1.pkt->duration;
@@ -477,7 +476,7 @@ static int packet_queue_put_nullpacket(PacketQueue *q, AVPacket *pkt, int stream
static int packet_queue_init(PacketQueue *q)
{
memset(q, 0, sizeof(PacketQueue));
- q->pkt_list = av_fifo_alloc(sizeof(MyAVPacketList));
+ q->pkt_list = av_fifo_alloc2(1, sizeof(MyAVPacketList), AV_FIFO_FLAG_AUTO_GROW);
if (!q->pkt_list)
return AVERROR(ENOMEM);
q->mutex = SDL_CreateMutex();
@@ -499,8 +498,8 @@ static void packet_queue_flush(PacketQueue *q)
MyAVPacketList pkt1;
SDL_LockMutex(q->mutex);
- while (av_fifo_size(q->pkt_list) >= sizeof(pkt1)) {
- av_fifo_generic_read(q->pkt_list, &pkt1, sizeof(pkt1), NULL);
+ while (av_fifo_can_read(q->pkt_list)) {
+ av_fifo_read(q->pkt_list, &pkt1, 1);
av_packet_free(&pkt1.pkt);
}
q->nb_packets = 0;
@@ -551,8 +550,8 @@ static int packet_queue_get(PacketQueue *q, AVPacket *pkt, int block, int *seria
break;
}
- if (av_fifo_size(q->pkt_list) >= sizeof(pkt1)) {
- av_fifo_generic_read(q->pkt_list, &pkt1, sizeof(pkt1), NULL);
+ if (av_fifo_can_read(q->pkt_list)) {
+ av_fifo_read(q->pkt_list, &pkt1, 1);
q->nb_packets--;
q->size -= pkt1.pkt->size + sizeof(pkt1);
q->duration -= pkt1.pkt->duration;
--
2.33.0
More information about the ffmpeg-devel
mailing list