Page Menu
Home
Phabricator
Search
Configure Global Search
Log In
Files
F4846259
IResampler.h
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
1 KB
Subscribers
None
IResampler.h
View Options
//
// Created by 杨将 on 2017/9/4.
//
/**
* 基于ffmpeg的重采样模块
*/
#ifndef __IRESAMPLER_H__
#define __IRESAMPLER_H__
enum
{
E_RESAMPLER_SUCCESS
=
0
,
E_RESAMPLER_NO_MEMORY
=
10000
,
E_RESAMPLER_NUM_ZERO
,
};
class
IResampler
{
public:
IResampler
()
{
}
virtual
~
IResampler
()
{
}
public:
/**
* 初始化函数
* @param in_samplerate 输入数据的采样率
* @param out_samplerate 输出数据的采样率
* @param in_channel
* @param out_channel
* @return 0 表示正常
*/
virtual
int
init
(
int
in_samplerate
,
int
out_samplerate
,
int
in_channel
=
1
,
int
out_channel
=
1
)
=
0
;
/**
* 当输入每个通道采样点数为num长度的数据时,从resample可以获取到的输出数据的最大长度
* @param num 本次将要输入的数据长度[单通道采样点数量]
* @return 单通道采样点数量,负数表示异常
*/
virtual
int
get_out_samples
(
int
num
)
=
0
;
/**
* 获取延迟延迟时间,采样点级别
* @return
*/
virtual
int
get_latency
()
=
0
;
/**
* 重设,清空内部缓存数据[当输入数据源切换时,需要进行设置]
*/
virtual
void
reset
()
=
0
;
/**
* 重采样函数
* @param in_buf 输入数据[多通道时,交错方式的存储][in]
* @param in_num 输入数据单个通道的采样点数量[in]
* @param out_buf 输出数据[多通道时,交错方式的存储][in][注意:需要外部开辟好空间,可以使用get_out_samples获取需要开辟的最大长度]
* @param out_num 输出数据单个通道的采样点数量[out][注意: out_buf真实被写入的单通道采样点数量]
* @return 0表示正常
*/
virtual
int
resample
(
float
*
in_buf
,
int
in_num
,
float
*
out_buf
,
int
&
out_num
)
=
0
;
/**
* 销毁函数
*/
virtual
void
uninit
()
=
0
;
};
#endif
//__IRESAMPLER_H__
File Metadata
Details
Attached
Mime Type
text/x-c++
Expires
Sun, Nov 24, 22:17 (1 d, 41 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
1326504
Default Alt Text
IResampler.h (1 KB)
Attached To
R350 av_svc
Event Timeline
Log In to Comment