Loading media/libmedia/AudioSystem.cpp +17 −16 Original line number Original line Diff line number Diff line Loading @@ -259,12 +259,11 @@ status_t AudioSystem::getOutputSamplingRate(int* samplingRate, int streamType) { { int output = getOutput(streamType); int output = getOutput(streamType); if (gOutSamplingRate[output] == 0) { if (output == NUM_AUDIO_OUTPUT_TYPES) return PERMISSION_DENIED; const sp<IAudioFlinger>& af = AudioSystem::get_audio_flinger(); if (af == 0) return PERMISSION_DENIED; // gOutSamplingRate[] is updated by getOutput() which calls get_audio_flinger() // gOutSamplingRate is updated by get_audio_flinger() } LOGV("getOutputSamplingRate() streamType %d, output %d, sampling rate %d", streamType, output, gOutSamplingRate[output]); LOGV("getOutputSamplingRate() streamType %d, output %d, sampling rate %d", streamType, output, gOutSamplingRate[output]); *samplingRate = gOutSamplingRate[output]; *samplingRate = gOutSamplingRate[output]; return NO_ERROR; return NO_ERROR; Loading @@ -274,14 +273,13 @@ status_t AudioSystem::getOutputFrameCount(int* frameCount, int streamType) { { int output = getOutput(streamType); int output = getOutput(streamType); if (gOutFrameCount[output] == 0) { if (output == NUM_AUDIO_OUTPUT_TYPES) return PERMISSION_DENIED; const sp<IAudioFlinger>& af = AudioSystem::get_audio_flinger(); if (af == 0) return PERMISSION_DENIED; // gOutFrameCount[] is updated by getOutput() which calls get_audio_flinger() // gOutFrameCount is updated by get_audio_flinger() } LOGV("getOutputFrameCount() streamType %d, output %d, frame count %d", streamType, output, gOutFrameCount[output]); LOGV("getOutputFrameCount() streamType %d, output %d, frame count %d", streamType, output, gOutFrameCount[output]); *frameCount = gOutFrameCount[output]; *frameCount = gOutFrameCount[output]; return NO_ERROR; return NO_ERROR; } } Loading @@ -289,11 +287,9 @@ status_t AudioSystem::getOutputLatency(uint32_t* latency, int streamType) { { int output = getOutput(streamType); int output = getOutput(streamType); if (gOutLatency[output] == 0) { if (output == NUM_AUDIO_OUTPUT_TYPES) return PERMISSION_DENIED; const sp<IAudioFlinger>& af = AudioSystem::get_audio_flinger(); if (af == 0) return PERMISSION_DENIED; // gOutLatency[] is updated by getOutput() which calls get_audio_flinger() // gOutLatency is updated by get_audio_flinger() } LOGV("getOutputLatency() streamType %d, output %d, latency %d", streamType, output, gOutLatency[output]); LOGV("getOutputLatency() streamType %d, output %d, latency %d", streamType, output, gOutLatency[output]); *latency = gOutLatency[output]; *latency = gOutLatency[output]; Loading Loading @@ -355,6 +351,11 @@ void AudioSystem::setErrorCallback(audio_error_callback cb) { int AudioSystem::getOutput(int streamType) int AudioSystem::getOutput(int streamType) { { // make sure that gA2dpEnabled is valid by calling get_audio_flinger() which in turn // will call gAudioFlinger->isA2dpEnabled() const sp<IAudioFlinger>& af = AudioSystem::get_audio_flinger(); if (af == 0) return NUM_AUDIO_OUTPUT_TYPES; if (streamType == DEFAULT) { if (streamType == DEFAULT) { streamType = MUSIC; streamType = MUSIC; } } Loading media/libmediaplayerservice/MediaRecorderClient.cpp +16 −0 Original line number Original line Diff line number Diff line Loading @@ -30,11 +30,24 @@ #include <utils/MemoryHeapBase.h> #include <utils/MemoryHeapBase.h> #include <utils/MemoryBase.h> #include <utils/MemoryBase.h> #include <media/PVMediaRecorder.h> #include <media/PVMediaRecorder.h> #include <utils/String16.h> #include "MediaRecorderClient.h" #include "MediaRecorderClient.h" namespace android { namespace android { const char* cameraPermission = "android.permission.CAMERA"; static bool checkPermission(const char* permissionString) { #ifndef HAVE_ANDROID_OS return true; #endif if (getpid() == IPCThreadState::self()->getCallingPid()) return true; bool ok = checkCallingPermission(String16(permissionString)); if (!ok) LOGE("Request requires %s", permissionString); return ok; } status_t MediaRecorderClient::setCamera(const sp<ICamera>& camera) status_t MediaRecorderClient::setCamera(const sp<ICamera>& camera) { { LOGV("setCamera"); LOGV("setCamera"); Loading @@ -60,6 +73,9 @@ status_t MediaRecorderClient::setPreviewSurface(const sp<ISurface>& surface) status_t MediaRecorderClient::setVideoSource(int vs) status_t MediaRecorderClient::setVideoSource(int vs) { { LOGV("setVideoSource(%d)", vs); LOGV("setVideoSource(%d)", vs); if (!checkPermission(cameraPermission)) { return PERMISSION_DENIED; } Mutex::Autolock lock(mLock); Mutex::Autolock lock(mLock); if (mRecorder == NULL) { if (mRecorder == NULL) { LOGE("recorder is not initialized"); LOGE("recorder is not initialized"); Loading Loading
media/libmedia/AudioSystem.cpp +17 −16 Original line number Original line Diff line number Diff line Loading @@ -259,12 +259,11 @@ status_t AudioSystem::getOutputSamplingRate(int* samplingRate, int streamType) { { int output = getOutput(streamType); int output = getOutput(streamType); if (gOutSamplingRate[output] == 0) { if (output == NUM_AUDIO_OUTPUT_TYPES) return PERMISSION_DENIED; const sp<IAudioFlinger>& af = AudioSystem::get_audio_flinger(); if (af == 0) return PERMISSION_DENIED; // gOutSamplingRate[] is updated by getOutput() which calls get_audio_flinger() // gOutSamplingRate is updated by get_audio_flinger() } LOGV("getOutputSamplingRate() streamType %d, output %d, sampling rate %d", streamType, output, gOutSamplingRate[output]); LOGV("getOutputSamplingRate() streamType %d, output %d, sampling rate %d", streamType, output, gOutSamplingRate[output]); *samplingRate = gOutSamplingRate[output]; *samplingRate = gOutSamplingRate[output]; return NO_ERROR; return NO_ERROR; Loading @@ -274,14 +273,13 @@ status_t AudioSystem::getOutputFrameCount(int* frameCount, int streamType) { { int output = getOutput(streamType); int output = getOutput(streamType); if (gOutFrameCount[output] == 0) { if (output == NUM_AUDIO_OUTPUT_TYPES) return PERMISSION_DENIED; const sp<IAudioFlinger>& af = AudioSystem::get_audio_flinger(); if (af == 0) return PERMISSION_DENIED; // gOutFrameCount[] is updated by getOutput() which calls get_audio_flinger() // gOutFrameCount is updated by get_audio_flinger() } LOGV("getOutputFrameCount() streamType %d, output %d, frame count %d", streamType, output, gOutFrameCount[output]); LOGV("getOutputFrameCount() streamType %d, output %d, frame count %d", streamType, output, gOutFrameCount[output]); *frameCount = gOutFrameCount[output]; *frameCount = gOutFrameCount[output]; return NO_ERROR; return NO_ERROR; } } Loading @@ -289,11 +287,9 @@ status_t AudioSystem::getOutputLatency(uint32_t* latency, int streamType) { { int output = getOutput(streamType); int output = getOutput(streamType); if (gOutLatency[output] == 0) { if (output == NUM_AUDIO_OUTPUT_TYPES) return PERMISSION_DENIED; const sp<IAudioFlinger>& af = AudioSystem::get_audio_flinger(); if (af == 0) return PERMISSION_DENIED; // gOutLatency[] is updated by getOutput() which calls get_audio_flinger() // gOutLatency is updated by get_audio_flinger() } LOGV("getOutputLatency() streamType %d, output %d, latency %d", streamType, output, gOutLatency[output]); LOGV("getOutputLatency() streamType %d, output %d, latency %d", streamType, output, gOutLatency[output]); *latency = gOutLatency[output]; *latency = gOutLatency[output]; Loading Loading @@ -355,6 +351,11 @@ void AudioSystem::setErrorCallback(audio_error_callback cb) { int AudioSystem::getOutput(int streamType) int AudioSystem::getOutput(int streamType) { { // make sure that gA2dpEnabled is valid by calling get_audio_flinger() which in turn // will call gAudioFlinger->isA2dpEnabled() const sp<IAudioFlinger>& af = AudioSystem::get_audio_flinger(); if (af == 0) return NUM_AUDIO_OUTPUT_TYPES; if (streamType == DEFAULT) { if (streamType == DEFAULT) { streamType = MUSIC; streamType = MUSIC; } } Loading
media/libmediaplayerservice/MediaRecorderClient.cpp +16 −0 Original line number Original line Diff line number Diff line Loading @@ -30,11 +30,24 @@ #include <utils/MemoryHeapBase.h> #include <utils/MemoryHeapBase.h> #include <utils/MemoryBase.h> #include <utils/MemoryBase.h> #include <media/PVMediaRecorder.h> #include <media/PVMediaRecorder.h> #include <utils/String16.h> #include "MediaRecorderClient.h" #include "MediaRecorderClient.h" namespace android { namespace android { const char* cameraPermission = "android.permission.CAMERA"; static bool checkPermission(const char* permissionString) { #ifndef HAVE_ANDROID_OS return true; #endif if (getpid() == IPCThreadState::self()->getCallingPid()) return true; bool ok = checkCallingPermission(String16(permissionString)); if (!ok) LOGE("Request requires %s", permissionString); return ok; } status_t MediaRecorderClient::setCamera(const sp<ICamera>& camera) status_t MediaRecorderClient::setCamera(const sp<ICamera>& camera) { { LOGV("setCamera"); LOGV("setCamera"); Loading @@ -60,6 +73,9 @@ status_t MediaRecorderClient::setPreviewSurface(const sp<ISurface>& surface) status_t MediaRecorderClient::setVideoSource(int vs) status_t MediaRecorderClient::setVideoSource(int vs) { { LOGV("setVideoSource(%d)", vs); LOGV("setVideoSource(%d)", vs); if (!checkPermission(cameraPermission)) { return PERMISSION_DENIED; } Mutex::Autolock lock(mLock); Mutex::Autolock lock(mLock); if (mRecorder == NULL) { if (mRecorder == NULL) { LOGE("recorder is not initialized"); LOGE("recorder is not initialized"); Loading