summaryrefslogtreecommitdiffstats
path: root/media/libmediaplayerservice
diff options
context:
space:
mode:
authorAndreas Huber <andih@google.com>2012-08-30 14:51:40 -0700
committerAndreas Huber <andih@google.com>2012-08-30 14:51:40 -0700
commitbcf09f8c995221e75c7cd328f25c7cc6d2b5f7c9 (patch)
tree12db95dcd0186648022458280b950cf4aa154849 /media/libmediaplayerservice
parent86b1961a8d61086ef8d5475182f2a3cf4392b42c (diff)
downloadframeworks_av-bcf09f8c995221e75c7cd328f25c7cc6d2b5f7c9.zip
frameworks_av-bcf09f8c995221e75c7cd328f25c7cc6d2b5f7c9.tar.gz
frameworks_av-bcf09f8c995221e75c7cd328f25c7cc6d2b5f7c9.tar.bz2
Only run the wifi display RTSP server on demand, and only on the wifi direct
interface. Change-Id: I7d3c44cb79cd40e73499f2d7ccf35c69b628e6d7
Diffstat (limited to 'media/libmediaplayerservice')
-rw-r--r--media/libmediaplayerservice/MediaPlayerService.cpp14
-rw-r--r--media/libmediaplayerservice/MediaPlayerService.h2
-rw-r--r--media/libmediaplayerservice/RemoteDisplay.cpp6
-rw-r--r--media/libmediaplayerservice/RemoteDisplay.h2
4 files changed, 14 insertions, 10 deletions
diff --git a/media/libmediaplayerservice/MediaPlayerService.cpp b/media/libmediaplayerservice/MediaPlayerService.cpp
index 5fe446f..166bae9 100644
--- a/media/libmediaplayerservice/MediaPlayerService.cpp
+++ b/media/libmediaplayerservice/MediaPlayerService.cpp
@@ -279,13 +279,17 @@ sp<ICrypto> MediaPlayerService::makeCrypto() {
return new Crypto;
}
-status_t MediaPlayerService::enableRemoteDisplay(bool enable) {
+status_t MediaPlayerService::enableRemoteDisplay(const char *iface) {
Mutex::Autolock autoLock(mLock);
- if (enable && mRemoteDisplay == NULL) {
+ if (iface != NULL) {
+ if (mRemoteDisplay != NULL) {
+ return INVALID_OPERATION;
+ }
+
mRemoteDisplay = new RemoteDisplay;
- status_t err = mRemoteDisplay->start();
+ status_t err = mRemoteDisplay->start(iface);
if (err != OK) {
mRemoteDisplay.clear();
@@ -293,7 +297,9 @@ status_t MediaPlayerService::enableRemoteDisplay(bool enable) {
}
return OK;
- } else if (!enable && mRemoteDisplay != NULL) {
+ }
+
+ if (mRemoteDisplay != NULL) {
mRemoteDisplay->stop();
mRemoteDisplay.clear();
}
diff --git a/media/libmediaplayerservice/MediaPlayerService.h b/media/libmediaplayerservice/MediaPlayerService.h
index 8fbc5d5..2577c58 100644
--- a/media/libmediaplayerservice/MediaPlayerService.h
+++ b/media/libmediaplayerservice/MediaPlayerService.h
@@ -248,7 +248,7 @@ public:
virtual sp<IMemory> decode(int fd, int64_t offset, int64_t length, uint32_t *pSampleRate, int* pNumChannels, audio_format_t* pFormat);
virtual sp<IOMX> getOMX();
virtual sp<ICrypto> makeCrypto();
- virtual status_t enableRemoteDisplay(bool enable);
+ virtual status_t enableRemoteDisplay(const char *iface);
virtual status_t dump(int fd, const Vector<String16>& args);
diff --git a/media/libmediaplayerservice/RemoteDisplay.cpp b/media/libmediaplayerservice/RemoteDisplay.cpp
index 855824a..49f7278 100644
--- a/media/libmediaplayerservice/RemoteDisplay.cpp
+++ b/media/libmediaplayerservice/RemoteDisplay.cpp
@@ -32,13 +32,11 @@ RemoteDisplay::RemoteDisplay()
RemoteDisplay::~RemoteDisplay() {
}
-status_t RemoteDisplay::start() {
+status_t RemoteDisplay::start(const char *iface) {
mNetSession->start();
mLooper->start();
- // XXX replace with 8554 for bcom dongle (it doesn't respect the
- // default port or the one advertised in the wfd IE).
- mSource->start(WifiDisplaySource::kWifiDisplayDefaultPort);
+ mSource->start(iface);
return OK;
}
diff --git a/media/libmediaplayerservice/RemoteDisplay.h b/media/libmediaplayerservice/RemoteDisplay.h
index 6b37afb..3607d06 100644
--- a/media/libmediaplayerservice/RemoteDisplay.h
+++ b/media/libmediaplayerservice/RemoteDisplay.h
@@ -31,7 +31,7 @@ struct WifiDisplaySource;
struct RemoteDisplay : public RefBase {
RemoteDisplay();
- status_t start();
+ status_t start(const char *iface);
status_t stop();
protected: