aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnton Khirnov <anton@khirnov.net>2022-03-21 15:53:38 +0100
committerAnton Khirnov <anton@khirnov.net>2022-08-08 16:20:58 +0200
commitd8bf53710ffcb4abd5131f7faedf4aab240ef3d9 (patch)
tree20cb5fd63ce96cfa14d1db6442d6684dd47364e1
parentcc2b7f4625497cab303a0b5dd9f47d366a619a64 (diff)
downloadffmpeg-d8bf53710ffcb4abd5131f7faedf4aab240ef3d9.tar.gz
fftools/ffmpeg: always read input in a thread
This will be required by the following architecture changes.
-rw-r--r--fftools/ffmpeg.c25
1 files changed, 6 insertions, 19 deletions
diff --git a/fftools/ffmpeg.c b/fftools/ffmpeg.c
index 159d54d972..b7b506b85f 100644
--- a/fftools/ffmpeg.c
+++ b/fftools/ffmpeg.c
@@ -3713,10 +3713,8 @@ static int init_input_thread(int i)
int ret;
InputFile *f = input_files[i];
- if (f->thread_queue_size < 0)
- f->thread_queue_size = (nb_input_files > 1 ? 8 : 0);
- if (!f->thread_queue_size)
- return 0;
+ if (f->thread_queue_size <= 0)
+ f->thread_queue_size = (nb_input_files > 1 ? 8 : 1);
if (f->ctx->pb ? !f->ctx->pb->seekable :
strcmp(f->ctx->iformat->name, "lavfi"))
@@ -3747,13 +3745,6 @@ static int init_input_threads(void)
return 0;
}
-static int get_input_packet_mt(InputFile *f, AVPacket **pkt)
-{
- return av_thread_message_queue_recv(f->in_thread_queue, pkt,
- f->non_blocking ?
- AV_THREAD_MESSAGE_NONBLOCK : 0);
-}
-
static int get_input_packet(InputFile *f, AVPacket **pkt)
{
if (f->readrate || f->rate_emu) {
@@ -3775,10 +3766,9 @@ static int get_input_packet(InputFile *f, AVPacket **pkt)
}
}
- if (f->thread_queue_size)
- return get_input_packet_mt(f, pkt);
- *pkt = f->pkt;
- return av_read_frame(f->ctx, *pkt);
+ return av_thread_message_queue_recv(f->in_thread_queue, pkt,
+ f->non_blocking ?
+ AV_THREAD_MESSAGE_NONBLOCK : 0);
}
static int got_eagain(void)
@@ -4162,10 +4152,7 @@ static int process_input(int file_index)
process_input_packet(ist, pkt, 0);
discard_packet:
- if (ifile->thread_queue_size)
- av_packet_free(&pkt);
- else
- av_packet_unref(pkt);
+ av_packet_free(&pkt);
return 0;
}