|
| | AudioOutputJACK (const AudioSettings &settings) |
| |
| | ~AudioOutputJACK () override |
| |
| int | GetVolumeChannel (int channel) const override |
| |
| void | SetVolumeChannel (int channel, int volume) override |
| |
| | AudioOutputBase (const AudioSettings &settings) |
| |
| | ~AudioOutputBase () override |
| | Destructor. More...
|
| |
| AudioOutputSettings * | GetOutputSettingsCleaned (bool digital=true) override |
| | Returns capabilities supported by the audio device amended to take into account the digital audio options (AC3, DTS, E-AC3 and TrueHD) More...
|
| |
| AudioOutputSettings * | GetOutputSettingsUsers (bool digital=false) override |
| | 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. More...
|
| |
| void | Reconfigure (const AudioSettings &settings) override |
| | (Re)Configure AudioOutputBase More...
|
| |
| void | SetEffDsp (int dsprate) override |
| | Set the effective DSP rate. More...
|
| |
| void | SetStretchFactor (float factor) override |
| | Set the timestretch factor. More...
|
| |
| float | GetStretchFactor (void) const override |
| | Get the timetretch factor. More...
|
| |
| int | GetChannels (void) const override |
| |
| AudioFormat | GetFormat (void) const override |
| |
| int | GetBytesPerFrame (void) const override |
| |
| bool | CanPassthrough (int samplerate, int channels, AVCodecID codec, int profile) const override |
| | Test if we can output digital audio and if sample rate is supported. More...
|
| |
| bool | CanDownmix (void) const override |
| |
| bool | IsUpmixing (void) override |
| | Source is currently being upmixed. More...
|
| |
| bool | ToggleUpmix (void) override |
| | Toggle between stereo and upmixed 5.1 if the source material is stereo. More...
|
| |
| bool | CanUpmix (void) override |
| | Upmixing of the current source is available if requested. More...
|
| |
| bool | CanProcess (AudioFormat) override |
| |
| uint32_t | CanProcess (void) override |
| |
| void | Reset (void) override |
| | Reset the audiobuffer, timecode and mythmusic visualisation. More...
|
| |
| void | SetSWVolume (int new_volume, bool save) override |
| | Set the volume for software volume control. More...
|
| |
| int | GetSWVolume (void) override |
| | Get the volume for software volume control. More...
|
| |
| bool | AddFrames (void *buffer, int frames, std::chrono::milliseconds timecode) override |
| | Add frames to the audiobuffer and perform any required processing. More...
|
| |
| bool | AddData (void *buffer, int len, std::chrono::milliseconds timecode, int frames) override |
| | Add data to the audiobuffer and perform any required processing. More...
|
| |
| bool | NeedDecodingBeforePassthrough () const override |
| |
| std::chrono::milliseconds | LengthLastData (void) const override |
| |
| void | SetTimecode (std::chrono::milliseconds timecode) override |
| | Set the timecode of the samples most recently added to the audiobuffer. More...
|
| |
| bool | IsPaused (void) const override |
| |
| void | Pause (bool paused) override |
| |
| void | PauseUntilBuffered (void) override |
| |
| void | Drain (void) override |
| | Block until all available frames have been written to the device. More...
|
| |
| std::chrono::milliseconds | GetAudiotime (void) override |
| | Calculate the timecode of the samples that are about to become audible. More...
|
| |
| std::chrono::milliseconds | GetAudioBufferedTime (void) override |
| | 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. More...
|
| |
| virtual void | Status (void) |
| | Report status via an OutputEvent. More...
|
| |
| void | SetSourceBitrate (int rate) override |
| | Set the bitrate of the source material, reported in periodic OutputEvents. More...
|
| |
| void | GetBufferStatus (uint &fill, uint &total) override |
| | Fill in the number of bytes in the audiobuffer and the total size of the audiobuffer. More...
|
| |
| void | bufferOutputData (bool y) override |
| |
| int | readOutputData (unsigned char *read_buffer, size_t max_length) override |
| |
| | 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, std::chrono::milliseconds timecode)=0 |
| | Add frames to the audiobuffer for playback. More...
|
| |
| virtual bool | AddData (void *buffer, int len, std::chrono::milliseconds timecode, int frames)=0 |
| | Add data to the audiobuffer for playback. More...
|
| |
| virtual bool | NeedDecodingBeforePassthrough (void) const |
| |
| virtual std::chrono::milliseconds | LengthLastData (void) const |
| |
| virtual void | SetTimecode (std::chrono::milliseconds 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 std::chrono::milliseconds | GetAudiotime (void)=0 |
| |
| virtual std::chrono::milliseconds | 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, size_t max_length)=0 |
| |
| virtual bool | IsUpmixing (void) |
| |
| virtual bool | ToggleUpmix (void) |
| |
| virtual bool | CanUpmix (void) |
| |
| bool | PulseStatus (void) const |
| |
| 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 |
| |
| | ~OutputListeners () override=default |
| |
| bool | hasVisual (void) |
| |
| void | addVisual (MythTV::Visual *v) |
| |
| void | removeVisual (MythTV::Visual *v) |
| |
| 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) |
| |
| | MThread (const QString &objectName) |
| | Standard constructor. More...
|
| |
| | MThread (const QString &objectName, QRunnable *runnable) |
| | Use this constructor if you want the default run() method to run the QRunnable's run() method instead of entering the Qt event loop. More...
|
| |
| virtual | ~MThread () |
| |
| | MThread (const MThread &)=delete |
| |
| MThread & | operator= (const MThread &)=delete |
| |
| void | RunProlog (void) |
| | Sets up a thread, call this if you reimplement run(). More...
|
| |
| void | RunEpilog (void) |
| | Cleans up a thread's resources, call this if you reimplement run(). More...
|
| |
| QThread * | qthread (void) |
| | Returns the thread, this will always return the same pointer no matter how often you restart the thread. More...
|
| |
| void | setObjectName (const QString &name) |
| |
| QString | objectName (void) const |
| |
| void | setPriority (QThread::Priority priority) |
| |
| QThread::Priority | priority (void) const |
| |
| bool | isFinished (void) const |
| |
| bool | isRunning (void) const |
| |
| void | setStackSize (uint stackSize) |
| |
| uint | stackSize (void) const |
| |
| void | exit (int retcode=0) |
| | Use this to exit from the thread if you are using a Qt event loop. More...
|
| |
| void | start (QThread::Priority p=QThread::InheritPriority) |
| | Tell MThread to start running the thread in the near future. More...
|
| |
| void | terminate (void) |
| | Kill a thread unsafely. More...
|
| |
| void | quit (void) |
| | calls exit(0) More...
|
| |
| bool | wait (std::chrono::milliseconds time=std::chrono::milliseconds::max()) |
| | Wait for the MThread to exit, with a maximum timeout. More...
|
| |
|
| bool | OpenDevice (void) override |
| |
| void | CloseDevice (void) override |
| |
| void | WriteAudio (unsigned char *aubuf, int size) override |
| |
| int | GetBufferedOnSoundcard (void) const override |
| | Return the size in bytes of frames currently in the audio buffer adjusted with the audio playback latency. More...
|
| |
| AudioOutputSettings * | GetOutputSettings (bool digital) override |
| |
| bool | StartOutputThread (void) override |
| |
| void | StopOutputThread (void) override |
| |
| void | InitSettings (const AudioSettings &settings) |
| |
| virtual bool | OpenDevice (void)=0 |
| |
| virtual void | CloseDevice (void)=0 |
| |
| virtual void | WriteAudio (unsigned char *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. More...
|
| |
| virtual AudioOutputSettings * | GetOutputSettings (bool) |
| |
| void | KillAudio (void) |
| | Kill the output thread and cleanup. More...
|
| |
| virtual bool | StartOutputThread (void) |
| |
| virtual void | StopOutputThread (void) |
| |
| int | GetAudioData (uchar *buffer, int buf_size, bool full_buffer, volatile uint *local_raud=nullptr) |
| | Copy frames from the audiobuffer into the buffer provided. More...
|
| |
| 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. More...
|
| |
| void | run () override |
| | Main routine for the output thread. More...
|
| |
| int | CheckFreeSpace (int &frames) |
| | Check that there's enough space in the audiobuffer to write the provided number of frames. More...
|
| |
| int | audiolen () const |
| | Get the number of bytes in the audiobuffer. More...
|
| |
| int | audiofree () const |
| | Get the free space in the audiobuffer in bytes. More...
|
| |
| int | audioready () const |
| | Get the scaled number of bytes in the audiobuffer, i.e. More...
|
| |
| void | SetStretchFactorLocked (float factor) |
| | Set the timestretch factor. More...
|
| |
| std::chrono::milliseconds | GetBaseAudBufTimeCode () const |
| |
| bool | usesSpdif () const |
| |
| 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, std::chrono::milliseconds timecode, int chan, int prec) |
| |
| void | prepareVisuals () |
| |
| virtual void | run (void) |
| | Runs the Qt event loop unless we have a QRunnable, in which case we run the runnable run instead. More...
|
| |
| int | exec (void) |
| | Enters the qt event loop. call exit or quit to exit thread. More...
|
| |
|
| using | ADCVect = QVector< AudioDeviceConfig > |
| |
| static const char * | quality_string (int q) |
| |
| static void | Cleanup (void) |
| |
| static ADCVect * | GetOutputList (void) |
| |
| static AudioDeviceConfig * | GetAudioDeviceConfig (QString &name, const 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 void | ThreadSetup (const QString &name) |
| | This is to be called on startup in those few threads that haven't been ported to MThread. More...
|
| |
| static void | ThreadCleanup (void) |
| | This is to be called on exit in those few threads that haven't been ported to MThread. More...
|
| |
| static void | Cleanup (void) |
| | This will print out all the running threads, call exit(1) on each and then wait up to 5 seconds total for all the threads to exit. More...
|
| |
| static void | GetAllThreadNames (QStringList &list) |
| |
| static void | GetAllRunningThreadNames (QStringList &list) |
| |
| static const uint | kAudioSRCInputSize = 16384 |
| |
| static const uint | kAudioRingBufferSize = 10239936U |
| | Audio Buffer Size – should be divisible by 32,24,16,12,10,8,6,4,2.. More...
|
| |
| static const int | kMaxSizeBuffer = 384000 |
| | kMaxSizeBuffer is the maximum size of a buffer to be used with DecodeAudio More...
|
| |
| enum | : std::int8_t { QUALITY_DISABLED = -1
, QUALITY_LOW = 0
, QUALITY_MEDIUM = 1
, QUALITY_HIGH = 2
} |
| |
| static void | setTerminationEnabled (bool enabled=true) |
| |
| static void | usleep (std::chrono::microseconds time) |
| |
| template<typename R , typename P > |
| static std::enable_if_t< std::chrono::treat_as_floating_point< R >::value, void > | usleep (std::chrono::duration< R, P > time) |
| |
| int | m_channels {-1} |
| |
| AVCodecID | m_codec {AV_CODEC_ID_NONE} |
| |
| int | m_bytesPerFrame {0} |
| |
| int | m_outputBytesPerFrame {0} |
| |
| AudioFormat | m_format {FORMAT_NONE} |
| |
| AudioFormat | m_outputFormat {FORMAT_NONE} |
| |
| int | m_sampleRate {-1} |
| |
| int | m_effDsp {0} |
| |
| int | m_fragmentSize {0} |
| |
| long | m_soundcardBufferSize {0} |
| |
| QString | m_mainDevice |
| |
| QString | m_passthruDevice |
| |
| bool | m_discreteDigital {false} |
| |
| bool | m_passthru {false} |
| |
| bool | m_enc {false} |
| |
| bool | m_reEnc {false} |
| |
| float | m_stretchFactor {1.0F} |
| |
| int | m_effStretchFactor {100000} |
| |
| AudioOutputSource | m_source |
| |
| bool | m_killAudio {false} |
| |
| bool | m_pauseAudio {false} |
| |
| bool | m_actuallyPaused {false} |
| |
| bool | m_wasPaused {false} |
| |
| bool | m_unpauseWhenReady {false} |
| |
| bool | m_setInitialVol |
| |
| bool | m_bufferOutputDataForUse {false} |
| |
| int | m_configuredChannels {0} |
| |
| int | m_maxChannels {0} |
| |
| int | m_srcQuality {QUALITY_MEDIUM} |
| |
| long | m_sourceBitRate {-1} |
| |
| int | m_sourceSampleRate {0} |
| |
| QString | m_lastError |
| |
| QString | m_lastWarn |
| |
| bool | m_pulseWasSuspended {false} |
| |
| AVFrame * | m_frame {nullptr} |
| |
| bool | m_internalVol {false} |
| |
| QMutex * | m_lock {nullptr} |
| |
| QSet< QObject * > | m_listeners |
| |
| MThreadInternal * | m_thread {nullptr} |
| |
| QRunnable * | m_runnable {nullptr} |
| |
| bool | m_prologExecuted {true} |
| |
| bool | m_epilogExecuted {true} |
| |