Ping for this patch. -Yu Yang > 2021年12月15日 上午10:17,Yu Yang <young_chel...@163.com> 写道: > > From: Yu Yang <yuyan...@kuaishou.com> > > '*src' and '*avctx' point to the same memory. It is enough to keep one of > them. > > Signed-off-by: Yu Yang <yuyan...@kuaishou.com> > --- > libavcodec/pthread_frame.c | 13 ++++++------- > 1 file changed, 6 insertions(+), 7 deletions(-) > > diff --git a/libavcodec/pthread_frame.c b/libavcodec/pthread_frame.c > index 73b1b7d7d9..98f88f7732 100644 > --- a/libavcodec/pthread_frame.c > +++ b/libavcodec/pthread_frame.c > @@ -765,14 +765,14 @@ void ff_frame_thread_free(AVCodecContext *avctx, int > thread_count) > > static av_cold int init_thread(PerThreadContext *p, int *threads_to_free, > FrameThreadContext *fctx, AVCodecContext > *avctx, > - AVCodecContext *src, const AVCodec *codec, > int first) > + const AVCodec *codec, int first) > { > AVCodecContext *copy; > int err; > > atomic_init(&p->state, STATE_INPUT_READY); > > - copy = av_memdup(src, sizeof(*src)); > + copy = av_memdup(avctx, sizeof(*avctx)); > if (!copy) > return AVERROR(ENOMEM); > copy->priv_data = NULL; > @@ -784,7 +784,7 @@ static av_cold int init_thread(PerThreadContext *p, int > *threads_to_free, > p->parent = fctx; > p->avctx = copy; > > - copy->internal = av_memdup(src->internal, sizeof(*src->internal)); > + copy->internal = av_memdup(avctx->internal, sizeof(*avctx->internal)); > if (!copy->internal) > return AVERROR(ENOMEM); > copy->internal->thread_ctx = p; > @@ -798,7 +798,7 @@ static av_cold int init_thread(PerThreadContext *p, int > *threads_to_free, > > if (codec->priv_class) { > *(const AVClass **)copy->priv_data = codec->priv_class; > - err = av_opt_copy(copy->priv_data, src->priv_data); > + err = av_opt_copy(copy->priv_data, avctx->priv_data); > if (err < 0) > return err; > } > @@ -843,7 +843,6 @@ int ff_frame_thread_init(AVCodecContext *avctx) > { > int thread_count = avctx->thread_count; > const AVCodec *codec = avctx->codec; > - AVCodecContext *src = avctx; > FrameThreadContext *fctx; > int err, i = 0; > > @@ -876,7 +875,7 @@ int ff_frame_thread_init(AVCodecContext *avctx) > fctx->delaying = 1; > > if (codec->type == AVMEDIA_TYPE_VIDEO) > - avctx->delay = src->thread_count - 1; > + avctx->delay = avctx->thread_count - 1; > > fctx->threads = av_calloc(thread_count, sizeof(*fctx->threads)); > if (!fctx->threads) { > @@ -888,7 +887,7 @@ int ff_frame_thread_init(AVCodecContext *avctx) > PerThreadContext *p = &fctx->threads[i]; > int first = !i; > > - err = init_thread(p, &i, fctx, avctx, src, codec, first); > + err = init_thread(p, &i, fctx, avctx, codec, first); > if (err < 0) > goto error; > } > -- > 2.33.1 > > _______________________________________________ > 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".