Loading media/libmediaplayerservice/nuplayer/NuPlayer.cpp +37 −1 Original line number Diff line number Diff line Loading @@ -202,7 +202,8 @@ NuPlayer::NuPlayer(pid_t pid) mPaused(false), mPausedByClient(true), mPausedForBuffering(false), mIsDrmProtected(false) { mIsDrmProtected(false), mDataSourceType(DATA_SOURCE_TYPE_NONE) { clearFlushComplete(); } Loading @@ -225,6 +226,7 @@ void NuPlayer::setDataSourceAsync(const sp<IStreamSource> &source) { msg->setObject("source", new StreamingSource(notify, source)); msg->post(); mDataSourceType = DATA_SOURCE_TYPE_STREAM; } static bool IsHTTPLiveURL(const char *url) { Loading Loading @@ -258,10 +260,12 @@ void NuPlayer::setDataSourceAsync( if (IsHTTPLiveURL(url)) { source = new HTTPLiveSource(notify, httpService, url, headers); ALOGV("setDataSourceAsync HTTPLiveSource %s", url); mDataSourceType = DATA_SOURCE_TYPE_HTTP_LIVE; } else if (!strncasecmp(url, "rtsp://", 7)) { source = new RTSPSource( notify, httpService, url, headers, mUIDValid, mUID); ALOGV("setDataSourceAsync RTSPSource %s", url); mDataSourceType = DATA_SOURCE_TYPE_RTSP; } else if ((!strncasecmp(url, "http://", 7) || !strncasecmp(url, "https://", 8)) && ((len >= 4 && !strcasecmp(".sdp", &url[len - 4])) Loading @@ -269,6 +273,7 @@ void NuPlayer::setDataSourceAsync( source = new RTSPSource( notify, httpService, url, headers, mUIDValid, mUID, true); ALOGV("setDataSourceAsync RTSPSource http/https/.sdp %s", url); mDataSourceType = DATA_SOURCE_TYPE_RTSP; } else { ALOGV("setDataSourceAsync GenericSource %s", url); Loading @@ -282,6 +287,9 @@ void NuPlayer::setDataSourceAsync( } else { ALOGE("Failed to set data source!"); } // regardless of success/failure mDataSourceType = DATA_SOURCE_TYPE_GENERIC_URL; } msg->setObject("source", source); msg->post(); Loading @@ -307,6 +315,7 @@ void NuPlayer::setDataSourceAsync(int fd, int64_t offset, int64_t length) { msg->setObject("source", source); msg->post(); mDataSourceType = DATA_SOURCE_TYPE_GENERIC_FD; } void NuPlayer::setDataSourceAsync(const sp<DataSource> &dataSource) { Loading @@ -323,6 +332,7 @@ void NuPlayer::setDataSourceAsync(const sp<DataSource> &dataSource) { msg->setObject("source", source); msg->post(); mDataSourceType = DATA_SOURCE_TYPE_MEDIA; } status_t NuPlayer::getDefaultBufferingSettings( Loading Loading @@ -2651,6 +2661,32 @@ void NuPlayer::sendTimedTextData(const sp<ABuffer> &buffer) { } } const char *NuPlayer::getDataSourceType() { switch (mDataSourceType) { case DATA_SOURCE_TYPE_HTTP_LIVE: return "HTTPLive"; case DATA_SOURCE_TYPE_RTSP: return "RTSP"; case DATA_SOURCE_TYPE_GENERIC_URL: return "GenURL"; case DATA_SOURCE_TYPE_GENERIC_FD: return "GenFD"; case DATA_SOURCE_TYPE_MEDIA: return "Media"; case DATA_SOURCE_TYPE_STREAM: return "Stream"; case DATA_SOURCE_TYPE_NONE: default: return "None"; } } // Modular DRM begin status_t NuPlayer::prepareDrm(const uint8_t uuid[16], const Vector<uint8_t> &drmSessionId) { Loading media/libmediaplayerservice/nuplayer/NuPlayer.h +14 −0 Original line number Diff line number Diff line Loading @@ -93,6 +93,8 @@ struct NuPlayer : public AHandler { status_t prepareDrm(const uint8_t uuid[16], const Vector<uint8_t> &drmSessionId); status_t releaseDrm(); const char *getDataSourceType(); protected: virtual ~NuPlayer(); Loading Loading @@ -236,6 +238,18 @@ private: sp<ICrypto> mCrypto; bool mIsDrmProtected; typedef enum { DATA_SOURCE_TYPE_NONE, DATA_SOURCE_TYPE_HTTP_LIVE, DATA_SOURCE_TYPE_RTSP, DATA_SOURCE_TYPE_GENERIC_URL, DATA_SOURCE_TYPE_GENERIC_FD, DATA_SOURCE_TYPE_MEDIA, DATA_SOURCE_TYPE_STREAM, } DATA_SOURCE_TYPE; std::atomic<DATA_SOURCE_TYPE> mDataSourceType; inline const sp<DecoderBase> &getDecoder(bool audio) { return audio ? mAudioDecoder : mVideoDecoder; } Loading media/libmediaplayerservice/nuplayer/NuPlayerDriver.cpp +3 −0 Original line number Diff line number Diff line Loading @@ -53,6 +53,7 @@ static const char *kPlayerDuration = "android.media.mediaplayer.durationMs"; static const char *kPlayerPlaying = "android.media.mediaplayer.playingMs"; static const char *kPlayerError = "android.media.mediaplayer.err"; static const char *kPlayerErrorCode = "android.media.mediaplayer.errcode"; static const char *kPlayerDataSourceType = "android.media.mediaplayer.dataSource"; NuPlayerDriver::NuPlayerDriver(pid_t pid) Loading Loading @@ -570,6 +571,8 @@ void NuPlayerDriver::updateMetrics(const char *where) { mAnalyticsItem->setInt64(kPlayerDuration, duration_ms); mAnalyticsItem->setInt64(kPlayerPlaying, (mPlayingTimeUs+500)/1000 ); mAnalyticsItem->setCString(kPlayerDataSourceType, mPlayer->getDataSourceType()); } Loading Loading
media/libmediaplayerservice/nuplayer/NuPlayer.cpp +37 −1 Original line number Diff line number Diff line Loading @@ -202,7 +202,8 @@ NuPlayer::NuPlayer(pid_t pid) mPaused(false), mPausedByClient(true), mPausedForBuffering(false), mIsDrmProtected(false) { mIsDrmProtected(false), mDataSourceType(DATA_SOURCE_TYPE_NONE) { clearFlushComplete(); } Loading @@ -225,6 +226,7 @@ void NuPlayer::setDataSourceAsync(const sp<IStreamSource> &source) { msg->setObject("source", new StreamingSource(notify, source)); msg->post(); mDataSourceType = DATA_SOURCE_TYPE_STREAM; } static bool IsHTTPLiveURL(const char *url) { Loading Loading @@ -258,10 +260,12 @@ void NuPlayer::setDataSourceAsync( if (IsHTTPLiveURL(url)) { source = new HTTPLiveSource(notify, httpService, url, headers); ALOGV("setDataSourceAsync HTTPLiveSource %s", url); mDataSourceType = DATA_SOURCE_TYPE_HTTP_LIVE; } else if (!strncasecmp(url, "rtsp://", 7)) { source = new RTSPSource( notify, httpService, url, headers, mUIDValid, mUID); ALOGV("setDataSourceAsync RTSPSource %s", url); mDataSourceType = DATA_SOURCE_TYPE_RTSP; } else if ((!strncasecmp(url, "http://", 7) || !strncasecmp(url, "https://", 8)) && ((len >= 4 && !strcasecmp(".sdp", &url[len - 4])) Loading @@ -269,6 +273,7 @@ void NuPlayer::setDataSourceAsync( source = new RTSPSource( notify, httpService, url, headers, mUIDValid, mUID, true); ALOGV("setDataSourceAsync RTSPSource http/https/.sdp %s", url); mDataSourceType = DATA_SOURCE_TYPE_RTSP; } else { ALOGV("setDataSourceAsync GenericSource %s", url); Loading @@ -282,6 +287,9 @@ void NuPlayer::setDataSourceAsync( } else { ALOGE("Failed to set data source!"); } // regardless of success/failure mDataSourceType = DATA_SOURCE_TYPE_GENERIC_URL; } msg->setObject("source", source); msg->post(); Loading @@ -307,6 +315,7 @@ void NuPlayer::setDataSourceAsync(int fd, int64_t offset, int64_t length) { msg->setObject("source", source); msg->post(); mDataSourceType = DATA_SOURCE_TYPE_GENERIC_FD; } void NuPlayer::setDataSourceAsync(const sp<DataSource> &dataSource) { Loading @@ -323,6 +332,7 @@ void NuPlayer::setDataSourceAsync(const sp<DataSource> &dataSource) { msg->setObject("source", source); msg->post(); mDataSourceType = DATA_SOURCE_TYPE_MEDIA; } status_t NuPlayer::getDefaultBufferingSettings( Loading Loading @@ -2651,6 +2661,32 @@ void NuPlayer::sendTimedTextData(const sp<ABuffer> &buffer) { } } const char *NuPlayer::getDataSourceType() { switch (mDataSourceType) { case DATA_SOURCE_TYPE_HTTP_LIVE: return "HTTPLive"; case DATA_SOURCE_TYPE_RTSP: return "RTSP"; case DATA_SOURCE_TYPE_GENERIC_URL: return "GenURL"; case DATA_SOURCE_TYPE_GENERIC_FD: return "GenFD"; case DATA_SOURCE_TYPE_MEDIA: return "Media"; case DATA_SOURCE_TYPE_STREAM: return "Stream"; case DATA_SOURCE_TYPE_NONE: default: return "None"; } } // Modular DRM begin status_t NuPlayer::prepareDrm(const uint8_t uuid[16], const Vector<uint8_t> &drmSessionId) { Loading
media/libmediaplayerservice/nuplayer/NuPlayer.h +14 −0 Original line number Diff line number Diff line Loading @@ -93,6 +93,8 @@ struct NuPlayer : public AHandler { status_t prepareDrm(const uint8_t uuid[16], const Vector<uint8_t> &drmSessionId); status_t releaseDrm(); const char *getDataSourceType(); protected: virtual ~NuPlayer(); Loading Loading @@ -236,6 +238,18 @@ private: sp<ICrypto> mCrypto; bool mIsDrmProtected; typedef enum { DATA_SOURCE_TYPE_NONE, DATA_SOURCE_TYPE_HTTP_LIVE, DATA_SOURCE_TYPE_RTSP, DATA_SOURCE_TYPE_GENERIC_URL, DATA_SOURCE_TYPE_GENERIC_FD, DATA_SOURCE_TYPE_MEDIA, DATA_SOURCE_TYPE_STREAM, } DATA_SOURCE_TYPE; std::atomic<DATA_SOURCE_TYPE> mDataSourceType; inline const sp<DecoderBase> &getDecoder(bool audio) { return audio ? mAudioDecoder : mVideoDecoder; } Loading
media/libmediaplayerservice/nuplayer/NuPlayerDriver.cpp +3 −0 Original line number Diff line number Diff line Loading @@ -53,6 +53,7 @@ static const char *kPlayerDuration = "android.media.mediaplayer.durationMs"; static const char *kPlayerPlaying = "android.media.mediaplayer.playingMs"; static const char *kPlayerError = "android.media.mediaplayer.err"; static const char *kPlayerErrorCode = "android.media.mediaplayer.errcode"; static const char *kPlayerDataSourceType = "android.media.mediaplayer.dataSource"; NuPlayerDriver::NuPlayerDriver(pid_t pid) Loading Loading @@ -570,6 +571,8 @@ void NuPlayerDriver::updateMetrics(const char *where) { mAnalyticsItem->setInt64(kPlayerDuration, duration_ms); mAnalyticsItem->setInt64(kPlayerPlaying, (mPlayingTimeUs+500)/1000 ); mAnalyticsItem->setCString(kPlayerDataSourceType, mPlayer->getDataSourceType()); } Loading