Loading media/libmediaplayer2/MediaPlayer2Manager.cpp +33 −0 Original line number Diff line number Diff line Loading @@ -606,6 +606,39 @@ status_t MediaPlayer2Manager::Client::setDataSource( return status; } status_t MediaPlayer2Manager::Client::prepareNextDataSource( const sp<DataSourceDesc> &dsd) { sp<MediaPlayer2Interface> p = getPlayer(); if (p == NULL) { return NO_INIT; } if (dsd == NULL) { return BAD_VALUE; } status_t status = p->prepareNextDataSource(dsd); if (status != OK) { ALOGE("prepareNextDataSource error: %d", status); } return status; } status_t MediaPlayer2Manager::Client::playNextDataSource(int64_t srcId) { sp<MediaPlayer2Interface> p = getPlayer(); if (p == NULL) { return NO_INIT; } status_t status = p->playNextDataSource(srcId); if (status != OK) { ALOGE("playNextDataSource error: %d", status); } return status; } void MediaPlayer2Manager::Client::disconnectNativeWindow_l() { if (mConnectedWindow != NULL && mConnectedWindow->getANativeWindow() != NULL) { status_t err = native_window_api_disconnect( Loading media/libmediaplayer2/MediaPlayer2Manager.h +3 −1 Original line number Diff line number Diff line Loading @@ -274,7 +274,9 @@ private: virtual status_t getParameter(int key, Parcel *reply); virtual status_t setNextPlayer(const sp<MediaPlayer2Engine>& player); virtual status_t setDataSource(const sp<DataSourceDesc> &dsd); virtual status_t setDataSource(const sp<DataSourceDesc> &dsd) override; virtual status_t prepareNextDataSource(const sp<DataSourceDesc> &dsd) override; virtual status_t playNextDataSource(int64_t srcId) override; static void notify(const wp<MediaPlayer2Engine> &listener, int64_t srcId, int msg, int ext1, int ext2, const Parcel *obj); Loading media/libmediaplayer2/include/mediaplayer2/MediaPlayer2Engine.h +2 −0 Original line number Diff line number Diff line Loading @@ -48,6 +48,8 @@ public: virtual void disconnect() = 0; virtual status_t setDataSource(const sp<DataSourceDesc>& source) = 0; virtual status_t prepareNextDataSource(const sp<DataSourceDesc>& source) = 0; virtual status_t playNextDataSource(int64_t srcId) = 0; virtual status_t setVideoSurfaceTexture(const sp<ANativeWindowWrapper>& nww) = 0; virtual status_t getBufferingSettings( BufferingSettings* buffering /* nonnull */) = 0; Loading media/libmediaplayer2/include/mediaplayer2/MediaPlayer2Interface.h +5 −4 Original line number Diff line number Diff line Loading @@ -150,9 +150,11 @@ public: virtual void setAudioSink(const sp<AudioSink>& audioSink) { mAudioSink = audioSink; } virtual status_t setDataSource(const sp<DataSourceDesc>& /* dsd */) { return INVALID_OPERATION; } virtual status_t setDataSource(const sp<DataSourceDesc> &dsd) = 0; virtual status_t prepareNextDataSource(const sp<DataSourceDesc> &dsd) = 0; virtual status_t playNextDataSource(int64_t srcId) = 0; // pass the buffered native window to the media player service virtual status_t setVideoSurfaceTexture(const sp<ANativeWindowWrapper>& nww) = 0; Loading @@ -166,7 +168,6 @@ public: return OK; } virtual status_t prepare() = 0; virtual status_t prepareAsync() = 0; virtual status_t start() = 0; virtual status_t stop() = 0; Loading media/libmediaplayer2/include/mediaplayer2/mediaplayer2.h +20 −5 Original line number Diff line number Diff line Loading @@ -114,7 +114,24 @@ enum media2_info_type { // player, which just completed playback MEDIA2_INFO_STARTED_AS_NEXT = 2, // The player just pushed the very first video frame for rendering MEDIA2_INFO_RENDERING_START = 3, MEDIA2_INFO_VIDEO_RENDERING_START = 3, // The player just pushed the very first audio frame for rendering MEDIA2_INFO_AUDIO_RENDERING_START = 4, // The player just completed the playback of this data source MEDIA2_INFO_PLAYBACK_COMPLETE = 5, // The player just completed the playback of the full play list MEDIA2_INFO_PLAYLIST_END = 6, //1xx // The player just prepared a data source. MEDIA2_INFO_PREPARED = 100, // The player just completed a call play(). MEDIA2_INFO_COMPLETE_CALL_PLAY = 101, // The player just completed a call pause(). MEDIA2_INFO_COMPLETE_CALL_PAUSE = 102, // The player just completed a call seekTo. MEDIA2_INFO_COMPLETE_CALL_SEEK = 103, // 7xx // The video is too complex for the decoder: it can't decode frames fast // enough. Possibly only the audio plays fine at this stage. Loading Loading @@ -206,11 +223,12 @@ public: status_t getSrcId(int64_t *srcId); status_t setDataSource(const sp<DataSourceDesc> &dsd); status_t prepareNextDataSource(const sp<DataSourceDesc> &dsd); status_t playNextDataSource(int64_t srcId); status_t setVideoSurfaceTexture(const sp<ANativeWindowWrapper>& nww); status_t setListener(const sp<MediaPlayer2Listener>& listener); status_t getBufferingSettings(BufferingSettings* buffering /* nonnull */); status_t setBufferingSettings(const BufferingSettings& buffering); status_t prepare(); status_t prepareAsync(); status_t start(); status_t stop(); Loading Loading @@ -271,7 +289,6 @@ private: thread_id_t mLockThreadId; Mutex mLock; Mutex mNotifyLock; Condition mSignal; sp<MediaPlayer2Listener> mListener; void* mCookie; media_player2_states mCurrentState; Loading @@ -279,8 +296,6 @@ private: MediaPlayer2SeekMode mCurrentSeekMode; int mSeekPosition; MediaPlayer2SeekMode mSeekMode; bool mPrepareSync; status_t mPrepareStatus; audio_stream_type_t mStreamType; Parcel* mAudioAttributesParcel; bool mLoop; Loading Loading
media/libmediaplayer2/MediaPlayer2Manager.cpp +33 −0 Original line number Diff line number Diff line Loading @@ -606,6 +606,39 @@ status_t MediaPlayer2Manager::Client::setDataSource( return status; } status_t MediaPlayer2Manager::Client::prepareNextDataSource( const sp<DataSourceDesc> &dsd) { sp<MediaPlayer2Interface> p = getPlayer(); if (p == NULL) { return NO_INIT; } if (dsd == NULL) { return BAD_VALUE; } status_t status = p->prepareNextDataSource(dsd); if (status != OK) { ALOGE("prepareNextDataSource error: %d", status); } return status; } status_t MediaPlayer2Manager::Client::playNextDataSource(int64_t srcId) { sp<MediaPlayer2Interface> p = getPlayer(); if (p == NULL) { return NO_INIT; } status_t status = p->playNextDataSource(srcId); if (status != OK) { ALOGE("playNextDataSource error: %d", status); } return status; } void MediaPlayer2Manager::Client::disconnectNativeWindow_l() { if (mConnectedWindow != NULL && mConnectedWindow->getANativeWindow() != NULL) { status_t err = native_window_api_disconnect( Loading
media/libmediaplayer2/MediaPlayer2Manager.h +3 −1 Original line number Diff line number Diff line Loading @@ -274,7 +274,9 @@ private: virtual status_t getParameter(int key, Parcel *reply); virtual status_t setNextPlayer(const sp<MediaPlayer2Engine>& player); virtual status_t setDataSource(const sp<DataSourceDesc> &dsd); virtual status_t setDataSource(const sp<DataSourceDesc> &dsd) override; virtual status_t prepareNextDataSource(const sp<DataSourceDesc> &dsd) override; virtual status_t playNextDataSource(int64_t srcId) override; static void notify(const wp<MediaPlayer2Engine> &listener, int64_t srcId, int msg, int ext1, int ext2, const Parcel *obj); Loading
media/libmediaplayer2/include/mediaplayer2/MediaPlayer2Engine.h +2 −0 Original line number Diff line number Diff line Loading @@ -48,6 +48,8 @@ public: virtual void disconnect() = 0; virtual status_t setDataSource(const sp<DataSourceDesc>& source) = 0; virtual status_t prepareNextDataSource(const sp<DataSourceDesc>& source) = 0; virtual status_t playNextDataSource(int64_t srcId) = 0; virtual status_t setVideoSurfaceTexture(const sp<ANativeWindowWrapper>& nww) = 0; virtual status_t getBufferingSettings( BufferingSettings* buffering /* nonnull */) = 0; Loading
media/libmediaplayer2/include/mediaplayer2/MediaPlayer2Interface.h +5 −4 Original line number Diff line number Diff line Loading @@ -150,9 +150,11 @@ public: virtual void setAudioSink(const sp<AudioSink>& audioSink) { mAudioSink = audioSink; } virtual status_t setDataSource(const sp<DataSourceDesc>& /* dsd */) { return INVALID_OPERATION; } virtual status_t setDataSource(const sp<DataSourceDesc> &dsd) = 0; virtual status_t prepareNextDataSource(const sp<DataSourceDesc> &dsd) = 0; virtual status_t playNextDataSource(int64_t srcId) = 0; // pass the buffered native window to the media player service virtual status_t setVideoSurfaceTexture(const sp<ANativeWindowWrapper>& nww) = 0; Loading @@ -166,7 +168,6 @@ public: return OK; } virtual status_t prepare() = 0; virtual status_t prepareAsync() = 0; virtual status_t start() = 0; virtual status_t stop() = 0; Loading
media/libmediaplayer2/include/mediaplayer2/mediaplayer2.h +20 −5 Original line number Diff line number Diff line Loading @@ -114,7 +114,24 @@ enum media2_info_type { // player, which just completed playback MEDIA2_INFO_STARTED_AS_NEXT = 2, // The player just pushed the very first video frame for rendering MEDIA2_INFO_RENDERING_START = 3, MEDIA2_INFO_VIDEO_RENDERING_START = 3, // The player just pushed the very first audio frame for rendering MEDIA2_INFO_AUDIO_RENDERING_START = 4, // The player just completed the playback of this data source MEDIA2_INFO_PLAYBACK_COMPLETE = 5, // The player just completed the playback of the full play list MEDIA2_INFO_PLAYLIST_END = 6, //1xx // The player just prepared a data source. MEDIA2_INFO_PREPARED = 100, // The player just completed a call play(). MEDIA2_INFO_COMPLETE_CALL_PLAY = 101, // The player just completed a call pause(). MEDIA2_INFO_COMPLETE_CALL_PAUSE = 102, // The player just completed a call seekTo. MEDIA2_INFO_COMPLETE_CALL_SEEK = 103, // 7xx // The video is too complex for the decoder: it can't decode frames fast // enough. Possibly only the audio plays fine at this stage. Loading Loading @@ -206,11 +223,12 @@ public: status_t getSrcId(int64_t *srcId); status_t setDataSource(const sp<DataSourceDesc> &dsd); status_t prepareNextDataSource(const sp<DataSourceDesc> &dsd); status_t playNextDataSource(int64_t srcId); status_t setVideoSurfaceTexture(const sp<ANativeWindowWrapper>& nww); status_t setListener(const sp<MediaPlayer2Listener>& listener); status_t getBufferingSettings(BufferingSettings* buffering /* nonnull */); status_t setBufferingSettings(const BufferingSettings& buffering); status_t prepare(); status_t prepareAsync(); status_t start(); status_t stop(); Loading Loading @@ -271,7 +289,6 @@ private: thread_id_t mLockThreadId; Mutex mLock; Mutex mNotifyLock; Condition mSignal; sp<MediaPlayer2Listener> mListener; void* mCookie; media_player2_states mCurrentState; Loading @@ -279,8 +296,6 @@ private: MediaPlayer2SeekMode mCurrentSeekMode; int mSeekPosition; MediaPlayer2SeekMode mSeekMode; bool mPrepareSync; status_t mPrepareStatus; audio_stream_type_t mStreamType; Parcel* mAudioAttributesParcel; bool mLoop; Loading