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

Commit 44b004b0 authored by James Dong's avatar James Dong
Browse files

Eliminate recording sound by starting the video track before audio track.

Due to the variable delays in the system, the recording sound can still be heard
if the audio track is started early. This happens even after we suppress a relative
long period of initial audio for a recording session. By starting the video track
before the audio track, we effectively play the recording sound earlier.

bug - 3371141

Change-Id: I2cccf77eae953d96827fc080c618b1d962445c26
parent b098f735
Loading
Loading
Loading
Loading
+9 −6
Original line number Diff line number Diff line
@@ -1295,12 +1295,6 @@ status_t StagefrightRecorder::setupMPEG4Recording(
    status_t err = OK;
    sp<MediaWriter> writer = new MPEG4Writer(outputFd);

    // Add audio source first if it exists
    if (!mCaptureTimeLapse && (mAudioSource != AUDIO_SOURCE_LIST_END)) {
        err = setupAudioEncoder(writer);
        if (err != OK) return err;
        *totalBitRate += mAudioBitRate;
    }
    if (mVideoSource == VIDEO_SOURCE_DEFAULT
            || mVideoSource == VIDEO_SOURCE_CAMERA) {

@@ -1332,6 +1326,15 @@ status_t StagefrightRecorder::setupMPEG4Recording(
        *totalBitRate += videoBitRate;
    }

    // Audio source is added at the end if it exists.
    // This help make sure that the "recoding" sound is suppressed for
    // camcorder applications in the recorded files.
    if (!mCaptureTimeLapse && (mAudioSource != AUDIO_SOURCE_LIST_END)) {
        err = setupAudioEncoder(writer);
        if (err != OK) return err;
        *totalBitRate += mAudioBitRate;
    }

    if (mInterleaveDurationUs > 0) {
        reinterpret_cast<MPEG4Writer *>(writer.get())->
            setInterleaveDuration(mInterleaveDurationUs);