summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBradley Sepos <[email protected]>2017-08-18 09:47:54 -0400
committerBradley Sepos <[email protected]>2017-08-18 09:47:59 -0400
commitb3b26dfbd1e0ad6d24e7ff823fbd45eb1ffb2428 (patch)
treeb57b215ff5e3388203e112a0bab6d980cad5ad3c
parentd375071be1158deb73ccb1d262310f15f231eca9 (diff)
contrib: Fix Libav H.264 decoder pixelation in scenes with solid colors.
Fixes #787.
-rw-r--r--contrib/ffmpeg/A21-h264-reflist.patch31
1 files changed, 31 insertions, 0 deletions
diff --git a/contrib/ffmpeg/A21-h264-reflist.patch b/contrib/ffmpeg/A21-h264-reflist.patch
new file mode 100644
index 000000000..8c7a51d5f
--- /dev/null
+++ b/contrib/ffmpeg/A21-h264-reflist.patch
@@ -0,0 +1,31 @@
+From 67d5f1023e4299a5f2741e2523e559d892f1bb56 Mon Sep 17 00:00:00 2001
+From: Anton Khirnov <[email protected]>
+Date: Thu, 17 Aug 2017 12:15:58 +0200
+Subject: [PATCH] h264dec: use a large enough field for reference list
+ modification values
+
+pic_num can be at most 17-bit, so uint8_t is not sufficient.
+
+Found-By: Bradley Sepos <[email protected]>
+(cherry picked from commit f70f71d60c7ae88c19078a48dc6e0789b78c7300)
+Signed-off-by: Anton Khirnov <[email protected]>
+---
+ libavcodec/h264dec.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/libavcodec/h264dec.h b/libavcodec/h264dec.h
+index d27f98b..b815aa4 100644
+--- a/libavcodec/h264dec.h
++++ b/libavcodec/h264dec.h
+@@ -268,7 +268,7 @@ typedef struct H264SliceContext {
+ * according to picture reordering in slice header */
+ struct {
+ uint8_t op;
+- uint8_t val;
++ uint32_t val;
+ } ref_modifications[2][32];
+ int nb_ref_modifications[2];
+
+--
+2.1.4