Ring Daemon
16.0.0
Loading...
Searching...
No Matches
resampler.h
Go to the documentation of this file.
1
/*
2
* Copyright (C) 2004-2025 Savoir-faire Linux Inc.
3
*
4
* This program is free software: you can redistribute it and/or modify
5
* it under the terms of the GNU General Public License as published by
6
* the Free Software Foundation, either version 3 of the License, or
7
* (at your option) any later version.
8
*
9
* This program is distributed in the hope that it will be useful,
10
* but WITHOUT ANY WARRANTY; without even the implied warranty of
11
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
* GNU General Public License for more details.
13
*
14
* You should have received a copy of the GNU General Public License
15
* along with this program. If not, see <https://www.gnu.org/licenses/>.
16
*/
17
#pragma once
18
19
#include "
audio_format.h
"
20
#include "
media/media_buffer.h
"
21
#include "
noncopyable.h
"
22
23
extern
"C"
{
24
struct
AVFrame;
25
struct
SwrContext;
26
}
27
28
namespace
jami
{
29
30
class
AudioBuffer
;
31
35
class
Resampler
36
{
37
public
:
38
Resampler
();
39
~Resampler
();
40
48
int
resample
(
const
AVFrame
* input,
AVFrame
*
output
);
49
53
std::unique_ptr<AudioFrame>
resample
(std::unique_ptr<AudioFrame>&&
in
,
const
AudioFormat
&
out
);
54
58
std::shared_ptr<AudioFrame>
resample
(std::shared_ptr<AudioFrame>&&
in
,
const
AudioFormat
&
out
);
59
60
private
:
61
NON_COPYABLE
(
Resampler
);
62
69
void
reinit(
const
AVFrame
*
in
,
const
AVFrame
*
out
);
70
76
SwrContext
* swrCtx_;
77
85
unsigned
initCount_;
86
};
87
88
}
// namespace jami
audio_format.h
jami::Resampler
Wrapper class for libswresample.
Definition
resampler.h:36
jami::Resampler::Resampler
Resampler()
Definition
resampler.cpp:28
jami::Resampler::~Resampler
~Resampler()
Definition
resampler.cpp:33
jami::Resampler::resample
int resample(const AVFrame *input, AVFrame *output)
Resample a frame.
Definition
resampler.cpp:112
media_buffer.h
jami
Definition
account.cpp:61
jami::emitSignal
void emitSignal(Args... args)
Definition
ring_signal.h:64
noncopyable.h
Simple macro to hide class' copy constructor and assignment operator.
NON_COPYABLE
#define NON_COPYABLE(ClassName)
Definition
noncopyable.h:30
jami::AudioFormat
Structure to hold sample rate and channel number associated with audio data.
Definition
audio_format.h:34
src
media
audio
resampler.h
Generated on Thu Jun 19 2025 15:50:37 for Ring Daemon by
1.9.8