MediaPlayer2: uid is always valid.
Test: MediaPlayer2 plays
Bug: 63934228
Change-Id: I4c9fefe1cdb04f0f7fa82cf08f382c12f6bf5b0b
diff --git a/media/libmediaplayer2/MediaPlayer2Manager.cpp b/media/libmediaplayer2/MediaPlayer2Manager.cpp
index c642d89..b254456 100644
--- a/media/libmediaplayer2/MediaPlayer2Manager.cpp
+++ b/media/libmediaplayer2/MediaPlayer2Manager.cpp
@@ -512,7 +512,7 @@
}
bool MediaPlayer2Manager::Client::init() {
- sp<MediaPlayer2Interface> p = new NuPlayer2Driver(mPid);
+ sp<MediaPlayer2Interface> p = new NuPlayer2Driver(mPid, mUid);
status_t init_result = p->initCheck();
if (init_result != NO_ERROR) {
ALOGE("Failed to create player object, initCheck failed(%d)", init_result);
@@ -520,7 +520,6 @@
}
p->setNotifyCallback(this, notify);
- p->setUID(mUid);
mAudioDeviceUpdatedListener = new AudioDeviceUpdatedNotifier(p);
mAudioOutput = new AudioOutput(mAudioSessionId, mUid,
mPid, mAudioAttributes, mAudioDeviceUpdatedListener);
diff --git a/media/libmediaplayer2/include/mediaplayer2/MediaPlayer2Interface.h b/media/libmediaplayer2/include/mediaplayer2/MediaPlayer2Interface.h
index bee5175..1de4348 100644
--- a/media/libmediaplayer2/include/mediaplayer2/MediaPlayer2Interface.h
+++ b/media/libmediaplayer2/include/mediaplayer2/MediaPlayer2Interface.h
@@ -148,10 +148,6 @@
virtual ~MediaPlayer2Interface() { }
virtual status_t initCheck() = 0;
- virtual status_t setUID(uid_t /* uid */) {
- return INVALID_OPERATION;
- }
-
virtual void setAudioSink(const sp<AudioSink>& audioSink) { mAudioSink = audioSink; }
virtual status_t setDataSource(const sp<DataSourceDesc>& /* dsd */) {
diff --git a/media/libmediaplayer2/nuplayer2/GenericSource2.cpp b/media/libmediaplayer2/nuplayer2/GenericSource2.cpp
index 0351a76..4700660 100644
--- a/media/libmediaplayer2/nuplayer2/GenericSource2.cpp
+++ b/media/libmediaplayer2/nuplayer2/GenericSource2.cpp
@@ -54,7 +54,6 @@
NuPlayer2::GenericSource2::GenericSource2(
const sp<AMessage> ¬ify,
- bool uidValid,
uid_t uid,
const sp<MediaClock> &mediaClock)
: Source(notify),
@@ -73,7 +72,6 @@
mAudioIsVorbis(false),
mIsSecure(false),
mIsStreaming(false),
- mUIDValid(uidValid),
mUID(uid),
mMediaClock(mediaClock),
mFd(-1),
diff --git a/media/libmediaplayer2/nuplayer2/GenericSource2.h b/media/libmediaplayer2/nuplayer2/GenericSource2.h
index bc13eb7..1a5409a 100644
--- a/media/libmediaplayer2/nuplayer2/GenericSource2.h
+++ b/media/libmediaplayer2/nuplayer2/GenericSource2.h
@@ -43,7 +43,7 @@
struct NuPlayer2::GenericSource2 : public NuPlayer2::Source,
public MediaBufferObserver // Modular DRM
{
- GenericSource2(const sp<AMessage> ¬ify, bool uidValid, uid_t uid,
+ GenericSource2(const sp<AMessage> ¬ify, uid_t uid,
const sp<MediaClock> &mediaClock);
status_t setDataSource(
@@ -150,7 +150,6 @@
// Secure codec is required.
bool mIsSecure;
bool mIsStreaming;
- bool mUIDValid;
uid_t mUID;
const sp<MediaClock> mMediaClock;
sp<MediaHTTPService> mHTTPService;
diff --git a/media/libmediaplayer2/nuplayer2/NuPlayer2.cpp b/media/libmediaplayer2/nuplayer2/NuPlayer2.cpp
index 65e0957..00f49f5 100644
--- a/media/libmediaplayer2/nuplayer2/NuPlayer2.cpp
+++ b/media/libmediaplayer2/nuplayer2/NuPlayer2.cpp
@@ -208,9 +208,9 @@
////////////////////////////////////////////////////////////////////////////////
-NuPlayer2::NuPlayer2(pid_t pid, const sp<MediaClock> &mediaClock)
- : mUIDValid(false),
- mPID(pid),
+NuPlayer2::NuPlayer2(pid_t pid, uid_t uid, const sp<MediaClock> &mediaClock)
+ : mPID(pid),
+ mUID(uid),
mMediaClock(mediaClock),
mSourceFlags(0),
mOffloadAudio(false),
@@ -249,11 +249,6 @@
NuPlayer2::~NuPlayer2() {
}
-void NuPlayer2::setUID(uid_t uid) {
- mUIDValid = true;
- mUID = uid;
-}
-
void NuPlayer2::setDriver(const wp<NuPlayer2Driver> &driver) {
mDriver = driver;
}
@@ -295,7 +290,7 @@
mDataSourceType = DATA_SOURCE_TYPE_HTTP_LIVE;
} else if (!strncasecmp(url, "rtsp://", 7)) {
source = new RTSPSource2(
- notify, httpService, url, headers, mUIDValid, mUID);
+ notify, httpService, url, headers, mUID);
ALOGV("setDataSourceAsync RTSPSource2 %s", url);
mDataSourceType = DATA_SOURCE_TYPE_RTSP;
} else if ((!strncasecmp(url, "http://", 7)
@@ -303,14 +298,14 @@
&& ((len >= 4 && !strcasecmp(".sdp", &url[len - 4]))
|| strstr(url, ".sdp?"))) {
source = new RTSPSource2(
- notify, httpService, url, headers, mUIDValid, mUID, true);
+ notify, httpService, url, headers, mUID, true);
ALOGV("setDataSourceAsync RTSPSource2 http/https/.sdp %s", url);
mDataSourceType = DATA_SOURCE_TYPE_RTSP;
} else {
ALOGV("setDataSourceAsync GenericSource2 %s", url);
sp<GenericSource2> genericSource =
- new GenericSource2(notify, mUIDValid, mUID, mMediaClock);
+ new GenericSource2(notify, mUID, mMediaClock);
status_t err = genericSource->setDataSource(httpService, url, headers);
@@ -329,7 +324,7 @@
case DataSourceDesc::TYPE_FD:
{
sp<GenericSource2> genericSource =
- new GenericSource2(notify, mUIDValid, mUID, mMediaClock);
+ new GenericSource2(notify, mUID, mMediaClock);
ALOGV("setDataSourceAsync fd %d/%lld/%lld source: %p",
dsd->mFD, (long long)dsd->mFDOffset, (long long)dsd->mFDLength, source.get());
@@ -350,7 +345,7 @@
case DataSourceDesc::TYPE_CALLBACK:
{
sp<GenericSource2> genericSource =
- new GenericSource2(notify, mUIDValid, mUID, mMediaClock);
+ new GenericSource2(notify, mUID, mMediaClock);
status_t err = genericSource->setDataSource(dsd->mCallbackSource);
if (err != OK) {
diff --git a/media/libmediaplayer2/nuplayer2/NuPlayer2.h b/media/libmediaplayer2/nuplayer2/NuPlayer2.h
index 594525c..cdb9a4f 100644
--- a/media/libmediaplayer2/nuplayer2/NuPlayer2.h
+++ b/media/libmediaplayer2/nuplayer2/NuPlayer2.h
@@ -39,9 +39,7 @@
struct NuPlayer2Driver;
struct NuPlayer2 : public AHandler {
- explicit NuPlayer2(pid_t pid, const sp<MediaClock> &mediaClock);
-
- void setUID(uid_t uid);
+ explicit NuPlayer2(pid_t pid, uid_t uid, const sp<MediaClock> &mediaClock);
void setDriver(const wp<NuPlayer2Driver> &driver);
@@ -152,9 +150,8 @@
};
wp<NuPlayer2Driver> mDriver;
- bool mUIDValid;
- uid_t mUID;
pid_t mPID;
+ uid_t mUID;
const sp<MediaClock> mMediaClock;
Mutex mSourceLock; // guard |mSource|.
sp<Source> mSource;
diff --git a/media/libmediaplayer2/nuplayer2/NuPlayer2Driver.cpp b/media/libmediaplayer2/nuplayer2/NuPlayer2Driver.cpp
index 6137fd1..2a1e904 100644
--- a/media/libmediaplayer2/nuplayer2/NuPlayer2Driver.cpp
+++ b/media/libmediaplayer2/nuplayer2/NuPlayer2Driver.cpp
@@ -99,7 +99,7 @@
static const char *kPlayerRebufferingAtExit = "android.media.mediaplayer.rebufferExit";
-NuPlayer2Driver::NuPlayer2Driver(pid_t pid)
+NuPlayer2Driver::NuPlayer2Driver(pid_t pid, uid_t uid)
: mState(STATE_IDLE),
mIsAsyncPrepare(false),
mAsyncResult(UNKNOWN_ERROR),
@@ -114,10 +114,10 @@
mLooper(new ALooper),
mNuPlayer2Looper(new ALooper),
mMediaClock(new MediaClock),
- mPlayer(new NuPlayer2(pid, mMediaClock)),
+ mPlayer(new NuPlayer2(pid, uid, mMediaClock)),
mPlayerFlags(0),
mAnalyticsItem(NULL),
- mClientUid(-1),
+ mClientUid(uid),
mAtEOS(false),
mLooping(false),
mAutoLoop(false) {
@@ -129,6 +129,7 @@
// set up an analytics record
mAnalyticsItem = new MediaAnalyticsItem(kKeyPlayer);
+ mAnalyticsItem->setUid(mClientUid);
mNuPlayer2Looper->start(
false, /* runOnCallingThread */
@@ -165,16 +166,6 @@
return OK;
}
-status_t NuPlayer2Driver::setUID(uid_t uid) {
- mPlayer->setUID(uid);
- mClientUid = uid;
- if (mAnalyticsItem) {
- mAnalyticsItem->setUid(mClientUid);
- }
-
- return OK;
-}
-
status_t NuPlayer2Driver::setDataSource(const sp<DataSourceDesc> &dsd) {
ALOGV("setDataSource(%p) callback source", this);
Mutex::Autolock autoLock(mLock);
diff --git a/media/libmediaplayer2/nuplayer2/NuPlayer2Driver.h b/media/libmediaplayer2/nuplayer2/NuPlayer2Driver.h
index 7156813..087d2c2 100644
--- a/media/libmediaplayer2/nuplayer2/NuPlayer2Driver.h
+++ b/media/libmediaplayer2/nuplayer2/NuPlayer2Driver.h
@@ -26,12 +26,10 @@
struct NuPlayer2;
struct NuPlayer2Driver : public MediaPlayer2Interface {
- explicit NuPlayer2Driver(pid_t pid);
+ explicit NuPlayer2Driver(pid_t pid, uid_t uid);
virtual status_t initCheck();
- virtual status_t setUID(uid_t uid);
-
virtual status_t setDataSource(const sp<DataSourceDesc> &dsd) override;
virtual status_t setVideoSurfaceTexture(const sp<ANativeWindowWrapper> &nww);
diff --git a/media/libmediaplayer2/nuplayer2/RTSPSource2.cpp b/media/libmediaplayer2/nuplayer2/RTSPSource2.cpp
index 8b67ae5..1dfe383 100644
--- a/media/libmediaplayer2/nuplayer2/RTSPSource2.cpp
+++ b/media/libmediaplayer2/nuplayer2/RTSPSource2.cpp
@@ -43,13 +43,11 @@
const sp<MediaHTTPService> &httpService,
const char *url,
const KeyedVector<String8, String8> *headers,
- bool uidValid,
uid_t uid,
bool isSDP)
: Source(notify),
mHTTPService(httpService),
mURL(url),
- mUIDValid(uidValid),
mUID(uid),
mFlags(0),
mIsSDP(isSDP),
@@ -128,7 +126,7 @@
mSDPLoader->load(
mURL.c_str(), mExtraHeaders.isEmpty() ? NULL : &mExtraHeaders);
} else {
- mHandler = new MyHandler(mURL.c_str(), notify, mUIDValid, mUID);
+ mHandler = new MyHandler(mURL.c_str(), notify, true /* uidValid */, mUID);
mLooper->registerHandler(mHandler);
mHandler->connect();
@@ -793,7 +791,7 @@
} else {
sp<AMessage> notify = new AMessage(kWhatNotify, this);
- mHandler = new MyHandler(rtspUri.c_str(), notify, mUIDValid, mUID);
+ mHandler = new MyHandler(rtspUri.c_str(), notify, true /* uidValid */, mUID);
mLooper->registerHandler(mHandler);
mHandler->loadSDP(desc);
diff --git a/media/libmediaplayer2/nuplayer2/RTSPSource2.h b/media/libmediaplayer2/nuplayer2/RTSPSource2.h
index 739bd53..712c3e5 100644
--- a/media/libmediaplayer2/nuplayer2/RTSPSource2.h
+++ b/media/libmediaplayer2/nuplayer2/RTSPSource2.h
@@ -36,7 +36,6 @@
const sp<MediaHTTPService> &httpService,
const char *url,
const KeyedVector<String8, String8> *headers,
- bool uidValid = false,
uid_t uid = 0,
bool isSDP = false);
@@ -97,7 +96,6 @@
sp<MediaHTTPService> mHTTPService;
AString mURL;
KeyedVector<String8, String8> mExtraHeaders;
- bool mUIDValid;
uid_t mUID;
uint32_t mFlags;
bool mIsSDP;