Merge lp:~lorn-potter/qtubuntu-media/add-buffering_changed into lp:qtubuntu-media

Proposed by Lorn Potter
Status: Merged
Approved by: Jim Hodapp
Approved revision: 113
Merged at revision: 109
Proposed branch: lp:~lorn-potter/qtubuntu-media/add-buffering_changed
Merge into: lp:qtubuntu-media
Diff against target: 182 lines (+36/-3)
8 files modified
debian/control (+1/-1)
src/aal/aalmediaplayercontrol.cpp (+1/-2)
src/aal/aalmediaplayerservice.cpp (+15/-0)
src/aal/aalmediaplayerservice.h (+5/-0)
tests/unit/player.cpp (+6/-0)
tests/unit/player.h (+1/-0)
tests/unit/player_mock.cpp (+6/-0)
tests/unit/player_mock.h (+1/-0)
To merge this branch: bzr merge lp:~lorn-potter/qtubuntu-media/add-buffering_changed
Reviewer Review Type Date Requested Status
Jim Hodapp (community) code Approve
Review via email: mp+296731@code.launchpad.net

Commit message

Add media buffering signal handling

Description of the change

Add media buffering signal handling

To post a comment you must log in.
Revision history for this message
Jim Hodapp (jhodapp) wrote :

Several comments inline below.

review: Needs Fixing (code)
110. By Lorn Potter

code review fixups

111. By Lorn Potter

fix unit test for buffering change

112. By Lorn Potter

Use DirectConnection for buffering signal

Revision history for this message
Jim Hodapp (jhodapp) wrote :

Just a couple of fixes left.

review: Needs Fixing
113. By Lorn Potter

change buffering test player to static const review

Revision history for this message
Jim Hodapp (jhodapp) wrote :

LGTM!

review: Approve (code)
114. By Lorn Potter

bump media-hub version requirements

115. By Lorn Potter

bump version requirements for media-hub

116. By Lorn Potter

media-hub requirements for 4.3.0

117. By Lorn Potter

bump media-hub required version

118. By Lorn Potter

drop specific build version from media-hub dependency

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'debian/control'
--- debian/control 2016-05-19 19:02:00 +0000
+++ debian/control 2016-07-11 01:04:24 +0000
@@ -9,7 +9,7 @@
9 libgl1-mesa-dev | libgl-dev,9 libgl1-mesa-dev | libgl-dev,
10 libgles2-mesa-dev,10 libgles2-mesa-dev,
11 libhybris-dev (>= 0.1.0+git20131207+e452e83-0ubuntu13),11 libhybris-dev (>= 0.1.0+git20131207+e452e83-0ubuntu13),
12 libmedia-hub-dev (>= 4.2.0),12 libmedia-hub-dev (>= 4.4.0),
13 libpulse-dev,13 libpulse-dev,
14 libqt5opengl5-dev,14 libqt5opengl5-dev,
15 libqtubuntu-media-signals-dev (>= 0.3+15.04.20150618.1-0ubuntu1),15 libqtubuntu-media-signals-dev (>= 0.3+15.04.20150618.1-0ubuntu1),
1616
=== modified file 'src/aal/aalmediaplayercontrol.cpp'
--- src/aal/aalmediaplayercontrol.cpp 2016-02-26 21:27:01 +0000
+++ src/aal/aalmediaplayercontrol.cpp 2016-07-11 01:04:24 +0000
@@ -146,8 +146,7 @@
146146
147int AalMediaPlayerControl::bufferStatus() const147int AalMediaPlayerControl::bufferStatus() const
148{148{
149 // Until we are playing network streams, there is no buffering necessary149 return m_service->bufferStatus();
150 return 100;
151}150}
152151
153bool AalMediaPlayerControl::isAudioAvailable() const152bool AalMediaPlayerControl::isAudioAvailable() const
154153
=== modified file 'src/aal/aalmediaplayerservice.cpp'
--- src/aal/aalmediaplayerservice.cpp 2016-05-02 14:10:04 +0000
+++ src/aal/aalmediaplayerservice.cpp 2016-07-11 01:04:24 +0000
@@ -70,6 +70,7 @@
70 m_playbackStatusChangedConnection(the_void.connect([](){})),70 m_playbackStatusChangedConnection(the_void.connect([](){})),
71 m_errorConnection(the_void.connect([](){})),71 m_errorConnection(the_void.connect([](){})),
72 m_endOfStreamConnection(the_void.connect([](){})),72 m_endOfStreamConnection(the_void.connect([](){})),
73 m_bufferingStatusChangedConnection(the_void.connect([](){})),
73 m_mediaPlayerControl(nullptr),74 m_mediaPlayerControl(nullptr),
74 m_videoOutput(nullptr),75 m_videoOutput(nullptr),
75 m_mediaPlaylistControl(nullptr),76 m_mediaPlaylistControl(nullptr),
@@ -79,6 +80,7 @@
79 m_firstPlayback(true),80 m_firstPlayback(true),
80 m_cachedDuration(0),81 m_cachedDuration(0),
81 m_mediaPlaylist(NULL),82 m_mediaPlaylist(NULL),
83 m_bufferPercent(0),
82 m_doReattachSession(false)84 m_doReattachSession(false)
83#ifdef MEASURE_PERFORMANCE85#ifdef MEASURE_PERFORMANCE
84 , m_lastFrameDecodeStart(0)86 , m_lastFrameDecodeStart(0)
@@ -102,6 +104,7 @@
102 m_playbackStatusChangedConnection(the_void.connect([](){})),104 m_playbackStatusChangedConnection(the_void.connect([](){})),
103 m_errorConnection(the_void.connect([](){})),105 m_errorConnection(the_void.connect([](){})),
104 m_endOfStreamConnection(the_void.connect([](){})),106 m_endOfStreamConnection(the_void.connect([](){})),
107 m_bufferingStatusChangedConnection(the_void.connect([](){})),
105 m_mediaPlayerControl(nullptr),108 m_mediaPlayerControl(nullptr),
106 m_videoOutput(nullptr),109 m_videoOutput(nullptr),
107 m_mediaPlaylistControl(nullptr),110 m_mediaPlaylistControl(nullptr),
@@ -111,6 +114,7 @@
111 m_firstPlayback(true),114 m_firstPlayback(true),
112 m_cachedDuration(0),115 m_cachedDuration(0),
113 m_mediaPlaylist(NULL),116 m_mediaPlaylist(NULL),
117 m_bufferPercent(0),
114 m_doReattachSession(false)118 m_doReattachSession(false)
115 #ifdef MEASURE_PERFORMANCE119 #ifdef MEASURE_PERFORMANCE
116 , m_lastFrameDecodeStart(0)120 , m_lastFrameDecodeStart(0)
@@ -176,6 +180,12 @@
176 QMetaObject::invokeMethod(this, "onPlaybackStatusChanged", Qt::QueuedConnection);180 QMetaObject::invokeMethod(this, "onPlaybackStatusChanged", Qt::QueuedConnection);
177 });181 });
178182
183 m_bufferingStatusChangedConnection = m_hubPlayerSession->buffering_changed().connect(
184 [this](int bufferingPercent) {
185 m_bufferPercent = bufferingPercent;
186 QMetaObject::invokeMethod(this, "onBufferingChanged", Qt::DirectConnection);
187 });
188
179 m_errorConnection = m_hubPlayerSession->error().connect(189 m_errorConnection = m_hubPlayerSession->error().connect(
180 std::bind(&AalMediaPlayerService::onError, this, _1));190 std::bind(&AalMediaPlayerService::onError, this, _1));
181}191}
@@ -772,6 +782,11 @@
772 }782 }
773}783}
774784
785void AalMediaPlayerService::onBufferingChanged()
786{
787 Q_EMIT m_mediaPlayerControl->bufferStatusChanged(m_bufferPercent);
788}
789
775void AalMediaPlayerService::updateClientSignals()790void AalMediaPlayerService::updateClientSignals()
776{791{
777 qDebug() << Q_FUNC_INFO;792 qDebug() << Q_FUNC_INFO;
778793
=== modified file 'src/aal/aalmediaplayerservice.h'
--- src/aal/aalmediaplayerservice.h 2016-03-28 15:54:06 +0000
+++ src/aal/aalmediaplayerservice.h 2016-07-11 01:04:24 +0000
@@ -103,6 +103,8 @@
103 * service object */103 * service object */
104 void setService(const std::shared_ptr<core::ubuntu::media::Service> &service);104 void setService(const std::shared_ptr<core::ubuntu::media::Service> &service);
105105
106 int bufferStatus() { return m_bufferPercent; }
107
106Q_SIGNALS:108Q_SIGNALS:
107 void serviceReady();109 void serviceReady();
108 void playbackComplete();110 void playbackComplete();
@@ -111,6 +113,7 @@
111public Q_SLOTS:113public Q_SLOTS:
112 void onPlaybackStatusChanged();114 void onPlaybackStatusChanged();
113 void onApplicationStateChanged(Qt::ApplicationState state);115 void onApplicationStateChanged(Qt::ApplicationState state);
116 void onBufferingChanged();
114117
115protected:118protected:
116 void constructNewPlayerService();119 void constructNewPlayerService();
@@ -145,6 +148,7 @@
145 core::Connection m_playbackStatusChangedConnection;148 core::Connection m_playbackStatusChangedConnection;
146 core::Connection m_errorConnection;149 core::Connection m_errorConnection;
147 core::Connection m_endOfStreamConnection;150 core::Connection m_endOfStreamConnection;
151 core::Connection m_bufferingStatusChangedConnection;
148152
149 AalMediaPlayerControl *m_mediaPlayerControl;153 AalMediaPlayerControl *m_mediaPlayerControl;
150 AalVideoRendererControl *m_videoOutput;154 AalVideoRendererControl *m_videoOutput;
@@ -159,6 +163,7 @@
159 const QMediaPlaylist* m_mediaPlaylist;163 const QMediaPlaylist* m_mediaPlaylist;
160164
161 core::ubuntu::media::Player::PlaybackStatus m_newStatus;165 core::ubuntu::media::Player::PlaybackStatus m_newStatus;
166 int m_bufferPercent;
162167
163 std::string m_sessionUuid;168 std::string m_sessionUuid;
164 bool m_doReattachSession;169 bool m_doReattachSession;
165170
=== modified file 'tests/unit/player.cpp'
--- tests/unit/player.cpp 2016-03-17 19:44:54 +0000
+++ tests/unit/player.cpp 2016-07-11 01:04:24 +0000
@@ -311,6 +311,12 @@
311 return ret;311 return ret;
312}312}
313313
314const core::Signal<int>& TestPlayer::buffering_changed() const
315{
316 static const core::Signal<int> dur;
317 return dur;
318}
319
314const std::shared_ptr<Service> Service::Client::instance()320const std::shared_ptr<Service> Service::Client::instance()
315{321{
316 return NULL;322 return NULL;
317323
=== modified file 'tests/unit/player.h'
--- tests/unit/player.h 2016-03-17 19:44:54 +0000
+++ tests/unit/player.h 2016-07-11 01:04:24 +0000
@@ -96,6 +96,7 @@
96 virtual const core::Signal<video::Dimensions>& video_dimension_changed() const;96 virtual const core::Signal<video::Dimensions>& video_dimension_changed() const;
97 /** Signals all errors and warnings (typically from GStreamer and below) */97 /** Signals all errors and warnings (typically from GStreamer and below) */
98 virtual const core::Signal<Error>& error() const;98 virtual const core::Signal<Error>& error() const;
99 virtual const core::Signal<int>& buffering_changed() const;
99100
100private:101private:
101 core::Property<int64_t> m_position;102 core::Property<int64_t> m_position;
102103
=== modified file 'tests/unit/player_mock.cpp'
--- tests/unit/player_mock.cpp 2015-06-08 19:16:35 +0000
+++ tests/unit/player_mock.cpp 2016-07-11 01:04:24 +0000
@@ -308,6 +308,12 @@
308 return ret;308 return ret;
309}309}
310310
311const core::Signal<int>& PlayerMock::buffering_changed() const
312{
313 static const core::Signal<int> dur;
314 return dur;
315}
316
311}317}
312}318}
313}319}
314320
=== modified file 'tests/unit/player_mock.h'
--- tests/unit/player_mock.h 2015-06-08 19:16:35 +0000
+++ tests/unit/player_mock.h 2016-07-11 01:04:24 +0000
@@ -92,6 +92,7 @@
92 virtual const core::Signal<core::ubuntu::media::video::Dimensions>& video_dimension_changed() const;92 virtual const core::Signal<core::ubuntu::media::video::Dimensions>& video_dimension_changed() const;
93 virtual const core::Signal<uint64_t>& duration_changed() const;93 virtual const core::Signal<uint64_t>& duration_changed() const;
94 virtual const core::Signal<Error>& error() const;94 virtual const core::Signal<Error>& error() const;
95 virtual const core::Signal<int>& buffering_changed() const;
9596
96private:97private:
97 core::Property<int64_t> m_position;98 core::Property<int64_t> m_position;

Subscribers

People subscribed via source and target branches