[FFmpeg-devel] [PATCH] Make execute() and execute2() return FFMIN() of thread return codes

Tomas Härdin tjoppen at acc.umu.se
Tue Jun 21 10:51:55 EEST 2022


lör 2022-06-18 klockan 16:38 +0200 skrev Anton Khirnov:
> Quoting Tomas Härdin (2022-06-17 11:42:25)
> > fre 2022-06-17 klockan 01:38 +0200 skrev Michael Niedermayer:
> > > On Thu, Jun 16, 2022 at 11:04:01PM +0200, Tomas Härdin wrote:
> > > > tor 2022-06-16 klockan 20:27 +0200 skrev Michael Niedermayer:
> > > > > 
> > > > > >  
> > > > > >  void avpriv_slicethread_free(AVSliceThread **pctx)
> > > > > > @@ -236,8 +244,8 @@ void
> > > > > > avpriv_slicethread_free(AVSliceThread
> > > > > > **pctx)
> > > > > >  #else /* HAVE_PTHREADS || HAVE_W32THREADS ||
> > > > > > HAVE_OS32THREADS
> > > > > > */
> > > > > >  
> > > > > >  int avpriv_slicethread_create(AVSliceThread **pctx, void
> > > > > > *priv,
> > > > > > -                              void (*worker_func)(void
> > > > > > *priv,
> > > > > > int
> > > > > > jobnr, int threadnr, int nb_jobs, int nb_threads),
> > > > > > -                              void (*main_func)(void
> > > > > > *priv),
> > > > > > +                              int (*worker_func)(void
> > > > > > *priv,
> > > > > > int
> > > > > > jobnr, int threadnr, int nb_jobs, int nb_threads),
> > > > > > +                              int (*main_func)(void
> > > > > > *priv),
> > > > > >                                int nb_threads)
> > > > > >  {
> > > > > >      *pctx = NULL;
> > > > > 
> > > > > You forgot to update the fallback code when threads are
> > > > > disabled
> > > > 
> > > > Uhm, the existing code just abort()s if threads are disabled?
> > > > I'm
> > > > not
> > > > really sure if there anything that can or should be done there
> > > 
> > > Before your patches fate passes with --disable-pthreads
> > > afterwards it will fail during build because the function
> > > mismatches,
> > > the abort should not be reachable i hope
> > 
> > Updated patch attached
> > 
> > /Tomas
> > 
> > From e3729f70d016b8e5c9d1bdb6014506ddd8d4eb56 Mon Sep 17 00:00:00
> > 2001
> > From: =?UTF-8?q?Tomas=20H=C3=A4rdin?= <git at haerdin.se>
> > Date: Thu, 16 Jun 2022 12:16:44 +0200
> > Subject: [PATCH] Make execute() and execute2() return FFMIN() of
> > thread return
> >  codes
> > 
> > At the moment only fic.c actually checks return code of execute()
> > hence the change to its FATE reference
> 
> Wait, how does this follow?
> 

fic.c actually gets informed that one or more fic_decode_slice() jobs
failed and so it successfully fails on frames that don't decode
correctly

/Tomas



More information about the ffmpeg-devel mailing list