#include <audiooutputbase.h>
Public Member Functions | |
| const char * | quality_string (int q) |
| AudioOutputBase (const AudioSettings &settings) | |
| virtual | ~AudioOutputBase () |
| Destructor. | |
| AudioOutputSettings * | GetOutputSettingsCleaned (bool digital=true) |
| Returns capabilities supported by the audio device amended to take into account the digital audio options (AC3, DTS, E-AC3 and TrueHD). | |
| AudioOutputSettings * | GetOutputSettingsUsers (bool digital=false) |
| Returns capabilities supported by the audio device amended to take into account the digital audio options (AC3, DTS, E-AC3 and TrueHD) as well as the user settings. | |
| virtual void | Reconfigure (const AudioSettings &settings) |
| (Re)Configure AudioOutputBase | |
| virtual void | SetEffDsp (int dsprate) |
| Set the effective DSP rate. | |
| virtual void | SetStretchFactor (float factor) |
| Set the timestretch factor. | |
| virtual float | GetStretchFactor (void) const |
| Get the timetretch factor. | |
| virtual int | GetChannels (void) const |
| virtual AudioFormat | GetFormat (void) const |
| virtual int | GetBytesPerFrame (void) const |
| virtual bool | CanPassthrough (int samplerate, int channels, int codec, int profile) const |
| Test if we can output digital audio and if sample rate is supported. | |
| virtual bool | CanDownmix (void) const |
| virtual bool | IsUpmixing (void) |
| Source is currently being upmixed. | |
| virtual bool | ToggleUpmix (void) |
| Toggle between stereo and upmixed 5.1 if the source material is stereo. | |
| virtual bool | CanUpmix (void) |
| Upmixing of the current source is available if requested. | |
| virtual void | Reset (void) |
| Reset the audiobuffer, timecode and mythmusic visualisation. | |
| void | SetSWVolume (int new_volume, bool save) |
| Set the volume for software volume control. | |
| int | GetSWVolume (void) |
| Get the volume for software volume control. | |
| virtual bool | AddFrames (void *buffer, int frames, int64_t timecode) |
| Add frames to the audiobuffer and perform any required processing. | |
| virtual bool | AddData (void *buffer, int len, int64_t timecode, int frames) |
| Add data to the audiobuffer and perform any required processing. | |
| virtual bool | NeedDecodingBeforePassthrough () const |
| NeedDecodingBeforePassthrough: returns true if AudioOutput class can determine the length in millisecond of native audio frames bitstreamed passed to AddData. | |
| virtual int64_t | LengthLastData (void) const |
| LengthLastData: returns the length of the last data added in millisecond. | |
| virtual void | SetTimecode (int64_t timecode) |
| Set the timecode of the samples most recently added to the audiobuffer. | |
| virtual bool | IsPaused (void) const |
| virtual void | Pause (bool paused) |
| void | PauseUntilBuffered (void) |
| virtual void | Drain (void) |
| Block until all available frames have been written to the device. | |
| virtual int64_t | GetAudiotime (void) |
| Calculate the timecode of the samples that are about to become audible. | |
| virtual int64_t | GetAudioBufferedTime (void) |
| Get the difference in timecode between the samples that are about to become audible and the samples most recently added to the audiobuffer, i.e. | |
| virtual void | Status (void) |
| Report status via an OutputEvent. | |
| virtual void | SetSourceBitrate (int rate) |
| Set the bitrate of the source material, reported in periodic OutputEvents. | |
| virtual void | GetBufferStatus (uint &fill, uint &total) |
| Fill in the number of bytes in the audiobuffer and the total size of the audiobuffer. | |
| virtual void | bufferOutputData (bool y) |
| virtual int | readOutputData (unsigned char *read_buffer, int max_length) |
Static Public Attributes | |
| static const uint | kAudioSRCInputSize = 16384 |
| static const uint | kAudioRingBufferSize = 3072000u |
| Audio Buffer Size -- should be divisible by 32,24,16,12,10,8,6,4,2.. | |
Protected Types | |
| enum | { QUALITY_DISABLED = -1, QUALITY_LOW = 0, QUALITY_MEDIUM = 1, QUALITY_HIGH = 2 } |
Protected Member Functions | |
| void | InitSettings (const AudioSettings &settings) |
| virtual bool | OpenDevice (void)=0 |
| virtual void | CloseDevice (void)=0 |
| virtual void | WriteAudio (uchar *aubuf, int size)=0 |
| virtual int | GetBufferedOnSoundcard (void) const =0 |
| Return the size in bytes of frames currently in the audio buffer adjusted with the audio playback latency. | |
| virtual AudioOutputSettings * | GetOutputSettings (bool digital) |
| void | KillAudio (void) |
| Kill the output thread and cleanup. | |
| virtual bool | StartOutputThread (void) |
| virtual void | StopOutputThread (void) |
| int | GetAudioData (uchar *buffer, int buf_size, bool fill_buffer, volatile uint *local_raud=NULL) |
| Copy frames from the audiobuffer into the buffer provided. | |
| void | OutputAudioLoop (void) |
| Run in the output thread, write frames to the output device as they become available and there's space in the device buffer to write them. | |
| virtual void | run () |
| Main routine for the output thread. | |
| int | CheckFreeSpace (int &frames) |
| Check that there's enough space in the audiobuffer to write the provided number of frames. | |
| int | audiolen () |
| Get the number of bytes in the audiobuffer. | |
| int | audiofree () |
| Get the free space in the audiobuffer in bytes. | |
| int | audioready () |
| Get the scaled number of bytes in the audiobuffer, i.e. | |
| void | SetStretchFactorLocked (float factor) |
| Set the timestretch factor. | |
| int | GetBaseAudBufTimeCode () const |
Protected Attributes | |
| int | channels |
| int | codec |
| int | bytes_per_frame |
| int | output_bytes_per_frame |
| AudioFormat | format |
| AudioFormat | output_format |
| int | samplerate |
| int | effdsp |
| int | fragment_size |
| long | soundcard_buffer_size |
| QString | main_device |
| QString | passthru_device |
| bool | m_discretedigital |
| bool | passthru |
| bool | enc |
| bool | reenc |
| float | stretchfactor |
| int | eff_stretchfactor |
| AudioOutputSource | source |
| bool | killaudio |
| bool | pauseaudio |
| bool | actually_paused |
| bool | was_paused |
| bool | unpause_when_ready |
| bool | set_initial_vol |
| bool | buffer_output_data_for_use |
| int | configured_channels |
| int | max_channels |
| int | src_quality |
Private Member Functions | |
| bool | SetupPassthrough (int codec, int codec_profile, int &samplerate_tmp, int &channels_tmp) |
| AudioOutputSettings * | OutputSettings (bool digital=true) |
| int | CopyWithUpmix (char *buffer, int frames, uint &org_waud) |
| Copy frames into the audiobuffer, upmixing en route if necessary. | |
| void | SetAudiotime (int frames, int64_t timecode) |
| Set the timecode of the top of the ringbuffer Exclude all other processing elements as they dont vary between AddData calls. | |
Private Attributes | |
| AudioOutputSettings * | output_settingsraw |
| AudioOutputSettings * | output_settings |
| AudioOutputSettings * | output_settingsdigitalraw |
| AudioOutputSettings * | output_settingsdigital |
| bool | need_resampler |
| SRC_STATE * | src_ctx |
| soundtouch::SoundTouch * | pSoundStretch |
| AudioOutputDigitalEncoder * | encoder |
| FreeSurround * | upmixer |
| int | source_channels |
| int | source_samplerate |
| int | source_bytes_per_frame |
| bool | upmix_default |
| bool | needs_upmix |
| bool | needs_downmix |
| int | surround_mode |
| float | old_stretchfactor |
| int | volume |
| QString | volumeControl |
| bool | processing |
| int64_t | frames_buffered |
| bool | audio_thread_exists |
| QMutex | audio_buflock |
| Writes to the audiobuffer, reconfigures and audiobuffer resets can only take place while holding this lock. | |
| QMutex | avsync_lock |
| must hold avsync_lock to read or write 'audiotime' and 'audiotime_updated' | |
| int64_t | audiotime |
| timecode of audio leaving the soundcard (same units as timecodes) | |
| volatile uint | raud |
| Audio circular buffer. | |
| volatile uint | waud |
| int64_t | audbuf_timecode |
| timecode of audio most recently placed into buffer | |
| AsyncLooseLock | reset_active |
| QMutex | killAudioLock |
| long | current_seconds |
| long | source_bitrate |
| float * | src_in |
| SRC_DATA | src_data |
| uint | memory_corruption_test0 |
| float | src_in_buf [kAudioSRCInputSize+16] |
| uint | memory_corruption_test1 |
| float * | src_out |
| int | kAudioSRCOutputSize |
| uint | memory_corruption_test2 |
| uchar | audiobuffer [kAudioRingBufferSize] |
| main audio buffer | |
| uint | memory_corruption_test3 |
| uint | m_configure_succeeded |
| int64_t | m_length_last_data |
| SPDIFEncoder * | m_spdifenc |
| bool | m_forcedprocessing |
| int | m_previousbpf |
Definition at line 51 of file audiooutputbase.h.
anonymous enum [protected] |
Definition at line 191 of file audiooutputbase.h.
| AudioOutputBase::AudioOutputBase | ( | const AudioSettings & | settings | ) |
Definition at line 47 of file audiooutputbase.cpp.
| AudioOutputBase::~AudioOutputBase | ( | ) | [virtual] |
Destructor.
You must kill the output thread via KillAudio() prior to destruction
Definition at line 131 of file audiooutputbase.cpp.
| const char * AudioOutputBase::quality_string | ( | int | q | ) |
Definition at line 35 of file audiooutputbase.cpp.
Referenced by AudioOutputBase(), and Reconfigure().
| AudioOutputSettings * AudioOutputBase::GetOutputSettingsCleaned | ( | bool | digital = true |
) | [virtual] |
Returns capabilities supported by the audio device amended to take into account the digital audio options (AC3, DTS, E-AC3 and TrueHD).
Reimplemented from AudioOutput.
Definition at line 191 of file audiooutputbase.cpp.
Referenced by GetOutputSettingsUsers().
| AudioOutputSettings * AudioOutputBase::GetOutputSettingsUsers | ( | bool | digital = false |
) | [virtual] |
Returns capabilities supported by the audio device amended to take into account the digital audio options (AC3, DTS, E-AC3 and TrueHD) as well as the user settings.
Reimplemented from AudioOutput.
Definition at line 221 of file audiooutputbase.cpp.
Referenced by InitSettings().
| void AudioOutputBase::Reconfigure | ( | const AudioSettings & | orig_settings | ) | [virtual] |
(Re)Configure AudioOutputBase
Must be called from concrete subclasses
Implements AudioOutput.
Definition at line 488 of file audiooutputbase.cpp.
Referenced by AudioOutputALSA::AudioOutputALSA(), AudioOutputCA::AudioOutputCA(), AudioOutputDX::AudioOutputDX(), AudioOutputJACK::AudioOutputJACK(), AudioOutputNULL::AudioOutputNULL(), AudioOutputOSS::AudioOutputOSS(), AudioOutputPulseAudio::AudioOutputPulseAudio(), AudioOutputWin::AudioOutputWin(), and ToggleUpmix().
| void AudioOutputBase::SetEffDsp | ( | int | dsprate | ) | [virtual] |
Set the effective DSP rate.
Equal to 100 * samples per second NuppelVideo sets this every sync frame to achieve av sync
Implements AudioOutput.
Definition at line 989 of file audiooutputbase.cpp.
| void AudioOutputBase::SetStretchFactor | ( | float | factor | ) | [virtual] |
Set the timestretch factor.
Reimplemented from AudioOutput.
Definition at line 378 of file audiooutputbase.cpp.
| float AudioOutputBase::GetStretchFactor | ( | void | ) | const [virtual] |
Get the timetretch factor.
Reimplemented from AudioOutput.
Definition at line 387 of file audiooutputbase.cpp.
| virtual int AudioOutputBase::GetChannels | ( | void | ) | const [inline, virtual] |
Reimplemented from AudioOutput.
Definition at line 70 of file audiooutputbase.h.
| virtual AudioFormat AudioOutputBase::GetFormat | ( | void | ) | const [inline, virtual] |
Reimplemented from AudioOutput.
Definition at line 71 of file audiooutputbase.h.
| virtual int AudioOutputBase::GetBytesPerFrame | ( | void | ) | const [inline, virtual] |
Reimplemented from AudioOutput.
Definition at line 72 of file audiooutputbase.h.
| bool AudioOutputBase::CanPassthrough | ( | int | samplerate, | |
| int | channels, | |||
| int | codec, | |||
| int | profile | |||
| ) | const [virtual] |
Test if we can output digital audio and if sample rate is supported.
Reimplemented from AudioOutput.
Definition at line 246 of file audiooutputbase.cpp.
| virtual bool AudioOutputBase::CanDownmix | ( | void | ) | const [inline, virtual] |
Reimplemented from AudioOutput.
Definition at line 76 of file audiooutputbase.h.
| bool AudioOutputBase::IsUpmixing | ( | void | ) | [virtual] |
Source is currently being upmixed.
Implements AudioOutput.
Definition at line 395 of file audiooutputbase.cpp.
Referenced by ToggleUpmix().
| bool AudioOutputBase::ToggleUpmix | ( | void | ) | [virtual] |
Toggle between stereo and upmixed 5.1 if the source material is stereo.
Implements AudioOutput.
Definition at line 403 of file audiooutputbase.cpp.
| bool AudioOutputBase::CanUpmix | ( | void | ) | [virtual] |
Upmixing of the current source is available if requested.
Implements AudioOutput.
Definition at line 420 of file audiooutputbase.cpp.
| void AudioOutputBase::Reset | ( | void | ) | [virtual] |
Reset the audiobuffer, timecode and mythmusic visualisation.
Implements AudioOutput.
Reimplemented in AudioOutputNULL.
Definition at line 941 of file audiooutputbase.cpp.
Referenced by PauseUntilBuffered().
| void AudioOutputBase::SetSWVolume | ( | int | new_volume, | |
| bool | save | |||
| ) | [virtual] |
Set the volume for software volume control.
Implements VolumeBase.
Definition at line 1163 of file audiooutputbase.cpp.
| int AudioOutputBase::GetSWVolume | ( | void | ) | [virtual] |
Get the volume for software volume control.
Implements VolumeBase.
Definition at line 1173 of file audiooutputbase.cpp.
Add frames to the audiobuffer and perform any required processing.
Returns false if there's not enough space right now
Implements AudioOutput.
Definition at line 1306 of file audiooutputbase.cpp.
| bool AudioOutputBase::AddData | ( | void * | in_buffer, | |
| int | in_len, | |||
| int64_t | timecode, | |||
| int | frames | |||
| ) | [virtual] |
Add data to the audiobuffer and perform any required processing.
Returns false if there's not enough space right now
Implements AudioOutput.
Definition at line 1318 of file audiooutputbase.cpp.
Referenced by AddFrames().
| virtual bool AudioOutputBase::NeedDecodingBeforePassthrough | ( | void | ) | const [inline, virtual] |
NeedDecodingBeforePassthrough: returns true if AudioOutput class can determine the length in millisecond of native audio frames bitstreamed passed to AddData.
If false, LengthLastData method must be implemented
Reimplemented from AudioOutput.
Definition at line 89 of file audiooutputbase.h.
| virtual int64_t AudioOutputBase::LengthLastData | ( | void | ) | const [inline, virtual] |
LengthLastData: returns the length of the last data added in millisecond.
This function must be implemented if NeedDecodingBeforePassthrough returned false
Reimplemented from AudioOutput.
Definition at line 90 of file audiooutputbase.h.
| void AudioOutputBase::SetTimecode | ( | int64_t | timecode | ) | [virtual] |
Set the timecode of the samples most recently added to the audiobuffer.
Used by mythmusic for seeking since it doesn't provide timecodes to AddData()
Implements AudioOutput.
Definition at line 977 of file audiooutputbase.cpp.
| virtual bool AudioOutputBase::IsPaused | ( | void | ) | const [inline, virtual] |
Implements AudioOutput.
Definition at line 93 of file audiooutputbase.h.
| void AudioOutputBase::Pause | ( | bool | paused | ) | [virtual] |
Implements AudioOutput.
Definition at line 920 of file audiooutputbase.cpp.
Referenced by AddData(), and PauseUntilBuffered().
| void AudioOutputBase::PauseUntilBuffered | ( | void | ) | [virtual] |
Implements AudioOutput.
Definition at line 931 of file audiooutputbase.cpp.
| void AudioOutputBase::Drain | ( | void | ) | [virtual] |
Block until all available frames have been written to the device.
Implements AudioOutput.
Reimplemented in AudioOutputPulseAudio.
Definition at line 1806 of file audiooutputbase.cpp.
| int64_t AudioOutputBase::GetAudiotime | ( | void | ) | [virtual] |
Calculate the timecode of the samples that are about to become audible.
Implements AudioOutput.
Reimplemented in AudioOutputCA.
Definition at line 1035 of file audiooutputbase.cpp.
Referenced by GetAudioBufferedTime(), OutputAudioLoop(), SetAudiotime(), and Status().
| int64_t AudioOutputBase::GetAudioBufferedTime | ( | void | ) | [virtual] |
Get the difference in timecode between the samples that are about to become audible and the samples most recently added to the audiobuffer, i.e.
the time in ms representing the sum total of buffered samples
Reimplemented from AudioOutput.
Definition at line 1151 of file audiooutputbase.cpp.
| void AudioOutputBase::Status | ( | void | ) | [virtual] |
Report status via an OutputEvent.
Definition at line 1599 of file audiooutputbase.cpp.
Referenced by AudioOutputJACK::JackCallback(), and OutputAudioLoop().
| void AudioOutputBase::SetSourceBitrate | ( | int | rate | ) | [virtual] |
Set the bitrate of the source material, reported in periodic OutputEvents.
Reimplemented from AudioOutput.
Definition at line 305 of file audiooutputbase.cpp.
Fill in the number of bytes in the audiobuffer and the total size of the audiobuffer.
Reimplemented from AudioOutput.
Definition at line 1623 of file audiooutputbase.cpp.
| virtual void AudioOutputBase::bufferOutputData | ( | bool | y | ) | [inline, virtual] |
Implements AudioOutput.
Definition at line 111 of file audiooutputbase.h.
| int AudioOutputBase::readOutputData | ( | unsigned char * | read_buffer, | |
| int | max_length | |||
| ) | [virtual] |
Implements AudioOutput.
Reimplemented in AudioOutputNULL.
Definition at line 1824 of file audiooutputbase.cpp.
| void AudioOutputBase::InitSettings | ( | const AudioSettings & | settings | ) | [protected] |
Definition at line 155 of file audiooutputbase.cpp.
Referenced by AudioOutputALSA::AudioOutputALSA(), AudioOutputCA::AudioOutputCA(), AudioOutputDX::AudioOutputDX(), AudioOutputJACK::AudioOutputJACK(), AudioOutputNULL::AudioOutputNULL(), AudioOutputOSS::AudioOutputOSS(), AudioOutputPulseAudio::AudioOutputPulseAudio(), and AudioOutputWin::AudioOutputWin().
| virtual bool AudioOutputBase::OpenDevice | ( | void | ) | [protected, pure virtual] |
Implemented in AudioOutputALSA, AudioOutputCA, AudioOutputDX, AudioOutputJACK, AudioOutputNULL, AudioOutputOSS, AudioOutputPulseAudio, and AudioOutputWin.
Referenced by Reconfigure().
| virtual void AudioOutputBase::CloseDevice | ( | void | ) | [protected, pure virtual] |
Implemented in AudioOutputALSA, AudioOutputCA, AudioOutputDX, AudioOutputJACK, AudioOutputNULL, AudioOutputOSS, AudioOutputPulseAudio, and AudioOutputWin.
Referenced by KillAudio().
| virtual void AudioOutputBase::WriteAudio | ( | uchar * | aubuf, | |
| int | size | |||
| ) | [protected, pure virtual] |
Implemented in AudioOutputALSA.
Referenced by OutputAudioLoop().
| virtual int AudioOutputBase::GetBufferedOnSoundcard | ( | void | ) | const [protected, pure virtual] |
Return the size in bytes of frames currently in the audio buffer adjusted with the audio playback latency.
Implemented in AudioOutputALSA, AudioOutputCA, AudioOutputDX, AudioOutputJACK, AudioOutputNULL, AudioOutputOSS, AudioOutputPulseAudio, and AudioOutputWin.
Referenced by GetAudiotime().
| virtual AudioOutputSettings* AudioOutputBase::GetOutputSettings | ( | bool | digital | ) | [inline, protected, virtual] |
Reimplemented in AudioOutputALSA, AudioOutputCA, AudioOutputDX, AudioOutputJACK, AudioOutputNULL, AudioOutputOSS, AudioOutputPulseAudio, and AudioOutputWin.
Definition at line 133 of file audiooutputbase.h.
Referenced by GetOutputSettingsCleaned().
| void AudioOutputBase::KillAudio | ( | void | ) | [protected] |
Kill the output thread and cleanup.
Definition at line 878 of file audiooutputbase.cpp.
Referenced by Reconfigure(), AudioOutputALSA::~AudioOutputALSA(), AudioOutputCA::~AudioOutputCA(), AudioOutputDX::~AudioOutputDX(), AudioOutputJACK::~AudioOutputJACK(), AudioOutputNULL::~AudioOutputNULL(), AudioOutputOSS::~AudioOutputOSS(), AudioOutputPulseAudio::~AudioOutputPulseAudio(), and AudioOutputWin::~AudioOutputWin().
| bool AudioOutputBase::StartOutputThread | ( | void | ) | [protected, virtual] |
Reimplemented in AudioOutputCA, and AudioOutputJACK.
Definition at line 854 of file audiooutputbase.cpp.
Referenced by Reconfigure().
| void AudioOutputBase::StopOutputThread | ( | void | ) | [protected, virtual] |
Reimplemented in AudioOutputCA, and AudioOutputJACK.
Definition at line 866 of file audiooutputbase.cpp.
Referenced by KillAudio().
| int AudioOutputBase::GetAudioData | ( | uchar * | buffer, | |
| int | size, | |||
| bool | full_buffer, | |||
| volatile uint * | local_raud = NULL | |||
| ) | [protected] |
Copy frames from the audiobuffer into the buffer provided.
If 'full_buffer' is true we copy either 'size' bytes (if available) or nothing. Otherwise, we'll copy less than 'size' bytes if that's all that's available. Returns the number of bytes copied.
Definition at line 1729 of file audiooutputbase.cpp.
Referenced by AudioOutputJACK::JackCallback(), OutputAudioLoop(), and AudioOutputCA::RenderAudio().
| void AudioOutputBase::OutputAudioLoop | ( | void | ) | [protected] |
Run in the output thread, write frames to the output device as they become available and there's space in the device buffer to write them.
Definition at line 1634 of file audiooutputbase.cpp.
Referenced by run().
| void AudioOutputBase::run | ( | void | ) | [protected, virtual] |
Main routine for the output thread.
Reimplemented from MThread.
Definition at line 1815 of file audiooutputbase.cpp.
| int AudioOutputBase::CheckFreeSpace | ( | int & | frames | ) | [protected] |
Check that there's enough space in the audiobuffer to write the provided number of frames.
If there is not enough space, set 'frames' to the number that will fit
Returns the number of bytes that the frames will take up
Definition at line 1186 of file audiooutputbase.cpp.
Referenced by AddData(), and CopyWithUpmix().
| int AudioOutputBase::audiolen | ( | ) | [inline, protected] |
Get the number of bytes in the audiobuffer.
Definition at line 998 of file audiooutputbase.cpp.
Referenced by audiofree(), and audioready().
| int AudioOutputBase::audiofree | ( | ) | [protected] |
Get the free space in the audiobuffer in bytes.
Definition at line 1009 of file audiooutputbase.cpp.
Referenced by AddData(), CheckFreeSpace(), and GetBufferStatus().
| int AudioOutputBase::audioready | ( | ) | [protected] |
Get the scaled number of bytes in the audiobuffer, i.e.
the number of samples * the output bytes per sample
This value can differ from that returned by audiolen if samples are being converted to floats and the output sample format is not 32 bits
Definition at line 1024 of file audiooutputbase.cpp.
Referenced by AddData(), Drain(), GetAudioData(), AudioOutputCA::GetAudiotime(), GetAudiotime(), and OutputAudioLoop().
| void AudioOutputBase::SetStretchFactorLocked | ( | float | lstretchfactor | ) | [protected] |
Set the timestretch factor.
You must hold the audio_buflock to call this safely
Definition at line 316 of file audiooutputbase.cpp.
Referenced by Reconfigure(), and SetStretchFactor().
| int AudioOutputBase::GetBaseAudBufTimeCode | ( | ) | const [inline, protected] |
Definition at line 158 of file audiooutputbase.h.
Referenced by AudioOutputCA::GetAudiotime().
| bool AudioOutputBase::SetupPassthrough | ( | int | codec, | |
| int | codec_profile, | |||
| int & | samplerate_tmp, | |||
| int & | channels_tmp | |||
| ) | [private] |
Definition at line 429 of file audiooutputbase.cpp.
Referenced by Reconfigure().
| AudioOutputSettings * AudioOutputBase::OutputSettings | ( | bool | digital = true |
) | [private] |
Definition at line 476 of file audiooutputbase.cpp.
Referenced by Reconfigure().
| int AudioOutputBase::CopyWithUpmix | ( | char * | buffer, | |
| int | frames, | |||
| uint & | org_waud | |||
| ) | [private] |
Copy frames into the audiobuffer, upmixing en route if necessary.
Returns the number of frames written, which may be less than requested if the upmixer buffered some (or all) of them
Definition at line 1221 of file audiooutputbase.cpp.
Referenced by AddData().
| void AudioOutputBase::SetAudiotime | ( | int | frames, | |
| int64_t | timecode | |||
| ) | [private] |
Set the timecode of the top of the ringbuffer Exclude all other processing elements as they dont vary between AddData calls.
Definition at line 1101 of file audiooutputbase.cpp.
Referenced by AddData().
const uint AudioOutputBase::kAudioSRCInputSize = 16384 [static] |
Definition at line 114 of file audiooutputbase.h.
Referenced by AddData(), and Reconfigure().
const uint AudioOutputBase::kAudioRingBufferSize = 3072000u [static] |
Audio Buffer Size -- should be divisible by 32,24,16,12,10,8,6,4,2..
Definition at line 117 of file audiooutputbase.h.
Referenced by AddData(), audiofree(), audiolen(), CopyWithUpmix(), GetAudioData(), GetBufferStatus(), and Reset().
int AudioOutputBase::channels [protected] |
Reimplemented from VolumeBase.
Definition at line 162 of file audiooutputbase.h.
Referenced by AudioOutputJACK::_jack_connect_ports(), AudioOutputPulseAudio::ConnectPlaybackStream(), AudioOutputJACK::DeinterleaveAudio(), GetChannels(), AudioOutputNULL::GetOutputSettings(), AudioOutputCA::GetOutputSettings(), AudioOutputALSA::GetOutputSettings(), AudioOutputJACK::JackCallback(), AudioOutputJACK::JackGraphOrderCallback(), CoreAudioData::OpenAnalog(), AudioOutputWin::OpenDevice(), AudioOutputPulseAudio::OpenDevice(), AudioOutputOSS::OpenDevice(), AudioOutputJACK::OpenDevice(), AudioOutputDX::OpenDevice(), AudioOutputALSA::OpenDevice(), AudioOutputALSA::OpenMixer(), Reconfigure(), AudioOutputCA::RenderAudio(), SetStretchFactorLocked(), and AudioOutputALSA::WriteAudio().
int AudioOutputBase::codec [protected] |
Definition at line 163 of file audiooutputbase.h.
Referenced by Reconfigure(), and ToggleUpmix().
int AudioOutputBase::bytes_per_frame [protected] |
Definition at line 164 of file audiooutputbase.h.
Referenced by AddData(), audioready(), CheckFreeSpace(), CopyWithUpmix(), GetAudiotime(), Reconfigure(), and SetStretchFactorLocked().
int AudioOutputBase::output_bytes_per_frame [protected] |
Definition at line 165 of file audiooutputbase.h.
Referenced by audioready(), AudioOutputPulseAudio::ConnectPlaybackStream(), AudioOutputCA::GetAudiotime(), GetAudiotime(), AudioOutputPulseAudio::GetBufferedOnSoundcard(), AudioOutputJACK::GetBufferedOnSoundcard(), AudioOutputALSA::GetBufferedOnSoundcard(), AudioOutputJACK::JackCallback(), AudioOutputJACK::JackXRunCallback(), CoreAudioData::OpenAnalog(), AudioOutputWin::OpenDevice(), AudioOutputOSS::OpenDevice(), AudioOutputJACK::OpenDevice(), AudioOutputDX::OpenDevice(), OutputAudioLoop(), Reconfigure(), AudioOutputCA::RenderAudio(), AudioOutputALSA::SetParameters(), and AudioOutputALSA::WriteAudio().
AudioFormat AudioOutputBase::format [protected] |
Definition at line 166 of file audiooutputbase.h.
Referenced by AddData(), CopyWithUpmix(), GetFormat(), AudioOutputOSS::OpenDevice(), AudioOutputALSA::OpenDevice(), Reconfigure(), Status(), and ToggleUpmix().
AudioFormat AudioOutputBase::output_format [protected] |
Definition at line 167 of file audiooutputbase.h.
Referenced by GetAudioData(), CoreAudioData::OpenAnalog(), AudioOutputWin::OpenDevice(), AudioOutputPulseAudio::OpenDevice(), AudioOutputOSS::OpenDevice(), AudioOutputDX::OpenDevice(), AudioOutputALSA::OpenDevice(), Reconfigure(), AudioOutputCA::RenderAudio(), and AudioOutputALSA::WriteAudio().
int AudioOutputBase::samplerate [protected] |
Definition at line 168 of file audiooutputbase.h.
Referenced by AudioOutputPulseAudio::ConnectPlaybackStream(), GetAudiotime(), AudioOutputPulseAudio::GetBufferedOnSoundcard(), AudioOutputJACK::JackXRunCallback(), CoreAudioData::OpenAnalog(), AudioOutputWin::OpenDevice(), AudioOutputPulseAudio::OpenDevice(), AudioOutputOSS::OpenDevice(), AudioOutputJACK::OpenDevice(), AudioOutputDX::OpenDevice(), AudioOutputALSA::OpenDevice(), CoreAudioData::OpenSPDIF(), OutputAudioLoop(), Reconfigure(), and SetStretchFactorLocked().
int AudioOutputBase::effdsp [protected] |
Definition at line 170 of file audiooutputbase.h.
Referenced by AudioOutputCA::GetAudiotime(), GetAudiotime(), Reconfigure(), AudioOutputCA::RenderAudio(), SetAudiotime(), and SetEffDsp().
int AudioOutputBase::fragment_size [protected] |
Definition at line 171 of file audiooutputbase.h.
Referenced by AddData(), AudioOutputPulseAudio::ConnectPlaybackStream(), Drain(), AudioOutputWin::GetBufferedOnSoundcard(), AudioOutputJACK::GetBufferedOnSoundcard(), AudioOutputJACK::JackCallback(), AudioOutputJACK::JackXRunCallback(), AudioOutputWin::OpenDevice(), AudioOutputOSS::OpenDevice(), AudioOutputNULL::OpenDevice(), AudioOutputJACK::OpenDevice(), AudioOutputDX::OpenDevice(), OutputAudioLoop(), Reconfigure(), and AudioOutputALSA::SetParameters().
long AudioOutputBase::soundcard_buffer_size [protected] |
Definition at line 172 of file audiooutputbase.h.
Referenced by AudioOutputPulseAudio::ConnectPlaybackStream(), AudioOutputDXPrivate::FillBuffer(), AudioOutputDX::GetBufferedOnSoundcard(), AudioOutputWin::OpenDevice(), AudioOutputOSS::OpenDevice(), AudioOutputNULL::OpenDevice(), AudioOutputDX::OpenDevice(), and AudioOutputALSA::SetParameters().
QString AudioOutputBase::main_device [protected] |
Definition at line 174 of file audiooutputbase.h.
Referenced by AudioOutputJACK::_jack_get_ports(), AudioOutputALSA::AudioOutputALSA(), AudioOutputCA::AudioOutputCA(), AudioOutputDX::AudioOutputDX(), AudioOutputPulseAudio::ChooseHost(), AudioOutputOSS::GetOutputSettings(), AudioOutputALSA::GetOutputSettings(), AudioOutputDXPrivate::InitDirectSound(), AudioOutputOSS::OpenDevice(), AudioOutputJACK::OpenDevice(), Reconfigure(), and AudioOutputALSA::TryOpenDevice().
QString AudioOutputBase::passthru_device [protected] |
Definition at line 174 of file audiooutputbase.h.
Referenced by AudioOutputALSA::AudioOutputALSA(), AudioOutputDX::AudioOutputDX(), AudioOutputALSA::GetOutputSettings(), AudioOutputDXPrivate::InitDirectSound(), and AudioOutputALSA::TryOpenDevice().
bool AudioOutputBase::m_discretedigital [protected] |
Definition at line 175 of file audiooutputbase.h.
Referenced by AudioOutputALSA::AudioOutputALSA(), AudioOutputDX::AudioOutputDX(), AudioOutputALSA::GetOutputSettings(), GetOutputSettingsCleaned(), GetOutputSettingsUsers(), and AudioOutputALSA::TryOpenDevice().
bool AudioOutputBase::passthru [protected] |
Definition at line 177 of file audiooutputbase.h.
Referenced by AddData(), audioready(), CanUpmix(), GetAudioData(), AudioOutputWin::OpenDevice(), AudioOutputOSS::OpenDevice(), AudioOutputDX::OpenDevice(), AudioOutputCA::OpenDevice(), AudioOutputALSA::OpenDevice(), Reconfigure(), AudioOutputCA::RenderAudio(), ToggleUpmix(), and AudioOutputALSA::WriteAudio().
bool AudioOutputBase::enc [protected] |
Definition at line 177 of file audiooutputbase.h.
Referenced by audioready(), GetAudioData(), KillAudio(), AudioOutputWin::OpenDevice(), AudioOutputDX::OpenDevice(), AudioOutputCA::OpenDevice(), AudioOutputALSA::OpenDevice(), and Reconfigure().
bool AudioOutputBase::reenc [protected] |
Definition at line 177 of file audiooutputbase.h.
Referenced by Reconfigure().
float AudioOutputBase::stretchfactor [protected] |
Definition at line 179 of file audiooutputbase.h.
Referenced by AddData(), AudioOutputCA::GetAudiotime(), GetAudiotime(), GetStretchFactor(), KillAudio(), Reconfigure(), and SetStretchFactorLocked().
int AudioOutputBase::eff_stretchfactor [protected] |
Definition at line 180 of file audiooutputbase.h.
Referenced by GetAudiotime(), SetAudiotime(), and SetStretchFactorLocked().
AudioOutputSource AudioOutputBase::source [protected] |
Definition at line 181 of file audiooutputbase.h.
Referenced by Reconfigure().
bool AudioOutputBase::killaudio [protected] |
Definition at line 183 of file audiooutputbase.h.
Referenced by AudioOutputJACK::JackCallback(), KillAudio(), OutputAudioLoop(), Reconfigure(), AudioOutputCA::RenderAudio(), and ~AudioOutputBase().
bool AudioOutputBase::pauseaudio [protected] |
Definition at line 185 of file audiooutputbase.h.
Referenced by AddData(), AudioOutputJACK::JackCallback(), OutputAudioLoop(), Pause(), Reconfigure(), AudioOutputCA::RenderAudio(), and Reset().
bool AudioOutputBase::actually_paused [protected] |
Definition at line 185 of file audiooutputbase.h.
Referenced by IsPaused(), AudioOutputJACK::JackCallback(), OutputAudioLoop(), Pause(), Reconfigure(), and AudioOutputCA::RenderAudio().
bool AudioOutputBase::was_paused [protected] |
Definition at line 185 of file audiooutputbase.h.
Referenced by AudioOutputJACK::JackCallback(), OutputAudioLoop(), Pause(), Reconfigure(), and Reset().
bool AudioOutputBase::unpause_when_ready [protected] |
Definition at line 185 of file audiooutputbase.h.
Referenced by AddData(), Pause(), PauseUntilBuffered(), and Reconfigure().
bool AudioOutputBase::set_initial_vol [protected] |
Definition at line 186 of file audiooutputbase.h.
Referenced by AudioOutputPulseAudio::ConnectPlaybackStream(), AudioOutputCA::OpenDevice(), AudioOutputALSA::OpenMixer(), Reconfigure(), AudioOutputOSS::VolumeInit(), and AudioOutputJACK::VolumeInit().
bool AudioOutputBase::buffer_output_data_for_use [protected] |
Definition at line 187 of file audiooutputbase.h.
Referenced by bufferOutputData(), AudioOutputNULL::GetBufferedOnSoundcard(), AudioOutputNULL::Reset(), and AudioOutputNULL::WriteAudio().
int AudioOutputBase::configured_channels [protected] |
Definition at line 189 of file audiooutputbase.h.
Referenced by AddData(), CopyWithUpmix(), GetAudioData(), InitSettings(), Reconfigure(), and SetStretchFactorLocked().
int AudioOutputBase::max_channels [protected] |
Definition at line 190 of file audiooutputbase.h.
Referenced by CanPassthrough(), InitSettings(), Reconfigure(), and ToggleUpmix().
int AudioOutputBase::src_quality [protected] |
Definition at line 198 of file audiooutputbase.h.
Referenced by AudioOutputBase(), Reconfigure(), and AudioOutputALSA::SetParameters().
Definition at line 206 of file audiooutputbase.h.
Referenced by GetOutputSettingsCleaned(), and ~AudioOutputBase().
Definition at line 207 of file audiooutputbase.h.
Referenced by AddData(), CopyWithUpmix(), GetAudioData(), GetOutputSettingsUsers(), InitSettings(), OutputSettings(), Reconfigure(), Status(), and ~AudioOutputBase().
Definition at line 208 of file audiooutputbase.h.
Referenced by GetOutputSettingsCleaned(), and ~AudioOutputBase().
Definition at line 209 of file audiooutputbase.h.
Referenced by CanPassthrough(), GetOutputSettingsUsers(), InitSettings(), OutputSettings(), Reconfigure(), SetupPassthrough(), and ~AudioOutputBase().
bool AudioOutputBase::need_resampler [private] |
Definition at line 210 of file audiooutputbase.h.
Referenced by AddData(), KillAudio(), and Reconfigure().
SRC_STATE* AudioOutputBase::src_ctx [private] |
Definition at line 211 of file audiooutputbase.h.
Referenced by AddData(), CheckFreeSpace(), KillAudio(), and Reconfigure().
Definition at line 212 of file audiooutputbase.h.
Referenced by AddData(), KillAudio(), Reset(), SetAudiotime(), and SetStretchFactorLocked().
Definition at line 213 of file audiooutputbase.h.
Referenced by AddData(), KillAudio(), Reconfigure(), Reset(), and SetAudiotime().
FreeSurround* AudioOutputBase::upmixer [private] |
Definition at line 214 of file audiooutputbase.h.
Referenced by AddData(), CopyWithUpmix(), IsUpmixing(), KillAudio(), Reconfigure(), Reset(), and SetAudiotime().
int AudioOutputBase::source_channels [private] |
Definition at line 216 of file audiooutputbase.h.
Referenced by AddData(), CopyWithUpmix(), Reconfigure(), SetStretchFactorLocked(), Status(), and ToggleUpmix().
int AudioOutputBase::source_samplerate [private] |
Definition at line 217 of file audiooutputbase.h.
Referenced by AddData(), Reconfigure(), SetTimecode(), Status(), and ToggleUpmix().
int AudioOutputBase::source_bytes_per_frame [private] |
Definition at line 218 of file audiooutputbase.h.
Referenced by AddData(), AddFrames(), GetBytesPerFrame(), and Reconfigure().
bool AudioOutputBase::upmix_default [private] |
Definition at line 219 of file audiooutputbase.h.
Referenced by InitSettings(), Reconfigure(), and ToggleUpmix().
bool AudioOutputBase::needs_upmix [private] |
Definition at line 220 of file audiooutputbase.h.
Referenced by AddData(), CopyWithUpmix(), IsUpmixing(), KillAudio(), Reconfigure(), Reset(), SetAudiotime(), and SetStretchFactorLocked().
bool AudioOutputBase::needs_downmix [private] |
Definition at line 221 of file audiooutputbase.h.
Referenced by AddData(), Reconfigure(), and SetStretchFactorLocked().
int AudioOutputBase::surround_mode [private] |
Definition at line 222 of file audiooutputbase.h.
Referenced by Reconfigure().
float AudioOutputBase::old_stretchfactor [private] |
Definition at line 223 of file audiooutputbase.h.
Referenced by KillAudio(), and Reconfigure().
int AudioOutputBase::volume [private] |
Reimplemented from VolumeBase.
Definition at line 224 of file audiooutputbase.h.
Referenced by AddData(), AudioOutputPulseAudio::ConnectPlaybackStream(), GetSWVolume(), AudioOutputOSS::GetVolumeChannel(), AudioOutputDX::GetVolumeChannel(), AudioOutputCA::GetVolumeChannel(), Reconfigure(), SetSWVolume(), AudioOutputOSS::VolumeInit(), and AudioOutputJACK::VolumeInit().
QString AudioOutputBase::volumeControl [private] |
Definition at line 225 of file audiooutputbase.h.
Referenced by Reconfigure(), and SetSWVolume().
bool AudioOutputBase::processing [private] |
Definition at line 227 of file audiooutputbase.h.
Referenced by AddData(), CopyWithUpmix(), GetAudioData(), Reconfigure(), and SetStretchFactorLocked().
int64_t AudioOutputBase::frames_buffered [private] |
Definition at line 229 of file audiooutputbase.h.
Referenced by AddData(), Reconfigure(), Reset(), and SetTimecode().
bool AudioOutputBase::audio_thread_exists [private] |
Definition at line 231 of file audiooutputbase.h.
Referenced by StartOutputThread(), and StopOutputThread().
QMutex AudioOutputBase::audio_buflock [private] |
Writes to the audiobuffer, reconfigures and audiobuffer resets can only take place while holding this lock.
Definition at line 237 of file audiooutputbase.h.
Referenced by AddData(), KillAudio(), Reconfigure(), Reset(), and SetStretchFactor().
QMutex AudioOutputBase::avsync_lock [private] |
must hold avsync_lock to read or write 'audiotime' and 'audiotime_updated'
Definition at line 243 of file audiooutputbase.h.
Referenced by GetAudiotime(), Reconfigure(), and Reset().
int64_t AudioOutputBase::audiotime [private] |
timecode of audio leaving the soundcard (same units as timecodes)
Definition at line 248 of file audiooutputbase.h.
Referenced by GetAudiotime(), OutputAudioLoop(), Reconfigure(), Reset(), SetAudiotime(), and SetTimecode().
volatile uint AudioOutputBase::raud [private] |
Audio circular buffer.
Definition at line 253 of file audiooutputbase.h.
Referenced by audiolen(), GetAudioData(), OutputAudioLoop(), Reconfigure(), Reset(), and SetStretchFactorLocked().
volatile uint AudioOutputBase::waud [private] |
Definition at line 253 of file audiooutputbase.h.
Referenced by AddData(), audiolen(), Reconfigure(), Reset(), and SetStretchFactorLocked().
int64_t AudioOutputBase::audbuf_timecode [private] |
timecode of audio most recently placed into buffer
Definition at line 257 of file audiooutputbase.h.
Referenced by GetAudioBufferedTime(), AudioOutputCA::GetAudiotime(), GetAudiotime(), GetBaseAudBufTimeCode(), Reconfigure(), Reset(), SetAudiotime(), and SetTimecode().
AsyncLooseLock AudioOutputBase::reset_active [private] |
Definition at line 258 of file audiooutputbase.h.
Referenced by OutputAudioLoop(), Reconfigure(), Reset(), and SetStretchFactorLocked().
QMutex AudioOutputBase::killAudioLock [private] |
Reimplemented in AudioOutputALSA.
Definition at line 260 of file audiooutputbase.h.
Referenced by KillAudio().
long AudioOutputBase::current_seconds [private] |
Definition at line 262 of file audiooutputbase.h.
Referenced by Reconfigure(), Reset(), and Status().
long AudioOutputBase::source_bitrate [private] |
Definition at line 263 of file audiooutputbase.h.
Referenced by Reconfigure(), SetSourceBitrate(), and Status().
float* AudioOutputBase::src_in [private] |
Definition at line 265 of file audiooutputbase.h.
Referenced by AddData(), AudioOutputBase(), and Reconfigure().
SRC_DATA AudioOutputBase::src_data [private] |
Definition at line 268 of file audiooutputbase.h.
Referenced by AddData(), AudioOutputBase(), and Reconfigure().
uint AudioOutputBase::memory_corruption_test0 [private] |
Definition at line 269 of file audiooutputbase.h.
Referenced by ~AudioOutputBase().
float AudioOutputBase::src_in_buf[kAudioSRCInputSize+16] [private] |
Definition at line 270 of file audiooutputbase.h.
Referenced by AudioOutputBase().
uint AudioOutputBase::memory_corruption_test1 [private] |
Definition at line 271 of file audiooutputbase.h.
Referenced by ~AudioOutputBase().
float* AudioOutputBase::src_out [private] |
Definition at line 272 of file audiooutputbase.h.
Referenced by AddData(), Reconfigure(), and ~AudioOutputBase().
int AudioOutputBase::kAudioSRCOutputSize [private] |
Definition at line 273 of file audiooutputbase.h.
Referenced by Reconfigure(), and ~AudioOutputBase().
uint AudioOutputBase::memory_corruption_test2 [private] |
Definition at line 274 of file audiooutputbase.h.
Referenced by ~AudioOutputBase().
uchar AudioOutputBase::audiobuffer[kAudioRingBufferSize] [private] |
main audio buffer
Definition at line 278 of file audiooutputbase.h.
Referenced by AudioOutputBase(), and Reset().
uint AudioOutputBase::memory_corruption_test3 [private] |
Definition at line 279 of file audiooutputbase.h.
Referenced by ~AudioOutputBase().
uint AudioOutputBase::m_configure_succeeded [private] |
Definition at line 280 of file audiooutputbase.h.
Referenced by AddData(), GetAudiotime(), Reconfigure(), SetAudiotime(), and SetStretchFactorLocked().
int64_t AudioOutputBase::m_length_last_data [private] |
Definition at line 281 of file audiooutputbase.h.
Referenced by AddData(), and LengthLastData().
SPDIFEncoder* AudioOutputBase::m_spdifenc [private] |
Definition at line 284 of file audiooutputbase.h.
Referenced by AddData(), and SetupPassthrough().
bool AudioOutputBase::m_forcedprocessing [private] |
Definition at line 287 of file audiooutputbase.h.
Referenced by Reconfigure(), and SetStretchFactorLocked().
int AudioOutputBase::m_previousbpf [private] |
Definition at line 288 of file audiooutputbase.h.
Referenced by SetStretchFactorLocked().
1.6.3