diff options
author | Dave Burke <daveburke@google.com> | 2012-04-28 21:58:22 -0700 |
---|---|---|
committer | Dave Burke <daveburke@google.com> | 2012-04-30 09:18:24 -0700 |
commit | f60c660f048d5f5e2458cff243c20400d73757a7 (patch) | |
tree | b2bf22e36da46fd25979df618f8661b4b0510dad /media/libmediaplayerservice | |
parent | 83faee053cfd4251dbb591b62039f563ffdac399 (diff) | |
download | frameworks_av-f60c660f048d5f5e2458cff243c20400d73757a7.zip frameworks_av-f60c660f048d5f5e2458cff243c20400d73757a7.tar.gz frameworks_av-f60c660f048d5f5e2458cff243c20400d73757a7.tar.bz2 |
Added support for HE-AAC recording
Fixed bug in decoder related to sample rates / channel counts
Made decoder follow Fraunhofer pattern
Log if bitrate not available
Bug: 6275957
Change-Id: I47a8e29358fa4a88ebc73fe02d46a2bfb96c64fe
Diffstat (limited to 'media/libmediaplayerservice')
-rw-r--r-- | media/libmediaplayerservice/StagefrightRecorder.cpp | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/media/libmediaplayerservice/StagefrightRecorder.cpp b/media/libmediaplayerservice/StagefrightRecorder.cpp index b676cc7..727fd0d 100644 --- a/media/libmediaplayerservice/StagefrightRecorder.cpp +++ b/media/libmediaplayerservice/StagefrightRecorder.cpp @@ -820,10 +820,15 @@ sp<MediaSource> StagefrightRecorder::createAudioSource() { mime = MEDIA_MIMETYPE_AUDIO_AAC; encMeta->setInt32(kKeyAACProfile, OMX_AUDIO_AACObjectLC); break; + case AUDIO_ENCODER_HE_AAC: + mime = MEDIA_MIMETYPE_AUDIO_AAC; + encMeta->setInt32(kKeyAACProfile, OMX_AUDIO_AACObjectHE); + break; case AUDIO_ENCODER_AAC_ELD: mime = MEDIA_MIMETYPE_AUDIO_AAC; encMeta->setInt32(kKeyAACProfile, OMX_AUDIO_AACObjectELD); break; + default: ALOGE("Unknown audio encoder: %d", mAudioEncoder); return NULL; @@ -844,7 +849,6 @@ sp<MediaSource> StagefrightRecorder::createAudioSource() { OMXClient client; CHECK_EQ(client.connect(), (status_t)OK); - sp<MediaSource> audioEncoder = OMXCodec::Create(client.interface(), encMeta, true /* createEncoder */, audioSource); @@ -859,6 +863,7 @@ status_t StagefrightRecorder::startAACRecording() { CHECK_EQ(mOutputFormat, OUTPUT_FORMAT_AAC_ADTS); CHECK(mAudioEncoder == AUDIO_ENCODER_AAC || + mAudioEncoder == AUDIO_ENCODER_HE_AAC || mAudioEncoder == AUDIO_ENCODER_AAC_ELD); CHECK(mAudioSource != AUDIO_SOURCE_CNT); @@ -977,7 +982,9 @@ status_t StagefrightRecorder::startMPEG2TSRecording() { sp<MediaWriter> writer = new MPEG2TSWriter(mOutputFd); if (mAudioSource != AUDIO_SOURCE_CNT) { - if (mAudioEncoder != AUDIO_ENCODER_AAC) { + if (mAudioEncoder != AUDIO_ENCODER_AAC && + mAudioEncoder != AUDIO_ENCODER_HE_AAC && + mAudioEncoder != AUDIO_ENCODER_AAC_ELD) { return ERROR_UNSUPPORTED; } @@ -1442,6 +1449,7 @@ status_t StagefrightRecorder::setupAudioEncoder(const sp<MediaWriter>& writer) { case AUDIO_ENCODER_AMR_NB: case AUDIO_ENCODER_AMR_WB: case AUDIO_ENCODER_AAC: + case AUDIO_ENCODER_HE_AAC: case AUDIO_ENCODER_AAC_ELD: break; |