MythTV  master
Signals | Public Member Functions | Private Member Functions | Private Attributes | List of all members
AudioPlayer Class Reference

#include <audioplayer.h>

Inheritance diagram for AudioPlayer:
Inheritance graph
[legend]
Collaboration diagram for AudioPlayer:
Collaboration graph
[legend]

Signals

void AudioPlayerStateChanged (MythAudioPlayerState State)
 

Public Member Functions

 AudioPlayer (MythPlayer *parent, bool muted)
 
 ~AudioPlayer () override
 
void addVisual (MythTV::Visual *vis)
 
void removeVisual (MythTV::Visual *vis)
 
void Reset (void)
 
void DeleteOutput (void)
 
QString ReinitAudio (void)
 
void SetAudioOutput (AudioOutput *ao)
 
void SetAudioInfo (const QString &main_device, const QString &passthru_device, uint samplerate, int codec_profile=-1)
 Set audio output device parameters. More...
 
void SetAudioParams (AudioFormat format, int orig_channels, int channels, AVCodecID codec, int samplerate, bool passthru, int codec_profile=-1)
 Set audio output parameters. More...
 
void SetEffDsp (int dsprate)
 
void CheckFormat (void)
 
void SetNoAudio (void)
 
bool HasAudioIn (void) const
 
bool HasAudioOut (void) const
 
bool ControlsVolume (void) const
 
bool Pause (bool pause)
 
bool IsPaused (void)
 
void PauseAudioUntilBuffered (void)
 
AVCodecID GetCodec (void) const
 
int GetOrigChannels (void) const
 
int GetSampleRate (void) const
 
uint GetVolume (void)
 
uint AdjustVolume (int change)
 
uint SetVolume (int newvolume)
 
float GetStretchFactor (void) const
 
void SetStretchFactor (float factor)
 
bool IsUpmixing (void)
 
bool EnableUpmix (bool enable, bool toggle=false)
 
bool CanUpmix (void)
 
bool CanPassthrough (int samplerate, int channels, AVCodecID codec, int profile)
 
bool CanDownmix (void)
 
bool CanAC3 (void)
 
bool CanDTS (void)
 
bool CanEAC3 (void)
 
bool CanTrueHD (void)
 
bool CanDTSHD (void)
 
uint GetMaxChannels (void)
 
int GetMaxHDRate (void)
 
std::chrono::milliseconds GetAudioTime (void)
 
AudioFormat GetFormat (void) const
 
bool CanProcess (AudioFormat fmt)
 
uint32_t CanProcess (void)
 
int DecodeAudio (AVCodecContext *ctx, uint8_t *buffer, int &data_size, const AVPacket *pkt)
 DecodeAudio Utility routine. More...
 
bool IsMuted (void)
 
bool SetMuted (bool mute)
 
MuteState GetMuteState (void)
 
MuteState SetMuteState (MuteState mstate)
 
MuteState IncrMuteState (void)
 
void AddAudioData (char *buffer, int len, std::chrono::milliseconds timecode, int frames)
 
bool NeedDecodingBeforePassthrough (void)
 
std::chrono::milliseconds LengthLastData (void)
 
bool GetBufferStatus (uint &fill, uint &total)
 
bool IsBufferAlmostFull (void)
 
std::chrono::milliseconds GetAudioBufferedTime (void)
 
AudioOutputGetAudioOutput (void) const
 Return internal AudioOutput object. More...
 

Private Member Functions

void AddVisuals (void)
 
void RemoveVisuals (void)
 
void ResetVisuals (void)
 

Private Attributes

MythPlayerm_parent {nullptr}
 
AudioOutputm_audioOutput {nullptr}
 
MythAudioPlayerState m_state { }
 
float m_stretchFactor {1.0F}
 
QRecursiveMutex m_lock
 
bool m_mutedOnCreation {false}
 
QString m_mainDevice
 
QString m_passthruDevice
 
bool m_noAudioIn {false}
 
bool m_noAudioOut {true}
 
bool m_controlsVolume {true}
 
std::vector< MythTV::Visual * > m_visuals
 

Detailed Description

Definition at line 26 of file audioplayer.h.

Constructor & Destructor Documentation

◆ AudioPlayer()

AudioPlayer::AudioPlayer ( MythPlayer parent,
bool  muted 
)

Definition at line 13 of file audioplayer.cpp.

◆ ~AudioPlayer()

AudioPlayer::~AudioPlayer ( )
override

Definition at line 20 of file audioplayer.cpp.

Member Function Documentation

◆ AudioPlayerStateChanged

void AudioPlayer::AudioPlayerStateChanged ( MythAudioPlayerState  State)
signal

◆ addVisual()

void AudioPlayer::addVisual ( MythTV::Visual vis)

Definition at line 26 of file audioplayer.cpp.

Referenced by MythPlayerAudioUI::SetupAudioGraph(), and VideoVisual::VideoVisual().

◆ removeVisual()

void AudioPlayer::removeVisual ( MythTV::Visual vis)

◆ Reset()

void AudioPlayer::Reset ( void  )

◆ DeleteOutput()

void AudioPlayer::DeleteOutput ( void  )

◆ ReinitAudio()

QString AudioPlayer::ReinitAudio ( void  )

◆ SetAudioOutput()

void AudioPlayer::SetAudioOutput ( AudioOutput ao)

Definition at line 205 of file audioplayer.cpp.

◆ SetAudioInfo()

void AudioPlayer::SetAudioInfo ( const QString &  main_device,
const QString &  passthru_device,
uint  samplerate,
int  codec_profile = -1 
)

Set audio output device parameters.

codec_profile is currently only used for DTS

Definition at line 227 of file audioplayer.cpp.

Referenced by MythPlayerAudioUI::SetupAudioOutput().

◆ SetAudioParams()

void AudioPlayer::SetAudioParams ( AudioFormat  format,
int  orig_channels,
int  channels,
AVCodecID  codec,
int  samplerate,
bool  passthru,
int  codec_profile = -1 
)

Set audio output parameters.

codec_profile is currently only used for DTS

Definition at line 247 of file audioplayer.cpp.

Referenced by AvFormatDecoder::ScanStreams(), and AvFormatDecoder::SetupAudioStream().

◆ SetEffDsp()

void AudioPlayer::SetEffDsp ( int  dsprate)

Definition at line 263 of file audioplayer.cpp.

◆ CheckFormat()

void AudioPlayer::CheckFormat ( void  )

Definition at line 173 of file audioplayer.cpp.

Referenced by MythPlayer::OpenFile().

◆ SetNoAudio()

void AudioPlayer::SetNoAudio ( void  )
inline

Definition at line 54 of file audioplayer.h.

◆ HasAudioIn()

bool AudioPlayer::HasAudioIn ( void  ) const
inline

◆ HasAudioOut()

bool AudioPlayer::HasAudioOut ( void  ) const
inline

◆ ControlsVolume()

bool AudioPlayer::ControlsVolume ( void  ) const
inline

Definition at line 57 of file audioplayer.h.

Referenced by MythPlayerAudioUI::ChangeMuteState().

◆ Pause()

bool AudioPlayer::Pause ( bool  pause)

◆ IsPaused()

bool AudioPlayer::IsPaused ( void  )

Definition at line 189 of file audioplayer.cpp.

Referenced by MythPlayerUI::EventLoop(), and MythPlayer::PrebufferEnoughFrames().

◆ PauseAudioUntilBuffered()

void AudioPlayer::PauseAudioUntilBuffered ( void  )

Definition at line 197 of file audioplayer.cpp.

Referenced by MythPlayerAudioUI::PauseAudioUntilBuffered().

◆ GetCodec()

AVCodecID AudioPlayer::GetCodec ( void  ) const
inline

Definition at line 62 of file audioplayer.h.

Referenced by MythPlayerUI::GetCodecDescription(), and Transcode::TranscodeFile().

◆ GetOrigChannels()

int AudioPlayer::GetOrigChannels ( void  ) const
inline

Definition at line 63 of file audioplayer.h.

Referenced by MythPlayerUI::GetCodecDescription().

◆ GetSampleRate()

int AudioPlayer::GetSampleRate ( void  ) const
inline

◆ GetVolume()

uint AudioPlayer::GetVolume ( void  )

Definition at line 215 of file audioplayer.cpp.

Referenced by AdjustVolume(), MythPlayerAudioUI::ChangeVolume(), and SetVolume().

◆ AdjustVolume()

uint AudioPlayer::AdjustVolume ( int  change)

Definition at line 318 of file audioplayer.cpp.

Referenced by MythPlayerAudioUI::ChangeVolume().

◆ SetVolume()

uint AudioPlayer::SetVolume ( int  newvolume)

Definition at line 327 of file audioplayer.cpp.

Referenced by MythPlayerAudioUI::ChangeVolume().

◆ GetStretchFactor()

float AudioPlayer::GetStretchFactor ( void  ) const
inline

◆ SetStretchFactor()

void AudioPlayer::SetStretchFactor ( float  factor)

◆ IsUpmixing()

bool AudioPlayer::IsUpmixing ( void  )

Definition at line 344 of file audioplayer.cpp.

Referenced by MythPlayerAudioUI::EnableUpmix(), and EnableUpmix().

◆ EnableUpmix()

bool AudioPlayer::EnableUpmix ( bool  enable,
bool  toggle = false 
)

Definition at line 352 of file audioplayer.cpp.

Referenced by MythPlayerAudioUI::EnableUpmix().

◆ CanUpmix()

bool AudioPlayer::CanUpmix ( void  )

Definition at line 362 of file audioplayer.cpp.

◆ CanPassthrough()

bool AudioPlayer::CanPassthrough ( int  samplerate,
int  channels,
AVCodecID  codec,
int  profile 
)

Definition at line 431 of file audioplayer.cpp.

Referenced by AvFormatDecoder::DoPassThrough().

◆ CanDownmix()

bool AudioPlayer::CanDownmix ( void  )

Definition at line 439 of file audioplayer.cpp.

Referenced by AvFormatDecoder::DecoderWillDownmix().

◆ CanAC3()

bool AudioPlayer::CanAC3 ( void  )

Definition at line 392 of file audioplayer.cpp.

◆ CanDTS()

bool AudioPlayer::CanDTS ( void  )

Definition at line 397 of file audioplayer.cpp.

◆ CanEAC3()

bool AudioPlayer::CanEAC3 ( void  )

Definition at line 402 of file audioplayer.cpp.

◆ CanTrueHD()

bool AudioPlayer::CanTrueHD ( void  )

Definition at line 407 of file audioplayer.cpp.

◆ CanDTSHD()

bool AudioPlayer::CanDTSHD ( void  )

◆ GetMaxChannels()

uint AudioPlayer::GetMaxChannels ( void  )

◆ GetMaxHDRate()

int AudioPlayer::GetMaxHDRate ( void  )

Definition at line 424 of file audioplayer.cpp.

◆ GetAudioTime()

std::chrono::milliseconds AudioPlayer::GetAudioTime ( void  )

Definition at line 336 of file audioplayer.cpp.

Referenced by MythPlayerAVSync::AVSync(), and VideoVisual::GetNode().

◆ GetFormat()

AudioFormat AudioPlayer::GetFormat ( void  ) const
inline

Definition at line 83 of file audioplayer.h.

Referenced by AvFormatDecoder::ProcessAudioPacket().

◆ CanProcess() [1/2]

bool AudioPlayer::CanProcess ( AudioFormat  fmt)

Definition at line 514 of file audioplayer.cpp.

◆ CanProcess() [2/2]

uint32_t AudioPlayer::CanProcess ( void  )

Definition at line 521 of file audioplayer.cpp.

Referenced by SetAudioParams().

◆ DecodeAudio()

int AudioPlayer::DecodeAudio ( AVCodecContext *  ctx,
uint8_t *  buffer,
int &  data_size,
const AVPacket *  pkt 
)

DecodeAudio Utility routine.

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

Definition at line 538 of file audioplayer.cpp.

Referenced by AvFormatDecoder::ProcessAudioPacket().

◆ IsMuted()

bool AudioPlayer::IsMuted ( void  )
inline

Definition at line 90 of file audioplayer.h.

Referenced by MythPlayerAudioUI::ChangeMuteState(), and SetMuted().

◆ SetMuted()

bool AudioPlayer::SetMuted ( bool  mute)

Definition at line 271 of file audioplayer.cpp.

Referenced by MythPlayerAudioUI::ChangeMuteState().

◆ GetMuteState()

MuteState AudioPlayer::GetMuteState ( void  )

Definition at line 310 of file audioplayer.cpp.

Referenced by MythPlayerAudioUI::ChangeMuteState(), and IncrMuteState().

◆ SetMuteState()

MuteState AudioPlayer::SetMuteState ( MuteState  mstate)

Definition at line 295 of file audioplayer.cpp.

Referenced by IncrMuteState(), ReinitAudio(), and SetMuted().

◆ IncrMuteState()

MuteState AudioPlayer::IncrMuteState ( void  )

Definition at line 303 of file audioplayer.cpp.

Referenced by MythPlayerAudioUI::ChangeMuteState().

◆ AddAudioData()

void AudioPlayer::AddAudioData ( char *  buffer,
int  len,
std::chrono::milliseconds  timecode,
int  frames 
)

Definition at line 450 of file audioplayer.cpp.

Referenced by AvFormatDecoder::ProcessAudioPacket().

◆ NeedDecodingBeforePassthrough()

bool AudioPlayer::NeedDecodingBeforePassthrough ( void  )

Definition at line 471 of file audioplayer.cpp.

Referenced by AvFormatDecoder::ProcessAudioPacket().

◆ LengthLastData()

std::chrono::milliseconds AudioPlayer::LengthLastData ( void  )

Definition at line 478 of file audioplayer.cpp.

Referenced by AvFormatDecoder::ProcessAudioPacket().

◆ GetBufferStatus()

bool AudioPlayer::GetBufferStatus ( uint fill,
uint total 
)

Definition at line 485 of file audioplayer.cpp.

Referenced by IsBufferAlmostFull().

◆ IsBufferAlmostFull()

bool AudioPlayer::IsBufferAlmostFull ( void  )

◆ GetAudioBufferedTime()

std::chrono::milliseconds AudioPlayer::GetAudioBufferedTime ( void  )

Definition at line 508 of file audioplayer.cpp.

Referenced by IsBufferAlmostFull().

◆ GetAudioOutput()

AudioOutput* AudioPlayer::GetAudioOutput ( void  ) const
inline

Return internal AudioOutput object.

Definition at line 106 of file audioplayer.h.

Referenced by MythPlayerUI::EventLoop(), and AvFormatDecoder::SetupAudioStream().

◆ AddVisuals()

void AudioPlayer::AddVisuals ( void  )
private

Definition at line 54 of file audioplayer.cpp.

Referenced by ReinitAudio(), and SetAudioOutput().

◆ RemoveVisuals()

void AudioPlayer::RemoveVisuals ( void  )
private

Definition at line 64 of file audioplayer.cpp.

Referenced by DeleteOutput().

◆ ResetVisuals()

void AudioPlayer::ResetVisuals ( void  )
private

Definition at line 74 of file audioplayer.cpp.

Referenced by ReinitAudio(), and SetAudioParams().

Member Data Documentation

◆ m_parent

MythPlayer* AudioPlayer::m_parent {nullptr}
private

Definition at line 114 of file audioplayer.h.

Referenced by AddAudioData(), and ReinitAudio().

◆ m_audioOutput

AudioOutput* AudioPlayer::m_audioOutput {nullptr}
private

◆ m_state

MythAudioPlayerState AudioPlayer::m_state { }
private

Definition at line 116 of file audioplayer.h.

Referenced by CheckFormat(), ReinitAudio(), SetAudioInfo(), and SetAudioParams().

◆ m_stretchFactor

float AudioPlayer::m_stretchFactor {1.0F}
private

Definition at line 117 of file audioplayer.h.

Referenced by ReinitAudio(), and SetStretchFactor().

◆ m_lock

QRecursiveMutex AudioPlayer::m_lock
private

◆ m_mutedOnCreation

bool AudioPlayer::m_mutedOnCreation {false}
private

Definition at line 123 of file audioplayer.h.

Referenced by ReinitAudio().

◆ m_mainDevice

QString AudioPlayer::m_mainDevice
private

Definition at line 124 of file audioplayer.h.

Referenced by ReinitAudio(), and SetAudioInfo().

◆ m_passthruDevice

QString AudioPlayer::m_passthruDevice
private

Definition at line 125 of file audioplayer.h.

Referenced by ReinitAudio(), and SetAudioInfo().

◆ m_noAudioIn

bool AudioPlayer::m_noAudioIn {false}
private

Definition at line 126 of file audioplayer.h.

Referenced by CheckFormat(), and ReinitAudio().

◆ m_noAudioOut

bool AudioPlayer::m_noAudioOut {true}
private

◆ m_controlsVolume

bool AudioPlayer::m_controlsVolume {true}
private

Definition at line 128 of file audioplayer.h.

Referenced by AudioPlayer(), and ReinitAudio().

◆ m_visuals

std::vector<MythTV::Visual*> AudioPlayer::m_visuals
private

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