James Almer: > Signed-off-by: James Almer <jamr...@gmail.com> > --- > libavfilter/vf_mcdeint.c | 13 +++++++++---- > 1 file changed, 9 insertions(+), 4 deletions(-) > > diff --git a/libavfilter/vf_mcdeint.c b/libavfilter/vf_mcdeint.c > index bc7b3230d3..26baf94adb 100644 > --- a/libavfilter/vf_mcdeint.c > +++ b/libavfilter/vf_mcdeint.c > @@ -74,6 +74,7 @@ typedef struct MCDeintContext { > int mode; ///< MCDeintMode > int parity; ///< MCDeintParity > int qp; > + AVPacket *pkt; > AVCodecContext *enc_ctx; > } MCDeintContext; > > @@ -112,6 +113,9 @@ static int config_props(AVFilterLink *inlink) > return AVERROR(EINVAL); > } > > + mcdeint->pkt = av_packet_alloc(); > + if (!mcdeint->pkt) > + return AVERROR(ENOMEM); > mcdeint->enc_ctx = avcodec_alloc_context3(enc); > if (!mcdeint->enc_ctx) > return AVERROR(ENOMEM); > @@ -154,6 +158,7 @@ static av_cold void uninit(AVFilterContext *ctx) > { > MCDeintContext *mcdeint = ctx->priv; > > + av_packet_free(&mcdeint->pkt); > avcodec_free_context(&mcdeint->enc_ctx); > } > > @@ -173,7 +178,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame > *inpic) > MCDeintContext *mcdeint = inlink->dst->priv; > AVFilterLink *outlink = inlink->dst->outputs[0]; > AVFrame *outpic, *frame_dec; > - AVPacket pkt = {0}; > + AVPacket *pkt = mcdeint->pkt; > int x, y, i, ret, got_frame = 0; > > outpic = ff_get_video_buffer(outlink, outlink->w, outlink->h); > @@ -184,9 +189,9 @@ static int filter_frame(AVFilterLink *inlink, AVFrame > *inpic) > av_frame_copy_props(outpic, inpic); > inpic->quality = mcdeint->qp * FF_QP2LAMBDA; > > - av_init_packet(&pkt); > + av_packet_unref(pkt);
Unnecessary: The packet is clean at the beginning, because it will always be uninitialized at the end. > > - ret = avcodec_encode_video2(mcdeint->enc_ctx, &pkt, inpic, &got_frame); > + ret = avcodec_encode_video2(mcdeint->enc_ctx, pkt, inpic, &got_frame); > if (ret < 0) > goto end; > > @@ -274,7 +279,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame > *inpic) > mcdeint->parity ^= 1; > > end: > - av_packet_unref(&pkt); > + av_packet_unref(pkt); > av_frame_free(&inpic); > if (ret < 0) { > av_frame_free(&outpic); > _______________________________________________ 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".