From b3bdf3f0086f1d921720f6dc92cabc7b6f2ab63e Mon Sep 17 00:00:00 2001 From: Eric Laurent Date: Thu, 7 Oct 2010 18:23:03 -0700 Subject: [PATCH] Added getter for session Id to AudioSink Added a method to expose the audio session id at AudioSink interface so that the AudioPlayer in stagefright can retrieve it. Also: - Fixed audio effect send level not being initialized in mediaplayer. - Fixed compilation error when LOGV is enabled in mediaplayer JNI Change-Id: I4bb55454fd63d646e0e677692d737c4843fb05fb --- include/media/MediaPlayerInterface.h | 1 + media/jni/android_media_MediaPlayer.cpp | 2 +- media/libmedia/mediaplayer.cpp | 1 + media/libmediaplayerservice/MediaPlayerService.cpp | 10 ++++++++++ media/libmediaplayerservice/MediaPlayerService.h | 2 ++ 5 files changed, 15 insertions(+), 1 deletion(-) diff --git a/include/media/MediaPlayerInterface.h b/include/media/MediaPlayerInterface.h index 36629836b52ab..05217098eefdc 100644 --- a/include/media/MediaPlayerInterface.h +++ b/include/media/MediaPlayerInterface.h @@ -76,6 +76,7 @@ public: virtual uint32_t latency() const = 0; virtual float msecsPerFrame() const = 0; virtual status_t getPosition(uint32_t *position) = 0; + virtual int getSessionId() = 0; // If no callback is specified, use the "write" API below to submit // audio data. diff --git a/media/jni/android_media_MediaPlayer.cpp b/media/jni/android_media_MediaPlayer.cpp index 6f94e8b1816f7..49e5e89362fb5 100644 --- a/media/jni/android_media_MediaPlayer.cpp +++ b/media/jni/android_media_MediaPlayer.cpp @@ -727,7 +727,7 @@ android_media_MediaPlayer_setAuxEffectSendLevel(JNIEnv *env, jobject thiz, jfloa } static void android_media_MediaPlayer_attachAuxEffect(JNIEnv *env, jobject thiz, jint effectId) { - LOGV("attachAuxEffect(): %d", sessionId); + LOGV("attachAuxEffect(): %d", effectId); sp mp = getMediaPlayer(env, thiz); if (mp == NULL ) { jniThrowException(env, "java/lang/IllegalStateException", NULL); diff --git a/media/libmedia/mediaplayer.cpp b/media/libmedia/mediaplayer.cpp index c6b2efbdf8508..cc41e66e6aa3b 100644 --- a/media/libmedia/mediaplayer.cpp +++ b/media/libmedia/mediaplayer.cpp @@ -56,6 +56,7 @@ MediaPlayer::MediaPlayer() mVideoWidth = mVideoHeight = 0; mLockThreadId = 0; mAudioSessionId = AudioSystem::newAudioSessionId(); + mSendLevel = 0; } MediaPlayer::~MediaPlayer() diff --git a/media/libmediaplayerservice/MediaPlayerService.cpp b/media/libmediaplayerservice/MediaPlayerService.cpp index d975cb9150f0f..c43e9bb77855c 100644 --- a/media/libmediaplayerservice/MediaPlayerService.cpp +++ b/media/libmediaplayerservice/MediaPlayerService.cpp @@ -1546,6 +1546,11 @@ void MediaPlayerService::AudioOutput::CallbackWrapper( } +int MediaPlayerService::AudioOutput::getSessionId() +{ + return mSessionId; +} + #undef LOG_TAG #define LOG_TAG "AudioCache" MediaPlayerService::AudioCache::AudioCache(const char* name) : @@ -1733,4 +1738,9 @@ void MediaPlayerService::AudioCache::notify(void* cookie, int msg, int ext1, int p->mSignal.signal(); } +int MediaPlayerService::AudioCache::getSessionId() +{ + return 0; +} + } // namespace android diff --git a/media/libmediaplayerservice/MediaPlayerService.h b/media/libmediaplayerservice/MediaPlayerService.h index a967ee24cd927..4492e2061e1d4 100644 --- a/media/libmediaplayerservice/MediaPlayerService.h +++ b/media/libmediaplayerservice/MediaPlayerService.h @@ -77,6 +77,7 @@ class MediaPlayerService : public BnMediaPlayerService virtual uint32_t latency() const; virtual float msecsPerFrame() const; virtual status_t getPosition(uint32_t *position); + virtual int getSessionId(); virtual status_t open( uint32_t sampleRate, int channelCount, @@ -133,6 +134,7 @@ class MediaPlayerService : public BnMediaPlayerService virtual uint32_t latency() const; virtual float msecsPerFrame() const; virtual status_t getPosition(uint32_t *position); + virtual int getSessionId(); virtual status_t open( uint32_t sampleRate, int channelCount, int format,