summaryrefslogtreecommitdiff
path: root/libavcodec/vp3.c
diff options
context:
space:
mode:
authorDavid Conrad <lessen42@gmail.com>2010-02-21 00:10:58 +0000
committerDavid Conrad <lessen42@gmail.com>2010-02-21 00:10:58 +0000
commita89264761f9e11854ba20084403d5c5da670d491 (patch)
tree3b4ed3e768f36010e3a2526ee0b556bfd6350c39 /libavcodec/vp3.c
parent855c720c8637b959e4b98e3ebb70ec8b60f18e2c (diff)
Handle Theora's continued runs in superblock coding.
This doesn't really matter yet since 4:2:0 1080p has only 3060 superblocks, but larger resolutions or 4:4:4 1080p could hit this case. Originally committed as revision 21930 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec/vp3.c')
-rw-r--r--libavcodec/vp3.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/libavcodec/vp3.c b/libavcodec/vp3.c
index 5f871bce92..18c6f24125 100644
--- a/libavcodec/vp3.c
+++ b/libavcodec/vp3.c
@@ -482,6 +482,9 @@ static int unpack_superblocks(Vp3DecodeContext *s, GetBitContext *gb)
if (bit)
num_partial_superblocks += current_run;
+ if (s->theora && current_run == MAXIMUM_LONG_BIT_RUN)
+ bit = get_bits1(gb);
+ else
bit ^= 1;
}
@@ -512,6 +515,9 @@ static int unpack_superblocks(Vp3DecodeContext *s, GetBitContext *gb)
}
superblocks_decoded += current_run;
+ if (s->theora && current_run == MAXIMUM_LONG_BIT_RUN)
+ bit = get_bits1(gb);
+ else
bit ^= 1;
}
}