pianod2
multisource multiuser scriptable networked music player
Classes | Public Member Functions | Private Attributes | List of all members
Audio::AvDeviceOutput Class Reference

Output class for libavdevice. More...

#include <avdeviceoutput.h>

Inheritance diagram for Audio::AvDeviceOutput:
Inheritance graph
[legend]
Collaboration diagram for Audio::AvDeviceOutput:
Collaboration graph
[legend]

Classes

struct  CodecDeleter
 
struct  PacketDeleter
 

Public Member Functions

 AvDeviceOutput (const AudioSettings &settings, const AudioFormat &format)
 Create an audio outputter for ffmpeg's libavdevice. More...
 
virtual ~AvDeviceOutput ()
 
virtual bool play (void *buffer, unsigned numberOfBytes) override
 Play output. More...
 
- Public Member Functions inherited from Audio::Output
virtual ~Output ()
 
char bytesPerSample ()
 

Private Attributes

AVCodec * codec = nullptr
 
AVFormatContext * context = nullptr
 
AVStream * stream = nullptr
 
std::unique_ptr< AVCodecContext, CodecDeletercodec_context
 
std::unique_ptr< AVPacket, PacketDeleterpacket
 
int min_flush_time = 0
 milliseconds More...
 
int max_flush_time = 2000
 milliseconds More...
 
const int flush_time_quanta = 100
 milliseconds More...
 

Additional Inherited Members

- Static Public Member Functions inherited from Audio::Output
static bool isValidOutput (const AudioSettings &settings)
 Check if audio settings are valid. More...
 
static bool outputCanCrossfade (const AudioSettings &settings)
 Check if audio settings are valid. More...
 
static OutputgetOutput (const AudioSettings &settings, const AudioFormat &format)
 Factory gets whatever kind of output is best, or requested by the audio settings. More...
 
static void reportLibrariesAndVersions (int verbose)
 Report audio libraries in use, and their versions. More...
 
- Protected Attributes inherited from Audio::Output
char bytes_per_sample_set
 

Detailed Description

Output class for libavdevice.

Constructor & Destructor Documentation

◆ AvDeviceOutput()

Audio::AvDeviceOutput::AvDeviceOutput ( const AudioSettings settings,
const AudioFormat format 
)

Create an audio outputter for ffmpeg's libavdevice.

Parameters
settingsThe output settings.
formatThe format of the data to be played.
Here is the call graph for this function:

◆ ~AvDeviceOutput()

Audio::AvDeviceOutput::~AvDeviceOutput ( )
virtual
Here is the call graph for this function:

Member Function Documentation

◆ play()

bool Audio::AvDeviceOutput::play ( void *  buffer,
unsigned  numberOfBytes 
)
overridevirtual

Play output.

Implements Audio::Output.

Here is the call graph for this function:

Member Data Documentation

◆ codec

AVCodec* Audio::AvDeviceOutput::codec = nullptr
private

◆ codec_context

std::unique_ptr<AVCodecContext, CodecDeleter> Audio::AvDeviceOutput::codec_context
private

◆ context

AVFormatContext* Audio::AvDeviceOutput::context = nullptr
private

◆ flush_time_quanta

const int Audio::AvDeviceOutput::flush_time_quanta = 100
private

milliseconds

◆ max_flush_time

int Audio::AvDeviceOutput::max_flush_time = 2000
private

milliseconds

◆ min_flush_time

int Audio::AvDeviceOutput::min_flush_time = 0
private

milliseconds

◆ packet

std::unique_ptr<AVPacket, PacketDeleter> Audio::AvDeviceOutput::packet
private

◆ stream

AVStream* Audio::AvDeviceOutput::stream = nullptr
private

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