template <typename CodecParams>

class CodecAdapterSWImpl

Defined at line 18 of file ../../src/media/codec/codecs/sw/codec_adapter_sw_impl.h

Protected Members

std::optional<CodecParams> codec_params_

Public Methods

void CodecAdapterSWImpl<CodecParams> (std::mutex & lock, CodecAdapterEvents * codec_adapter_events)

Defined at line 34 of file ../../src/media/codec/codecs/sw/codec_adapter_sw_impl.h

void ~CodecAdapterSWImpl<CodecParams> ()

Defined at line 36 of file ../../src/media/codec/codecs/sw/codec_adapter_sw_impl.h

fuchsia_sysmem2::BufferCollectionConstraints CoreCodecGetBufferCollectionConstraints2 (CodecPort port, const fuchsia::media::StreamBufferConstraints & stream_buffer_constraints, const fuchsia::media::StreamBufferPartialSettings & partial_settings)

Defined at line 38 of file ../../src/media/codec/codecs/sw/codec_adapter_sw_impl.h

void CoreCodecSetBufferCollectionInfo (CodecPort port, const fuchsia_sysmem2::BufferCollectionInfo & buffer_collection_info)

Defined at line 71 of file ../../src/media/codec/codecs/sw/codec_adapter_sw_impl.h

void CoreCodecStopStream ()

Defined at line 75 of file ../../src/media/codec/codecs/sw/codec_adapter_sw_impl.h

Protected Methods

void ProcessInputLoop ()

Defined at line 90 of file ../../src/media/codec/codecs/sw/codec_adapter_sw_impl.h

void InitChunkInputStream (const fuchsia::media::FormatDetails & format_details)

Defined at line 131 of file ../../src/media/codec/codecs/sw/codec_adapter_sw_impl.h

void CleanUpAfterStream ()

Defined at line 209 of file ../../src/media/codec/codecs/sw/codec_adapter_sw_impl.h

InputLoopStatus ProcessFormatDetails (const fuchsia::media::FormatDetails & format_details)

Processes format details and initializes appropriate internal configurations based

on it.

`codec_params_` should be initialized in this method.

int ProcessInputChunkData (const uint8_t * input_data, size_t input_data_size, uint8_t * output_buffer, size_t output_buffer_size)

Processes the data from input data. If processing was successful, returns the number

of output data bytes produced. If an error occurred, it returns -1.

For encoder, this method encodes the input data. For decoder, it decodes the input data.

The method manipulates the output buffer.

size_t InputChunkSize ()

The minimum frame size (number of input data bytes that can be processed) is 1 byte.

For convenience and intuition, we enforce the same for `ChunkInputStream::InputBlock`.

size_t MinOutputBufferSize ()

Returns the minimum number of bytes required to hold output data that is produced from

processing a single input chunk.

fuchsia::sysmem::BufferCollectionConstraints BufferCollectionConstraints (const CodecPort port)

Returns the constraints to use for `CodecAdapter::CoreCodecGetBufferCollectionConstraints`

depending on the port. The fields used are:

- fuchsia::sysmem::BufferCollectionConstraints.min_buffer_count_for_camping

- fuchsia::sysmem::BufferCollectionConstraintsbuffer_memory_constraints.min_size_bytes

- fuchsia::sysmem::BufferCollectionConstraintsbuffer_memory_constraints.max_size_bytes

TimestampExtrapolator CreateTimestampExtrapolator (const fuchsia::media::FormatDetails & format_details)
void ResetCodecParams ()

Reset codec params. Default behaviour is to reset it to null option.

Defined at line 244 of file ../../src/media/codec/codecs/sw/codec_adapter_sw_impl.h

Enumerations

enum InputLoopStatus
Name Value
kOk 0
kShouldTerminate 1

Defined at line 20 of file ../../src/media/codec/codecs/sw/codec_adapter_sw_impl.h

Records