ImageVerifierCode 换一换
格式:DOC , 页数:74 ,大小:469.54KB ,
资源ID:2956663      下载积分:5 金币
验证码下载
登录下载
邮箱/手机:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/2956663.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  
声明  |  会员权益     获赠5币     写作写作

1、填表:    下载求助     索取发票    退款申请
2、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
3、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
4、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
5、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【a199****6536】。
6、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
7、本文档遇到问题,请及时私信或留言给本站上传会员【a199****6536】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。

注意事项

本文(Opus低延迟音频编解码器API手册中文翻译模板.doc)为本站上传会员【a199****6536】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4008-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

Opus低延迟音频编解码器API手册中文翻译模板.doc

1、Opus:IETF低延迟音频编解码器:API和操作手册Opus介绍Opus编解码器是专门设计用于互联网交互式语音和音频传输。它是由IETF编解码器工作组设计,合并了SkypeSILK和Xiph. OrgCELT技术。Opus编解码器设计目标是处理广泛交互式音频应用程序,包含IP语音,视频,游戏内聊天,甚至远程现场音乐演出。它能够适适用于从低码率窄带语音到很高质量立体声音乐。它关键特点是: 采样率从8至48 kHz 比特率从6kb/s到510kb/s 对固定码率(CBR)和可变码率(VBR)全部能支持 从窄带到宽带音频带宽 支持语音和音乐 支持单声道和立体声 支持多通道(最多255通道) 帧规格

2、从2.5毫秒到60毫秒 良好损失鲁棒性和包丢失隐藏性(PLC)(注:应是指丢包也不轻易被发觉) 浮点和定点实施文档包含: Opus Encoder Opus Decoder Repacketizer Opus Multistream API Opus library information functions Opus Custom Opus Encoder 本节描述了Opus编码器OpusEncoder过程和函数类型定义typedef struct OpusEncoderOpusEncoderOpus encoder 状态. 函数intopus_encoder_get_size (int c

3、hannels)取得 OpusEncoder结构大小OpusEncoder *opus_encoder_create (opus_int32 Fs, int channels, int application, int *error)分配和初始化 encoder状态. intopus_encoder_init (OpusEncoder *st, opus_int32 Fs, int channels, int application)初始化一个以前分配编码器状态。所指向内存圣必需最少是opus_encoder_get_size()返回大小. opus_int32opus_encode (Opu

4、sEncoder *st, const opus_int16 *pcm, int frame_size, unsigned char *data, opus_int32 max_data_bytes)对一个 Opus帧进行编码. opus_int32opus_encode_float (OpusEncoder *st, const float *pcm, int frame_size, unsigned char *data, opus_int32 max_data_bytes)依据浮点输入对一个 Opus帧进行编码. voidopus_encoder_destroy (OpusEncoder

5、 *st)释放一个依据opus_encoder_create()已分配OpusEncoder 对象。 intopus_encoder_ctl (OpusEncoder *st, int request,.)向一个Opus编码器实施一个 CTL 函数. 具体描述本节描述了用于编码Opus过程和函数。既然Opus是一个有状态编解码器,编码过程始于创建一个编码器状态,用以下方法做到:int error;OpusEncoder *enc;enc = opus_encoder_create(Fs, channels, application, &error);从这一点上, enc能够用于编码音频流。一个

6、编码器状态在同一时间不得用于多于一个音频流。一样,编码器状态不能对于每帧重新初始化。当opus_encoder_create()为状态分配内存时,它也能够初始化预分配内存:int size;int error;OpusEncoder *enc;size = opus_encoder_get_size(channels);enc = malloc(size);error = opus_encoder_init(enc, Fs, channels, application);opus_encoder_get_size()返回编码器状态要求大小。注意,这段代码未来版本可能改变大小,所以没有assup

7、tions应该对它做出。编码器状态在内存中总是连续,复制它只要一个浅拷贝就足够了。使用opus_encoder_ctl()接口能够改变部分编码器参数设置。全部这些参数全部已经有缺省值,所以只在必需情况下改变它们。最常见参数设置修改是:opus_encoder_ctl(enc, OPUS_SET_BITRATE(bitrate);opus_encoder_ctl(enc, OPUS_SET_COMPLEXITY(complexity);opus_encoder_ctl(enc, OPUS_SET_SIGNAL(signal_type);在这里: bitrate(比特率)单位是比特/秒(b / s

8、) complexity(复杂性)是一个值从1到10,1最低,10最高,值越大越复杂 signal_type(信号类型)包含OPUS_AUTO (缺省), OPUS_SIGNAL_VOICE, or OPUS_SIGNAL_MUSIC。看Encoder related CTLs 和 Generic CTLs能够取得可设置和查询参数具体清单。在一个音频流处理过程中,大多数参数能够设置或修改。为了对一个帧进行编码,必需正确地用音频数据帧(2.5, 5, 10, 20, 40 或60 毫秒)来调用opus_encode() 或opus_encode_float()函数。len = opus_enco

9、de(enc, audio_frame, frame_size, packet, max_packet);在这里:l audio_frame(音频帧)是opus_int16(或用于opus_encode_float()浮点)格式音频数据l frame_size(帧大小)是样本中帧最大数(每个通道)l packet(包)是写成压缩数据字节数组, l max_packet是能够写入包字节数最大值推荐(4000字节)。不要使用max_packet控制VBR目标比特率,而应该用OPUS_SET_BITRATE CTL。opus_encode() 和opus_encode_float()返回实际写入包字

10、节数。返回值能够是负数,这表明一个错误已经发生。假如返回值是1个字节,那么包不需要传输(DTX)。一旦一个编码器状态已不再需要,能够用以下方法解构:opus_encoder_destroy(enc);假如编码器是用opus_encoder_init() 创建,而不是使用opus_encoder_create()函数,那么不需要采取行动,要求从潜在释放为它手动分配内存(上述例子是调用 free(enc)中分离。类型定义文档typedef struct OpusEncoder OpusEncoderOpus编码器状态。这包含了一个Opus编码器完整状态。它是位置独立,而且能够自由复制。函数文档op

11、us_int32 opus_encode ( OpusEncoder * st,const opus_int16 * pcm,int frame_size,unsigned char * data,opus_int32 max_data_bytes ) 对一个Opus帧进行编码。参数:instOpusEncoder*:编码器状态inpcmopus_int16*: 输入信号(假如是2 通道有交叉). 长度是 frame_size*channels*sizeof(opus_int16)inframe_sizeint:输入信号每通道样本数. 这必需是编码器采样率Opus帧大小。比如,48 kHz 下

12、许可值有120, 240, 480, 960, 1920, 和 2880。少于10毫秒采样(48 kHz 有480个样本),将阻止编码器使用LPC或混合模式。outdataunsigned char*: 输出负载。必需包含最少max_data_bytes 容量。inmax_data_bytesopus_int32: 为输出负载所分配内存大小。能够用于限制固定比特率最大上限,但不能用作唯一比特率限制,能够用OPUS_SET_BITRATE来控制比特率。返回值:成功,是被编码包长度(字节数),失败,一个负错误代码opus_int32 opus_encode_float ( OpusEncoder

13、* st,const float * pcm,int frame_size,unsigned char * data,opus_int32 max_data_bytes ) 依据浮点输入对一个 Opus帧进行编码.参数:instOpusEncoder*:编码器状态inpcmfloat*:浮点格式输入(假如是2 通道有交叉),正常范围在+/-1.0之间. 超出该范围采样也是支持,但它将被解码器用整型API截取,而且只能在知道远端支持扩展动态范围情况下使用。长度是 frame_size*channels*sizeof(float) inframe_sizeint: 输入信号每通道样本数. 这必需是

14、编码器采样率Opus帧大小。比如,48 kHz 下许可值有120, 240, 480, 960, 1920, 和 2880。少于10毫秒采样(48 kHz 有480个样本),将阻止编码器使用LPC或混合模式。outdataunsigned char*:输出负载。必需包含最少max_data_bytes 容量。inmax_data_bytesopus_int32: 为输出负载所分配内存大小。能够用于限制固定比特率最大上限,但不能用作唯一比特率限制,能够用OPUS_SET_BITRATE来控制比特率。.返回值:成功,是被编码包长度(字节数),失败,一个负错误代码。OpusEncoder* opus

15、_encoder_create ( opus_int32 Fs,int channels,int application,int * error ) 分配和初始化一个编码器状态。包含三种编码模式:OPUS_APPLICATION_VOIP:在给定比特率条件下为声音信号提供最高质量,它经过高通滤波和强调共振峰友好波增强了输入信号。它包含带内前向错误检验以预防包丢失。经典VOIP应用程序使用这种模式。因为进行了增强,即使是高比特率情况下,输出声音和输入相比,听起来可能不一样。OPUS_APPLICATION_AUDIO:对大多数非语音信号,如音乐,在给定比特率条件下提供了最高质量。使用这种模式场所

16、包含音乐、混音(音乐/声音),广播,和需要不到15 毫秒信号延迟其它应用。OPUS_APPLICATION_RESTRICTED_LOWDELAY:配置低延迟模式将为降低延迟禁用语音优化模式。这种模式只能在刚初始化或刚重设编码器情况下使用,因为在这些情况下编解码器延迟被修改了。(当心!)当调用者知道语音优化模式不再需要时,配置低延迟模式是有用。参数:inFsopus_int32: 输入信号采样率 (Hz),必需是8000、1、16000、24000、或48000。inchannelsint:输入信号通道数 (1 or 2) 。inapplicationint:编码模式(OPUS_APPLICA

17、TION_VOIP/OPUS_APPLICATION_AUDIO/OPUS_APPLICATION_RESTRICTED_LOWDELAY)outerrorint*: 错误代码注意:不管选择什么样采样率和通道数, 假如选择比特率太低,Opus编码器能够切换到一个较低音频带宽或通道数。这也意味着总是使用48 kHz立体声输入和让编码器优化编码是安全。int opus_encoder_ctl ( OpusEncoder * st,int request, . ) 向一个Opus编码器实施一个 CTL 函数.通常其请求和后续参数是由一个提供便利宏来产生。参数: stOpusEncoder*: 编码器

18、状态 request int:这个及全部其它参数应被1个在Generic CTLs 或Encoder related CTLs所提供便利宏来替换参见: Generic CTLs Encoder related CTLsvoid opus_encoder_destroy ( OpusEncoder * st) Frees an OpusEncoder allocated by opus_encoder_create().释放一个依据opus_encoder_create()已分配OpusEncoder 对象。参数: instOpusEncoder*: 用于释放编码器状态。int opus_enc

19、oder_get_size ( int channels) 取得 OpusEncoder结构大小。参数: inchannelsint: 通道数,必需是1或2.返回: 字节数大小.int opus_encoder_init ( OpusEncoder * st,opus_int32 Fs,int channels,int application ) 初始化一个以前分配编码器状态。状态所指向内存必需最少是opus_encoder_get_size()返回大小.在这里,应用程序不要用系统自动分配内存,而要准备用自己分配器。参见: opus_encoder_create(),opus_encoder_

20、get_size()。为重设一个以前初始化状态,使用OPUS_RESET_STATE CTL.参数: instOpusEncoder*: 编码器状态 inFsopus_int32: 输入信号采样率 (Hz),必需是8000、1、16000、24000、或48000。 inchannelsint: 输入信号通道数 (1 or 2) inapplicationint: 编码模式(OPUS_APPLICATION_VOIP/OPUS_APPLICATION_AUDIO/OPUS_APPLICATION_RESTRICTED_LOWDELAY)返回值: 成功,OPUS_OK,失败,错误代码。Opus

21、Decoder 本节描述了Opus解码器OpusDecoder过程和函数类型定义typedef struct OpusDecoderOpusDecoderOpus 解码器状态. 函数intopus_decoder_get_size (int channels)取得OpusDecoder 结构大小. OpusDecoder *opus_decoder_create (opus_int32 Fs, int channels, int *error)分配和初始化解码器状态. intopus_decoder_init (OpusDecoder *st, opus_int32 Fs, int chann

22、els)初始化以前分配解码器状态. intopus_decode (OpusDecoder *st, const unsigned char *data, opus_int32 len, opus_int16 *pcm, int frame_size, int decode_fec)解码一个 Opus 包. intopus_decode_float (OpusDecoder *st, const unsigned char *data, opus_int32 len, float *pcm, int frame_size, int decode_fec)解码一个浮点输出Opus 包,. int

23、opus_decoder_ctl (OpusDecoder *st, int request,.)向一个Opus解码器实施CTL 函数。 voidopus_decoder_destroy (OpusDecoder *st)释放经过opus_decoder_create().分配过OpusDecoder。intopus_packet_parse (const unsigned char *data, opus_int32 len, unsigned char *out_toc, const unsigned char *frames48, short size48, int *payload_o

24、ffset)将一个 opus 包解析成1个或多个帧. intopus_packet_get_bandwidth (const unsigned char *data)取得一个 Opus包带宽. intopus_packet_get_samples_per_frame (const unsigned char *data, opus_int32 Fs)取得Opus 包每帧样本数。 intopus_packet_get_nb_channels (const unsigned char *data)取得Opus 包通道数。intopus_packet_get_nb_frames (const uns

25、igned char packet, opus_int32 len)取得Opus 包全部帧数量. intopus_packet_get_nb_samples (const unsigned char packet, opus_int32 len, opus_int32 Fs)取得Opus 包样本数。intopus_decoder_get_nb_samples (const OpusDecoder *dec, const unsigned char packet, opus_int32 len)取得Opus 包样本数。具体描述本节描述了用于解码Opus过程和方法.和编码相同,解码进程也是开始于创

26、建一个解码器状态。用以下方法做到:int error;OpusDecoder *dec;dec = opus_decoder_create(Fs, channels, &error);在这里:n Fs 是采样率,必需是8000, 1, 16000, 24000, 或 48000n channels 是通道数 (1 或 2)n error 将保留犯错情况下错误代码(或成功状态下 OPUS_OK )n 返回值是一个新创建用于解码解码器状态当 opus_decoder_create() 为状态分配内存时, 它也能够初始化预分配内存:int size;int error;OpusDecoder *de

27、c;size = opus_decoder_get_size(channels);dec = malloc(size);error = opus_decoder_init(dec, Fs, channels);opus_decoder_get_size()返回解码器状态要求大小. 注意,这段代码未来版本可能改变大小,所以没有assuptions应该对它做出。解码器状态在内存中总是连续,复制它只要一个浅拷贝就足够了。为解码一个帧, opus_decode() 或 opus_decode_float()必需用压缩音频数据包来调用:frame_size = opus_decode(dec, pack

28、et, len, decoded, max_size, 0);在这里n packet 是包含压缩数据字节数组n len 是包内字节正确数量n decoded 是opus_int16 (或由 opus_decode_float()定义浮点型)格式解码后音频数据。n max_size是能够放入解码帧每个通道各样本中帧最大值opus_decode() 和 opus_decode_float() 返回从包解码后每通道样本数量。假如这个值是负,表示有错误发生。假如包损坏或音频缓冲太小不足以容纳解码后音频,错误就会发生。Opus是包含重合块有状态编解码器,其结果是Opus 包并不是相互独立编码。包必需按正

29、确次序,连续地进入解码器进行正确解码。丢失包能够用遗失隐藏来替换,遗失隐藏用一个空指针和0长度包来调用解码器。一个单独编解码器状态在一个时间只能由一个单独线程来访问,调用者实施任何需要锁定。各分开音频数据流能够用各自分开解码器状态平行地进行解码,除非API库在编译时用了NONTHREADSAFE_PSEUDOSTACK定义。类型定义文档typedef struct OpusDecoder OpusDecoderOpus 解码器状态.这包含了一个Opus解码器完整状态。它是位置独立,而且能够自由复制。参见: opus_decoder_create,opus_decoder_init函数文档int

30、 opus_decode ( OpusDecoder * st,const unsigned char * data,opus_int32 len,opus_int16 * pcm,int frame_size,int decode_fec ) 对一个Opus包进行解码。参数: instOpusDecoder*: 解码器状态 indatachar*:输入负载.对包丢失使用一个空指针来表示。 inlenopus_int32:在输入负载中字节数 outpcmopus_int16*: 输出信号(假如是2通道有交叉)。长度等于frame_size*channels*sizeof(opus_int16)

31、 inframe_size:在PCM可用空间中每通道样本数。假如小于最大包时长(120毫秒,4848kHz5760个),这个函数将不能解码部分包。假如是PLC (data=NULL) 或 FEC (decode_fec=1)情况,那么frame_size必需恰好是丢失音频时长,不然解码器无法在解码下一个包时进入优化状态。对于PLC 和 FEC 情况,frame_size必需是2.5毫秒倍数。 indecode_fecint: 对于请求任何带内前向错误纠正数据进行解码状态标志 (0 or 1) 。假如没有这么数据可用,帧在解码时被认为已经丢失。返回: 解码样本数量,或错误代码。int opus_

32、decode_float ( OpusDecoder * st,const unsigned char * data,opus_int32 len,float * pcm,int frame_size,int decode_fec ) 用浮点输出格式解码一个Opus包。参数: instOpusDecoder*: 解码器状态 indatachar*:输入负载.对包丢失使用一个空指针来表示。 inlenopus_int32: 在输入负载中字节数 outpcmfloat*:输出信号(假如是2通道有交叉)。长度等于frame_size*channels*sizeof(float) inframe_si

33、ze:在PCM可用空间中每通道样本数。假如小于最大包时长(120毫秒,4848kHz5760个),这个函数将不能解码部分包。假如是PLC (data=NULL) 或 FEC (decode_fec=1)情况,那么frame_size必需恰好是丢失音频时长,不然解码器无法在解码下一个包时进入优化状态。对于PLC 和 FEC 情况,frame_size必需是2.5毫秒倍数。 indecode_fecint: 对于请求任何带内前向错误纠正数据进行解码状态标志 (0 or 1) 。假如没有这么数据可用,帧在解码时被认为已经丢失。返回: 解码样本数量,或错误代码。OpusDecoder* opus_de

34、coder_create ( opus_int32 Fs,int channels,int * error ) 分配和初始化解码器状态.参数: inFsopus_int32: 解码采样率 (Hz). 必需是 8000, 1, 16000, 24000, 或 48000. inchannelsint: 用于解码通道数(1 or 2) outerrorint*:成功时是 OPUS_OK Success或错误代码Opus在内部用48000 Hz来存放数据,所以对于FS来说48000 Hz是缺省值。然而,解码器在8, 12, 16, 和 24 kHz下也能够有效解码到缓冲,所以,因为一些原因调用者不能

35、在全采样率下使用数据,或知道被压缩数据不能在全频率范围内使用,能够请求用更小频率解码。一样,解码器能够依据调用者请求,填充单声道或交叉立体声PCM缓冲区。int opus_decoder_ctl ( OpusDecoder * st,int request, . ) 向一个Opus解码器实施一个 CTL 函数.通常其请求和后续参数是由一个提供便利宏来产生。参数:n stOpusDecoder*: 解码器状态.n request:这个及全部其它剩下参数应被1个在Generic CTLs 或Encoder related CTLs所提供便利宏来替换参见: Generic CTLs Decoder

36、related CTLs void opus_decoder_destroy ( OpusDecoder * st) 释放一个依据opus_decoder_create()已分配OpusDecoder 对象.参数: instOpusDecoder*:用于释放解码器状态。int opus_decoder_get_nb_samples ( const OpusDecoder * dec,const unsigned char packet,opus_int32 len ) 取得一个Opus包样本数参数: indecOpusDecoder*: 解码器状态 inpacketchar*: Opus包 i

37、nlenopus_int32: 包长度返回: 样本数量返回值: OPUS_INVALID_PACKET:经过被压缩数据已损坏或其格式不被支持。int opus_decoder_get_size ( int channels) 取得 OpusDecoder结构大小。参数: inchannelsint: 通道数,必需是1或2.返回: 字节数大小.int opus_decoder_init ( OpusDecoder * st,opus_int32 Fs,int channels ) 初始化一个以前分配过解码器状态.状态必需最少是opus_decoder_get_size()返回大小.在这里,应用程

38、序不要用系统自动分配内存,而要准备用自己分配器。参见: opus_decoder_create,opus_decoder_get_size,为重设一个以前初始化状态,使用OPUS_RESET_STATE CTL.参数: instOpusDecoder*: 解码器状态. inFsopus_int32: 准备解码采样率 (Hz). 必需是8000、1、16000、24000、或48000. inchannelsint: 解码通道数 (1 or 2)返回值: 成功,OPUS_OK,失败,错误代码。int opus_packet_get_bandwidth ( const unsigned char

39、* data) 取得一个Opus包带宽。参数: indatachar*: Opus 包返回值:n OPUS_BANDWIDTH_NARROWBAND窄带 (4kHz bandpass)n OPUS_BANDWIDTH_MEDIUMBAND中等带宽 (6kHz bandpass)n OPUS_BANDWIDTH_WIDEBAND宽带 (8kHz bandpass)n OPUS_BANDWIDTH_SUPERWIDEBAND高宽带 (12kHz bandpass)n OPUS_BANDWIDTH_FULLBAND全宽带 (20kHz bandpass)n OPUS_INVALID_PACKET经过

40、被压缩数据已损坏或其格式不被支持int opus_packet_get_nb_channels ( const unsigned char * data) 取得Opus 包通道数。参数: indatachar*: Opus 包返回: 通道数量返回值: OPUS_INVALID_PACKET经过被压缩数据已损坏或其格式不被支持int opus_packet_get_nb_frames ( const unsigned char packet,opus_int32 len ) 取得Opus 包全部帧数量.参数: inpacketchar*: Opus 包 inlenopus_int32:包长度返回

41、: 帧数量返回值: OPUS_INVALID_PACKET经过被压缩数据已损坏或其格式不被支持int opus_packet_get_nb_samples ( const unsigned char packet,opus_int32 len,opus_int32 Fs ) 取得Opus 包样本数。参数: inpacketchar*: Opus 包 inlenopus_int32: 包长度 inFsopus_int32: 采样率(Hz). 必需是400倍数,不然结果不正确。返回: 样本数量返回值: OPUS_INVALID_PACKET经过被压缩数据已损坏或其格式不被支持int opus_pa

42、cket_get_samples_per_frame ( const unsigned char * data,opus_int32 Fs ) 取得Opus 包每帧样本数。参数: indatachar*: Opus 包. 必需包含最少一个字节数据。 inFsopus_int32: 采样率(Hz).必需是400倍数,不然结果不正确。返回: 每帧样本数量. int opus_packet_parse ( const unsigned char * data,opus_int32 len,unsigned char * out_toc,const unsigned char * frames48,s

43、hort size48,int * payload_offset ) 将一个 opus 包解析成1个或多个帧.Opus_decode在内部实施这个操作,所以大多数应用程序不需要用到这个函数。这个函数不复制各帧,返回指针是输入包内部指针。参数: indatachar*:要进行解析 Opus包 inlenopus_int32: 数据大小 outout_tocchar*: TOC 指针 outframeschar*48 封装过帧 outsizeshort48 封装过帧大小 outpayload_offsetint*: 返回在包内负载位置(按字节)返回: 帧数量Repacketizer Repacketizer可将多个包Opus合并成一个包,或将以前合并包分离成多个Opus包。类型定义typedef struct OpusRepacketizerOpusRepacketizer函数intopus_repacketizer_get_size (void)取得 OpusRepacketizer结构大小OpusRepacketizer *opus_repacketizer_init (OpusRepacketizer *rp)(重新)初

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服