]> git.sesse.net Git - casparcg/blob - modules/ffmpeg/producer/audio/audio_resampler.h
2.0.1: ffmpeg: Replaced TBB implementation with better Concurrency Runtime based...
[casparcg] / modules / ffmpeg / producer / audio / audio_resampler.h
1 #pragma once\r
2 \r
3 #include <memory>\r
4 \r
5 #include <libavutil/samplefmt.h>\r
6 \r
7 #include <tbb/cache_aligned_allocator.h>\r
8 \r
9 namespace caspar { namespace ffmpeg {\r
10 \r
11 class audio_resampler\r
12 {\r
13 public:\r
14         audio_resampler(size_t                  output_channels,                size_t                  input_channels, \r
15                                         size_t                  output_sample_rate,             size_t                  input_sample_rate, \r
16                                         AVSampleFormat  output_sample_format,   AVSampleFormat  input_sample_format);\r
17         \r
18         std::vector<int8_t, tbb::cache_aligned_allocator<int8_t>> resample(std::vector<int8_t, tbb::cache_aligned_allocator<int8_t>>&& data);\r
19 private:\r
20         struct implementation;\r
21         std::shared_ptr<implementation> impl_;\r
22 };\r
23 \r
24 }}