summaryrefslogtreecommitdiffstats
path: root/media/libmediaplayerservice
diff options
context:
space:
mode:
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");
}
}
}