On Fri, 2021-03-12 at 10:44 +0800, wenbin.c...@intel.com wrote: > From: "Chen,Wenbin" <wenbin.c...@intel.com> > > MSDK vc1 and av1 sometimes output frame into the same suface, but > ffmpeg-qsv assume the surface will be used only once, so it will > unref the frame when it receives the output surface. Now change > it to unref frame according to queue count. > > Signed-off-by Wenbin Chen <wenbin.c...@intel.com> > --- > libavcodec/qsvdec.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/libavcodec/qsvdec.c b/libavcodec/qsvdec.c > index 5f2e641373..3abd7bd4a2 100644 > --- a/libavcodec/qsvdec.c > +++ b/libavcodec/qsvdec.c > @@ -513,7 +513,7 @@ static int qsv_decode(AVCodecContext *avctx, QSVContext > *q, > return AVERROR_BUG; > } > > - out_frame->queued = 1; > + out_frame->queued += 1; > av_fifo_generic_write(q->async_fifo, &out_frame, sizeof(out_frame), > NULL); > av_fifo_generic_write(q->async_fifo, > &sync, sizeof(sync), NULL); > } else { > @@ -526,7 +526,7 @@ static int qsv_decode(AVCodecContext *avctx, QSVContext > *q, > > av_fifo_generic_read(q->async_fifo, &out_frame, sizeof(out_frame), > NULL); > av_fifo_generic_read(q->async_fifo, > &sync, sizeof(sync), NULL); > - out_frame->queued = 0; > + out_frame->queued -= 1; > > if (avctx->pix_fmt != AV_PIX_FMT_QSV) { > do {
LGTM, thanks! _______________________________________________ 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".