summaryrefslogtreecommitdiff
path: root/libavcodec
diff options
context:
space:
mode:
authorJames Almer <jamrial@gmail.com>2017-03-31 17:14:10 -0300
committerJames Almer <jamrial@gmail.com>2017-03-31 17:16:39 -0300
commit4fe9d6964830f0eec94165da02c95cc2669fdfe1 (patch)
treea7980a8023a2e4f1e9d5d1994642be1496f68601 /libavcodec
parent1fb2c697d5d1cb9b25430390803cd4a24cbcf407 (diff)
parent0940b748bdba36c4894fc8ea6be631d821fdf578 (diff)
Merge commit '0940b748bdba36c4894fc8ea6be631d821fdf578'
* commit '0940b748bdba36c4894fc8ea6be631d821fdf578': qsvdec: Only warn about unconsumed data if it happens more than once Merged-by: James Almer <jamrial@gmail.com>
Diffstat (limited to 'libavcodec')
-rw-r--r--libavcodec/qsvdec.c6
-rw-r--r--libavcodec/qsvdec.h1
2 files changed, 6 insertions, 1 deletions
diff --git a/libavcodec/qsvdec.c b/libavcodec/qsvdec.c
index 5f6ea5ae6c..d6adcdc335 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 41fb71682c..4e86e4b7f8 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;