Twitch SDK (Internal)
Public Member Functions | Private Member Functions | Private Attributes | List of all members
ttv::broadcast::LameAudioEncoder Class Reference

#include <lameaudioencoder.h>

Inheritance diagram for ttv::broadcast::LameAudioEncoder:
ttv::broadcast::IAudioEncoder

Public Member Functions

 LameAudioEncoder ()
 
virtual ~LameAudioEncoder ()
 
virtual std::string GetName () const override
 
virtual TTV_ErrorCode SetFrameWriter (const std::shared_ptr< IFrameWriter > &frameWriter) override
 
virtual TTV_ErrorCode GetAudioEncodingFormat (AudioFormat &result) override
 
virtual TTV_ErrorCode Initialize () override
 
virtual TTV_ErrorCode Start (uint32_t streamIndex, const AudioParams &audioParams) override
 
virtual TTV_ErrorCode GetNumInputSamplesPerEncodeFrame (uint32_t &result) override
 
virtual TTV_ErrorCode Stop () override
 
virtual TTV_ErrorCode Shutdown () override
 
virtual TTV_ErrorCode SubmitFrame (const std::shared_ptr< AudioFrame > &audioFrame) override
 
virtual bool SupportsReceiverProtocol (IAudioFrameReceiver::ReceiverTypeId typeId) const override
 
virtual std::shared_ptr< IAudioFrameReceiverGetReceiverImplementation (IAudioFrameReceiver::ReceiverTypeId typeId) override
 
template<typename T >
bool SupportsReceiverProtocol () const
 

Private Member Functions

TTV_ErrorCode SubmitPcmSamples (const int16_t *samples, uint32_t numSamplesPerChannel)
 
TTV_ErrorCode FlushAudioData ()
 
TTV_ErrorCode WritePacket ()
 

Private Attributes

std::unique_ptr< LameAudioEncoderInternalData > mInternalData
 

Constructor & Destructor Documentation

◆ LameAudioEncoder()

ttv::broadcast::LameAudioEncoder::LameAudioEncoder ( )

◆ ~LameAudioEncoder()

virtual ttv::broadcast::LameAudioEncoder::~LameAudioEncoder ( )
virtual

Member Function Documentation

◆ FlushAudioData()

TTV_ErrorCode ttv::broadcast::LameAudioEncoder::FlushAudioData ( )
private

◆ GetAudioEncodingFormat()

virtual TTV_ErrorCode ttv::broadcast::LameAudioEncoder::GetAudioEncodingFormat ( AudioFormat result)
overridevirtual

◆ GetName()

virtual std::string ttv::broadcast::LameAudioEncoder::GetName ( ) const
overridevirtual

Retrieves the name for logging purposes.

Implements ttv::broadcast::IAudioEncoder.

◆ GetNumInputSamplesPerEncodeFrame()

virtual TTV_ErrorCode ttv::broadcast::LameAudioEncoder::GetNumInputSamplesPerEncodeFrame ( uint32_t &  result)
overridevirtual

Assuming the encoder requires a data frame of constant size this is the number of samples in the frame. If it does not need to be constant then result will be 0.

Implements ttv::broadcast::IAudioEncoder.

◆ GetReceiverImplementation()

virtual std::shared_ptr<IAudioFrameReceiver> ttv::broadcast::LameAudioEncoder::GetReceiverImplementation ( IAudioFrameReceiver::ReceiverTypeId  typeId)
overridevirtual

Obtains the receiver for the given protocol. If not implemented, null will be returned.

Implements ttv::broadcast::IAudioEncoder.

◆ Initialize()

virtual TTV_ErrorCode ttv::broadcast::LameAudioEncoder::Initialize ( )
overridevirtual

◆ SetFrameWriter()

virtual TTV_ErrorCode ttv::broadcast::LameAudioEncoder::SetFrameWriter ( const std::shared_ptr< IFrameWriter > &  frameWriter)
overridevirtual

◆ Shutdown()

virtual TTV_ErrorCode ttv::broadcast::LameAudioEncoder::Shutdown ( )
overridevirtual

◆ Start()

virtual TTV_ErrorCode ttv::broadcast::LameAudioEncoder::Start ( uint32_t  streamIndex,
const AudioParams audioParams 
)
overridevirtual

◆ Stop()

virtual TTV_ErrorCode ttv::broadcast::LameAudioEncoder::Stop ( )
overridevirtual

◆ SubmitFrame()

virtual TTV_ErrorCode ttv::broadcast::LameAudioEncoder::SubmitFrame ( const std::shared_ptr< AudioFrame > &  audioFrame)
overridevirtual

Submits the given audio frame. It should have been created by using the IAudioFrameReceiver implementation returned by GetReceiverImplementation().

Implements ttv::broadcast::IAudioEncoder.

◆ SubmitPcmSamples()

TTV_ErrorCode ttv::broadcast::LameAudioEncoder::SubmitPcmSamples ( const int16_t *  samples,
uint32_t  numSamplesPerChannel 
)
private

◆ SupportsReceiverProtocol() [1/2]

virtual bool ttv::broadcast::LameAudioEncoder::SupportsReceiverProtocol ( IAudioFrameReceiver::ReceiverTypeId  typeId) const
overridevirtual

Determines if the concrete implementation supports the given protocol.

Implements ttv::broadcast::IAudioEncoder.

◆ SupportsReceiverProtocol() [2/2]

template<typename T >
bool ttv::broadcast::IAudioEncoder::SupportsReceiverProtocol ( ) const
inlineinherited

Determines if the concrete implementation supports the given protocol. The template parameter must be known to derive from IAudioFrameReceiver.

◆ WritePacket()

TTV_ErrorCode ttv::broadcast::LameAudioEncoder::WritePacket ( )
private

Member Data Documentation

◆ mInternalData

std::unique_ptr<LameAudioEncoderInternalData> ttv::broadcast::LameAudioEncoder::mInternalData
private

The documentation for this class was generated from the following file: