[Webkit-unassigned] [Bug 35706] [GStreamer] Buffering logic is not correct, and does not work very well

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Mon Mar 8 09:56:00 PST 2010


https://bugs.webkit.org/show_bug.cgi?id=35706





--- Comment #5 from Philippe Normand <pnormand at igalia.com>  2010-03-08 09:56:00 PST ---
(In reply to comment #4)
> (In reply to comment #3)
> > (In reply to comment #0)
> > > The main problem is this:
> > > 
> > >         if (m_fillTimeoutId) {
> > >             m_networkState = MediaPlayer::Loading;
> > >             // Buffering has just started, we should now have enough
> > >             // data to restart playback if it was internally paused by
> > >             // GStreamer.
> > >             if (m_paused && !m_startedPlaying)
> > >                 gst_element_set_state(m_playBin, GST_STATE_PLAYING);
> > >         }
> > > 
> > > This pretty much guarantees that the pipeline is playing while buffering, which
> > > is not the behavior we want, nor what GStreamer expects.
> > 
> > This code is executed only in the case of on-disk buffering. I didn't know
> > youtube had enabled this, or is your extension setting the preload attribute on
> > the video?
> 
> Not really. It is executed for any buffering GStreamer decides to perform,
> which it does decide to perform for many videos, even without the preload
> attribute.

Err no, the fillTimer is started only if the buffering mode is
GST_BUFFERING_DOWNLOAD (see processBufferingStats) or did I miss some case?

> I am becoming pretty sure that our state tracking needs a complete
> rewrite, to be honest. 
> 
> And yeah, this patch of mine is not really correct =(.

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the webkit-unassigned mailing list