On Sun, Feb 14, 2021 at 11:44 AM Anton Khirnov <an...@khirnov.net> wrote:
> Quoting Paul B Mahol (2021-02-14 11:41:20) > > On Sun, Feb 14, 2021 at 11:21 AM Anton Khirnov <an...@khirnov.net> > wrote: > > > > > Quoting Paul B Mahol (2021-02-11 22:58:33) > > > > Fixes #9017 > > > > > > > > Signed-off-by: Paul B Mahol <one...@gmail.com> > > > > --- > > > > libavcodec/pngdec.c | 4 ++-- > > > > 1 file changed, 2 insertions(+), 2 deletions(-) > > > > > > > > diff --git a/libavcodec/pngdec.c b/libavcodec/pngdec.c > > > > index 395b86bbe7..61642b7cbe 100644 > > > > --- a/libavcodec/pngdec.c > > > > +++ b/libavcodec/pngdec.c > > > > @@ -711,13 +711,13 @@ static int decode_idat_chunk(AVCodecContext > > > *avctx, PNGDecContext *s, > > > > s->bpp += byte_depth; > > > > } > > > > > > > > - if ((ret = ff_thread_get_buffer(avctx, &s->picture, > > > AV_GET_BUFFER_FLAG_REF)) < 0) > > > > - return ret; > > > > if (avctx->codec_id == AV_CODEC_ID_APNG && > s->last_dispose_op > > > != APNG_DISPOSE_OP_PREVIOUS) { > > > > ff_thread_release_buffer(avctx, &s->previous_picture); > > > > if ((ret = ff_thread_get_buffer(avctx, > > > &s->previous_picture, AV_GET_BUFFER_FLAG_REF)) < 0) > > > > return ret; > > > > } > > > > + if ((ret = ff_thread_get_buffer(avctx, &s->picture, > > > AV_GET_BUFFER_FLAG_REF)) < 0) > > > > + return ret; > > > > p->pict_type = AV_PICTURE_TYPE_I; > > > > p->key_frame = 1; > > > > p->interlaced_frame = !!s->interlace_type; > > > > -- > > > > 2.17.1 > > > > > > It's pretty non-obvious what the race is and how is it fixed by > > > reordering the calls. > > > > > > > Before patch hash of decoded output would differ with single threading > and > > multiple threads. > > Now it does not. > > That still does not explain where the bug is and why this specific > change is the right way to fix it. > Speedup gain is still there with multiple threads. And when using helgrind one of items was gone and no new items were introduced. > > -- > Anton Khirnov > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > To unsubscribe, visit link above, or email > ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe". _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".