AudioOutputBase Class Reference

#include <audiooutputbase.h>

Inheritance diagram for AudioOutputBase:

AudioOutput VolumeBase OutputListeners MythObservable AudioOutputALSA AudioOutputARTS AudioOutputCA AudioOutputDX AudioOutputJACK AudioOutputNULL AudioOutputOSS AudioOutputWin

List of all members.


Detailed Description

Definition at line 36 of file audiooutputbase.h.


Public Member Functions

 AudioOutputBase (QString laudio_main_device, QString laudio_passthru_device, int laudio_bits, int laudio_channels, int laudio_samplerate, AudioOutputSource lsource, bool lset_initial_vol, bool laudio_passthru)
virtual ~AudioOutputBase ()
virtual void Reconfigure (int audio_bits, int audio_channels, int audio_samplerate, bool audio_passthru, void *audio_codec=NULL)
virtual void SetBlocking (bool blocking)
virtual void SetEffDsp (int dsprate)
virtual void SetStretchFactor (float factor)
virtual float GetStretchFactor (void)
virtual void Reset (void)
virtual bool AddSamples (char *buffer, int samples, long long timecode)
virtual bool AddSamples (char *buffers[], int samples, long long timecode)
virtual void SetTimecode (long long timecode)
virtual bool GetPause (void)
virtual void Pause (bool paused)
virtual void Drain (void)
virtual int GetAudiotime (void)
virtual void Status (void)
virtual void SetSourceBitrate (int rate)
virtual void GetBufferStatus (uint &fill, uint &total)
virtual void bufferOutputData (bool y)
virtual int readOutputData (unsigned char *read_buffer, int max_length)

Protected Member Functions

virtual bool OpenDevice (void)=0
virtual void CloseDevice (void)=0
virtual void WriteAudio (unsigned char *aubuf, int size)=0
virtual int getSpaceOnSoundcard (void)=0
virtual int getBufferedOnSoundcard (void)=0
virtual int GetVolumeChannel (int channel)=0
virtual void SetVolumeChannel (int channel, int volume)=0
virtual bool StartOutputThread (void)
virtual void StopOutputThread (void)
int GetAudioData (unsigned char *buffer, int buf_size, bool fill_buffer)
void _AddSamples (void *buffer, bool interleaved, int samples, long long timecode)
void KillAudio ()
void OutputAudioLoop (void)
void SetAudiotime (void)
int WaitForFreeSpace (int len)
int audiolen (bool use_lock)
int audiofree (bool use_lock)
void UpdateVolume (void)
void SetStretchFactorLocked (float factor)
int GetBaseAudioTime () const
int GetBaseAudBufTimeCode () const
soundtouch::SoundTouchGetSoundStretch () const
void SetBaseAudioTime (const int inAudioTime)

Static Protected Member Functions

static void * kickoffOutputAudioLoop (void *player)

Protected Attributes

int effdsp
int effdspstretched
int audio_channels
int audio_bytes_per_sample
int audio_bits
int audio_samplerate
int audio_buffer_unused
int fragment_size
long soundcard_buffer_size
QString audio_main_device
QString audio_passthru_device
bool audio_passthru
float audio_stretchfactor
AVCodecContextaudio_codec
AudioOutputSource source
bool killaudio
bool pauseaudio
bool audio_actually_paused
bool was_paused
bool set_initial_vol
bool buffer_output_data_for_use
int configured_audio_channels

Private Attributes

bool need_resampler
SRC_STATE * src_ctx
SRC_DATA src_data
float src_in [AUDIO_SRC_IN_SIZE]
float src_out [AUDIO_SRC_OUT_SIZE]
short tmp_buff [AUDIO_TMP_BUF_SIZE]
soundtouch::SoundTouchpSoundStretch
AudioOutputDigitalEncoderencoder
FreeSurroundupmixer
int source_audio_channels
int source_audio_bytes_per_sample
bool needs_upmix
int surround_mode
bool blocking
int lastaudiolen
long long samples_buffered
bool audio_thread_exists
pthread_t audio_thread
pthread_mutex_t audio_buflock
pthread_cond_t audio_bufsig
pthread_mutex_t avsync_lock
long long audiotime
 timecode of audio leaving the soundcard (same units as timecodes)
struct timeval audiotime_updated
unsigned char audiobuffer [AUDBUFSIZE]
int raud
int waud
long long audbuf_timecode
 timecode of audio most recently placed into buffer
int numlowbuffer
QMutex killAudioLock
long current_seconds
long source_bitrate

Constructor & Destructor Documentation

AudioOutputBase::AudioOutputBase ( QString  laudio_main_device,
QString  laudio_passthru_device,
int  laudio_bits,
int  laudio_channels,
int  laudio_samplerate,
AudioOutputSource  lsource,
bool  lset_initial_vol,
bool  laudio_passthru 
)

Definition at line 26 of file audiooutputbase.cpp.

AudioOutputBase::~AudioOutputBase (  )  [virtual]

Definition at line 93 of file audiooutputbase.cpp.


Member Function Documentation

void AudioOutputBase::Reconfigure ( int  audio_bits,
int  audio_channels,
int  audio_samplerate,
bool  audio_passthru,
void *  audio_codec = NULL 
) [virtual]

void AudioOutputBase::SetBlocking ( bool  blocking  )  [virtual]

Implements AudioOutput.

Reimplemented in AudioOutputDX.

Definition at line 538 of file audiooutputbase.cpp.

Referenced by AudioOutputWin::OpenDevice().

void AudioOutputBase::SetEffDsp ( int  dsprate  )  [virtual]

Implements AudioOutput.

Reimplemented in AudioOutputDX.

Definition at line 531 of file audiooutputbase.cpp.

void AudioOutputBase::SetStretchFactor ( float  factor  )  [virtual]

Reimplemented from AudioOutput.

Definition at line 175 of file audiooutputbase.cpp.

float AudioOutputBase::GetStretchFactor ( void   )  [virtual]

Reimplemented from AudioOutput.

Definition at line 182 of file audiooutputbase.cpp.

void AudioOutputBase::Reset ( void   )  [virtual]

Implements AudioOutput.

Reimplemented in AudioOutputDX, and AudioOutputNULL.

Definition at line 502 of file audiooutputbase.cpp.

Referenced by AudioOutputNULL::Reset().

bool AudioOutputBase::AddSamples ( char *  buffer,
int  samples,
long long  timecode 
) [virtual]

Implements AudioOutput.

Reimplemented in AudioOutputDX.

Definition at line 748 of file audiooutputbase.cpp.

bool AudioOutputBase::AddSamples ( char *  buffers[],
int  samples,
long long  timecode 
) [virtual]

Implements AudioOutput.

Reimplemented in AudioOutputDX.

Definition at line 681 of file audiooutputbase.cpp.

void AudioOutputBase::SetTimecode ( long long  timecode  )  [virtual]

Implements AudioOutput.

Reimplemented in AudioOutputDX.

Definition at line 523 of file audiooutputbase.cpp.

bool AudioOutputBase::GetPause ( void   )  [virtual]

Implements AudioOutput.

Reimplemented in AudioOutputDX.

Definition at line 490 of file audiooutputbase.cpp.

void AudioOutputBase::Pause ( bool  paused  )  [virtual]

Implements AudioOutput.

Reimplemented in AudioOutputDX.

Definition at line 495 of file audiooutputbase.cpp.

void AudioOutputBase::Drain ( void   )  [virtual]

Implements AudioOutput.

Reimplemented in AudioOutputDX.

Definition at line 1324 of file audiooutputbase.cpp.

int AudioOutputBase::GetAudiotime ( void   )  [virtual]

Implements AudioOutput.

Reimplemented in AudioOutputCA, and AudioOutputDX.

Definition at line 570 of file audiooutputbase.cpp.

Referenced by AddSamples(), and Status().

void AudioOutputBase::Status ( void   )  [virtual]

Definition at line 1101 of file audiooutputbase.cpp.

Referenced by OutputAudioLoop().

void AudioOutputBase::SetSourceBitrate ( int  rate  )  [virtual]

Reimplemented from AudioOutput.

Definition at line 104 of file audiooutputbase.cpp.

void AudioOutputBase::GetBufferStatus ( uint fill,
uint total 
) [virtual]

Reimplemented from AudioOutput.

Definition at line 1123 of file audiooutputbase.cpp.

virtual void AudioOutputBase::bufferOutputData ( bool  y  )  [inline, virtual]

Implements AudioOutput.

Definition at line 87 of file audiooutputbase.h.

int AudioOutputBase::readOutputData ( unsigned char *  read_buffer,
int  max_length 
) [virtual]

Implements AudioOutput.

Reimplemented in AudioOutputNULL.

Definition at line 1341 of file audiooutputbase.cpp.

virtual bool AudioOutputBase::OpenDevice ( void   )  [protected, pure virtual]

virtual void AudioOutputBase::CloseDevice ( void   )  [protected, pure virtual]

virtual void AudioOutputBase::WriteAudio ( unsigned char *  aubuf,
int  size 
) [protected, pure virtual]

virtual int AudioOutputBase::getSpaceOnSoundcard ( void   )  [protected, pure virtual]

virtual int AudioOutputBase::getBufferedOnSoundcard ( void   )  [protected, pure virtual]

virtual int AudioOutputBase::GetVolumeChannel ( int  channel  )  [protected, pure virtual]

virtual void AudioOutputBase::SetVolumeChannel ( int  channel,
int  volume 
) [protected, pure virtual]

bool AudioOutputBase::StartOutputThread ( void   )  [protected, virtual]

Reimplemented in AudioOutputCA.

Definition at line 422 of file audiooutputbase.cpp.

Referenced by Reconfigure().

void AudioOutputBase::StopOutputThread ( void   )  [protected, virtual]

Reimplemented in AudioOutputCA.

Definition at line 442 of file audiooutputbase.cpp.

Referenced by KillAudio().

int AudioOutputBase::GetAudioData ( unsigned char *  buffer,
int  buf_size,
bool  fill_buffer 
) [protected]

Definition at line 1260 of file audiooutputbase.cpp.

Referenced by OutputAudioLoop(), and AudioOutputCA::RenderAudio().

void AudioOutputBase::_AddSamples ( void *  buffer,
bool  interleaved,
int  samples,
long long  timecode 
) [protected]

Definition at line 849 of file audiooutputbase.cpp.

Referenced by AddSamples().

void AudioOutputBase::KillAudio (  )  [protected]

void AudioOutputBase::OutputAudioLoop ( void   )  [protected]

Definition at line 1129 of file audiooutputbase.cpp.

void * AudioOutputBase::kickoffOutputAudioLoop ( void *  player  )  [static, protected]

Definition at line 1332 of file audiooutputbase.cpp.

Referenced by StartOutputThread().

void AudioOutputBase::SetAudiotime ( void   )  [protected]

Reimplemented in AudioOutputCA.

Definition at line 611 of file audiooutputbase.cpp.

Referenced by OutputAudioLoop().

int AudioOutputBase::WaitForFreeSpace ( int  len  )  [protected]

Definition at line 811 of file audiooutputbase.cpp.

Referenced by _AddSamples().

int AudioOutputBase::audiolen ( bool  use_lock  )  [protected]

int AudioOutputBase::audiofree ( bool  use_lock  )  [protected]

Definition at line 562 of file audiooutputbase.cpp.

Referenced by _AddSamples(), AddSamples(), GetBufferStatus(), and WaitForFreeSpace().

void AudioOutputBase::UpdateVolume ( void   )  [protected]

Reimplemented from VolumeBase.

void AudioOutputBase::SetStretchFactorLocked ( float  factor  )  [protected]

Definition at line 110 of file audiooutputbase.cpp.

Referenced by Reconfigure(), and SetStretchFactor().

int AudioOutputBase::GetBaseAudioTime (  )  const [inline, protected]

Definition at line 122 of file audiooutputbase.h.

Referenced by AudioOutputCA::GetAudiotime().

int AudioOutputBase::GetBaseAudBufTimeCode (  )  const [inline, protected]

Definition at line 123 of file audiooutputbase.h.

Referenced by AudioOutputCA::SetAudiotime().

soundtouch::SoundTouch* AudioOutputBase::GetSoundStretch (  )  const [inline, protected]

Definition at line 124 of file audiooutputbase.h.

Referenced by AudioOutputCA::SetAudiotime().

void AudioOutputBase::SetBaseAudioTime ( const int  inAudioTime  )  [inline, protected]

Definition at line 125 of file audiooutputbase.h.

Referenced by AudioOutputCA::SetAudiotime().


Member Data Documentation

int AudioOutputBase::effdsp [protected]

int AudioOutputBase::audio_bits [protected]

Definition at line 139 of file audiooutputbase.h.

Referenced by AudioOutputALSA::OpenDevice().

Definition at line 144 of file audiooutputbase.h.

Referenced by Reconfigure(), and SetStretchFactorLocked().

Definition at line 149 of file audiooutputbase.h.

Referenced by OutputAudioLoop(), Reconfigure(), and Reset().

Definition at line 153 of file audiooutputbase.h.

Referenced by AudioOutputBase(), and Reconfigure().

Definition at line 157 of file audiooutputbase.h.

Referenced by AddSamples(), KillAudio(), and Reconfigure().

SRC_STATE* AudioOutputBase::src_ctx [private]

Definition at line 158 of file audiooutputbase.h.

Referenced by AddSamples(), KillAudio(), Reconfigure(), and WaitForFreeSpace().

SRC_DATA AudioOutputBase::src_data [private]

Definition at line 159 of file audiooutputbase.h.

Referenced by AddSamples(), AudioOutputBase(), and Reconfigure().

float AudioOutputBase::src_in[AUDIO_SRC_IN_SIZE] [private]

Definition at line 160 of file audiooutputbase.h.

Referenced by AddSamples(), AudioOutputBase(), and Reconfigure().

float AudioOutputBase::src_out[AUDIO_SRC_OUT_SIZE] [private]

Definition at line 161 of file audiooutputbase.h.

Referenced by AudioOutputBase(), and Reconfigure().

short AudioOutputBase::tmp_buff[AUDIO_TMP_BUF_SIZE] [private]

Definition at line 162 of file audiooutputbase.h.

Referenced by AddSamples(), and AudioOutputBase().

Definition at line 167 of file audiooutputbase.h.

Referenced by _AddSamples(), AddSamples(), KillAudio(), Reconfigure(), and SetAudiotime().

Definition at line 169 of file audiooutputbase.h.

Referenced by _AddSamples(), Reconfigure(), and Status().

Definition at line 170 of file audiooutputbase.h.

Referenced by Reconfigure().

Definition at line 171 of file audiooutputbase.h.

Referenced by _AddSamples(), AddSamples(), KillAudio(), Reconfigure(), and SetAudiotime().

Definition at line 172 of file audiooutputbase.h.

Referenced by Reconfigure().

Reimplemented in AudioOutputDX.

Definition at line 174 of file audiooutputbase.h.

Referenced by AddSamples(), and WaitForFreeSpace().

Definition at line 176 of file audiooutputbase.h.

Referenced by _AddSamples(), and Reconfigure().

long long AudioOutputBase::samples_buffered [private]

Definition at line 177 of file audiooutputbase.h.

Referenced by _AddSamples(), Reconfigure(), Reset(), and SetTimecode().

Definition at line 179 of file audiooutputbase.h.

Referenced by StartOutputThread(), and StopOutputThread().

Definition at line 180 of file audiooutputbase.h.

Referenced by StartOutputThread(), and StopOutputThread().

pthread_cond_t AudioOutputBase::audio_bufsig [private]

long long AudioOutputBase::audiotime [private]

timecode of audio leaving the soundcard (same units as timecodes)

Definition at line 192 of file audiooutputbase.h.

Referenced by AddSamples(), GetAudiotime(), GetBaseAudioTime(), OutputAudioLoop(), Reconfigure(), Reset(), SetAudiotime(), and SetBaseAudioTime().

struct timeval AudioOutputBase::audiotime_updated [read, private]

Definition at line 193 of file audiooutputbase.h.

Referenced by AudioOutputBase(), GetAudiotime(), Reconfigure(), Reset(), and SetAudiotime().

unsigned char AudioOutputBase::audiobuffer[AUDBUFSIZE] [private]

Definition at line 196 of file audiooutputbase.h.

Referenced by _AddSamples(), AudioOutputBase(), and GetAudioData().

int AudioOutputBase::raud [private]

Definition at line 197 of file audiooutputbase.h.

Referenced by audiolen(), GetAudioData(), Reconfigure(), and Reset().

int AudioOutputBase::waud [private]

Definition at line 197 of file audiooutputbase.h.

Referenced by _AddSamples(), audiolen(), Reconfigure(), and Reset().

long long AudioOutputBase::audbuf_timecode [private]

timecode of audio most recently placed into buffer

Reimplemented in AudioOutputDX.

Definition at line 199 of file audiooutputbase.h.

Referenced by _AddSamples(), AddSamples(), GetBaseAudBufTimeCode(), Reconfigure(), Reset(), SetAudiotime(), and SetTimecode().

Definition at line 201 of file audiooutputbase.h.

Referenced by OutputAudioLoop(), and Reconfigure().

Reimplemented in AudioOutputALSA.

Definition at line 203 of file audiooutputbase.h.

Referenced by KillAudio().

Definition at line 205 of file audiooutputbase.h.

Referenced by Reconfigure(), Reset(), and Status().

Definition at line 206 of file audiooutputbase.h.

Referenced by Reconfigure(), SetSourceBitrate(), and Status().


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

Generated on Sat Dec 18 05:15:59 2010 for MythTV by  doxygen 1.5.5