theora: Remove FIXME and return GST_CUSTOM_FLOW_DROP for header packet handling

This FIXME is easily fixed :)
This commit is contained in:
Jan Schmidt 2015-02-02 22:23:51 +11:00
parent c35e3e7c7d
commit 615118dea8

View file

@ -782,19 +782,15 @@ theora_dec_decode_buffer (GstTheoraDec * dec, GstBuffer * buf,
/* switch depending on packet type. A zero byte packet is always a data
* packet; we don't dereference it in that case. */
if (packet.bytes && packet.packet[0] & 0x80) {
/* header packets are not meant to be displayed - return FLOW_DROP */
if (dec->have_header) {
GST_WARNING_OBJECT (GST_OBJECT (dec), "Ignoring header");
GST_VIDEO_CODEC_FRAME_FLAG_SET (frame,
GST_VIDEO_CODEC_FRAME_FLAG_DECODE_ONLY);
result = GST_CUSTOM_FLOW_DROP;
goto done;
}
result = theora_handle_header_packet (dec, &packet);
/* header packets are not meant to be displayed */
/* FIXME : This is a temporary hack. The proper fix would be to
* not call _finish_frame() for these types of packets */
GST_VIDEO_CODEC_FRAME_FLAG_SET (frame,
GST_VIDEO_CODEC_FRAME_FLAG_DECODE_ONLY);
if ((result = theora_handle_header_packet (dec, &packet)) != GST_FLOW_OK)
goto done;
result = GST_CUSTOM_FLOW_DROP;
} else {
result = theora_handle_data_packet (dec, &packet, frame);
}