Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/FFmpeg/FFmpeg.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnton Khirnov <anton@khirnov.net>2022-01-10 13:04:36 +0300
committerAndreas Rheinhardt <andreas.rheinhardt@outlook.com>2022-02-07 02:31:23 +0300
commitbdf9ed41fe4bdf4e254615b7333ab0feb1977e98 (patch)
tree18f72090d4812e08b60c6977d159981e19fc8c3e /fftools/ffplay.c
parentc65c2ed01d83db0faba8c359a620ab2a23249532 (diff)
ffplay: switch to new FIFO API
Diffstat (limited to 'fftools/ffplay.c')
-rw-r--r--fftools/ffplay.c22
1 files changed, 9 insertions, 13 deletions
diff --git a/fftools/ffplay.c b/fftools/ffplay.c
index e7b20be76b..ac48d8765d 100644
--- a/fftools/ffplay.c
+++ b/fftools/ffplay.c
@@ -115,7 +115,7 @@ typedef struct MyAVPacketList {
} MyAVPacketList;
typedef struct PacketQueue {
- AVFifoBuffer *pkt_list;
+ AVFifo *pkt_list;
int nb_packets;
int size;
int64_t duration;
@@ -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,10 +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_read(q->pkt_list, &pkt1, 1) >= 0)
av_packet_free(&pkt1.pkt);
- }
q->nb_packets = 0;
q->size = 0;
q->duration = 0;
@@ -513,7 +510,7 @@ static void packet_queue_flush(PacketQueue *q)
static void packet_queue_destroy(PacketQueue *q)
{
packet_queue_flush(q);
- av_fifo_freep(&q->pkt_list);
+ av_fifo_freep2(&q->pkt_list);
SDL_DestroyMutex(q->mutex);
SDL_DestroyCond(q->cond);
}
@@ -551,8 +548,7 @@ 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_read(q->pkt_list, &pkt1, 1) >= 0) {
q->nb_packets--;
q->size -= pkt1.pkt->size + sizeof(pkt1);
q->duration -= pkt1.pkt->duration;