kdesupport/phonon/xine
Peter Zhou
peterzhoulei at gmail.com
Mon Nov 24 14:28:17 CET 2008
We had a checking to avoid the fake buffering. So nothing is broken I
believe.
On Mon, Nov 24, 2008 at 9:23 PM, Seb Ruiz <ruiz at kde.org> wrote:
> Does anybody know if we have any workarounds in place that might be
> broken by this commit? Perhaps someone running phonon trunk could test
> that everything is still dandy.
>
> Cheers,
> Seb
>
>
> ---------- Forwarded message ----------
> From: Matthias Kretz <kretz at kde.org>
> Date: 2008/11/25
> Subject: kdesupport/phonon/xine
> To: kde-commits at kde.org
>
>
> SVN commit 888428 by mkretz:
>
> remove fake state change to BufferingState on play as it's not
> consistent and other backends don't do it either
>
> M +1 -35 mediaobject.cpp
> M +0 -5 mediaobject.h
>
>
> --- trunk/kdesupport/phonon/xine/mediaobject.cpp #888427:888428
> @@ -57,9 +57,7 @@
> m_stream(static_cast<XineStream
> *>(SourceNode::threadSafeObject().data())),
> m_currentTitle(1),
> m_transitionTime(0),
> - m_autoplayTitles(true),
> - m_fakingBuffering(false),
> - m_shouldFakeBufferingOnPlay(true)
> + m_autoplayTitles(true)
> {
> m_stream->setMediaObject(this);
> m_stream->useGaplessPlayback(true);
> @@ -192,10 +190,6 @@
> {
> debug() << Q_FUNC_INFO << green << "PLAY" << normal;
> m_stream->play();
> - if (m_shouldFakeBufferingOnPlay || m_state ==
> Phonon::StoppedState || m_state == Phonon::LoadingState || m_state ==
> Phonon::PausedState) {
> - m_shouldFakeBufferingOnPlay = false;
> - startToFakeBuffering();
> - }
> }
>
> void MediaObject::pause()
> @@ -226,40 +220,18 @@
> return m_stream->errorType();
> }
>
> -void MediaObject::startToFakeBuffering()
> -{
> - debug() << Q_FUNC_INFO << blue << "start faking" << normal;
> - m_fakingBuffering = true;
> - if (m_state == Phonon::BufferingState) {
> - return;
> - } else if (m_state == Phonon::PlayingState) {
> - // next time we reach StoppedState from LoadingState go right
> into BufferingState
> - return;
> - }
> -
> - debug() << Q_FUNC_INFO << "fake state change: reached
> BufferingState after " << m_state;
> -
> - Phonon::State oldstate = m_state;
> - m_state = Phonon::BufferingState;
> -
> - emit stateChanged(Phonon::BufferingState, oldstate);
> -}
> -
> void MediaObject::handleStateChange(Phonon::State newstate,
> Phonon::State oldstate)
> {
> if (m_state == newstate && m_state == BufferingState) {
> - m_fakingBuffering = false;
> debug() << Q_FUNC_INFO << blue << "end faking" << normal;
> // BufferingState -> BufferingState, nothing to do
> return;
> } else if (m_state != oldstate) {
> // m_state == oldstate always, except when faking buffering:
> - Q_ASSERT(m_fakingBuffering);
>
> // so we're faking BufferingState, then m_state must be in
> BufferingState
> Q_ASSERT(m_state == BufferingState);
> if (newstate == PlayingState || newstate == ErrorState) {
> - m_fakingBuffering = false;
> debug() << Q_FUNC_INFO << blue << "end faking" << normal;
> oldstate = m_state;
> } else {
> @@ -267,8 +239,6 @@
> // PlayingState or ErrorState
> return;
> }
> - } else if (oldstate == LoadingState && newstate == StoppedState
> && m_fakingBuffering) {
> - newstate = BufferingState;
> }
> m_state = newstate;
>
> @@ -355,7 +325,6 @@
> if (source.url().scheme() == QLatin1String("kbytestream")) {
> m_mediaSource = MediaSource();
> qWarning() << "do not ever use kbytestream:/ URLs with
> MediaObject!";
> - m_shouldFakeBufferingOnPlay = false;
> m_stream->setMrl(QByteArray());
> m_stream->setError(Phonon::NormalError, tr("Cannot open
> media data at
> '<i>%1</i>'").arg(source.url().toString(QUrl::RemovePassword)));
> return;
> @@ -365,7 +334,6 @@
> m_stream->gaplessSwitchTo(source.url());
> break;
> case HardSwitch:
> - m_shouldFakeBufferingOnPlay = true;
> m_stream->setUrl(source.url());
> break;
> }
> @@ -402,7 +370,6 @@
> m_stream->gaplessSwitchTo(mrl);
> break;
> case HardSwitch:
> - m_shouldFakeBufferingOnPlay = true;
> m_stream->setMrl(mrl);
> break;
> }
> @@ -418,7 +385,6 @@
> m_stream->gaplessSwitchTo(m_bytestream->mrl());
> break;
> case HardSwitch:
> - m_shouldFakeBufferingOnPlay = true;
> m_stream->setMrl(m_bytestream->mrl());
> break;
> }
> --- trunk/kdesupport/phonon/xine/mediaobject.h #888427:888428
> @@ -117,9 +117,6 @@
> void availableAnglesChanged(int);
> void angleChanged(int);
>
> - protected slots:
> - void startToFakeBuffering();
> -
> private slots:
> void handleStateChange(Phonon::State newstate, Phonon::State
> oldstate);
> void needNextUrl();
> @@ -149,8 +146,6 @@
> qint32 m_prefinishMark;
> qint32 m_transitionTime;
> bool m_autoplayTitles : 1;
> - bool m_fakingBuffering : 1;
> - bool m_shouldFakeBufferingOnPlay : 1;
> };
> }} //namespace Phonon::Xine
>
>
>
>
> --
> Seb Ruiz
>
> http://www.sebruiz.net/
> http://amarok.kde.org/
> _______________________________________________
> Amarok-devel mailing list
> Amarok-devel at kde.org
> https://mail.kde.org/mailman/listinfo/amarok-devel
>
--
Cheers,
Peter ZHOU
-------------------------------
http://www.peterzl.net/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.kde.org/pipermail/amarok-devel/attachments/20081124/719a1986/attachment.htm
More information about the Amarok-devel
mailing list