Roc Toolkit internal modules
Roc Toolkit: real-time audio streaming
Loading...
Searching...
No Matches
resampler_reader.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2018 Roc Streaming authors
3 *
4 * This Source Code Form is subject to the terms of the Mozilla Public
5 * License, v. 2.0. If a copy of the MPL was not distributed with this
6 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
7 */
8
9//! @file roc_audio/resampler_reader.h
10//! @brief Resampler.
11
12#ifndef ROC_AUDIO_RESAMPLER_READER_H_
13#define ROC_AUDIO_RESAMPLER_READER_H_
14
15#include "roc_audio/frame.h"
18#include "roc_audio/sample.h"
20#include "roc_core/array.h"
22#include "roc_core/slice.h"
23#include "roc_core/stddefs.h"
24#include "roc_packet/units.h"
25
26namespace roc {
27namespace audio {
28
29//! Resampler element for reading pipeline.
31public:
32 //! Initialize.
34 IResampler& resampler,
35 const SampleSpec& in_sample_spec,
36 const SampleSpec& out_sample_spec);
37
38 //! Check if object is successfully constructed.
39 bool valid() const;
40
41 //! Set new resample factor.
42 bool set_scaling(float multiplier);
43
44 //! Read audio frame.
45 virtual bool read(Frame&);
46
47private:
48 bool push_input_();
49
50 IResampler& resampler_;
51 IFrameReader& reader_;
52
53 const audio::SampleSpec in_sample_spec_;
54 const audio::SampleSpec out_sample_spec_;
55
56 float scaling_;
57 bool valid_;
58};
59
60} // namespace audio
61} // namespace roc
62
63#endif // ROC_AUDIO_RESAMPLER_READER_H_
Dynamic array.
Audio frame.
Definition: frame.h:22
Frame reader interface.
Definition: iframe_reader.h:22
Audio writer interface.
Definition: iresampler.h:23
Resampler element for reading pipeline.
ResamplerReader(IFrameReader &reader, IResampler &resampler, const SampleSpec &in_sample_spec, const SampleSpec &out_sample_spec)
Initialize.
bool valid() const
Check if object is successfully constructed.
bool set_scaling(float multiplier)
Set new resample factor.
virtual bool read(Frame &)
Read audio frame.
Sample stream specification. Defines sample rate and channel layout.
Definition: sample_spec.h:24
Base class for non-copyable objects.
Definition: noncopyable.h:23
Audio frame.
Frame reader interface.
Audio resampler interface.
Root namespace.
Non-copyable object.
Audio sample.
Sample specifications.
Slice.
Commonly used types and functions.
Various units used in packets.