template <typename LocalOutput>

class CodecAdapterSW

Defined at line 46 of file ../../src/media/codec/codecs/sw/codec_adapter_sw.h

Protected Members

BlockingMpscQueue input_queue_
BlockingMpscQueue free_output_packets_
BufferPool output_buffer_pool_
std::map<CodecPacket *, LocalOutput> in_use_by_client_
vector staged_output_buffers_
uint64_t input_format_details_version_ordinal_
Loop input_processing_loop_
thrd_t input_processing_thread_

Public Methods

void CodecAdapterSW<LocalOutput> (std::mutex & lock, CodecAdapterEvents * codec_adapter_events)

Defined at line 48 of file ../../src/media/codec/codecs/sw/codec_adapter_sw.h

void ~CodecAdapterSW<LocalOutput> ()

Defined at line 56 of file ../../src/media/codec/codecs/sw/codec_adapter_sw.h

bool IsCoreCodecRequiringOutputConfigForFormatDetection ()

Defined at line 58 of file ../../src/media/codec/codecs/sw/codec_adapter_sw.h

bool IsCoreCodecMappedBufferUseful (CodecPort port)

Defined at line 60 of file ../../src/media/codec/codecs/sw/codec_adapter_sw.h

bool IsCoreCodecHwBased (CodecPort port)

Defined at line 62 of file ../../src/media/codec/codecs/sw/codec_adapter_sw.h

void CoreCodecInit (const fuchsia::media::FormatDetails & initial_input_format_details)

Defined at line 64 of file ../../src/media/codec/codecs/sw/codec_adapter_sw.h

void CoreCodecAddBuffer (CodecPort port, const CodecBuffer * buffer)

Defined at line 85 of file ../../src/media/codec/codecs/sw/codec_adapter_sw.h

void CoreCodecConfigureBuffers (CodecPort port, const std::vector<std::unique_ptr<CodecPacket>> & packets)

Defined at line 93 of file ../../src/media/codec/codecs/sw/codec_adapter_sw.h

void CoreCodecStartStream ()

Defined at line 108 of file ../../src/media/codec/codecs/sw/codec_adapter_sw.h

void CoreCodecQueueInputFormatDetails (const fuchsia::media::FormatDetails & per_stream_override_format_details)

Defined at line 126 of file ../../src/media/codec/codecs/sw/codec_adapter_sw.h

void CoreCodecQueueInputPacket (CodecPacket * packet)

Defined at line 137 of file ../../src/media/codec/codecs/sw/codec_adapter_sw.h

void CoreCodecQueueInputEndOfStream ()

Defined at line 142 of file ../../src/media/codec/codecs/sw/codec_adapter_sw.h

void CoreCodecStopStream ()

Defined at line 146 of file ../../src/media/codec/codecs/sw/codec_adapter_sw.h

void CoreCodecRecycleOutputPacket (CodecPacket * packet)

Defined at line 166 of file ../../src/media/codec/codecs/sw/codec_adapter_sw.h

void CoreCodecEnsureBuffersNotConfigured (CodecPort port)

Defined at line 188 of file ../../src/media/codec/codecs/sw/codec_adapter_sw.h

void CoreCodecMidStreamOutputBufferReConfigPrepare ()

Defined at line 216 of file ../../src/media/codec/codecs/sw/codec_adapter_sw.h

void CoreCodecMidStreamOutputBufferReConfigFinish ()

Defined at line 220 of file ../../src/media/codec/codecs/sw/codec_adapter_sw.h

std::unique_ptr<const fuchsia::media::StreamOutputConstraints> CoreCodecBuildNewOutputConstraints (uint64_t stream_lifetime_ordinal, uint64_t new_output_buffer_constraints_version_ordinal, bool buffer_constraints_action_required)

Defined at line 222 of file ../../src/media/codec/codecs/sw/codec_adapter_sw.h

fuchsia::media::StreamOutputFormat CoreCodecGetOutputFormat (uint64_t stream_lifetime_ordinal, uint64_t new_output_format_details_version_ordinal)

Defined at line 240 of file ../../src/media/codec/codecs/sw/codec_adapter_sw.h

Protected Methods

void CleanUpAfterStream ()

Releases any resources from the just-ended stream.

void WaitForInputProcessingLoopToEnd ()

Defined at line 254 of file ../../src/media/codec/codecs/sw/codec_adapter_sw.h

void LoadStagedOutputBuffers ()

We don't give the codec any buffers in its output pool until

configuration is finished or a stream starts. Until finishing

configuration we stage all the buffers. Here we load all the staged

buffers so the codec can make output.

Defined at line 283 of file ../../src/media/codec/codecs/sw/codec_adapter_sw.h

void ProcessInputLoop ()

Processes input in a loop. Should only execute on input_processing_thread_.

Loops for the lifetime of a stream.

std::pair<fuchsia::media::FormatDetails, size_t> OutputFormatDetails ()

Returns the format details of the output and the bytes needed to store each

output packet.