From ab1bd84889273bc21efdabe5ff6f4633eb918a85 Mon Sep 17 00:00:00 2001 From: Andreas Huber Date: Thu, 30 Aug 2012 14:51:40 -0700 Subject: Only run the wifi display RTSP server on demand, and only on the wifi direct interface. Change-Id: I7d3c44cb79cd40e73499f2d7ccf35c69b628e6d7 --- media/libmediaplayerservice/MediaPlayerService.cpp | 14 ++++++++++---- media/libmediaplayerservice/MediaPlayerService.h | 2 +- media/libmediaplayerservice/RemoteDisplay.cpp | 6 ++---- media/libmediaplayerservice/RemoteDisplay.h | 2 +- 4 files changed, 14 insertions(+), 10 deletions(-) (limited to 'media/libmediaplayerservice') 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 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 decode(int fd, int64_t offset, int64_t length, uint32_t *pSampleRate, int* pNumChannels, audio_format_t* pFormat); virtual sp getOMX(); virtual sp makeCrypto(); - virtual status_t enableRemoteDisplay(bool enable); + virtual status_t enableRemoteDisplay(const char *iface); virtual status_t dump(int fd, const Vector& 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: -- cgit v1.1