| OLD | NEW |
| 1 diff -rpu -N orig/libavcodec/vorbis_dec.c ffmpeg-mt/libavcodec/vorbis_dec.c | 1 diff -wurp -N orig/libavcodec/vorbis_dec.c ffmpeg-mt/libavcodec/vorbis_dec.c |
| 2 --- orig/libavcodec/vorbis_dec.c» 2010-10-11 16:55:09 -0700 | 2 --- orig/libavcodec/vorbis_dec.c» 2010-11-04 08:07:57 -0700 |
| 3 +++ ffmpeg-mt/libavcodec/vorbis_dec.c» 2010-10-11 16:55:12 -0700 | 3 +++ ffmpeg-mt/libavcodec/vorbis_dec.c» 2010-11-04 08:08:01 -0700 |
| 4 @@ -974,6 +974,7 @@ static av_cold int vorbis_decode_init(AV | 4 @@ -974,6 +974,7 @@ static av_cold int vorbis_decode_init(AV |
| 5 } | 5 } |
| 6 | 6 |
| 7 init_get_bits(gb, header_start[0], header_len[0]*8); | 7 init_get_bits(gb, header_start[0], header_len[0]*8); |
| 8 + gb->buffer_enforcing=1; | 8 + gb->buffer_enforcing=1; |
| 9 hdr_type = get_bits(gb, 8); | 9 hdr_type = get_bits(gb, 8); |
| 10 if (hdr_type != 1) { | 10 if (hdr_type != 1) { |
| 11 av_log(avccontext, AV_LOG_ERROR, "First header is not the id header.\n"
); | 11 av_log(avccontext, AV_LOG_ERROR, "First header is not the id header.\n"
); |
| 12 @@ -986,6 +987,7 @@ static av_cold int vorbis_decode_init(AV | 12 @@ -986,6 +987,7 @@ static av_cold int vorbis_decode_init(AV |
| 13 } | 13 } |
| 14 | 14 |
| 15 init_get_bits(gb, header_start[2], header_len[2]*8); | 15 init_get_bits(gb, header_start[2], header_len[2]*8); |
| 16 + gb->buffer_enforcing=1; | 16 + gb->buffer_enforcing=1; |
| 17 hdr_type = get_bits(gb, 8); | 17 hdr_type = get_bits(gb, 8); |
| 18 if (hdr_type != 5) { | 18 if (hdr_type != 5) { |
| 19 av_log(avccontext, AV_LOG_ERROR, "Third header is not the setup header.
\n"); | 19 av_log(avccontext, AV_LOG_ERROR, "Third header is not the setup header.
\n"); |
| 20 @@ -1207,7 +1209,7 @@ static uint_fast8_t vorbis_floor1_decode | 20 @@ -1210,7 +1212,7 @@ static int vorbis_floor1_decode(vorbis_c |
| 21 adx = vf->list[high_neigh_offs].x - vf->list[low_neigh_offs].x; | 21 adx = vf->list[high_neigh_offs].x - vf->list[low_neigh_offs].x; |
| 22 ady = FFABS(dy); | 22 ady = FFABS(dy); |
| 23 err = ady * (vf->list[i].x - vf->list[low_neigh_offs].x); | 23 err = ady * (vf->list[i].x - vf->list[low_neigh_offs].x); |
| 24 - off = (int16_t)err / (int16_t)adx; | 24 - off = (int16_t)err / (int16_t)adx; |
| 25 + off = (int16_t)err / (int16_t)(adx?adx:1); | 25 + off = (int16_t)err / (int16_t)(adx?adx:1); |
| 26 if (dy < 0) { | 26 if (dy < 0) { |
| 27 predicted = floor1_Y_final[low_neigh_offs] - off; | 27 predicted = floor1_Y_final[low_neigh_offs] - off; |
| 28 } else { | 28 } else { |
| 29 @@ -1293,7 +1295,7 @@ static av_always_inline int vorbis_resid | 29 @@ -1296,7 +1298,7 @@ static av_always_inline int vorbis_resid |
| 30 uint_fast16_t j_times_ptns_to_read; | 30 uint_fast16_t j_times_ptns_to_read; |
| 31 | 31 |
| 32 voffset = vr->begin; | 32 voffset = vr->begin; |
| 33 - for (partition_count = 0; partition_count < ptns_to_read;) { // SPEC
error | 33 - for (partition_count = 0; partition_count < ptns_to_read;) { // SPEC
error |
| 34 + for(partition_count=0;partition_count<ptns_to_read && !(gb->buffer_exha
usted && gb->index > gb->size_in_bits);) { // SPEC error | 34 + for(partition_count=0;partition_count<ptns_to_read && !(gb->buffer_exha
usted && gb->index > gb->size_in_bits);) { // SPEC error |
| 35 if (!pass) { | 35 if (!pass) { |
| 36 uint_fast32_t inverse_class = ff_inverse[vr->classifications]; | 36 uint_fast32_t inverse_class = ff_inverse[vr->classifications]; |
| 37 for (j_times_ptns_to_read = 0, j = 0; j < ch_used; ++j) { | 37 for (j_times_ptns_to_read = 0, j = 0; j < ch_used; ++j) { |
| 38 @@ -1613,6 +1615,7 @@ static int vorbis_decode_frame(AVCodecCo | 38 @@ -1623,6 +1625,7 @@ static int vorbis_decode_frame(AVCodecCo |
| 39 AV_DEBUG("packet length %d \n", buf_size); | 39 AV_DEBUG("packet length %d \n", buf_size); |
| 40 | 40 |
| 41 init_get_bits(gb, buf, buf_size*8); | 41 init_get_bits(gb, buf, buf_size*8); |
| 42 + gb->buffer_enforcing=1; | 42 + gb->buffer_enforcing=1; |
| 43 | 43 |
| 44 len = vorbis_parse_audio_packet(vc); | 44 len = vorbis_parse_audio_packet(vc); |
| 45 | 45 |
| OLD | NEW |