On Fri, 2021-03-12 at 06:21 +0000, Xiang, Haihao wrote: > 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!
Applied, thx! -Haihao _______________________________________________ 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".