[FFmpeg-devel] [PATCH 14/24] fftools/ffmpeg_mux: move bitstream filtering to the muxer thread
James Almer
jamrial at gmail.com
Thu Nov 9 13:47:56 EET 2023
On 11/9/2023 8:41 AM, Anton Khirnov wrote:
> Quoting James Almer (2023-11-04 14:39:44)
>> On 11/4/2023 4:56 AM, Anton Khirnov wrote:
>>> This will be the appropriate place for it after the rest of transcoding
>>> is switched to a threaded architecture.
>>> ---
>>> fftools/ffmpeg_mux.c | 112 ++++++++++++++++++++++++++-----------------
>>> 1 file changed, 67 insertions(+), 45 deletions(-)
>>>
>>> diff --git a/fftools/ffmpeg_mux.c b/fftools/ffmpeg_mux.c
>>> index 82352b7981..57fb8a8413 100644
>>> --- a/fftools/ffmpeg_mux.c
>>> +++ b/fftools/ffmpeg_mux.c
>>> @@ -207,6 +207,67 @@ static int sync_queue_process(Muxer *mux, OutputStream *ost, AVPacket *pkt, int
>>> return 0;
>>> }
>>>
>>> +/* apply the output bitstream filters */
>>> +static int mux_packet_filter(Muxer *mux, OutputStream *ost,
>>> + AVPacket *pkt, int *stream_eof)
>>> +{
>>> + MuxStream *ms = ms_from_ost(ost);
>>> + const char *err_msg;
>>> + int ret = 0;
>>> +
>>> + if (ms->bsf_ctx) {
>>> + int bsf_eof = 0;
>>> +
>>> + if (pkt)
>>> + av_packet_rescale_ts(pkt, pkt->time_base, ms->bsf_ctx->time_base_in);
>>> +
>>> + ret = av_bsf_send_packet(ms->bsf_ctx, pkt);
>>> + if (ret < 0) {
>>
>> Unrelated to this patch, but this should probably include a comment
>> about the reason we're not checking for EAGAIN, like we do for
>> avcodec_send_packet().
>
> Isn't the situation pretty much the same here - seeing EAGAIN would be a
> bug?
Yes, and a similar comment here is a good idea as people may use
ffmpeg.c as a reference implementation for our APIs.
More information about the ffmpeg-devel
mailing list