summaryrefslogtreecommitdiff
path: root/libavcodec/vp3.c
diff options
context:
space:
mode:
Diffstat (limited to 'libavcodec/vp3.c')
-rw-r--r--libavcodec/vp3.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/libavcodec/vp3.c b/libavcodec/vp3.c
index 9268d5e7af..e669332740 100644
--- a/libavcodec/vp3.c
+++ b/libavcodec/vp3.c
@@ -63,6 +63,11 @@ typedef struct Vp3Fragment {
#define SB_PARTIALLY_CODED 1
#define SB_FULLY_CODED 2
+// This is the maximum length of a single long bit run that can be encoded
+// for superblock coding or block qps. Theora special-cases this to read a
+// bit instead of flipping the current bit to allow for runs longer than 4129.
+#define MAXIMUM_LONG_BIT_RUN 4129
+
#define MODE_INTER_NO_MV 0
#define MODE_INTRA 1
#define MODE_INTER_PLUS_MV 2
@@ -920,7 +925,7 @@ static int unpack_block_qpis(Vp3DecodeContext *s, GetBitContext *gb)
}
}
- if (run_length == 4129)
+ if (run_length == MAXIMUM_LONG_BIT_RUN)
bit = get_bits1(gb);
else
bit ^= 1;