oggdemux: safety for failing to determine time length in push mode

If we can't find a valid granule near the end of the file, we
disable seeking. This guards against the whole file being then
read and never going to PLAYING.

https://bugzilla.gnome.org/show_bug.cgi?id=770314
This commit is contained in:
Vincent Penquerc'h 2016-08-26 11:30:16 +01:00
parent 6f856cb54d
commit 31438ef49b

View file

@ -1538,6 +1538,10 @@ gst_ogg_demux_seek_back_after_push_duration_check_unlock (GstOggDemux * ogg)
event = ogg->push_mode_seek_delayed_event;
ogg->push_mode_seek_delayed_event = NULL;
/* if we haven't learnt about the total time yet, disable seeking */
if (ogg->total_time == -1)
ogg->push_disable_seeking = TRUE;
ogg->push_state = PUSH_PLAYING;
/* If there is one, perform it. Otherwise, seek back at start to start