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 (CodecPort port, 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