ffmpeg | branch: master | Ivan Uskov <ivan.us...@nablet.com> | Tue Jul 7 20:33:36 2015 +0300| [b409748bc4412fa2d8e642585c4e5ab8a4d136cb] | committer: Michael Niedermayer
libavcodec/qsvenc.c: fix incorrect loop condition. For example, the encoder may return MFX_WRN_INCOMPATIBLE_VIDEO_PARAM warning i.e. ret==5 old loop implementation will repeat several times until output buffer overflow. New implementation explicitly uses loop only for device busy case. Signed-off-by: Michael Niedermayer <michae...@gmx.at> > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=b409748bc4412fa2d8e642585c4e5ab8a4d136cb --- libavcodec/qsvenc.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/libavcodec/qsvenc.c b/libavcodec/qsvenc.c index dc8b5f2..0666624 100644 --- a/libavcodec/qsvenc.c +++ b/libavcodec/qsvenc.c @@ -399,9 +399,12 @@ int ff_qsv_encode(AVCodecContext *avctx, QSVEncContext *q, do { ret = MFXVideoENCODE_EncodeFrameAsync(q->session, NULL, surf, &bs, &sync); - if (ret == MFX_WRN_DEVICE_BUSY) + if (ret == MFX_WRN_DEVICE_BUSY) { av_usleep(1); - } while (ret > 0); + continue; + } + break; + } while ( 1 ); if (ret < 0) return (ret == MFX_ERR_MORE_DATA) ? 0 : ff_qsv_error(ret); _______________________________________________ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog