diff options
author | Anton Khirnov <anton@khirnov.net> | 2023-07-19 19:29:18 +0200 |
---|---|---|
committer | Anton Khirnov <anton@khirnov.net> | 2023-12-12 08:24:18 +0100 |
commit | 66e78e9680db2a0daecf4d79637dcbf872450f08 (patch) | |
tree | 32b9f2e4ada8105d506f60bc7e7774bdddb0de10 /fftools/ffmpeg_filter.c | |
parent | 75efe530ce390898b01ba1a1cb3554223d593a9a (diff) | |
download | ffmpeg-66e78e9680db2a0daecf4d79637dcbf872450f08.tar.gz |
fftools/ffmpeg_demux: switch from AVThreadMessageQueue to ThreadQueue
* the code is made shorter and simpler
* avoids constantly allocating and freeing AVPackets, thanks to
ThreadQueue integration with ObjPool
* is consistent with decoding/filtering/muxing
* reduces the diff in the future switch to thread-aware scheduling
This makes ifile_get_packet() always block. Any potential issues caused
by this will be resolved by the switch to thread-aware scheduling in
future commits.
Diffstat (limited to 'fftools/ffmpeg_filter.c')
-rw-r--r-- | fftools/ffmpeg_filter.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/fftools/ffmpeg_filter.c b/fftools/ffmpeg_filter.c index 1df1212442..d93fc74e07 100644 --- a/fftools/ffmpeg_filter.c +++ b/fftools/ffmpeg_filter.c @@ -2010,9 +2010,8 @@ static int choose_input(const FilterGraph *fg, const FilterGraphThread *fgt) for (int i = 0; i < fg->nb_inputs; i++) { InputFilter *ifilter = fg->inputs[i]; InputFilterPriv *ifp = ifp_from_ifilter(ifilter); - InputStream *ist = ifp->ist; - if (input_files[ist->file_index]->eagain || fgt->eof_in[i]) + if (fgt->eof_in[i]) continue; nb_requests = av_buffersrc_get_nb_failed_requests(ifp->filter); @@ -2022,6 +2021,8 @@ static int choose_input(const FilterGraph *fg, const FilterGraphThread *fgt) } } + av_assert0(best_input >= 0); + return best_input; } |