Commit 7fa5f999 authored by Reimar Döffinger's avatar Reimar Döffinger

Extend init_loop_filter to work for filter limit values up to 127 instead

of only up to 64. 127 is the maximum value allowed by the theora specification.

Originally committed as revision 19350 to svn://svn.ffmpeg.org/ffmpeg/trunk
parent ad921086
...@@ -517,23 +517,30 @@ static void init_dequantizer(Vp3DecodeContext *s, int qpi) ...@@ -517,23 +517,30 @@ static void init_dequantizer(Vp3DecodeContext *s, int qpi)
/* /*
* This function initializes the loop filter boundary limits if the frame's * This function initializes the loop filter boundary limits if the frame's
* quality index is different from the previous frame's. * quality index is different from the previous frame's.
*
* The filter_limit_values may not be larger than 127.
*/ */
static void init_loop_filter(Vp3DecodeContext *s) static void init_loop_filter(Vp3DecodeContext *s)
{ {
int *bounding_values= s->bounding_values_array+127; int *bounding_values= s->bounding_values_array+127;
int filter_limit; int filter_limit;
int x; int x;
int value;
filter_limit = s->filter_limit_values[s->qps[0]]; filter_limit = s->filter_limit_values[s->qps[0]];
/* set up the bounding values */ /* set up the bounding values */
memset(s->bounding_values_array, 0, 256 * sizeof(int)); memset(s->bounding_values_array, 0, 256 * sizeof(int));
for (x = 0; x < filter_limit; x++) { for (x = 0; x < filter_limit; x++) {
bounding_values[-x - filter_limit] = -filter_limit + x;
bounding_values[-x] = -x; bounding_values[-x] = -x;
bounding_values[x] = x; bounding_values[x] = x;
bounding_values[x + filter_limit] = filter_limit - x;
} }
for (x = value = filter_limit; x < 128 && value; x++, value--) {
bounding_values[ x] = value;
bounding_values[-x] = -value;
}
if (value)
bounding_values[128] = value;
bounding_values[129] = bounding_values[130] = filter_limit * 0x02020202; bounding_values[129] = bounding_values[130] = filter_limit * 0x02020202;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment