diff options
-rw-r--r-- | include/media/AudioSystem.h | 6 | ||||
-rw-r--r-- | include/media/AudioTrack.h | 12 | ||||
-rw-r--r-- | media/libmedia/AudioSystem.cpp | 11 | ||||
-rw-r--r-- | media/libmedia/AudioTrack.cpp | 19 | ||||
-rw-r--r-- | media/libstagefright/AVIExtractor.cpp | 1 | ||||
-rw-r--r-- | media/libstagefright/NuCachedSource2.cpp | 5 | ||||
-rw-r--r-- | services/audioflinger/AudioFlinger.cpp | 8 | ||||
-rw-r--r-- | services/audioflinger/AudioPolicyService.cpp | 12 | ||||
-rw-r--r-- | services/audioflinger/AudioPolicyService.h | 2 |
9 files changed, 63 insertions, 13 deletions
diff --git a/include/media/AudioSystem.h b/include/media/AudioSystem.h index b56701b..4415d33 100644 --- a/include/media/AudioSystem.h +++ b/include/media/AudioSystem.h @@ -87,6 +87,12 @@ public: static status_t getOutputFrameCount(int* frameCount, audio_stream_type_t stream = AUDIO_STREAM_DEFAULT); static status_t getOutputLatency(uint32_t* latency, audio_stream_type_t stream = AUDIO_STREAM_DEFAULT); + // DEPRECATED + static status_t getOutputSamplingRate(int* samplingRate, int stream = AUDIO_STREAM_DEFAULT); + + // DEPRECATED + static status_t getOutputFrameCount(int* frameCount, int stream = AUDIO_STREAM_DEFAULT); + static bool routedToA2dpOutput(audio_stream_type_t streamType); static status_t getInputBufferSize(uint32_t sampleRate, int format, int channelCount, diff --git a/include/media/AudioTrack.h b/include/media/AudioTrack.h index 6e4a9f5..fe91799 100644 --- a/include/media/AudioTrack.h +++ b/include/media/AudioTrack.h @@ -153,6 +153,18 @@ public: int notificationFrames = 0, int sessionId = 0); + // DEPRECATED + explicit AudioTrack( int streamType, + uint32_t sampleRate = 0, + int format = AUDIO_FORMAT_DEFAULT, + int channelMask = 0, + int frameCount = 0, + uint32_t flags = 0, + callback_t cbf = 0, + void* user = 0, + int notificationFrames = 0, + int sessionId = 0); + /* Creates an audio track and registers it with AudioFlinger. With this constructor, * the PCM data to be rendered by AudioTrack is passed in a shared memory buffer * identified by the argument sharedBuffer. This prototype is for static buffer playback. diff --git a/media/libmedia/AudioSystem.cpp b/media/libmedia/AudioSystem.cpp index 28892df..7379d68 100644 --- a/media/libmedia/AudioSystem.cpp +++ b/media/libmedia/AudioSystem.cpp @@ -203,6 +203,11 @@ int AudioSystem::logToLinear(float volume) return volume ? 100 - int(dBConvertInverse * log(volume) + 0.5) : 0; } +// DEPRECATED +status_t AudioSystem::getOutputSamplingRate(int* samplingRate, int streamType) { + return getOutputSamplingRate(samplingRate, (audio_stream_type_t)streamType); +} + status_t AudioSystem::getOutputSamplingRate(int* samplingRate, audio_stream_type_t streamType) { OutputDescriptor *outputDesc; @@ -236,6 +241,11 @@ status_t AudioSystem::getOutputSamplingRate(int* samplingRate, audio_stream_type return NO_ERROR; } +// DEPRECATED +status_t AudioSystem::getOutputFrameCount(int* frameCount, int streamType) { + return getOutputFrameCount(frameCount, (audio_stream_type_t)streamType); +} + status_t AudioSystem::getOutputFrameCount(int* frameCount, audio_stream_type_t streamType) { OutputDescriptor *outputDesc; @@ -538,6 +548,7 @@ audio_policy_dev_state_t AudioSystem::getDeviceConnectionState(audio_devices_t d status_t AudioSystem::setPhoneState(audio_mode_t state) { + if (uint32_t(state) >= AUDIO_MODE_CNT) return BAD_VALUE; const sp<IAudioPolicyService>& aps = AudioSystem::get_audio_policy_service(); if (aps == 0) return PERMISSION_DENIED; diff --git a/media/libmedia/AudioTrack.cpp b/media/libmedia/AudioTrack.cpp index 7e338de..837fcc3 100644 --- a/media/libmedia/AudioTrack.cpp +++ b/media/libmedia/AudioTrack.cpp @@ -102,6 +102,25 @@ AudioTrack::AudioTrack( } AudioTrack::AudioTrack( + int streamType, + uint32_t sampleRate, + int format, + int channelMask, + int frameCount, + uint32_t flags, + callback_t cbf, + void* user, + int notificationFrames, + int sessionId) + : mStatus(NO_INIT), + mPreviousPriority(ANDROID_PRIORITY_NORMAL), mPreviousSchedulingGroup(ANDROID_TGROUP_DEFAULT) +{ + mStatus = set((audio_stream_type_t)streamType, sampleRate, (audio_format_t)format, channelMask, + frameCount, flags, cbf, user, notificationFrames, + 0, false, sessionId); +} + +AudioTrack::AudioTrack( audio_stream_type_t streamType, uint32_t sampleRate, audio_format_t format, diff --git a/media/libstagefright/AVIExtractor.cpp b/media/libstagefright/AVIExtractor.cpp index a3187b7..5a6211e 100644 --- a/media/libstagefright/AVIExtractor.cpp +++ b/media/libstagefright/AVIExtractor.cpp @@ -577,6 +577,7 @@ static const char *GetMIMETypeForHandler(uint32_t handler) { case FOURCC('a', 'v', 'c', '1'): case FOURCC('d', 'a', 'v', 'c'): case FOURCC('x', '2', '6', '4'): + case FOURCC('H', '2', '6', '4'): case FOURCC('v', 's', 's', 'h'): return MEDIA_MIMETYPE_VIDEO_AVC; diff --git a/media/libstagefright/NuCachedSource2.cpp b/media/libstagefright/NuCachedSource2.cpp index 693c506..0957426 100644 --- a/media/libstagefright/NuCachedSource2.cpp +++ b/media/libstagefright/NuCachedSource2.cpp @@ -370,6 +370,7 @@ void NuCachedSource2::onFetch() { && (mSource->flags() & DataSource::kIsHTTPBasedSource)) { ALOGV("Disconnecting at high watermark"); static_cast<HTTPBase *>(mSource.get())->disconnect(); + mFinalStatus = -EAGAIN; } } } else { @@ -549,7 +550,7 @@ ssize_t NuCachedSource2::readInternal(off64_t offset, void *data, size_t size) { size_t delta = offset - mCacheOffset; - if (mFinalStatus != OK) { + if (mFinalStatus != OK && mNumRetriesLeft == 0) { if (delta >= mCache->totalSize()) { return mFinalStatus; } @@ -591,7 +592,7 @@ status_t NuCachedSource2::seekInternal_l(off64_t offset) { size_t totalSize = mCache->totalSize(); CHECK_EQ(mCache->releaseFromStart(totalSize), totalSize); - mFinalStatus = OK; + mNumRetriesLeft = kMaxNumRetries; mFetching = true; return OK; diff --git a/services/audioflinger/AudioFlinger.cpp b/services/audioflinger/AudioFlinger.cpp index fb2a072..a03f2ea 100644 --- a/services/audioflinger/AudioFlinger.cpp +++ b/services/audioflinger/AudioFlinger.cpp @@ -331,7 +331,7 @@ static bool tryLock(Mutex& mutex) status_t AudioFlinger::dump(int fd, const Vector<String16>& args) { - if (checkCallingPermission(String16("android.permission.DUMP")) == false) { + if (!checkCallingPermission(String16("android.permission.DUMP"))) { dumpPermissionDenial(fd, args); } else { // get state of hardware lock @@ -1962,7 +1962,7 @@ bool AudioFlinger::MixerThread::threadLoop() ALOGV("MixerThread %p TID %d waking up\n", this, gettid()); acquireWakeLock_l(); - if (mMasterMute == false) { + if (!mMasterMute) { char value[PROPERTY_VALUE_MAX]; property_get("ro.audio.silent", value, "0"); if (atoi(value)) { @@ -2659,7 +2659,7 @@ bool AudioFlinger::DirectOutputThread::threadLoop() ALOGV("DirectOutputThread %p TID %d waking up in active mode\n", this, gettid()); acquireWakeLock_l(); - if (mMasterMute == false) { + if (!mMasterMute) { char value[PROPERTY_VALUE_MAX]; property_get("ro.audio.silent", value, "0"); if (atoi(value)) { @@ -3054,7 +3054,7 @@ bool AudioFlinger::DuplicatingThread::threadLoop() ALOGV("DuplicatingThread %p TID %d waking up\n", this, gettid()); acquireWakeLock_l(); - if (mMasterMute == false) { + if (!mMasterMute) { char value[PROPERTY_VALUE_MAX]; property_get("ro.audio.silent", value, "0"); if (atoi(value)) { diff --git a/services/audioflinger/AudioPolicyService.cpp b/services/audioflinger/AudioPolicyService.cpp index fcf014f..ba9f8b0 100644 --- a/services/audioflinger/AudioPolicyService.cpp +++ b/services/audioflinger/AudioPolicyService.cpp @@ -43,11 +43,11 @@ namespace android { -static const char *kDeadlockedString = "AudioPolicyService may be deadlocked\n"; -static const char *kCmdDeadlockedString = "AudioPolicyService command thread may be deadlocked\n"; +static const char kDeadlockedString[] = "AudioPolicyService may be deadlocked\n"; +static const char kCmdDeadlockedString[] = "AudioPolicyService command thread may be deadlocked\n"; static const int kDumpLockRetries = 50; -static const int kDumpLockSleep = 20000; +static const int kDumpLockSleepUs = 20000; static bool checkPermission() { if (getpid() == IPCThreadState::self()->getCallingPid()) return true; @@ -563,7 +563,7 @@ static bool tryLock(Mutex& mutex) locked = true; break; } - usleep(kDumpLockSleep); + usleep(kDumpLockSleepUs); } return locked; } @@ -587,7 +587,7 @@ status_t AudioPolicyService::dumpInternals(int fd) status_t AudioPolicyService::dump(int fd, const Vector<String16>& args) { - if (checkCallingPermission(String16("android.permission.DUMP")) == false) { + if (!checkCallingPermission(String16("android.permission.DUMP"))) { dumpPermissionDenial(fd); } else { bool locked = tryLock(mLock); @@ -1069,7 +1069,7 @@ int AudioPolicyService::setVoiceVolume(float volume, int delayMs) // Audio pre-processing configuration // ---------------------------------------------------------------------------- -const char *AudioPolicyService::kInputSourceNames[AUDIO_SOURCE_CNT -1] = { +/*static*/ const char * const AudioPolicyService::kInputSourceNames[AUDIO_SOURCE_CNT -1] = { MIC_SRC_TAG, VOICE_UL_SRC_TAG, VOICE_DL_SRC_TAG, diff --git a/services/audioflinger/AudioPolicyService.h b/services/audioflinger/AudioPolicyService.h index 0715790..cb8c33f 100644 --- a/services/audioflinger/AudioPolicyService.h +++ b/services/audioflinger/AudioPolicyService.h @@ -254,7 +254,7 @@ private: Vector< sp<AudioEffect> >mEffects; }; - static const char *kInputSourceNames[AUDIO_SOURCE_CNT -1]; + static const char * const kInputSourceNames[AUDIO_SOURCE_CNT -1]; void setPreProcessorEnabled(InputDesc *inputDesc, bool enabled); status_t loadPreProcessorConfig(const char *path); |