codecparser: vp8: Fix range decoder init

According to the vp8 spec, the first partition (size can be derived from
the frame header) should have all compressed header information and we
implemented gst codecparser based on that. But it doesn't seem to be the
case with some of the streams (#792773) and libvpx
works fine because it uses the whole frame size (not the first partition
size) to initialize the bool decoder.

https://bugzilla.gnome.org/show_bug.cgi?id=792773
This commit is contained in:
Sreerenj Balachandran 2018-01-30 11:34:58 -09:00
parent a7c207630c
commit cedc7d4def

View file

@ -548,7 +548,7 @@ gst_vp8_parser_parse_frame_header (GstVp8Parser * parser,
data += frame_hdr->data_chunk_size; data += frame_hdr->data_chunk_size;
size -= frame_hdr->data_chunk_size; size -= frame_hdr->data_chunk_size;
if (!gst_vp8_range_decoder_init (&rd, data, frame_hdr->first_part_size)) if (!gst_vp8_range_decoder_init (&rd, data, size))
return GST_VP8_PARSER_BROKEN_DATA; return GST_VP8_PARSER_BROKEN_DATA;
result = parse_frame_header (parser, &rd, frame_hdr); result = parse_frame_header (parser, &rd, frame_hdr);