class CodecAdapterSbcEncoder
Defined at line 32 of file ../../src/media/codec/codecs/sw/sbc/codec_adapter_sbc_encoder.h
Note on concurrency and global state:
The underlying third-party SBC encoder library (//third_party/.../embdrv/sbc)
relies on mutable process-global variables (EncMaxShiftCounter, ShiftCounter,
and s16X) without synchronization. Therefore, CodecAdapterSbcEncoder is not
thread-safe across multiple instances in the same process and cannot support
concurrent encoder instances within a single address space.
In Fuchsia, each software codec component isolate hosts at most a single codec
instance (via LocalSingleCodecFactory) and serializes processing on
input_processing_thread_. Sequential stream reuse within an instance is supported
by re-initializing global state via SBC_Encoder_Init.
Public Methods
void CodecAdapterSbcEncoder (std::mutex & lock, CodecAdapterEvents * codec_adapter_events)
Defined at line 45 of file ../../src/media/codec/codecs/sw/sbc/codec_adapter_sbc_encoder.cc
void ~CodecAdapterSbcEncoder ()
Defined at line 49 of file ../../src/media/codec/codecs/sw/sbc/codec_adapter_sbc_encoder.cc
fuchsia_sysmem2::BufferCollectionConstraints CoreCodecGetBufferCollectionConstraints2 (CodecPortport,const fuchsia::media::StreamBufferConstraints &stream_buffer_constraints,const fuchsia::media::StreamBufferPartialSettings &partial_settings)
Defined at line 116 of file ../../src/media/codec/codecs/sw/sbc/codec_adapter_sbc_encoder.cc
void CoreCodecSetBufferCollectionInfo (CodecPort port, const fuchsia_sysmem2::BufferCollectionInfo & buffer_collection_info)
Defined at line 441 of file ../../src/media/codec/codecs/sw/sbc/codec_adapter_sbc_encoder.cc
void CoreCodecStopStream ()
Defined at line 179 of file ../../src/media/codec/codecs/sw/sbc/codec_adapter_sbc_encoder.cc
Protected Methods
void ProcessInputLoop ()
Processes input in a loop. Should only execute on input_processing_thread_.
Loops for the lifetime of a stream.
Defined at line 51 of file ../../src/media/codec/codecs/sw/sbc/codec_adapter_sbc_encoder.cc
void CleanUpAfterStream ()
Defined at line 86 of file ../../src/media/codec/codecs/sw/sbc/codec_adapter_sbc_encoder.cc
std::pair<fuchsia::media::FormatDetails, size_t> OutputFormatDetails ()
Defined at line 96 of file ../../src/media/codec/codecs/sw/sbc/codec_adapter_sbc_encoder.cc