Loading media/libmediaplayer2/include/mediaplayer2/MediaPlayer2Types.h +1 −2 Original line number Diff line number Diff line Loading @@ -34,8 +34,7 @@ enum media2_event_type { MEDIA2_SET_VIDEO_SIZE = 5, MEDIA2_STARTED = 6, MEDIA2_PAUSED = 7, MEDIA2_STOPPED = 8, MEDIA2_SKIPPED = 9, MEDIA2_SKIPPED = 8, MEDIA2_NOTIFY_TIME = 98, MEDIA2_TIMED_TEXT = 99, MEDIA2_ERROR = 100, Loading media/libmediaplayer2/nuplayer2/NuPlayer2.cpp +7 −32 Original line number Diff line number Diff line Loading @@ -487,7 +487,7 @@ void NuPlayer2::start() { status_t NuPlayer2::setPlaybackSettings(const AudioPlaybackRate &rate) { // do some cursory validation of the settings here. audio modes are // only validated when set on the audiosink. if ((rate.mSpeed != 0.f && rate.mSpeed < AUDIO_TIMESTRETCH_SPEED_MIN) if (rate.mSpeed < AUDIO_TIMESTRETCH_SPEED_MIN || rate.mSpeed > AUDIO_TIMESTRETCH_SPEED_MAX || rate.mPitch < AUDIO_TIMESTRETCH_SPEED_MIN || rate.mPitch > AUDIO_TIMESTRETCH_SPEED_MAX) { Loading Loading @@ -986,8 +986,7 @@ void NuPlayer2::onMessageReceived(const sp<AMessage> &msg) { if (mRenderer != NULL) { // AudioSink allows only 1.f and 0.f for offload mode. // For other speed, switch to non-offload mode. if (mOffloadAudio && ((rate.mSpeed != 0.f && rate.mSpeed != 1.f) || rate.mPitch != 1.f)) { if (mOffloadAudio && (rate.mSpeed != 1.f || rate.mPitch != 1.f)) { int64_t currentPositionUs; if (getCurrentPosition(¤tPositionUs) != OK) { currentPositionUs = mPreviousSeekTimeUs; Loading @@ -1010,35 +1009,14 @@ void NuPlayer2::onMessageReceived(const sp<AMessage> &msg) { err = mRenderer->setPlaybackSettings(rate); } if (err == OK) { if (rate.mSpeed == 0.f) { onPause(); notifyListener(mSrcId, MEDIA2_PAUSED, 0, 0); mPausedByClient = true; // save all other settings (using non-paused speed) // so we can restore them on start AudioPlaybackRate newRate = rate; newRate.mSpeed = mPlaybackSettings.mSpeed; mPlaybackSettings = newRate; } else { /* rate.mSpeed != 0.f */ mPlaybackSettings = rate; if (mStarted) { // do not resume yet if the source is still buffering if (!mPausedForBuffering) { onResume(); } } else if (mPrepared) { onStart(); } mPausedByClient = false; } } if (mVideoDecoder != NULL) { sp<AMessage> params = new AMessage(); params->setFloat("playback-speed", mPlaybackSettings.mSpeed); mVideoDecoder->setParameters(params); } } sp<AMessage> response = new AMessage; response->setInt32("err", err); Loading @@ -1059,9 +1037,6 @@ void NuPlayer2::onMessageReceived(const sp<AMessage> &msg) { // get playback settings used by renderer, as it may be // slightly off due to audiosink not taking small changes. mPlaybackSettings = rate; if (mPaused) { rate.mSpeed = 0.f; } } sp<AMessage> response = new AMessage; if (err == OK) { Loading media/libmediaplayer2/nuplayer2/NuPlayer2Driver.cpp +0 −8 Original line number Diff line number Diff line Loading @@ -352,14 +352,6 @@ status_t NuPlayer2Driver::setPlaybackSettings(const AudioPlaybackRate &rate) { // try to update position int64_t unused; getCurrentPosition(&unused); Mutex::Autolock autoLock(mLock); if (rate.mSpeed == 0.f && mState == STATE_RUNNING) { mState = STATE_PAUSED; } else if (rate.mSpeed != 0.f && (mState == STATE_PAUSED || mState == STATE_PREPARED)) { err = start_l(); } } return err; } Loading media/libmediaplayer2/nuplayer2/NuPlayer2Renderer.cpp +9 −19 Original line number Diff line number Diff line Loading @@ -133,8 +133,7 @@ NuPlayer2::Renderer::Renderer( mUseAudioCallback(false), mWakeLock(new JWakeLock()) { CHECK(mediaClock != NULL); mPlaybackRate = mPlaybackSettings.mSpeed; mMediaClock->setPlaybackRate(mPlaybackRate); mMediaClock->setPlaybackRate(mPlaybackSettings.mSpeed); } NuPlayer2::Renderer::~Renderer() { Loading Loading @@ -190,26 +189,20 @@ status_t NuPlayer2::Renderer::setPlaybackSettings(const AudioPlaybackRate &rate) } status_t NuPlayer2::Renderer::onConfigPlayback(const AudioPlaybackRate &rate /* sanitized */) { if (rate.mSpeed == 0.f) { onPause(); // don't call audiosink's setPlaybackRate if pausing, as pitch does not // have to correspond to the any non-0 speed (e.g old speed). Keep // settings nonetheless, using the old speed, in case audiosink changes. AudioPlaybackRate newRate = rate; newRate.mSpeed = mPlaybackSettings.mSpeed; mPlaybackSettings = newRate; return OK; if (rate.mSpeed <= 0.f) { ALOGW("playback rate cannot be %f", rate.mSpeed); return BAD_VALUE; } if (mAudioSink != NULL && mAudioSink->ready()) { status_t err = mAudioSink->setPlaybackRate(rate); if (err != OK) { ALOGW("failed to get playback rate from audio sink, err(%d)", err); return err; } } mPlaybackSettings = rate; mPlaybackRate = rate.mSpeed; mMediaClock->setPlaybackRate(mPlaybackRate); mMediaClock->setPlaybackRate(mPlaybackSettings.mSpeed); return OK; } Loading @@ -236,9 +229,6 @@ status_t NuPlayer2::Renderer::onGetPlaybackSettings(AudioPlaybackRate *rate /* n // get playback settings used by audiosink, as it may be // slightly off due to audiosink not taking small changes. mPlaybackSettings = *rate; if (mPaused) { rate->mSpeed = 0.f; } } return err; } Loading Loading @@ -560,8 +550,8 @@ void NuPlayer2::Renderer::onMessageReceived(const sp<AMessage> &msg) { int64_t delayUs = mAudioSink->msecsPerFrame() * numFramesPendingPlayout * 1000ll; if (mPlaybackRate > 1.0f) { delayUs /= mPlaybackRate; if (mPlaybackSettings.mSpeed > 1.0f) { delayUs /= mPlaybackSettings.mSpeed; } // Let's give it more data after about half that time Loading Loading @@ -1773,7 +1763,7 @@ void NuPlayer2::Renderer::onResume() { mAudioSink->setPlaybackRate(mPlaybackSettings); } mMediaClock->setPlaybackRate(mPlaybackRate); mMediaClock->setPlaybackRate(mPlaybackSettings.mSpeed); if (!mAudioQueue.empty()) { postDrainAudioQueue_l(); Loading media/libmediaplayer2/nuplayer2/NuPlayer2Renderer.h +0 −1 Original line number Diff line number Diff line Loading @@ -167,7 +167,6 @@ private: int32_t mAudioEOSGeneration; const sp<MediaClock> mMediaClock; float mPlaybackRate; // audio track rate AudioPlaybackRate mPlaybackSettings; AVSyncSettings mSyncSettings; Loading Loading
media/libmediaplayer2/include/mediaplayer2/MediaPlayer2Types.h +1 −2 Original line number Diff line number Diff line Loading @@ -34,8 +34,7 @@ enum media2_event_type { MEDIA2_SET_VIDEO_SIZE = 5, MEDIA2_STARTED = 6, MEDIA2_PAUSED = 7, MEDIA2_STOPPED = 8, MEDIA2_SKIPPED = 9, MEDIA2_SKIPPED = 8, MEDIA2_NOTIFY_TIME = 98, MEDIA2_TIMED_TEXT = 99, MEDIA2_ERROR = 100, Loading
media/libmediaplayer2/nuplayer2/NuPlayer2.cpp +7 −32 Original line number Diff line number Diff line Loading @@ -487,7 +487,7 @@ void NuPlayer2::start() { status_t NuPlayer2::setPlaybackSettings(const AudioPlaybackRate &rate) { // do some cursory validation of the settings here. audio modes are // only validated when set on the audiosink. if ((rate.mSpeed != 0.f && rate.mSpeed < AUDIO_TIMESTRETCH_SPEED_MIN) if (rate.mSpeed < AUDIO_TIMESTRETCH_SPEED_MIN || rate.mSpeed > AUDIO_TIMESTRETCH_SPEED_MAX || rate.mPitch < AUDIO_TIMESTRETCH_SPEED_MIN || rate.mPitch > AUDIO_TIMESTRETCH_SPEED_MAX) { Loading Loading @@ -986,8 +986,7 @@ void NuPlayer2::onMessageReceived(const sp<AMessage> &msg) { if (mRenderer != NULL) { // AudioSink allows only 1.f and 0.f for offload mode. // For other speed, switch to non-offload mode. if (mOffloadAudio && ((rate.mSpeed != 0.f && rate.mSpeed != 1.f) || rate.mPitch != 1.f)) { if (mOffloadAudio && (rate.mSpeed != 1.f || rate.mPitch != 1.f)) { int64_t currentPositionUs; if (getCurrentPosition(¤tPositionUs) != OK) { currentPositionUs = mPreviousSeekTimeUs; Loading @@ -1010,35 +1009,14 @@ void NuPlayer2::onMessageReceived(const sp<AMessage> &msg) { err = mRenderer->setPlaybackSettings(rate); } if (err == OK) { if (rate.mSpeed == 0.f) { onPause(); notifyListener(mSrcId, MEDIA2_PAUSED, 0, 0); mPausedByClient = true; // save all other settings (using non-paused speed) // so we can restore them on start AudioPlaybackRate newRate = rate; newRate.mSpeed = mPlaybackSettings.mSpeed; mPlaybackSettings = newRate; } else { /* rate.mSpeed != 0.f */ mPlaybackSettings = rate; if (mStarted) { // do not resume yet if the source is still buffering if (!mPausedForBuffering) { onResume(); } } else if (mPrepared) { onStart(); } mPausedByClient = false; } } if (mVideoDecoder != NULL) { sp<AMessage> params = new AMessage(); params->setFloat("playback-speed", mPlaybackSettings.mSpeed); mVideoDecoder->setParameters(params); } } sp<AMessage> response = new AMessage; response->setInt32("err", err); Loading @@ -1059,9 +1037,6 @@ void NuPlayer2::onMessageReceived(const sp<AMessage> &msg) { // get playback settings used by renderer, as it may be // slightly off due to audiosink not taking small changes. mPlaybackSettings = rate; if (mPaused) { rate.mSpeed = 0.f; } } sp<AMessage> response = new AMessage; if (err == OK) { Loading
media/libmediaplayer2/nuplayer2/NuPlayer2Driver.cpp +0 −8 Original line number Diff line number Diff line Loading @@ -352,14 +352,6 @@ status_t NuPlayer2Driver::setPlaybackSettings(const AudioPlaybackRate &rate) { // try to update position int64_t unused; getCurrentPosition(&unused); Mutex::Autolock autoLock(mLock); if (rate.mSpeed == 0.f && mState == STATE_RUNNING) { mState = STATE_PAUSED; } else if (rate.mSpeed != 0.f && (mState == STATE_PAUSED || mState == STATE_PREPARED)) { err = start_l(); } } return err; } Loading
media/libmediaplayer2/nuplayer2/NuPlayer2Renderer.cpp +9 −19 Original line number Diff line number Diff line Loading @@ -133,8 +133,7 @@ NuPlayer2::Renderer::Renderer( mUseAudioCallback(false), mWakeLock(new JWakeLock()) { CHECK(mediaClock != NULL); mPlaybackRate = mPlaybackSettings.mSpeed; mMediaClock->setPlaybackRate(mPlaybackRate); mMediaClock->setPlaybackRate(mPlaybackSettings.mSpeed); } NuPlayer2::Renderer::~Renderer() { Loading Loading @@ -190,26 +189,20 @@ status_t NuPlayer2::Renderer::setPlaybackSettings(const AudioPlaybackRate &rate) } status_t NuPlayer2::Renderer::onConfigPlayback(const AudioPlaybackRate &rate /* sanitized */) { if (rate.mSpeed == 0.f) { onPause(); // don't call audiosink's setPlaybackRate if pausing, as pitch does not // have to correspond to the any non-0 speed (e.g old speed). Keep // settings nonetheless, using the old speed, in case audiosink changes. AudioPlaybackRate newRate = rate; newRate.mSpeed = mPlaybackSettings.mSpeed; mPlaybackSettings = newRate; return OK; if (rate.mSpeed <= 0.f) { ALOGW("playback rate cannot be %f", rate.mSpeed); return BAD_VALUE; } if (mAudioSink != NULL && mAudioSink->ready()) { status_t err = mAudioSink->setPlaybackRate(rate); if (err != OK) { ALOGW("failed to get playback rate from audio sink, err(%d)", err); return err; } } mPlaybackSettings = rate; mPlaybackRate = rate.mSpeed; mMediaClock->setPlaybackRate(mPlaybackRate); mMediaClock->setPlaybackRate(mPlaybackSettings.mSpeed); return OK; } Loading @@ -236,9 +229,6 @@ status_t NuPlayer2::Renderer::onGetPlaybackSettings(AudioPlaybackRate *rate /* n // get playback settings used by audiosink, as it may be // slightly off due to audiosink not taking small changes. mPlaybackSettings = *rate; if (mPaused) { rate->mSpeed = 0.f; } } return err; } Loading Loading @@ -560,8 +550,8 @@ void NuPlayer2::Renderer::onMessageReceived(const sp<AMessage> &msg) { int64_t delayUs = mAudioSink->msecsPerFrame() * numFramesPendingPlayout * 1000ll; if (mPlaybackRate > 1.0f) { delayUs /= mPlaybackRate; if (mPlaybackSettings.mSpeed > 1.0f) { delayUs /= mPlaybackSettings.mSpeed; } // Let's give it more data after about half that time Loading Loading @@ -1773,7 +1763,7 @@ void NuPlayer2::Renderer::onResume() { mAudioSink->setPlaybackRate(mPlaybackSettings); } mMediaClock->setPlaybackRate(mPlaybackRate); mMediaClock->setPlaybackRate(mPlaybackSettings.mSpeed); if (!mAudioQueue.empty()) { postDrainAudioQueue_l(); Loading
media/libmediaplayer2/nuplayer2/NuPlayer2Renderer.h +0 −1 Original line number Diff line number Diff line Loading @@ -167,7 +167,6 @@ private: int32_t mAudioEOSGeneration; const sp<MediaClock> mMediaClock; float mPlaybackRate; // audio track rate AudioPlaybackRate mPlaybackSettings; AVSyncSettings mSyncSettings; Loading