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

Commit 4db37ced authored by Robert Shih's avatar Robert Shih
Browse files

Fixed StagefrightRecorder::setupVideoEncoder to use the clipped bitrate value

mVideoBitRate; removed unused arguments after refactoring.

Bug: 11074303
Change-Id: Ieb5dd7dc67e5bc16b6e580ba11b157e4365f3cd6
parent 0f3984ed
Loading
Loading
Loading
Loading
+10 −18
Original line number Diff line number Diff line
@@ -972,7 +972,7 @@ status_t StagefrightRecorder::startRTPRecording() {
            return err;
        }

        err = setupVideoEncoder(mediaSource, mVideoBitRate, &source);
        err = setupVideoEncoder(mediaSource, &source);
        if (err != OK) {
            return err;
        }
@@ -1016,7 +1016,7 @@ status_t StagefrightRecorder::startMPEG2TSRecording() {
        }

        sp<MediaSource> encoder;
        err = setupVideoEncoder(mediaSource, mVideoBitRate, &encoder);
        err = setupVideoEncoder(mediaSource, &encoder);

        if (err != OK) {
            return err;
@@ -1364,12 +1364,11 @@ status_t StagefrightRecorder::setupCameraSource(

status_t StagefrightRecorder::setupVideoEncoder(
        sp<MediaSource> cameraSource,
        int32_t videoBitRate,
        sp<MediaSource> *source) {
    source->clear();

    sp<MetaData> enc_meta = new MetaData;
    enc_meta->setInt32(kKeyBitRate, videoBitRate);
    enc_meta->setInt32(kKeyBitRate, mVideoBitRate);
    enc_meta->setInt32(kKeyFrameRate, mFrameRate);

    switch (mVideoEncoder) {
@@ -1476,16 +1475,11 @@ status_t StagefrightRecorder::setupAudioEncoder(const sp<MediaWriter>& writer) {
    return OK;
}

status_t StagefrightRecorder::setupMPEG4Recording(
        int outputFd,
        int32_t videoWidth, int32_t videoHeight,
        int32_t videoBitRate,
        int32_t *totalBitRate,
        sp<MediaWriter> *mediaWriter) {
    mediaWriter->clear();
status_t StagefrightRecorder::setupMPEG4Recording(int32_t *totalBitRate) {
    mWriter.clear();
    *totalBitRate = 0;
    status_t err = OK;
    sp<MediaWriter> writer = new MPEG4Writer(outputFd);
    sp<MediaWriter> writer = new MPEG4Writer(mOutputFd);

    if (mVideoSource < VIDEO_SOURCE_LIST_END) {

@@ -1496,13 +1490,13 @@ status_t StagefrightRecorder::setupMPEG4Recording(
        }

        sp<MediaSource> encoder;
        err = setupVideoEncoder(mediaSource, videoBitRate, &encoder);
        err = setupVideoEncoder(mediaSource, &encoder);
        if (err != OK) {
            return err;
        }

        writer->addSource(encoder);
        *totalBitRate += videoBitRate;
        *totalBitRate += mVideoBitRate;
    }

    // Audio source is added at the end if it exists.
@@ -1536,7 +1530,7 @@ status_t StagefrightRecorder::setupMPEG4Recording(
    }

    writer->setListener(mListener);
    *mediaWriter = writer;
    mWriter = writer;
    return OK;
}

@@ -1559,9 +1553,7 @@ void StagefrightRecorder::setupMPEG4MetaData(int64_t startTimeUs, int32_t totalB

status_t StagefrightRecorder::startMPEG4Recording() {
    int32_t totalBitRate;
    status_t err = setupMPEG4Recording(
            mOutputFd, mVideoWidth, mVideoHeight,
            mVideoBitRate, &totalBitRate, &mWriter);
    status_t err = setupMPEG4Recording(&totalBitRate);
    if (err != OK) {
        return err;
    }
+2 −10
Original line number Diff line number Diff line
@@ -124,12 +124,7 @@ private:
    // frame buffers will be queued and dequeued
    sp<SurfaceMediaSource> mSurfaceMediaSource;

    status_t setupMPEG4Recording(
        int outputFd,
        int32_t videoWidth, int32_t videoHeight,
        int32_t videoBitRate,
        int32_t *totalBitRate,
        sp<MediaWriter> *mediaWriter);
    status_t setupMPEG4Recording(int32_t *totalBitRate);
    void setupMPEG4MetaData(int64_t startTimeUs, int32_t totalBitRate,
        sp<MetaData> *meta);
    status_t startMPEG4Recording();
@@ -150,10 +145,7 @@ private:
    status_t setupSurfaceMediaSource();

    status_t setupAudioEncoder(const sp<MediaWriter>& writer);
    status_t setupVideoEncoder(
            sp<MediaSource> cameraSource,
            int32_t videoBitRate,
            sp<MediaSource> *source);
    status_t setupVideoEncoder(sp<MediaSource> cameraSource, sp<MediaSource> *source);

    // Encoding parameter handling utilities
    status_t setParameter(const String8 &key, const String8 &value);