On Mon, 27 Mar 2017 14:28:17 +0200 wm4 <nfx...@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; > > /* release the async lock, permitting blocked hwaccel threads to > * go forward while we are in this function */ > @@ -496,7 +496,7 @@ int ff_thread_decode_frame(AVCodecContext *avctx, > if (fctx->delaying) { > *got_picture_ptr=0; > if (avpkt->size) { > - ret = avpkt->size; > + err = avpkt->size; > goto finish; > } > } > @@ -542,21 +542,12 @@ int ff_thread_decode_frame(AVCodecContext *avctx, > > fctx->next_finished = finished; > > - /* > - * When no frame was found while flushing, but an error occurred in > - * any thread, return it instead of 0. > - * Otherwise the error can get lost. > - */ > - if (!avpkt->size && !*got_picture_ptr) > - goto finish; > - > /* return the size of the consumed packet if no error occurred */ > - ret = (p->result >= 0) ? avpkt->size : p->result; > + if (err >= 0) > + err = avpkt->size; > finish: > async_lock(fctx); > - if (err < 0) > - return err; > - return ret; > + return err; > } > > void ff_thread_report_progress(ThreadFrame *f, int n, int field) Received a review by BBB on IRC yesterday. Pushed. _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel