summaryrefslogtreecommitdiffstats
path: root/media/libmediaplayerservice/nuplayer/RTSPSource.cpp
diff options
context:
space:
mode:
authorAndreas Huber <andih@google.com>2013-02-05 13:59:56 -0800
committerAndreas Huber <andih@google.com>2013-02-05 14:09:08 -0800
commit57cea553cb19235553463412db5ad04c99835411 (patch)
tree484c824ca8ae2961e3f461f43d7330c1174618cc /media/libmediaplayerservice/nuplayer/RTSPSource.cpp
parentec29a2bfb5364a5968b77559fd13821b827d173a (diff)
downloadframeworks_av-57cea553cb19235553463412db5ad04c99835411.zip
frameworks_av-57cea553cb19235553463412db5ad04c99835411.tar.gz
frameworks_av-57cea553cb19235553463412db5ad04c99835411.tar.bz2
Support for a "preparation" state that can take care of lengthy
operations in NuPlayer and its sources. Sources also can publish their flags now and the mediaplayer UI will be able to pick up on these. Change-Id: I4f2b7e5d105dcb4b6c9132cd0e8799efa0c6a14b
Diffstat (limited to 'media/libmediaplayerservice/nuplayer/RTSPSource.cpp')
-rw-r--r--media/libmediaplayerservice/nuplayer/RTSPSource.cpp22
1 files changed, 16 insertions, 6 deletions
diff --git a/media/libmediaplayerservice/nuplayer/RTSPSource.cpp b/media/libmediaplayerservice/nuplayer/RTSPSource.cpp
index 3035589..e4d72d9 100644
--- a/media/libmediaplayerservice/nuplayer/RTSPSource.cpp
+++ b/media/libmediaplayerservice/nuplayer/RTSPSource.cpp
@@ -65,7 +65,7 @@ NuPlayer::RTSPSource::~RTSPSource() {
mLooper->stop();
}
-void NuPlayer::RTSPSource::start() {
+void NuPlayer::RTSPSource::prepareAsync() {
if (mLooper == NULL) {
mLooper = new ALooper;
mLooper->setName("rtsp");
@@ -88,13 +88,27 @@ void NuPlayer::RTSPSource::start() {
(mFlags & kFlagIncognito) ? SDPLoader::kFlagIncognito : 0,
mUIDValid, mUID);
- mSDPLoader->load(mURL.c_str(), mExtraHeaders.isEmpty() ? NULL : &mExtraHeaders);
+ mSDPLoader->load(
+ mURL.c_str(), mExtraHeaders.isEmpty() ? NULL : &mExtraHeaders);
} else {
mHandler = new MyHandler(mURL.c_str(), notify, mUIDValid, mUID);
mLooper->registerHandler(mHandler);
mHandler->connect();
}
+
+ notifyVideoSizeChanged(0, 0);
+
+ notifyFlagsChanged(
+ FLAG_CAN_PAUSE
+ | FLAG_CAN_SEEK_BACKWARD
+ | FLAG_CAN_SEEK_FORWARD
+ | FLAG_CAN_SEEK);
+
+ notifyPrepared();
+}
+
+void NuPlayer::RTSPSource::start() {
}
void NuPlayer::RTSPSource::stop() {
@@ -225,10 +239,6 @@ void NuPlayer::RTSPSource::performSeek(int64_t seekTimeUs) {
mHandler->seek(seekTimeUs);
}
-uint32_t NuPlayer::RTSPSource::flags() const {
- return FLAG_SEEKABLE;
-}
-
void NuPlayer::RTSPSource::onMessageReceived(const sp<AMessage> &msg) {
if (msg->what() == kWhatDisconnect) {
uint32_t replyID;