Loading media/codec2/components/opus/C2SoftOpusEnc.cpp +10 −8 Original line number Diff line number Diff line Loading @@ -38,6 +38,8 @@ constexpr char COMPONENT_NAME[] = "c2.android.opus.encoder"; } // namespace static const int kMaxNumChannelsSupported = 2; class C2SoftOpusEnc::IntfImpl : public SimpleInterface<void>::BaseParams { public: explicit IntfImpl(const std::shared_ptr<C2ReflectorHelper> &helper) Loading Loading @@ -71,7 +73,7 @@ public: addParameter( DefineParam(mChannelCount, C2_PARAMKEY_CHANNEL_COUNT) .withDefault(new C2StreamChannelCountInfo::input(0u, 1)) .withFields({C2F(mChannelCount, value).inRange(1, 8)}) .withFields({C2F(mChannelCount, value).inRange(1, kMaxNumChannelsSupported)}) .withSetter((Setter<decltype(*mChannelCount)>::StrictValueWithNoDeps)) .build()); Loading Loading @@ -128,9 +130,8 @@ c2_status_t C2SoftOpusEnc::onInit() { } c2_status_t C2SoftOpusEnc::configureEncoder() { unsigned char mono_mapping[256] = {0}; unsigned char stereo_mapping[256] = {0, 1}; unsigned char surround_mapping[256] = {0, 1, 255}; static const unsigned char mono_mapping[256] = {0}; static const unsigned char stereo_mapping[256] = {0, 1}; mSampleRate = mIntf->getSampleRate(); mChannelCount = mIntf->getChannelCount(); uint32_t bitrate = mIntf->getBitrate(); Loading @@ -140,13 +141,14 @@ c2_status_t C2SoftOpusEnc::configureEncoder() { mChannelCount * mNumSamplesPerFrame * sizeof(int16_t); int err = C2_OK; unsigned char* mapping; if (mChannelCount < 2) { const unsigned char* mapping; if (mChannelCount == 1) { mapping = mono_mapping; } else if (mChannelCount == 2) { mapping = stereo_mapping; } else { mapping = surround_mapping; ALOGE("Number of channels (%d) is not supported", mChannelCount); return C2_BAD_VALUE; } if (mEncoder != nullptr) { Loading @@ -154,7 +156,7 @@ c2_status_t C2SoftOpusEnc::configureEncoder() { } mEncoder = opus_multistream_encoder_create(mSampleRate, mChannelCount, 1, 1, mapping, OPUS_APPLICATION_AUDIO, &err); 1, mChannelCount - 1, mapping, OPUS_APPLICATION_AUDIO, &err); if (err) { ALOGE("Could not create libopus encoder. Error code: %i", err); return C2_CORRUPTED; Loading Loading
media/codec2/components/opus/C2SoftOpusEnc.cpp +10 −8 Original line number Diff line number Diff line Loading @@ -38,6 +38,8 @@ constexpr char COMPONENT_NAME[] = "c2.android.opus.encoder"; } // namespace static const int kMaxNumChannelsSupported = 2; class C2SoftOpusEnc::IntfImpl : public SimpleInterface<void>::BaseParams { public: explicit IntfImpl(const std::shared_ptr<C2ReflectorHelper> &helper) Loading Loading @@ -71,7 +73,7 @@ public: addParameter( DefineParam(mChannelCount, C2_PARAMKEY_CHANNEL_COUNT) .withDefault(new C2StreamChannelCountInfo::input(0u, 1)) .withFields({C2F(mChannelCount, value).inRange(1, 8)}) .withFields({C2F(mChannelCount, value).inRange(1, kMaxNumChannelsSupported)}) .withSetter((Setter<decltype(*mChannelCount)>::StrictValueWithNoDeps)) .build()); Loading Loading @@ -128,9 +130,8 @@ c2_status_t C2SoftOpusEnc::onInit() { } c2_status_t C2SoftOpusEnc::configureEncoder() { unsigned char mono_mapping[256] = {0}; unsigned char stereo_mapping[256] = {0, 1}; unsigned char surround_mapping[256] = {0, 1, 255}; static const unsigned char mono_mapping[256] = {0}; static const unsigned char stereo_mapping[256] = {0, 1}; mSampleRate = mIntf->getSampleRate(); mChannelCount = mIntf->getChannelCount(); uint32_t bitrate = mIntf->getBitrate(); Loading @@ -140,13 +141,14 @@ c2_status_t C2SoftOpusEnc::configureEncoder() { mChannelCount * mNumSamplesPerFrame * sizeof(int16_t); int err = C2_OK; unsigned char* mapping; if (mChannelCount < 2) { const unsigned char* mapping; if (mChannelCount == 1) { mapping = mono_mapping; } else if (mChannelCount == 2) { mapping = stereo_mapping; } else { mapping = surround_mapping; ALOGE("Number of channels (%d) is not supported", mChannelCount); return C2_BAD_VALUE; } if (mEncoder != nullptr) { Loading @@ -154,7 +156,7 @@ c2_status_t C2SoftOpusEnc::configureEncoder() { } mEncoder = opus_multistream_encoder_create(mSampleRate, mChannelCount, 1, 1, mapping, OPUS_APPLICATION_AUDIO, &err); 1, mChannelCount - 1, mapping, OPUS_APPLICATION_AUDIO, &err); if (err) { ALOGE("Could not create libopus encoder. Error code: %i", err); return C2_CORRUPTED; Loading