[FFmpeg-cvslog] Merge commit '0940b748bdba36c4894fc8ea6be631d821fdf578'

James Almer git at videolan.org
Fri Mar 31 23:27:24 EEST 2017


ffmpeg | branch: master | James Almer <jamrial at gmail.com> | Fri Mar 31 17:14:10 2017 -0300| [4fe9d6964830f0eec94165da02c95cc2669fdfe1] | committer: James Almer

Merge commit '0940b748bdba36c4894fc8ea6be631d821fdf578'

* commit '0940b748bdba36c4894fc8ea6be631d821fdf578':
  qsvdec: Only warn about unconsumed data if it happens more than once

Merged-by: James Almer <jamrial at gmail.com>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=4fe9d6964830f0eec94165da02c95cc2669fdfe1
---

 libavcodec/qsvdec.c | 6 +++++-
 libavcodec/qsvdec.h | 1 +
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/libavcodec/qsvdec.c b/libavcodec/qsvdec.c
index 5f6ea5a..d6adcdc 100644
--- a/libavcodec/qsvdec.c
+++ b/libavcodec/qsvdec.c
@@ -330,8 +330,12 @@ static int qsv_decode(AVCodecContext *avctx, QSVContext *q,
     /* make sure we do not enter an infinite loop if the SDK
      * did not consume any data and did not return anything */
     if (!*sync && !bs.DataOffset) {
-        ff_qsv_print_warning(avctx, ret, "A decode call did not consume any data");
         bs.DataOffset = avpkt->size;
+        ++q->zero_consume_run;
+        if (q->zero_consume_run > 1)
+            ff_qsv_print_warning(avctx, ret, "A decode call did not consume any data");
+    } else {
+        q->zero_consume_run = 0;
     }
 
     if (*sync) {
diff --git a/libavcodec/qsvdec.h b/libavcodec/qsvdec.h
index 41fb716..4e86e4b 100644
--- a/libavcodec/qsvdec.h
+++ b/libavcodec/qsvdec.h
@@ -51,6 +51,7 @@ typedef struct QSVContext {
     QSVFrame *work_frames;
 
     AVFifoBuffer *async_fifo;
+    int zero_consume_run;
 
     // the internal parser and codec context for parsing the data
     AVCodecParserContext *parser;


======================================================================




More information about the ffmpeg-cvslog mailing list