mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-01-12 18:35:35 +00:00
oggdemux: fix wrong flowreturn handling
Oggdemux will currently try to pad alloc a buffer from the peer when it is reading the header files. This is a relic from the time where we had an internal parser and needs to be removed at some point in time. The problem is that when there is no peer pad yet (which is normal when collecting headers) we should still continue to parse all the packets of a page instead of erroring out on NOT_LINKED. Fixes #632167
This commit is contained in:
parent
6c14f6c970
commit
e0d683f3ed
1 changed files with 3 additions and 11 deletions
|
@ -993,8 +993,10 @@ gst_ogg_pad_stream_out (GstOggPad * pad, gint npackets)
|
|||
case 1:
|
||||
GST_LOG_OBJECT (ogg, "packetout gave packet of size %ld", packet.bytes);
|
||||
result = gst_ogg_pad_submit_packet (pad, &packet);
|
||||
/* not linked is not a problem, it's possible that we are still
|
||||
* collecting headers and that we don't have exposed the pads yet */
|
||||
if (result == GST_FLOW_NOT_LINKED)
|
||||
goto not_linked;
|
||||
break;
|
||||
else if (result <= GST_FLOW_UNEXPECTED)
|
||||
goto could_not_submit;
|
||||
break;
|
||||
|
@ -1013,16 +1015,6 @@ gst_ogg_pad_stream_out (GstOggPad * pad, gint npackets)
|
|||
return result;
|
||||
|
||||
/* ERRORS */
|
||||
not_linked:
|
||||
{
|
||||
GST_WARNING_OBJECT (ogg,
|
||||
"could not submit packet for stream %08lx, error: %d",
|
||||
pad->map.serialno, result);
|
||||
/* Not resetting the pad here because it might be linked
|
||||
* later and should work without problems then.
|
||||
*/
|
||||
return result;
|
||||
}
|
||||
could_not_submit:
|
||||
{
|
||||
GST_WARNING_OBJECT (ogg,
|
||||
|
|
Loading…
Reference in a new issue