RESOLVED FIXED 30002
[GStreamer] MediaPlayerPrivate::cancelLoad() can be implemented by setting state to NULL
https://bugs.webkit.org/show_bug.cgi?id=30002
Summary [GStreamer] MediaPlayerPrivate::cancelLoad() can be implemented by setting st...
Sebastian Dröge (slomo)
Reported 2009-10-02 01:41:45 PDT
Hi, MediaPlayerPrivate::cancelLoad() can be implemented by setting the state of playbin2 to NULL. This can be called at any time and will stop everything.
Attachments
proposed patch (1.57 KB, patch)
2009-10-14 07:22 PDT, Philippe Normand
no flags
Philippe Normand
Comment 1 2009-10-14 07:22:10 PDT
Created attachment 41160 [details] proposed patch
Gustavo Noronha (kov)
Comment 2 2009-10-15 06:14:09 PDT
Comment on attachment 41160 [details] proposed patch > void MediaPlayerPrivate::cancelLoad() > { > - notImplemented(); > + if (m_networkState < MediaPlayer::Loading || m_networkState == MediaPlayer::Loaded) > + return; > + > + if (m_playBin) > + gst_element_set_state(m_playBin, GST_STATE_NULL); > } Both Mac and Win call updateStates() here after doing their media library magics; do you know if there is a reason why we don't need it?
Philippe Normand
Comment 3 2009-10-15 06:42:19 PDT
(In reply to comment #2) > (From update of attachment 41160 [details]) > > void MediaPlayerPrivate::cancelLoad() > > { > > - notImplemented(); > > + if (m_networkState < MediaPlayer::Loading || m_networkState == MediaPlayer::Loaded) > > + return; > > + > > + if (m_playBin) > > + gst_element_set_state(m_playBin, GST_STATE_NULL); > > } > > Both Mac and Win call updateStates() here after doing their media library > magics; do you know if there is a reason why we don't need it? Hmm right. updateStates() is called when we receive the STATE_CHANGE message but we don't handle STATE_NULL there. Will send a new patch, thanks for spotting that ;)
Gustavo Noronha (kov)
Comment 4 2009-10-15 07:15:12 PDT
Comment on attachment 41160 [details] proposed patch > void MediaPlayerPrivate::cancelLoad() > { > - notImplemented(); > + if (m_networkState < MediaPlayer::Loading || m_networkState == MediaPlayer::Loaded) > + return; > + > + if (m_playBin) > + gst_element_set_state(m_playBin, GST_STATE_NULL); > } According to further investigation by Philippe, updateStates is always called on element state transitions, so it is being done here.
WebKit Commit Bot
Comment 5 2009-10-15 07:32:00 PDT
Comment on attachment 41160 [details] proposed patch Clearing flags on attachment: 41160 Committed r49624: <http://trac.webkit.org/changeset/49624>
WebKit Commit Bot
Comment 6 2009-10-15 07:32:03 PDT
All reviewed patches have been landed. Closing bug.
Note You need to log in before you can comment on or make changes to this bug.