29 #ifndef OPENSHOT_AUDIO_PLAYBACK_THREAD_H
30 #define OPENSHOT_AUDIO_PLAYBACK_THREAD_H
32 #include "../ReaderBase.h"
33 #include "../RendererBase.h"
34 #include "../AudioReaderSource.h"
39 using juce::WaitableEvent;
47 TimeSliceThread::run();
81 AudioSourcePlayer player;
82 AudioTransportSource transport;
83 MixerAudioSource mixer;
102 std::shared_ptr<Frame> getFrame();
105 int64_t getCurrentFramePosition();
111 void Seek(int64_t new_position);
120 void setSpeed(
int new_speed) {
if (source) source->
setSpeed(new_speed); }
123 int getSpeed()
const {
if (source)
return source->
getSpeed();
else return 1; }
131 #endif // OPENSHOT_AUDIO_PLAYBACK_THREAD_H
void CloseAudioDevice()
Close audio device.
This class is used to playback a video from a reader.
AudioDeviceManager audioDeviceManager
Public device manager property.
The audio playback thread.
This abstract class is the base class, used by all readers in libopenshot.
The private part of QtPlayer class, which contains an audio thread and video thread, and controls the video timing and audio synchronization code.
This class is used to expose any ReaderBase derived class as an AudioSource in JUCE.
Singleton wrapper for AudioDeviceManager (to prevent multiple instances).
int getSpeed() const
Get Speed (The speed and direction to playback a reader (1=normal, 2=fast, 3=faster, -1=rewind, etc...)
static AudioDeviceManagerSingleton * Instance(int numChannels)
Create or get an instance of this singleton (invoke the class with this method)
SafeTimeSliceThread(const String &s)
void setSpeed(int new_speed)
Set Speed (The speed and direction to playback a reader (1=normal, 2=fast, 3=faster, -1=rewind, etc...)
Exception when too many seek attempts happen.