11 #include "cores/AudioEngine/Engines/ActiveAE/ActiveAE.h"    12 #include "cores/AudioEngine/Engines/ActiveAE/ActiveAEBuffer.h"    13 #include "cores/AudioEngine/Interfaces/AEStream.h"    14 #include "cores/AudioEngine/Utils/AEAudioFormat.h"    15 #include "cores/AudioEngine/Utils/AELimiter.h"    16 #include "threads/Event.h"    32   void Add(
double error)
    38   void Flush(std::chrono::milliseconds interval = std::chrono::milliseconds(100))
    43     m_timer.Set(interval);
    46   void SetErrorInterval(std::chrono::milliseconds interval = std::chrono::milliseconds(100))
    50     m_timer.Set(interval);
    53   bool Get(
double& error, std::chrono::milliseconds interval = std::chrono::milliseconds(100))
    55     if(m_timer.IsTimePast())
    69   double GetLastError(
unsigned int &time)
    71     time = m_timer.GetStartTime().time_since_epoch().count();
    75   void Correction(
double correction)
    77     m_lastError += correction;
    84       return m_buffer / m_count;
    99   bool Create(
unsigned int totaltime, 
bool remap, 
bool upmix, 
bool normalize = 
true);
   100   void SetExtraData(
int profile, 
enum AVMatrixEncoding matrix_encoding, 
enum AVAudioServiceType audio_service_type);
   101   bool ProcessBuffers();
   102   void ConfigureResampler(
bool normalizelevels, 
bool stereoupmix, AEQuality quality);
   103   bool HasInputLevel(
int level);
   106   void SetDrain(
bool drain);
   108   void SetRR(
double rr, 
double atempoThreshold);
   111   bool DoesNormalize();
   112   void ForceResampler(
bool force);
   114   std::unique_ptr<CActiveAEBufferPool> GetResampleBuffers();
   115   std::unique_ptr<CActiveAEBufferPool> GetAtempoBuffers();
   118   std::deque<CSampleBuffer*> m_outputSamples;
   119   std::deque<CSampleBuffer*> m_inputSamples;
   122   std::unique_ptr<CActiveAEBufferPoolResample> m_resampleBuffers;
   123   std::unique_ptr<CActiveAEBufferPoolAtempo> m_atempoBuffers;
   137   void FadingFinished();
   138   void IncFreeBuffers();
   139   void DecFreeBuffers();
   140   void ResetFreeBuffers();
   143   double CalcResampleRatio(
double error);
   144   std::chrono::milliseconds GetErrorInterval();
   147   unsigned int GetSpace() 
override;
   148   unsigned int AddData(
const uint8_t* 
const *data, 
unsigned int offset, 
unsigned int frames, 
ExtData *extData) 
override;
   149   double GetDelay() 
override;
   151   bool IsBuffering() 
override;
   152   double GetCacheTime() 
override;
   153   double GetCacheTotal() 
override;
   154   double GetMaxDelay() 
override;
   156   void Pause() 
override;
   157   void Resume() 
override;
   158   void Drain(
bool wait) 
override;
   159   bool IsDraining() 
override;
   160   bool IsDrained() 
override;
   161   void Flush() 
override;
   163   float GetVolume() 
override;
   164   float GetReplayGain() 
override;
   165   float GetAmplification() 
override;
   166   void SetVolume(
float volume) 
override;
   167   void SetReplayGain(
float factor) 
override;
   168   void SetAmplification(
float amplify) 
override;
   169   void SetFFmpegInfo(
int profile, 
enum AVMatrixEncoding matrix_encoding, 
enum AVAudioServiceType audio_service_type) 
override;
   171   unsigned int GetFrameSize() 
const override;
   172   unsigned int GetChannelCount() 
const override;
   174   unsigned int GetSampleRate() 
const override ;
   175   enum AEDataFormat GetDataFormat() 
const override;
   177   double GetResampleRatio() 
override;
   178   void SetResampleRatio(
double ratio) 
override;
   179   void SetResampleMode(
int mode) 
override;
   181   void UnRegisterAudioCallback() 
override;
   182   void FadeVolume(
float from, 
float to, 
unsigned int time) 
override;
   183   bool IsFading() 
override;
   184   void RegisterSlave(
IAEStream *stream) 
override;
   191   float m_streamVolume;
   193   float m_streamAmplify;
   194   double m_streamResampleRatio;
   195   int m_streamResampleMode;
   196   unsigned int m_streamSpace;
   197   bool m_streamDraining;
   198   bool m_streamDrained;
   200   int m_streamFreeBuffers;
   201   bool m_streamIsBuffering;
   202   bool m_streamIsFlushed;
   204   CCriticalSection m_streamLock;
   205   CCriticalSection m_statsLock;
   208   std::unique_ptr<CSoundPacket> m_remapBuffer;
   209   std::unique_ptr<IAEResample> m_remapper;
   211   double m_lastPtsJump;
   212   std::chrono::milliseconds m_errorInterval{1000};
   215   std::unique_ptr<CActiveAEBufferPool> m_inputBuffers;
   216   std::unique_ptr<CActiveAEStreamBuffers> m_processingBuffers;
   217   std::deque<CSampleBuffer*> m_processingSamples;
   218   std::unique_ptr<CActiveAEDataProtocol> m_streamPort;
   227   float m_bufferedTime;
   230   float m_fadingTarget;
   234   double m_resampleIntegral;
   236   enum AVMatrixEncoding m_matrixEncoding;
   237   enum AVAudioServiceType m_audioServiceType;
   238   bool m_forceResampler;
   241   double m_lastSyncError;
   242   CAESyncInfo::AESyncState m_syncState;
 This is an Event class built from a ConditionVariable. 
Definition: Event.h:35
Definition: AELimiter.h:15
Definition: ActiveAEStream.h:130
Callback interface for VideoPlayer clock needed by AE for sync. 
Definition: AEStream.h:23
Definition: SystemClock.h:31
Definition: IAudioCallback.h:15
Definition: ActiveAEStream.h:94
IAEStream Stream Interface for streaming audio. 
Definition: AEStream.h:52
Definition: Application.h:67
Definition: AEStream.h:60
Definition: ActiveAE.h:182
Definition: ActiveAEStream.h:25
Definition: ActiveAEBuffer.h:45
Definition: ActiveAE.h:228
Definition: AEStream.h:31