arduino-audio-tools
Loading...
Searching...
No Matches
MuxerVideoSink Class Reference

Print sink that writes each frame it receives to a Muxer's video track via addVideoFrame(), determining a real isKeyFrame value instead of relying on that method's isKeyFrame=true default - via isH264KeyFrame() (Video.h) when the Muxer's video track is VideoFormat::H264, otherwise always true (correct for e.g. MJPEG, where every frame is independently decodable). More...

#include <ContainerCommon.h>

Inheritance diagram for MuxerVideoSink:
Print

Public Member Functions

virtual int availableForWrite ()
virtual int availableForWrite ()
void begin (Muxer &muxer)
virtual void flush ()
virtual void flush ()
size_t write (const uint8_t *data, size_t len) override
size_t write (uint8_t c) override

Protected Attributes

int _timeout = 10
Muxer * p_muxer = nullptr

Detailed Description

Print sink that writes each frame it receives to a Muxer's video track via addVideoFrame(), determining a real isKeyFrame value instead of relying on that method's isKeyFrame=true default - via isH264KeyFrame() (Video.h) when the Muxer's video track is VideoFormat::H264, otherwise always true (correct for e.g. MJPEG, where every frame is independently decodable).

Meant as the setOutput() target for a VideoEncoder whose write() would otherwise stream straight to the Muxer's own generic, format-dispatching write() (which has no isKeyFrame parameter at all) - or for any other already-encoded-frame producer that only has a plain Print to write to.

Author
Phil Schatzmann

Member Function Documentation

◆ availableForWrite() [1/2]

virtual int availableForWrite ( )
inlinevirtualinherited

Reimplemented in A2DPStream, AbstractURLStream, AdapterAudioStreamToAudioOutput, AnalogAudioStream, AdapterAudioStreamToAudioOutput, AudioOutput, AudioOutput, AudioStreamWrapper, AudioStreamWrapper, BaseStream, BaseStream, ConverterStream< T >, ConverterStream< T >, CsvOutput< T >, CsvOutput< T >, DynamicMemoryStream, DynamicMemoryStream, EncodedAudioOutput, EncodedAudioStream, FilteredStream< T, TF >, FilteredStream< T, TF >, FilteredStream< int16_t, int16_t >, MemoryOutput, MemoryOutput, MemoryStream, MemoryStream, OutputMixer< T >, OutputMixer< T >, ProgressStream, ProgressStream, QueueStream< T >, QueueStream< T >, QueueStream< uint8_t >, ReformatBaseStream, RingBufferStream, RingBufferStream, Throttle, Throttle, TimedStream, AudioBLEClient, AudioBLEClient, AudioBLEServer, AudioBLEServer, AudioEffectStream, AudioEffectStreamT< T >, AudioESP32ULP, AudioFFTBase, AudioLoRa, AudioOutput, AudioServerEx, AudioStreamWrapper, AudioSyncWriter, AutomaticGainControlStream, BaseStream, ChannelFormatConverterStream, ChannelFormatConverterStreamT< T >, ConverterStream< T >, CsvOutput< T >, DynamicMemoryStream, EncodedAudioOutput, EncodedAudioStream, Equalizer3BandsPerChannelT< T >, Equalizer3BandsPerChannelT< float >, Equalizer3BandsT< T >, Equalizer3BandsT< float >, ESPNowStream, FadeStream, FaustStream< DSP >, FileOutput, FilteredStream< T, TF >, FrequencyDetectorAutoCorrelation, FrequencyDetectorZeroCrossing, HammingFEC< bytecount, block_t >, I2SCodecStream, I2SStream, MeasuringStream, MemoryOutput, MemoryStream, MiniAudioStream, NRF24Stream, NumberFormatConverterStream, NumberFormatConverterStreamT< TFrom, TTo >, OutputMixer< T >, Pipeline, ProgressStream, PWMAudioOutput< PWMDriverT >, QualityAnalysisStream, QueueStream< T >, ReadioHeadStream, ReedSolomonFEC< bytecount, additional_bytes >, ReformatBaseStream, RingBufferStream, RTSPOutput< Platform >, SPIAudioMaster, SPIAudioSlave, StdioStream, SupportedRatesStream, SynchronizedStream, Throttle, TimedStream, UDPStream, URLStreamESP32, USBAudioStreamBase, VBANStream, and VolumeStream.

◆ availableForWrite() [2/2]

virtual int availableForWrite ( )
inlinevirtualinherited

Reimplemented in A2DPStream, AbstractURLStream, AdapterAudioStreamToAudioOutput, AnalogAudioStream, AdapterAudioStreamToAudioOutput, AudioOutput, AudioOutput, AudioStreamWrapper, AudioStreamWrapper, BaseStream, BaseStream, ConverterStream< T >, ConverterStream< T >, CsvOutput< T >, CsvOutput< T >, DynamicMemoryStream, DynamicMemoryStream, EncodedAudioOutput, EncodedAudioStream, FilteredStream< T, TF >, FilteredStream< T, TF >, FilteredStream< int16_t, int16_t >, MemoryOutput, MemoryOutput, MemoryStream, MemoryStream, OutputMixer< T >, OutputMixer< T >, ProgressStream, ProgressStream, QueueStream< T >, QueueStream< T >, QueueStream< uint8_t >, ReformatBaseStream, RingBufferStream, RingBufferStream, Throttle, Throttle, TimedStream, AudioBLEClient, AudioBLEClient, AudioBLEServer, AudioBLEServer, AudioEffectStream, AudioEffectStreamT< T >, AudioESP32ULP, AudioFFTBase, AudioLoRa, AudioOutput, AudioServerEx, AudioStreamWrapper, AudioSyncWriter, AutomaticGainControlStream, BaseStream, ChannelFormatConverterStream, ChannelFormatConverterStreamT< T >, ConverterStream< T >, CsvOutput< T >, DynamicMemoryStream, EncodedAudioOutput, EncodedAudioStream, Equalizer3BandsPerChannelT< T >, Equalizer3BandsPerChannelT< float >, Equalizer3BandsT< T >, Equalizer3BandsT< float >, ESPNowStream, FadeStream, FaustStream< DSP >, FileOutput, FilteredStream< T, TF >, FrequencyDetectorAutoCorrelation, FrequencyDetectorZeroCrossing, HammingFEC< bytecount, block_t >, I2SCodecStream, I2SStream, MeasuringStream, MemoryOutput, MemoryStream, MiniAudioStream, NRF24Stream, NumberFormatConverterStream, NumberFormatConverterStreamT< TFrom, TTo >, OutputMixer< T >, Pipeline, ProgressStream, PWMAudioOutput< PWMDriverT >, QualityAnalysisStream, QueueStream< T >, ReadioHeadStream, ReedSolomonFEC< bytecount, additional_bytes >, ReformatBaseStream, RingBufferStream, RTSPOutput< Platform >, SPIAudioMaster, SPIAudioSlave, StdioStream, SupportedRatesStream, SynchronizedStream, Throttle, TimedStream, UDPStream, URLStreamESP32, USBAudioStreamBase, VBANStream, and VolumeStream.

◆ begin()

void begin ( Muxer & muxer)
inline

◆ flush() [1/2]

◆ flush() [2/2]

◆ write() [1/2]

size_t write ( const uint8_t * data,
size_t len )
inlineoverridevirtual

Reimplemented from Print.

◆ write() [2/2]

size_t write ( uint8_t c)
inlineoverride

Member Data Documentation

◆ _timeout

int _timeout = 10
protectedinherited

◆ p_muxer

Muxer* p_muxer = nullptr
protected

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