mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-23 02:01:12 +00:00
theora: Remove FIXME and return GST_CUSTOM_FLOW_DROP for header packet handling
This FIXME is easily fixed :)
This commit is contained in:
parent
c35e3e7c7d
commit
615118dea8
1 changed files with 4 additions and 8 deletions
|
@ -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);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue