Loading include/media/MediaPlayerInterface.h +2 −0 Original line number Diff line number Diff line Loading @@ -96,6 +96,8 @@ public: virtual void flush() = 0; virtual void pause() = 0; virtual void close() = 0; virtual status_t setPlaybackRatePermille(int32_t rate) { return INVALID_OPERATION; } }; MediaPlayerBase() : mCookie(0), mNotify(0) {} Loading include/media/mediaplayer.h +3 −0 Original line number Diff line number Diff line Loading @@ -145,6 +145,9 @@ enum media_parameter_keys { // audio track, or zero for error (e.g. no audio track) or unknown. KEY_PARAMETER_AUDIO_CHANNEL_COUNT = 1200, // get only // Playback rate expressed in permille (1000 is normal speed), saved as int32_t, with negative // values used for rewinding or reverse playback. KEY_PARAMETER_PLAYBACK_RATE_PERMILLE = 1300, // set only }; // ---------------------------------------------------------------------------- Loading include/media/stagefright/AudioPlayer.h +2 −0 Original line number Diff line number Diff line Loading @@ -64,6 +64,8 @@ public: bool isSeeking(); bool reachedEOS(status_t *finalStatus); status_t setPlaybackRatePermille(int32_t ratePermille); private: friend class VideoEditorAudioPlayer; sp<MediaSource> mSource; Loading media/libmediaplayerservice/MediaPlayerService.cpp +24 −1 Original line number Diff line number Diff line Loading @@ -1265,6 +1265,8 @@ MediaPlayerService::AudioOutput::AudioOutput(int sessionId) mStreamType = AUDIO_STREAM_MUSIC; mLeftVolume = 1.0; mRightVolume = 1.0; mPlaybackRatePermille = 1000; mSampleRateHz = 0; mLatency = 0; mMsecsPerFrame = 0; mAuxEffectId = 0; Loading Loading @@ -1402,10 +1404,15 @@ status_t MediaPlayerService::AudioOutput::open( ALOGV("setVolume"); t->setVolume(mLeftVolume, mRightVolume); mMsecsPerFrame = 1.e3 / (float) sampleRate; mSampleRateHz = sampleRate; mMsecsPerFrame = mPlaybackRatePermille / (float) sampleRate; mLatency = t->latency(); mTrack = t; status_t res = t->setSampleRate(mPlaybackRatePermille * mSampleRateHz / 1000); if (res != NO_ERROR) { return res; } t->setAuxEffectSendLevel(mSendLevel); return t->attachAuxEffect(mAuxEffectId);; } Loading Loading @@ -1469,6 +1476,22 @@ void MediaPlayerService::AudioOutput::setVolume(float left, float right) } } status_t MediaPlayerService::AudioOutput::setPlaybackRatePermille(int32_t ratePermille) { ALOGV("setPlaybackRatePermille(%d)", ratePermille); status_t res = NO_ERROR; if (mTrack) { res = mTrack->setSampleRate(ratePermille * mSampleRateHz / 1000); } else { res = NO_INIT; } mPlaybackRatePermille = ratePermille; if (mSampleRateHz != 0) { mMsecsPerFrame = mPlaybackRatePermille / (float) mSampleRateHz; } return res; } status_t MediaPlayerService::AudioOutput::setAuxEffectSendLevel(float level) { ALOGV("setAuxEffectSendLevel(%f)", level); Loading media/libmediaplayerservice/MediaPlayerService.h +4 −0 Original line number Diff line number Diff line Loading @@ -95,6 +95,7 @@ class MediaPlayerService : public BnMediaPlayerService virtual void close(); void setAudioStreamType(audio_stream_type_t streamType) { mStreamType = streamType; } void setVolume(float left, float right); virtual status_t setPlaybackRatePermille(int32_t ratePermille); status_t setAuxEffectSendLevel(float level); status_t attachAuxEffect(int effectId); virtual status_t dump(int fd, const Vector<String16>& args) const; Loading @@ -112,6 +113,8 @@ class MediaPlayerService : public BnMediaPlayerService audio_stream_type_t mStreamType; float mLeftVolume; float mRightVolume; int32_t mPlaybackRatePermille; uint32_t mSampleRateHz; // sample rate of the content, as set in open() float mMsecsPerFrame; uint32_t mLatency; int mSessionId; Loading Loading @@ -152,6 +155,7 @@ class MediaPlayerService : public BnMediaPlayerService virtual void close() {} void setAudioStreamType(audio_stream_type_t streamType) {} void setVolume(float left, float right) {} virtual status_t setPlaybackRatePermille(int32_t ratePermille) { return INVALID_OPERATION; } uint32_t sampleRate() const { return mSampleRate; } audio_format_t format() const { return mFormat; } size_t size() const { return mSize; } Loading Loading
include/media/MediaPlayerInterface.h +2 −0 Original line number Diff line number Diff line Loading @@ -96,6 +96,8 @@ public: virtual void flush() = 0; virtual void pause() = 0; virtual void close() = 0; virtual status_t setPlaybackRatePermille(int32_t rate) { return INVALID_OPERATION; } }; MediaPlayerBase() : mCookie(0), mNotify(0) {} Loading
include/media/mediaplayer.h +3 −0 Original line number Diff line number Diff line Loading @@ -145,6 +145,9 @@ enum media_parameter_keys { // audio track, or zero for error (e.g. no audio track) or unknown. KEY_PARAMETER_AUDIO_CHANNEL_COUNT = 1200, // get only // Playback rate expressed in permille (1000 is normal speed), saved as int32_t, with negative // values used for rewinding or reverse playback. KEY_PARAMETER_PLAYBACK_RATE_PERMILLE = 1300, // set only }; // ---------------------------------------------------------------------------- Loading
include/media/stagefright/AudioPlayer.h +2 −0 Original line number Diff line number Diff line Loading @@ -64,6 +64,8 @@ public: bool isSeeking(); bool reachedEOS(status_t *finalStatus); status_t setPlaybackRatePermille(int32_t ratePermille); private: friend class VideoEditorAudioPlayer; sp<MediaSource> mSource; Loading
media/libmediaplayerservice/MediaPlayerService.cpp +24 −1 Original line number Diff line number Diff line Loading @@ -1265,6 +1265,8 @@ MediaPlayerService::AudioOutput::AudioOutput(int sessionId) mStreamType = AUDIO_STREAM_MUSIC; mLeftVolume = 1.0; mRightVolume = 1.0; mPlaybackRatePermille = 1000; mSampleRateHz = 0; mLatency = 0; mMsecsPerFrame = 0; mAuxEffectId = 0; Loading Loading @@ -1402,10 +1404,15 @@ status_t MediaPlayerService::AudioOutput::open( ALOGV("setVolume"); t->setVolume(mLeftVolume, mRightVolume); mMsecsPerFrame = 1.e3 / (float) sampleRate; mSampleRateHz = sampleRate; mMsecsPerFrame = mPlaybackRatePermille / (float) sampleRate; mLatency = t->latency(); mTrack = t; status_t res = t->setSampleRate(mPlaybackRatePermille * mSampleRateHz / 1000); if (res != NO_ERROR) { return res; } t->setAuxEffectSendLevel(mSendLevel); return t->attachAuxEffect(mAuxEffectId);; } Loading Loading @@ -1469,6 +1476,22 @@ void MediaPlayerService::AudioOutput::setVolume(float left, float right) } } status_t MediaPlayerService::AudioOutput::setPlaybackRatePermille(int32_t ratePermille) { ALOGV("setPlaybackRatePermille(%d)", ratePermille); status_t res = NO_ERROR; if (mTrack) { res = mTrack->setSampleRate(ratePermille * mSampleRateHz / 1000); } else { res = NO_INIT; } mPlaybackRatePermille = ratePermille; if (mSampleRateHz != 0) { mMsecsPerFrame = mPlaybackRatePermille / (float) mSampleRateHz; } return res; } status_t MediaPlayerService::AudioOutput::setAuxEffectSendLevel(float level) { ALOGV("setAuxEffectSendLevel(%f)", level); Loading
media/libmediaplayerservice/MediaPlayerService.h +4 −0 Original line number Diff line number Diff line Loading @@ -95,6 +95,7 @@ class MediaPlayerService : public BnMediaPlayerService virtual void close(); void setAudioStreamType(audio_stream_type_t streamType) { mStreamType = streamType; } void setVolume(float left, float right); virtual status_t setPlaybackRatePermille(int32_t ratePermille); status_t setAuxEffectSendLevel(float level); status_t attachAuxEffect(int effectId); virtual status_t dump(int fd, const Vector<String16>& args) const; Loading @@ -112,6 +113,8 @@ class MediaPlayerService : public BnMediaPlayerService audio_stream_type_t mStreamType; float mLeftVolume; float mRightVolume; int32_t mPlaybackRatePermille; uint32_t mSampleRateHz; // sample rate of the content, as set in open() float mMsecsPerFrame; uint32_t mLatency; int mSessionId; Loading Loading @@ -152,6 +155,7 @@ class MediaPlayerService : public BnMediaPlayerService virtual void close() {} void setAudioStreamType(audio_stream_type_t streamType) {} void setVolume(float left, float right) {} virtual status_t setPlaybackRatePermille(int32_t ratePermille) { return INVALID_OPERATION; } uint32_t sampleRate() const { return mSampleRate; } audio_format_t format() const { return mFormat; } size_t size() const { return mSize; } Loading