Loading media/codec2/components/flac/C2SoftFlacEnc.cpp +24 −4 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ #include <audio_utils/primitives.h> #include <media/stagefright/foundation/MediaDefs.h> #include <C2Debug.h> #include <C2PlatformSupport.h> #include <SimpleC2Interface.h> Loading Loading @@ -81,10 +82,6 @@ public: FLAC_COMPRESSION_LEVEL_MIN, FLAC_COMPRESSION_LEVEL_MAX)}) .withSetter(Setter<decltype(*mComplexity)>::NonStrictValueWithNoDeps) .build()); addParameter( DefineParam(mInputMaxBufSize, C2_PARAMKEY_INPUT_MAX_BUFFER_SIZE) .withConstValue(new C2StreamMaxBufferSizeInfo::input(0u, 4608)) .build()); addParameter( DefineParam(mPcmEncodingInfo, C2_PARAMKEY_PCM_ENCODING) Loading @@ -96,6 +93,26 @@ public: }) .withSetter((Setter<decltype(*mPcmEncodingInfo)>::StrictValueWithNoDeps)) .build()); addParameter( DefineParam(mInputMaxBufSize, C2_PARAMKEY_INPUT_MAX_BUFFER_SIZE) .withDefault(new C2StreamMaxBufferSizeInfo::input(0u, kMaxBlockSize)) .withFields({ C2F(mInputMaxBufSize, value).any(), }) .withSetter(MaxInputSizeSetter, mChannelCount, mPcmEncodingInfo) .build()); } static C2R MaxInputSizeSetter(bool mayBlock, C2P<C2StreamMaxBufferSizeInfo::input> &me, const C2P<C2StreamChannelCountInfo::input> &channelCount, const C2P<C2StreamPcmEncodingInfo::input> &pcmEncoding) { (void)mayBlock; C2R res = C2R::Ok(); int bytesPerSample = pcmEncoding.v.value == C2Config::PCM_FLOAT ? 4 : 2; me.set().value = kMaxBlockSize * bytesPerSample * channelCount.v.value; return res; } uint32_t getSampleRate() const { return mSampleRate->value; } Loading Loading @@ -446,6 +463,9 @@ status_t C2SoftFlacEnc::configureEncoder() { mBlockSize = FLAC__stream_encoder_get_blocksize(mFlacStreamEncoder); // Update kMaxBlockSize to match maximum size used by the encoder CHECK(mBlockSize <= kMaxBlockSize); ALOGV("encoder successfully configured"); return OK; } Loading media/codec2/components/flac/C2SoftFlacEnc.h +2 −1 Original line number Diff line number Diff line Loading @@ -63,7 +63,8 @@ private: std::shared_ptr<IntfImpl> mIntf; const unsigned int kInBlockSize = 1152; const unsigned int kMaxNumChannels = 2; static constexpr unsigned int kMaxNumChannels = 2; static constexpr unsigned int kMaxBlockSize = 4608; FLAC__StreamEncoder* mFlacStreamEncoder; FLAC__int32* mInputBufferPcm32; std::shared_ptr<C2LinearBlock> mOutputBlock; Loading Loading
media/codec2/components/flac/C2SoftFlacEnc.cpp +24 −4 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ #include <audio_utils/primitives.h> #include <media/stagefright/foundation/MediaDefs.h> #include <C2Debug.h> #include <C2PlatformSupport.h> #include <SimpleC2Interface.h> Loading Loading @@ -81,10 +82,6 @@ public: FLAC_COMPRESSION_LEVEL_MIN, FLAC_COMPRESSION_LEVEL_MAX)}) .withSetter(Setter<decltype(*mComplexity)>::NonStrictValueWithNoDeps) .build()); addParameter( DefineParam(mInputMaxBufSize, C2_PARAMKEY_INPUT_MAX_BUFFER_SIZE) .withConstValue(new C2StreamMaxBufferSizeInfo::input(0u, 4608)) .build()); addParameter( DefineParam(mPcmEncodingInfo, C2_PARAMKEY_PCM_ENCODING) Loading @@ -96,6 +93,26 @@ public: }) .withSetter((Setter<decltype(*mPcmEncodingInfo)>::StrictValueWithNoDeps)) .build()); addParameter( DefineParam(mInputMaxBufSize, C2_PARAMKEY_INPUT_MAX_BUFFER_SIZE) .withDefault(new C2StreamMaxBufferSizeInfo::input(0u, kMaxBlockSize)) .withFields({ C2F(mInputMaxBufSize, value).any(), }) .withSetter(MaxInputSizeSetter, mChannelCount, mPcmEncodingInfo) .build()); } static C2R MaxInputSizeSetter(bool mayBlock, C2P<C2StreamMaxBufferSizeInfo::input> &me, const C2P<C2StreamChannelCountInfo::input> &channelCount, const C2P<C2StreamPcmEncodingInfo::input> &pcmEncoding) { (void)mayBlock; C2R res = C2R::Ok(); int bytesPerSample = pcmEncoding.v.value == C2Config::PCM_FLOAT ? 4 : 2; me.set().value = kMaxBlockSize * bytesPerSample * channelCount.v.value; return res; } uint32_t getSampleRate() const { return mSampleRate->value; } Loading Loading @@ -446,6 +463,9 @@ status_t C2SoftFlacEnc::configureEncoder() { mBlockSize = FLAC__stream_encoder_get_blocksize(mFlacStreamEncoder); // Update kMaxBlockSize to match maximum size used by the encoder CHECK(mBlockSize <= kMaxBlockSize); ALOGV("encoder successfully configured"); return OK; } Loading
media/codec2/components/flac/C2SoftFlacEnc.h +2 −1 Original line number Diff line number Diff line Loading @@ -63,7 +63,8 @@ private: std::shared_ptr<IntfImpl> mIntf; const unsigned int kInBlockSize = 1152; const unsigned int kMaxNumChannels = 2; static constexpr unsigned int kMaxNumChannels = 2; static constexpr unsigned int kMaxBlockSize = 4608; FLAC__StreamEncoder* mFlacStreamEncoder; FLAC__int32* mInputBufferPcm32; std::shared_ptr<C2LinearBlock> mOutputBlock; Loading