Opus 低延迟音频编解码器API手册中文翻译(4)

2019-04-15 19:05

向一个Opus解码器执行一个 CTL 函数.

一般其请求和后续的参数是由一个提供便利的宏来产生的。 参数:

? st OpusDecoder*: 解码器状态.

? request :这个及所有其他剩余参数应被1个在Generic CTLs 或

Encoder related CTLs所提供便利的宏来替代

参见:

Generic CTLs Decoder related CTLs

void opus_decoder_destroy ( OpusDecoder *

st )

释放一个根据opus_decoder_create()已分配的OpusDecoder 对象. 参数:

[in] st OpusDecoder*:用于释放的解码器状态。

int opus_decoder_get_nb_samples ( const OpusDecoder * dec,

const unsigned char opus_int32

len

packet[],

)

获得一个Opus包的样本数 参数:

[in] dec OpusDecoder*: 解码器状态 [in] packet char*: Opus包 [in] len opus_int32: 包的长度 返回:

样本的数量 返回值:

OPUS_INVALID_PACKET:通过的被压缩数据已损坏或其格式不被支持。

16

int opus_decoder_get_size ( int 获得 OpusDecoder结构的大小。 参数:

[in] channels 返回:

字节数的大小.

channels )

int: 通道数,必须是1或2.

int opus_decoder_init ( OpusDecoder *

opus_int32 int

Fs,

st,

channels

)

初始化一个以前分配过的解码器状态.

状态必须至少是opus_decoder_get_size()返回的大小.

在这里,应用程序不要用系统自动分配内存,而要准备用自己的分配器。 参见:

opus_decoder_create,opus_decoder_get_size,为重设一个以前初始化的状态,使用OPUS_RESET_STATE CTL.

参数:

[in] st OpusDecoder*: 解码器状态.

[in] Fs opus_int32: 准备解码的采样率 (Hz). 必须是8000、12000、16000、24000、或48000.

[in] channels 返回值:

成功,OPUS_OK ,失败,错误代码。

int opus_packet_get_bandwidth ( const unsigned char * data

获得一个Opus包的带宽。 参数:

17

int: 解码的通道数 (1 or 2)

)

[in] data 返回值:

char*: Opus 包

? OPUS_BANDWIDTH_NARROWBAND 窄带 (4kHz bandpass) ? OPUS_BANDWIDTH_MEDIUMBAND 中等带宽 (6kHz bandpass) ? OPUS_BANDWIDTH_WIDEBAND 宽带 (8kHz bandpass) ? OPUS_BANDWIDTH_SUPERWIDEBAND

bandpass)

? OPUS_BANDWIDTH_FULLBAND 全宽带 (20kHz bandpass) ? OPUS_INVALID_PACKET 通过的被压缩数据已损坏或其格式不被

支持

int opus_packet_get_nb_channels

)

获得Opus 包的通道数。 参数: [in] data 返回: 通道数量 返回值:

OPUS_INVALID_PACKET 通过的被压缩数据已损坏或其格式不被支持

int opus_packet_get_nb_frames ( const unsigned char

opus_int32

len

packet[],

char*: Opus 包

( const unsigned char * data

高宽带

(12kHz

)

获得Opus 包所有帧的数量. 参数:

[in] packet char*: Opus 包

18

[in] len opus_int32:包的长度 返回: 帧的数量 返回值:

OPUS_INVALID_PACKET 通过的被压缩数据已损坏或其格式不被支持

int opus_packet_get_nb_samples

packet[],

opus_int32 opus_int32

len, Fs

( const

unsigned

char

)

获得Opus 包的样本数。 参数:

[in] packet char*: Opus 包 [in] len opus_int32: 包的长度

[in] Fs opus_int32: 采样率(Hz). 必须是400的倍数,否则结果不准确。

返回:

样本的数量 返回值:

OPUS_INVALID_PACKET 通过的被压缩数据已损坏或其格式不被支持

int opus_packet_get_samples_per_frame ( const

data,

opus_int32

Fs

unsigned

char

*

)

获得Opus 包每帧的样本数。

19

参数: [in] data

char*: Opus 包. 必须包含至少一个字节的数据。

[in] Fs opus_int32: 采样率(Hz).必须是400的倍数,否则结果不准确。

返回:

每帧样本的数量.

int opus_packet_parse ( const unsigned char * data,

opus_int32

len,

out_toc,

unsigned char *

const unsigned char * frames[48], short size[48], int * payload_offset

)

将一个 opus 包解析成1个或多个帧.

Opus_decode在内部执行这个操作,所以大多数应用程序不需要用到这个函数。这个函数不复制各帧,返回的指针是输入包内部的指针。

参数: [in] data

char*:要进行解析的 Opus包

[in] len opus_int32: 数据的大小 [out] [out] [out] [out] 返回: 帧的数量

out_toc char*: TOC 指针 frames char*[48] 封装过的帧 size short[48] 封装过的帧的大小

payload_offset int*: 返回在包内负载的位置(按字节)

20


Opus 低延迟音频编解码器API手册中文翻译(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:java程序设计课程--实验指导书--实验1

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: