summaryrefslogtreecommitdiffstats
path: root/media/libmediaplayerservice
diff options
context:
space:
mode:
authorWeiyin Jiang <wjiang@codeaurora.org>2014-11-13 12:56:05 +0800
committerKhalid Zubair <kzubair@cyngn.com>2016-02-25 15:56:44 -0800
commitc5fa90a809c9e7a98e32373a4dea6b3e46a0e92c (patch)
tree6c3bee0f9a89b94fa150b2cb21522f05c774a4b3 /media/libmediaplayerservice
parentfda1413978cabfafdf184c02aa20d2fd8c095616 (diff)
downloadframeworks_av-c5fa90a809c9e7a98e32373a4dea6b3e46a0e92c.zip
frameworks_av-c5fa90a809c9e7a98e32373a4dea6b3e46a0e92c.tar.gz
frameworks_av-c5fa90a809c9e7a98e32373a4dea6b3e46a0e92c.tar.bz2
audio: omx encoder isn't expected for raw recording
Raw recording doesn't require any encoder, so no OMX encoder will be created and audio source will be directly used as media source. UNKNOWN_ERROR error will be threwn if call AudioSource::start() continuously, so we should avoid omx encoder operations if it's not created for raw recording. CYNGNOS-1679 Change-Id: Ib38c4e42b7667e9bf882cddb15422d0dd598b60e CRs-Fixed: 752419 (cherry picked from commit 587267232a2829936510bbe46591863403782d1a)
Diffstat (limited to 'media/libmediaplayerservice')
-rw-r--r--media/libmediaplayerservice/StagefrightRecorder.cpp28
1 files changed, 20 insertions, 8 deletions
diff --git a/media/libmediaplayerservice/StagefrightRecorder.cpp b/media/libmediaplayerservice/StagefrightRecorder.cpp
index c4c5741..709e653 100644
--- a/media/libmediaplayerservice/StagefrightRecorder.cpp
+++ b/media/libmediaplayerservice/StagefrightRecorder.cpp
@@ -2044,10 +2044,16 @@ status_t StagefrightRecorder::setSourcePause(bool pause) {
}
}
if (mAudioEncoderOMX != NULL) {
- err = mAudioEncoderOMX->pause();
- if (err != OK) {
- ALOGE("OMX AudioEncoder pause failed");
- return err;
+ if (mAudioEncoderOMX != mAudioSourceNode) {
+ err = mAudioEncoderOMX->pause();
+ if (err != OK) {
+ ALOGE("OMX AudioEncoder pause failed");
+ return err;
+ }
+ } else {
+ // If AudioSource is the same as MediaSource(as in LPCM),
+ // bypass omx encoder pause() call.
+ ALOGV("OMX AudioEncoder->pause() bypassed");
}
}
if (mVideoSourceNode != NULL) {
@@ -2087,10 +2093,16 @@ status_t StagefrightRecorder::setSourcePause(bool pause) {
}
}
if (mAudioEncoderOMX != NULL) {
- err = mAudioEncoderOMX->start();
- if (err != OK) {
- ALOGE("OMX AudioEncoder start failed");
- return err;
+ if (mAudioEncoderOMX != mAudioSourceNode) {
+ err = mAudioEncoderOMX->start();
+ if (err != OK) {
+ ALOGE("OMX AudioEncoder start failed");
+ return err;
+ }
+ } else {
+ // If AudioSource is the same as MediaSource(as in LPCM),
+ // bypass omx encoder start() call.
+ ALOGV("OMX AudioEncoder->start() bypassed");
}
}
}