diff options
author | Andreas Huber <andih@google.com> | 2012-08-30 14:51:40 -0700 |
---|---|---|
committer | Andreas Huber <andih@google.com> | 2012-08-30 14:51:40 -0700 |
commit | bcf09f8c995221e75c7cd328f25c7cc6d2b5f7c9 (patch) | |
tree | 12db95dcd0186648022458280b950cf4aa154849 /media/libmediaplayerservice | |
parent | 86b1961a8d61086ef8d5475182f2a3cf4392b42c (diff) | |
download | frameworks_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.cpp | 14 | ||||
-rw-r--r-- | media/libmediaplayerservice/MediaPlayerService.h | 2 | ||||
-rw-r--r-- | media/libmediaplayerservice/RemoteDisplay.cpp | 6 | ||||
-rw-r--r-- | media/libmediaplayerservice/RemoteDisplay.h | 2 |
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: |