If the initial seek fails because the pad is
flushing, then return GST_FLOW_FLUSHING instead
of an error.
}
seek_failed:
{
- GST_ELEMENT_ERROR (ogg, STREAM, DEMUX, (NULL),
- ("failed to start demuxing ogg"));
- ret = GST_FLOW_ERROR;
+ gboolean flushing;
+
+ GST_OBJECT_LOCK (pad);
+ flushing = GST_PAD_IS_FLUSHING (pad);
+ GST_OBJECT_UNLOCK (pad);
+ if (flushing) {
+ ret = GST_FLOW_FLUSHING;
+ } else {
+ GST_ELEMENT_ERROR (ogg, STREAM, DEMUX, (NULL),
+ ("failed to start demuxing ogg"));
+ ret = GST_FLOW_ERROR;
+ }
goto pause;
}
pause: