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

Commit cdf96ffa authored by Marco Nelissen's avatar Marco Nelissen Committed by Gerrit Code Review
Browse files

Merge "ulaw and alaw aren't limited to 8kHz"

parents 340cebda 17c39e70
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -290,7 +290,7 @@ private:
            OMX_U32 portIndex, OMX_AUDIO_CODINGTYPE desiredFormat);

    status_t setupAMRCodec(bool encoder, bool isWAMR, int32_t bitRate);
    status_t setupG711Codec(bool encoder, int32_t numChannels);
    status_t setupG711Codec(bool encoder, int32_t sampleRate, int32_t numChannels);

    status_t setupFlacCodec(
            bool encoder, int32_t numChannels, int32_t sampleRate, int32_t compressionLevel);
+1 −1
Original line number Diff line number Diff line
@@ -250,7 +250,7 @@ private:

    status_t setAC3Format(int32_t numChannels, int32_t sampleRate);

    void setG711Format(int32_t numChannels);
    void setG711Format(int32_t sampleRate, int32_t numChannels);

    status_t setVideoPortFormatType(
            OMX_U32 portIndex,
+7 −3
Original line number Diff line number Diff line
@@ -1586,7 +1586,11 @@ status_t ACodec::configureCodec(
        if (!msg->findInt32("channel-count", &numChannels)) {
            err = INVALID_OPERATION;
        } else {
            err = setupG711Codec(encoder, numChannels);
            int32_t sampleRate;
            if (!msg->findInt32("sample-rate", &sampleRate)) {
                sampleRate = 8000;
            }
            err = setupG711Codec(encoder, sampleRate, numChannels);
        }
    } else if (!strcasecmp(mime, MEDIA_MIMETYPE_AUDIO_FLAC)) {
        int32_t numChannels, sampleRate, compressionLevel = -1;
@@ -2040,11 +2044,11 @@ status_t ACodec::setupAMRCodec(bool encoder, bool isWAMR, int32_t bitrate) {
            1 /* numChannels */);
}

status_t ACodec::setupG711Codec(bool encoder, int32_t numChannels) {
status_t ACodec::setupG711Codec(bool encoder, int32_t sampleRate, int32_t numChannels) {
    CHECK(!encoder);  // XXX TODO

    return setupRawAudioFormat(
            kPortIndexInput, 8000 /* sampleRate */, numChannels);
            kPortIndexInput, sampleRate, numChannels);
}

status_t ACodec::setupFlacCodec(
+7 −3
Original line number Diff line number Diff line
@@ -629,10 +629,14 @@ status_t OMXCodec::configureCodec(const sp<MetaData> &meta) {
        // These are PCM-like formats with a fixed sample rate but
        // a variable number of channels.

        int32_t sampleRate;
        int32_t numChannels;
        CHECK(meta->findInt32(kKeyChannelCount, &numChannels));
        if (!meta->findInt32(kKeySampleRate, &sampleRate)) {
            sampleRate = 8000;
        }

        setG711Format(numChannels);
        setG711Format(sampleRate, numChannels);
    } else if (!strcasecmp(MEDIA_MIMETYPE_AUDIO_RAW, mMIME)) {
        CHECK(!mIsEncoder);

@@ -3616,9 +3620,9 @@ status_t OMXCodec::setAC3Format(int32_t numChannels, int32_t sampleRate) {
            sizeof(def));
}

void OMXCodec::setG711Format(int32_t numChannels) {
void OMXCodec::setG711Format(int32_t sampleRate, int32_t numChannels) {
    CHECK(!mIsEncoder);
    setRawAudioFormat(kPortIndexInput, 8000, numChannels);
    setRawAudioFormat(kPortIndexInput, sampleRate, numChannels);
}

void OMXCodec::setImageOutputFormat(
+5 −2
Original line number Diff line number Diff line
@@ -41,8 +41,9 @@ SoftG711::SoftG711(
        OMX_COMPONENTTYPE **component)
    : SimpleSoftOMXComponent(name, callbacks, appData, component),
      mIsMLaw(true),
      mSignalledError(false),
      mNumChannels(1),
      mSignalledError(false) {
      mSamplingRate(8000) {
    if (!strcmp(name, "OMX.google.g711.alaw.decoder")) {
        mIsMLaw = false;
    } else {
@@ -129,7 +130,7 @@ OMX_ERRORTYPE SoftG711::internalGetParameter(
            pcmParams->eChannelMapping[1] = OMX_AUDIO_ChannelRF;

            pcmParams->nChannels = mNumChannels;
            pcmParams->nSamplingRate = 8000;
            pcmParams->nSamplingRate = mSamplingRate;

            return OMX_ErrorNone;
        }
@@ -159,6 +160,8 @@ OMX_ERRORTYPE SoftG711::internalSetParameter(
                mNumChannels = pcmParams->nChannels;
            }

            mSamplingRate = pcmParams->nSamplingRate;

            return OMX_ErrorNone;
        }

Loading