Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f1353b11 authored by Weiyin Jiang's avatar Weiyin Jiang Committed by Gerrit - the friendly Code Review server
Browse files

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.

Change-Id: Ib38c4e42b7667e9bf882cddb15422d0dd598b60e
CRs-Fixed: 752419
parent f5b5614a
Loading
Loading
Loading
Loading
+20 −8
Original line number Diff line number Diff line
@@ -2162,11 +2162,17 @@ status_t StagefrightRecorder::setSourcePause(bool pause) {
            }
        }
        if (mAudioEncoderOMX != NULL) {
            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) {
            err = mVideoSourceNode->pause();
@@ -2205,11 +2211,17 @@ status_t StagefrightRecorder::setSourcePause(bool pause) {
            }
        }
        if (mAudioEncoderOMX != NULL) {
            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");
            }
        }
    }
    return err;