Loading include/media/MediaPlayerInterface.h +4 −4 Original line number Diff line number Diff line Loading @@ -150,16 +150,16 @@ public: virtual status_t setParameter(int key, const Parcel &request) = 0; virtual status_t getParameter(int key, Parcel *reply) = 0; // Right now, only the AAX TX player supports this functionality. For now, // provide default implementations which indicate a lack of support for this // functionality to make life easier for all of the other media player // maintainers out there. // default no-op implementation of optional extensions virtual status_t setRetransmitEndpoint(const struct sockaddr_in* endpoint) { return INVALID_OPERATION; } virtual status_t getRetransmitEndpoint(struct sockaddr_in* endpoint) { return INVALID_OPERATION; } virtual status_t setNextPlayer(const sp<MediaPlayerBase>& next) { return OK; } // Invoke a generic method on the player by using opaque parcels // for the request and reply. Loading media/libmediaplayerservice/MediaPlayerService.cpp +12 −5 Original line number Diff line number Diff line Loading @@ -922,14 +922,21 @@ status_t MediaPlayerService::Client::setNextPlayer(const sp<IMediaPlayer>& playe Mutex::Autolock l(mLock); sp<Client> c = static_cast<Client*>(player.get()); mNextClient = c; if (mAudioOutput != NULL && c != NULL) { if (c != NULL) { if (mAudioOutput != NULL) { mAudioOutput->setNextOutput(c->mAudioOutput); } else { } else if ((mPlayer != NULL) && !mPlayer->hardwareOutput()) { ALOGE("no current audio output"); } return OK; if ((mPlayer != NULL) && (mNextClient->getPlayer() != NULL)) { mPlayer->setNextPlayer(mNextClient->getPlayer()); } } return OK; } status_t MediaPlayerService::Client::seekTo(int msec) { Loading Loading
include/media/MediaPlayerInterface.h +4 −4 Original line number Diff line number Diff line Loading @@ -150,16 +150,16 @@ public: virtual status_t setParameter(int key, const Parcel &request) = 0; virtual status_t getParameter(int key, Parcel *reply) = 0; // Right now, only the AAX TX player supports this functionality. For now, // provide default implementations which indicate a lack of support for this // functionality to make life easier for all of the other media player // maintainers out there. // default no-op implementation of optional extensions virtual status_t setRetransmitEndpoint(const struct sockaddr_in* endpoint) { return INVALID_OPERATION; } virtual status_t getRetransmitEndpoint(struct sockaddr_in* endpoint) { return INVALID_OPERATION; } virtual status_t setNextPlayer(const sp<MediaPlayerBase>& next) { return OK; } // Invoke a generic method on the player by using opaque parcels // for the request and reply. Loading
media/libmediaplayerservice/MediaPlayerService.cpp +12 −5 Original line number Diff line number Diff line Loading @@ -922,14 +922,21 @@ status_t MediaPlayerService::Client::setNextPlayer(const sp<IMediaPlayer>& playe Mutex::Autolock l(mLock); sp<Client> c = static_cast<Client*>(player.get()); mNextClient = c; if (mAudioOutput != NULL && c != NULL) { if (c != NULL) { if (mAudioOutput != NULL) { mAudioOutput->setNextOutput(c->mAudioOutput); } else { } else if ((mPlayer != NULL) && !mPlayer->hardwareOutput()) { ALOGE("no current audio output"); } return OK; if ((mPlayer != NULL) && (mNextClient->getPlayer() != NULL)) { mPlayer->setNextPlayer(mNextClient->getPlayer()); } } return OK; } status_t MediaPlayerService::Client::seekTo(int msec) { Loading