MythTV
master
|
#include <audiooutput.h>
Classes | |
class | AudioDeviceConfig |
Public Types | |
using | ADCVect = QVector< AudioDeviceConfig > |
Public Member Functions | |
AudioOutput ()=default | |
~AudioOutput () override | |
virtual void | Reconfigure (const AudioSettings &settings)=0 |
virtual void | SetStretchFactor (float factor) |
virtual float | GetStretchFactor (void) const |
virtual int | GetChannels (void) const |
virtual AudioFormat | GetFormat (void) const |
virtual int | GetBytesPerFrame (void) const |
virtual AudioOutputSettings * | GetOutputSettingsCleaned (bool digital=true) |
virtual AudioOutputSettings * | GetOutputSettingsUsers (bool digital=true) |
virtual bool | CanPassthrough (int samplerate, int channels, AVCodecID codec, int profile) const |
virtual bool | CanDownmix (void) const |
virtual void | SetEffDsp (int dsprate)=0 |
virtual void | Reset (void)=0 |
virtual bool | AddFrames (void *buffer, int frames, int64_t timecode)=0 |
Add frames to the audiobuffer for playback. More... | |
virtual bool | AddData (void *buffer, int len, int64_t timecode, int frames)=0 |
Add data to the audiobuffer for playback. More... | |
virtual bool | NeedDecodingBeforePassthrough (void) const |
virtual int64_t | LengthLastData (void) const |
virtual void | SetTimecode (int64_t timecode)=0 |
virtual bool | IsPaused (void) const =0 |
virtual void | Pause (bool paused)=0 |
virtual void | PauseUntilBuffered (void)=0 |
virtual void | Drain (void)=0 |
virtual int64_t | GetAudiotime (void)=0 |
virtual int64_t | GetAudioBufferedTime (void) |
report amount of audio buffered in milliseconds. More... | |
virtual void | SetSourceBitrate (int) |
QString | GetError (void) const |
QString | GetWarning (void) const |
virtual void | GetBufferStatus (uint &fill, uint &total) |
virtual void | bufferOutputData (bool y)=0 |
virtual int | readOutputData (unsigned char *read_buffer, int max_length)=0 |
virtual bool | IsUpmixing (void) |
virtual bool | ToggleUpmix (void) |
virtual bool | CanUpmix (void) |
bool | PulseStatus (void) |
virtual bool | CanProcess (AudioFormat fmt) |
virtual uint32_t | CanProcess (void) |
virtual int | DecodeAudio (AVCodecContext *ctx, uint8_t *buffer, int &data_size, const AVPacket *pkt) |
Utility routine. More... | |
![]() | |
VolumeBase () | |
virtual | ~VolumeBase ()=default |
void | SWVolume (bool set) |
bool | SWVolume (void) const |
virtual uint | GetCurrentVolume (void) const |
virtual void | SetCurrentVolume (int value) |
virtual void | AdjustCurrentVolume (int change) |
virtual void | ToggleMute (void) |
virtual MuteState | GetMuteState (void) const |
virtual MuteState | SetMuteState (MuteState) |
![]() | |
OutputListeners ()=default | |
virtual | ~OutputListeners ()=default |
bool | hasVisual (void) |
void | addVisual (MythTV::Visual *) |
void | removeVisual (MythTV::Visual *) |
QMutex * | mutex () |
void | setBufferSize (unsigned int sz) |
unsigned int | bufferSize () const |
![]() | |
MythObservable () | |
virtual | ~MythObservable () |
void | addListener (QObject *listener) |
Add a listener to the observable. More... | |
void | removeListener (QObject *listener) |
Remove a listener to the observable. More... | |
void | dispatch (const MythEvent &event) |
Dispatch an event to all listeners. More... | |
bool | hasListeners (void) |
Static Public Member Functions | |
static void | Cleanup (void) |
static ADCVect * | GetOutputList (void) |
static AudioDeviceConfig * | GetAudioDeviceConfig (QString &name, QString &desc, bool willsuspendpa=false) |
static AudioOutput * | OpenAudio (const QString &main_device, const QString &passthru_device, AudioFormat format, int channels, AVCodecID codec, int samplerate, AudioOutputSource source, bool set_initial_vol, bool passthru, int upmixer_startup=0, AudioOutputSettings *custom=nullptr) |
static AudioOutput * | OpenAudio (AudioSettings &settings, bool willsuspendpa=true) |
static AudioOutput * | OpenAudio (const QString &main_device, const QString &passthru_device=QString(), bool willsuspendpa=true) |
![]() | |
static MuteState | NextMuteState (MuteState) |
Static Public Attributes | |
static const int | MAX_SIZE_BUFFER = 384000 |
MAX_SIZE_BUFFER is the maximum size of a buffer to be used with DecodeAudio. More... | |
Protected Member Functions | |
void | Error (const QString &msg) |
void | SilentError (const QString &msg) |
void | Warn (const QString &msg) |
void | ClearError (void) |
void | ClearWarning (void) |
![]() | |
virtual int | GetVolumeChannel (int channel) const =0 |
virtual void | SetVolumeChannel (int channel, int volume)=0 |
virtual void | SetSWVolume (int new_volume, bool save)=0 |
virtual int | GetSWVolume (void)=0 |
void | UpdateVolume (void) |
void | SyncVolume (void) |
void | SetChannels (int new_channels) |
![]() | |
void | error (const QString &e) |
void | dispatchVisual (uchar *b, unsigned long b_len, unsigned long written, int chan, int prec) |
void | prepareVisuals () |
Protected Attributes | |
QString | m_lastError |
QString | m_lastWarn |
bool | m_pulsewassuspended {false} |
AVFrame * | m_frame {nullptr} |
![]() | |
bool | internal_vol {false} |
![]() | |
QMutex * | m_lock {nullptr} |
QSet< QObject * > | m_listeners |
Private Member Functions | |
Q_DECLARE_TR_FUNCTIONS (AudioOutput) | |
Definition at line 22 of file audiooutput.h.
using AudioOutput::ADCVect = QVector<AudioDeviceConfig> |
Definition at line 45 of file audiooutput.h.
|
default |
|
override |
Definition at line 244 of file audiooutput.cpp.
|
private |
|
static |
Definition at line 51 of file audiooutput.cpp.
|
static |
Definition at line 420 of file audiooutput.cpp.
Referenced by AudioConfigSettings::AudioRescan(), and AudioSetupWizard::Load().
|
static |
Definition at line 304 of file audiooutput.cpp.
Referenced by AudioConfigSettings::AudioRescan(), AudioConfigSettings::CheckConfiguration(), AudioConfigSettings::CheckPassthrough(), fillSelectionsFromDir(), and AudioSetupWizard::Init().
|
static |
Definition at line 58 of file audiooutput.cpp.
Referenced by AudioTestThread::AudioTestThread(), MythRAOPConnection::OpenAudioDevice(), MusicPlayer::openOutputDevice(), and AudioPlayer::ReinitAudio().
|
static |
Definition at line 80 of file audiooutput.cpp.
|
static |
Definition at line 71 of file audiooutput.cpp.
|
pure virtual |
Implemented in AudioOutputBase, and AudioReencodeBuffer.
Referenced by avfDecoder::initialize(), CdDecoder::initialize(), and AudioPlayer::ReinitAudio().
|
virtual |
Reimplemented in AudioOutputBase.
Definition at line 253 of file audiooutput.cpp.
Referenced by MusicPlayer::setSpeed(), and AudioPlayer::SetStretchFactor().
|
inlinevirtual |
Reimplemented in AudioOutputBase.
Definition at line 72 of file audiooutput.h.
|
inlinevirtual |
Reimplemented in AudioOutputBase.
Definition at line 73 of file audiooutput.h.
|
inlinevirtual |
Reimplemented in AudioOutputBase.
Definition at line 74 of file audiooutput.h.
|
inlinevirtual |
Reimplemented in AudioOutputBase.
Definition at line 75 of file audiooutput.h.
Referenced by AudioPlayer::AddAudioData(), and MythRAOPConnection::ProcessAudio().
|
virtual |
Reimplemented in AudioOutputBase.
Definition at line 257 of file audiooutput.cpp.
Referenced by GetAudioDeviceConfig().
|
virtual |
Reimplemented in AudioOutputBase.
Definition at line 262 of file audiooutput.cpp.
Referenced by AudioPlayer::GetMaxChannels(), AudioPlayer::GetMaxHDRate(), and TestDigitalFeature().
|
virtual |
Reimplemented in AudioOutputBase, and AudioReencodeBuffer.
Definition at line 267 of file audiooutput.cpp.
Referenced by AudioPlayer::CanPassthrough().
|
inlinevirtual |
Reimplemented in AudioOutputBase.
Definition at line 81 of file audiooutput.h.
Referenced by AudioPlayer::CanDownmix().
|
pure virtual |
Implemented in AudioOutputBase, and AudioReencodeBuffer.
Referenced by AudioPlayer::SetEffDsp().
|
pure virtual |
Implemented in AudioOutputBase, AudioReencodeBuffer, and AudioOutputNULL.
Referenced by MusicPlayer::decoderHandlerReady(), MythRAOPConnection::ProcessAudio(), AudioPlayer::Reset(), MythRAOPConnection::ResetAudio(), and MusicPlayer::stop().
|
pure virtual |
Add frames to the audiobuffer for playback.
[in] | buffer | pointer to audio data |
[in] | frames | number of frames added. |
[in] | timecode | timecode of the first sample added (in msec) |
Implemented in AudioOutputBase, and AudioReencodeBuffer.
Referenced by AudioTestThread::run().
|
pure virtual |
Add data to the audiobuffer for playback.
[in] | buffer | pointer to audio data |
[in] | len | length of audio data added |
[in] | timecode | timecode of the first sample added (in msec) |
[in] | frames | number of frames added. |
Implemented in AudioOutputBase, AudioReencodeBuffer, and AudioOutputAudioTrack.
Referenced by AudioPlayer::AddAudioData(), MythRAOPConnection::AudioCardLatency(), MythRAOPConnection::ProcessAudio(), and avfDecoder::run().
|
inlinevirtual |
Reimplemented in AudioOutputBase.
Definition at line 119 of file audiooutput.h.
Referenced by AudioPlayer::NeedDecodingBeforePassthrough().
|
inlinevirtual |
Reimplemented in AudioOutputBase.
Definition at line 126 of file audiooutput.h.
Referenced by AudioPlayer::LengthLastData(), MythRAOPConnection::ProcessAudio(), and AudioTestThread::run().
|
pure virtual |
Implemented in AudioOutputBase, and AudioReencodeBuffer.
Referenced by MusicCommon::seek(), and MusicPlayer::seek().
|
pure virtual |
Implemented in AudioOutputBase, and AudioReencodeBuffer.
Referenced by AudioPlayer::IsPaused(), MusicPlayer::isPaused(), MusicCommon::keyPressEvent(), MythRAOPConnection::ProcessAudio(), and MusicPlayer::stop().
|
pure virtual |
Implemented in AudioOutputBase, AudioReencodeBuffer, and AudioOutputAudioTrack.
Referenced by AudioTestThread::AudioTestThread(), AudioPlayer::Pause(), MusicPlayer::pause(), MythRAOPConnection::ProcessAudio(), and AudioTestThread::run().
|
pure virtual |
Implemented in AudioOutputBase, and AudioReencodeBuffer.
Referenced by avfDecoder::initialize(), CdDecoder::initialize(), AudioPlayer::PauseAudioUntilBuffered(), and CdDecoder::seek().
|
pure virtual |
Implemented in AudioOutputBase, AudioReencodeBuffer, and AudioOutputPulseAudio.
Referenced by AudioPlayer::AddAudioData(), avfDecoder::run(), CdDecoder::run(), and AudioTestThread::run().
|
pure virtual |
|
inlinevirtual |
report amount of audio buffered in milliseconds.
Reimplemented in AudioOutputBase.
Definition at line 139 of file audiooutput.h.
Referenced by MythPlayer::EventLoop(), AudioPlayer::GetAudioBufferedTime(), MythRAOPConnection::ProcessAudio(), MythRAOPConnection::ProcessSync(), and avfDecoder::run().
|
inlinevirtual |
Reimplemented in AudioOutputBase, and AudioOutputAudioTrack.
Definition at line 141 of file audiooutput.h.
Referenced by avfDecoder::initialize(), CdDecoder::initialize(), and AvFormatDecoder::SetupAudioStream().
|
inline |
Definition at line 143 of file audiooutput.h.
Referenced by MythRAOPConnection::OpenAudioDevice(), MusicPlayer::openOutputDevice(), AudioOutputBase::Reconfigure(), AudioPlayer::ReinitAudio(), and AudioTestThread::result().
|
inline |
Definition at line 144 of file audiooutput.h.
Reimplemented in AudioOutputBase.
Definition at line 146 of file audiooutput.h.
Referenced by AudioPlayer::GetBufferStatus(), and CdDecoder::run().
|
pure virtual |
Implemented in AudioOutputBase, and AudioReencodeBuffer.
|
pure virtual |
Implemented in AudioOutputBase, AudioReencodeBuffer, and AudioOutputNULL.
|
inlinevirtual |
Reimplemented in AudioOutputBase.
Definition at line 154 of file audiooutput.h.
Referenced by AudioPlayer::IsUpmixing().
|
inlinevirtual |
Reimplemented in AudioOutputBase.
Definition at line 155 of file audiooutput.h.
Referenced by AudioPlayer::EnableUpmix(), and MusicCommon::toggleUpmix().
|
inlinevirtual |
Reimplemented in AudioOutputBase.
Definition at line 156 of file audiooutput.h.
Referenced by AudioPlayer::CanUpmix().
|
inline |
Definition at line 157 of file audiooutput.h.
|
inlinevirtual |
fmt | The audio format in question. return true if class can handle AudioFormat All AudioOutput derivative must be able to handle S16 |
Reimplemented in AudioOutputBase.
Definition at line 164 of file audiooutput.h.
Referenced by AudioPlayer::CanProcess().
|
inlinevirtual |
Reimplemented in AudioOutputBase.
Definition at line 170 of file audiooutput.h.
|
virtual |
Utility routine.
DecodeAudio Decode an audio packet, and compact it if data is planar Return negative error code if an error occurred during decoding or the number of bytes consumed from the input AVPacket data_size contains the size of decoded data copied into buffer.
Decode an audio packet, and compact it if data is planar Return negative error code if an error occurred during decoding or the number of bytes consumed from the input AVPacket data_size contains the size of decoded data copied into buffer data decoded will be S16 samples if class instance can't handle HD audio or S16 and above otherwise. No U8 PCM format can be returned
[in] | ctx | The current audio context information. |
[in] | buffer | Destination for the copy |
[out] | data_size | The number of bytes copied. |
[in] | pkt | The source data packet |
Definition at line 600 of file audiooutput.cpp.
Referenced by AudioPlayer::DecodeAudio(), and avfDecoder::run().
|
protected |
Definition at line 277 of file audiooutput.cpp.
Referenced by AudioOutputWin::OpenDevice(), AudioOutputOSS::OpenDevice(), AudioOutputALSA::OpenDevice(), AudioOutputBase::Reconfigure(), AudioOutputALSA::SetParameters(), and AudioOutputALSA::WriteAudio().
|
protected |
Definition at line 283 of file audiooutput.cpp.
Referenced by AudioOutputBase::Reconfigure().
|
protected |
Definition at line 288 of file audiooutput.cpp.
Referenced by AudioOutputALSA::GetOutputSettings().
|
protected |
Definition at line 294 of file audiooutput.cpp.
Referenced by AudioReencodeBuffer::Reconfigure(), and AudioOutputBase::Reconfigure().
|
protected |
Definition at line 299 of file audiooutput.cpp.
|
static |
MAX_SIZE_BUFFER is the maximum size of a buffer to be used with DecodeAudio.
Definition at line 192 of file audiooutput.h.
Referenced by MythRAOPConnection::AudioCardLatency(), avfDecoder::avfDecoder(), AvFormatDecoder::AvFormatDecoder(), and MythRAOPConnection::decodeAudioPacket().
|
protected |
Definition at line 201 of file audiooutput.h.
|
protected |
Definition at line 202 of file audiooutput.h.
Definition at line 203 of file audiooutput.h.
Referenced by OpenAudio().
|
protected |
Definition at line 204 of file audiooutput.h.