[FFmpeg-devel] [PATCH] pthread_frame: minor simplification to error handling

Alexander Strasser eclipse7 at gmx.net
Thu Mar 30 01:47:53 EEST 2017


On 2017-03-30 00:00 +0200, wm4 wrote:
> On Wed, 29 Mar 2017 22:25:48 +0200
> Alexander Strasser <eclipse7 at gmx.net> wrote:
> > > On Mon, 27 Mar 2017 14:28:17 +0200
> > > wm4 <nfxjfg at googlemail.com> wrote:
> > >   
> > > > Get rid of the "ret" variable, and always use err. Report the packet as
> > > > consumed if err is unset. This should be equivalent to the old code,
> > > > which obviously required err=0 for p->result>=0 (and otherwise,
> > > > p->result must have had the value err was last set to). The code block
> > > > added by commit 32a5b631267 is also not needed anymore, because the new
> > > > code strictly returns err if it's >=0.
> > > > ---
> > > > Not totally sure about this, but it seems to work out? I probably missed
> > > > something obvious.
> > > > ---
> > > >  libavcodec/pthread_frame.c | 19 +++++--------------
> > > >  1 file changed, 5 insertions(+), 14 deletions(-)
> > > > 
> > > > diff --git a/libavcodec/pthread_frame.c b/libavcodec/pthread_frame.c
> > > > index b618be0bf5..36e4a8affa 100644
> > > > --- a/libavcodec/pthread_frame.c
> > > > +++ b/libavcodec/pthread_frame.c
> > > > @@ -468,7 +468,7 @@ int ff_thread_decode_frame(AVCodecContext *avctx,
> > > >      FrameThreadContext *fctx = avctx->internal->thread_ctx;
> > > >      int finished = fctx->next_finished;
> > > >      PerThreadContext *p;
> > > > -    int err, ret = 0;
> > > > +    int err;  
> > 
> > Wouldn't it have been more readable to keep ret instead of err?
> 
> It actually always used "err" - ret was introduced by a recent commit.
> err also seemed to be used more often in the function.

Right, I had found that when looking at the history of the file.

But "err" was not used to hold a size at that time.


> > Assigning a size to err looks a bit strange. I am not insisting on changing
> > it now, just wanted to point this out.
> 
> Actually I think the packet size could be removed, and the utils.c code
> adjusted.

Sorry, I cannot judge that from what I know.


  Alexander


More information about the ffmpeg-devel mailing list