vorbisdec: Check that the x values of floor1 are unique.

This is required by the spec and fixes video-1frag.ogg.48.ogg. (FPE)

Based on the debuging work of Oana Stratulat and ubitux.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
release/0.10
Michael Niedermayer 13 years ago
parent fa169d5650
commit ebc9ff8e7d
  1. 8
      libavcodec/vorbisdec.c

@ -579,6 +579,14 @@ static int vorbis_parse_setup_hdr_floors(vorbis_context *vc)
// Precalculate order of x coordinates - needed for decode
ff_vorbis_ready_floor1_list(floor_setup->data.t1.list, floor_setup->data.t1.x_list_dim);
for (j=1; j<floor_setup->data.t1.x_list_dim; j++) {
if ( floor_setup->data.t1.list[ floor_setup->data.t1.list[j-1].sort ].x
== floor_setup->data.t1.list[ floor_setup->data.t1.list[j ].sort ].x) {
av_log(vc->avccontext, AV_LOG_ERROR, "Non unique x values in floor type 1\n");
return AVERROR_INVALIDDATA;
}
}
} else if (floor_setup->floor_type == 0) {
unsigned max_codebook_dim = 0;

Loading…
Cancel
Save