arduino-audio-tools
Loading...
Searching...
No Matches
Public Member Functions | Protected Attributes | List of all members
RTSPAudioSource Class Reference

Unified RTSP Audio Source - Works with both Stream and AudioStream. More...

#include <RTSPAudioSource.h>

Inheritance diagram for RTSPAudioSource:
IAudioSource

Public Member Functions

 RTSPAudioSource (AudioStream &stream)
 Construct from AudioStream with automatic audio info detection.
 
 RTSPAudioSource (Stream &stream, AudioInfo info)
 Construct from generic Stream with explicit audio info.
 
 RTSPAudioSource (Stream &stream, RTSPFormat &format)
 Construct with custom format.
 
virtual ~RTSPAudioSource ()
 Destructor - Clean up resources.
 
RTSPFormatgetFormat () override
 Get the audio format configuration.
 
bool isActive ()
 Check if source is actively being read (AudioStream only)
 
bool isStarted ()
 Returns true after start() has been called.
 
int readBytes (void *dest, int byteCount) override
 Read audio data for RTSP streaming.
 
void setAudioInfo (AudioInfo info)
 Set audio configuration manually.
 
void setFormat (RTSPFormat &format)
 
void setFragmentSize (int fragmentSize)
 Defines the fragment size.
 
void setInput (AudioStream &stream)
 Set input from AudioStream (with auto-detection)
 
void setInput (Stream &stream)
 Set input from generic Stream (audio info must be set separately)
 
void setInput (Stream &stream, AudioInfo info)
 Set input from generic Stream with explicit audio info.
 
void setTimeout (uint16_t to)
 
void setTimerPeriod (int period)
 Defines the timer period.
 
void start () override
 Start the audio source.
 
void stop () override
 Stop the audio source.
 

Protected Attributes

RTSPFormatPCM default_format
 
uint32_t m_magic = MAGIC_NUMBER
 
const uint32_t MAGIC_NUMBER
 
AudioStreamp_audiostream = nullptr
 
RTSPFormatp_format = &default_format
 
Streamp_stream = nullptr
 
bool started = false
 
uint32_t time_of_last_read = 0
 
uint16_t timeout = 0
 

Detailed Description

Unified RTSP Audio Source - Works with both Stream and AudioStream.

This class can adapt any Arduino Stream or AudioTools AudioStream into an IAudioSource for RTSP streaming. It automatically detects AudioStream capabilities when available and falls back to manual configuration for generic Streams.

Author
Phil Schatzmann

Constructor & Destructor Documentation

◆ RTSPAudioSource() [1/3]

RTSPAudioSource ( AudioStream stream)
inline

Construct from AudioStream with automatic audio info detection.

Parameters
streamAudioStream that provides audio configuration automatically

◆ RTSPAudioSource() [2/3]

RTSPAudioSource ( Stream stream,
AudioInfo  info 
)
inline

Construct from generic Stream with explicit audio info.

Parameters
streamAny Arduino Stream object
infoAudio configuration (sample rate, channels, bit depth)

◆ RTSPAudioSource() [3/3]

RTSPAudioSource ( Stream stream,
RTSPFormat format 
)
inline

Construct with custom format.

Parameters
streamInput stream (Stream or AudioStream)
formatCustom RTSP format implementation

Member Function Documentation

◆ getFormat()

RTSPFormat & getFormat ( )
inlineoverridevirtual

Get the audio format configuration.

Returns the RTSPFormat object that describes the audio data characteristics including sample rate, bit depth, number of channels, and RTP packaging parameters. If no format has been explicitly set, creates a default 16-bit PCM format at 16kHz mono.

Returns
Pointer to RTSPFormat describing the audio characteristics
Note
Default format: 16-bit PCM, 16000 Hz, 1 channel
See also
setFormat(), RTSPFormatPCM

Implements IAudioSource.

◆ isActive()

bool isActive ( )
inline

Check if source is actively being read (AudioStream only)

Returns
true if recent read activity detected, false otherwise

◆ readBytes()

int readBytes ( void *  dest,
int  byteCount 
)
inlineoverridevirtual

Read audio data for RTSP streaming.

Parameters
destBuffer to receive audio data
byteCountNumber of bytes to read
Returns
Actual number of bytes read

Implements IAudioSource.

◆ setAudioInfo()

void setAudioInfo ( AudioInfo  info)
inline

Set audio configuration manually.

This is required when using generic Stream objects, but optional for AudioStream objects which can provide their own configuration.

Parameters
infoAudio configuration (sample rate, channels, bit depth)

◆ setInput() [1/3]

void setInput ( AudioStream stream)
inline

Set input from AudioStream (with auto-detection)

Parameters
streamAudioStream that can provide its own audio configuration

◆ setInput() [2/3]

void setInput ( Stream stream)
inline

Set input from generic Stream (audio info must be set separately)

Parameters
streamGeneric Arduino Stream

◆ setInput() [3/3]

void setInput ( Stream stream,
AudioInfo  info 
)
inline

Set input from generic Stream with explicit audio info.

Parameters
streamGeneric Arduino Stream
infoAudio configuration parameters

◆ start()

void start ( )
inlineoverridevirtual

Start the audio source.

For AudioStreams, calls begin() to initialize the stream. For generic Streams, just sets the active flag.

Reimplemented from IAudioSource.

◆ stop()

void stop ( )
inlineoverridevirtual

Stop the audio source.

For AudioStreams, calls end() to cleanup the stream. For generic Streams, just clears the active flag.

Reimplemented from IAudioSource.

Member Data Documentation

◆ MAGIC_NUMBER

const uint32_t MAGIC_NUMBER
protected
Initial value:
=
0xFEEDFACE

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