[FFmpeg-devel] [PATCH 14/24] fftools/ffmpeg_mux: move bitstream filtering to the muxer thread

Anton Khirnov anton at khirnov.net
Thu Nov 9 13:41:05 EET 2023


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?

-- 
Anton Khirnov


More information about the ffmpeg-devel mailing list