1 /*
2  *  Copyright (C) 2010-2018 Team Kodi
3  *  This file is part of Kodi - https://kodi.tv
4  *
5  *  SPDX-License-Identifier: GPL-2.0-or-later
6  *  See LICENSES/README.md for more information.
7  */
8 
9 #pragma once
10 
11 #include "cores/AudioEngine/Interfaces/AE.h"
12 
13 namespace ActiveAE
14 {
15 
16 class IAEResample
17 {
18 public:
19   // return the name of this sync for logging
20   virtual const char *GetName() = 0;
21   IAEResample() = default;
22   virtual ~IAEResample() = default;
23   virtual bool Init(SampleConfig dstConfig, SampleConfig srcConfig, bool upmix, bool normalize, double centerMix,
24                     CAEChannelInfo *remapLayout, AEQuality quality, bool force_resample) = 0;
25   virtual int Resample(uint8_t **dst_buffer, int dst_samples, uint8_t **src_buffer, int src_samples, double ratio) = 0;
26   virtual int64_t GetDelay(int64_t base) = 0;
27   virtual int GetBufferedSamples() = 0;
28   virtual bool WantsNewSamples(int samples) = 0;
29   virtual int CalcDstSampleCount(int src_samples, int dst_rate, int src_rate) = 0;
30   virtual int GetSrcBufferSize(int samples) = 0;
31   virtual int GetDstBufferSize(int samples) = 0;
32 };
33 
34 }
35