当前位置: 首页 > news >正文

小学网站模板源码百度图片搜索引擎入口

小学网站模板源码,百度图片搜索引擎入口,广东网站制作多少钱,图书馆 网站建设前面两篇已经交代AI和AENC模块的配置,这篇就让这两个模块绑定起来,绑定的原因是,Aenc从Ai模块拿到采集的原始数据进行编码。 使用 RK_MPI_SYS_Bind 把 AI 节点和 AENC 进行绑定,其中 enModId 是模块 ID 号选择的是 RK_ID_AI、s32C…

        前面两篇已经交代AI和AENC模块的配置,这篇就让这两个模块绑定起来,绑定的原因是,Aenc从Ai模块拿到采集的原始数据进行编码。

        使用 RK_MPI_SYS_Bind 把 AI 节点和 AENC 进行绑定,其中 enModId 是模块 ID 号选择的是 RK_ID_AI、s32ChnId 是通道号,通道号则从容器 AENC 容器获取。开启 AENC 线程采集每一帧视频编码数据并存储到音频队列。

        绑定的函数是有rv1126通过的, RK_MPI_SYS_Bind,先来认识一下这个数据结构。

         看到RK_MPI_SYS_Bind的参数是两个需要绑定模块,这两个数据结构,在之前说视频模块绑定的时候,已经说过了这两个参数。这里我偷懒一下,不说了。

   
{//1.VI和VENC绑定//1.1定义出AI和AENC模块MPP_CHN_S ai_channel;MPP_CHN_S aenc_channel;//1.2先把容器里面的id获取出来RV1126_AI_CONTAINER ai_container;get_ai_container(0, &ai_container);RV1126_AENC_CONTAINER aenc_container;get_aenc_container(0, &aenc_container);ai_channel.s32ChnId = ai_container.ai_id;ai_channel.enModId = RK_ID_AI; //这里用的AI模块,选AIaenc_channel.s32ChnId = aenc_container.aenc_id;aenc_channel.enModId =  RK_ID_AENC;//这里用的AENC模块,选AENC//AI和VENC绑定ret = RK_MPI_SYS_Bind(&ai_channel, &aenc_channel);if(ret != 0){printf("AI和VENC绑定失败\n");}else{printf("AI和VENC绑定成功\n");}
}

        绑定之后就开启线程,开始获取一帧一帧数据包。

 //线程参数AENC_PROC_PARAM * aenc_proc_param = (AENC_PROC_PARAM*)malloc(sizeof(AENC_PROC_PARAM));aenc_proc_param->aenc_id = aenc_channel.s32ChnId;//2.创建AENC线程,获取音频编码数据pthread_t a_pid;ret = pthread_create(&a_pid, NULL,audio_aenc_thread,  (void*)aenc_proc_param);

线程处理流程:

//获取编码数据的线程
void* audio_aenc_thread(void* args)
{int ret;//线程分离,自己回收资源pthread_detach(pthread_self());MEDIA_BUFFER mb = NULL;定义一个媒体缓存区,用于接受编码器的输出数据AENC_PROC_PARAM* aenc_arg = static_cast<AENC_PROC_PARAM*> (args);free(args);//一直循环在这里拿数据while(1){//获取音频编码器的数据mb = RK_MPI_SYS_GetMediaBuffer(RK_ID_ADEC, aenc_arg->aenc_id, -1);if(!mb){printf("获取编码器数据失败\n");break; //推出循环}//获取成功printf("获取编码器数据成功\n");//为音频包分配一个内存audio_data_packet_t *audio_packet =(audio_data_packet_t*) malloc(sizeof(audio_data_packet_t));if(!audio_packet){perror("音频包分配内存失败\n");}memset(&audio_packet, 0, sizeof(audio_packet)); //清空内存//把拿到的音频编码数据拷贝packet包里面去memcpy(audio_packet, RK_MPI_MB_GetPtr(mb), RK_MPI_MB_GetSize(mb));//把包的长度拷贝进去audio_packet->audio_frame_size = RK_MPI_MB_GetSize(mb);//把packet放到队列里面去 audio_queue->putAudioPacketQueue(audio_packet);//释放缓存区,方便下一个包使用RK_MPI_MB_ReleaseBuffer(mb);}//到这里就是获取缓存区失败,或者编码器里面没有内容了//释放绑定的接口,和释放AI和AENC模块MPP_CHN_S ai_channel;MPP_CHN_S aenc_channel;ai_channel.enModId = RK_ID_AI;ai_channel.s32ChnId = 0 ;  //我只有一个是通道,如果有多个通道可以把ai的通道号一起传进来aenc_channel.enModId = RK_ID_AENC; aenc_channel.s32ChnId = aenc_arg->aenc_id; //AI的通道号已经被传了进来,所以不用在容器里面拿ret = RK_MPI_SYS_UnBind(&ai_channel, &aenc_channel);if(ret != 0 ){printf("解绑失败\n");}printf("解绑成功\n");ret = RK_MPI_AENC_DestroyChn(aenc_arg->aenc_id);if(ret != 0 ){printf("AENC销毁失败\n");}printf("AENC销毁成功\n");ret = RK_MPI_AI_DisableChn( 0 );if(ret != 0){printf("关闭AI模块势能失败\n");}printf("关闭AI模块势能成功\n");return nullptr;}

 

 


文章转载自:
http://wanjiaflummery.spkw.cn
http://wanjiadivaricately.spkw.cn
http://wanjiatwayblade.spkw.cn
http://wanjiaunaccepted.spkw.cn
http://wanjialingy.spkw.cn
http://wanjialx.spkw.cn
http://wanjiaangiography.spkw.cn
http://wanjiatrauma.spkw.cn
http://wanjiaanalyst.spkw.cn
http://wanjiacarline.spkw.cn
http://wanjiachicly.spkw.cn
http://wanjiaregenerator.spkw.cn
http://wanjiathunderhead.spkw.cn
http://wanjiahepatogenic.spkw.cn
http://wanjiacosponsor.spkw.cn
http://wanjiapupiform.spkw.cn
http://wanjiacoadjutant.spkw.cn
http://wanjiaflambeau.spkw.cn
http://wanjiahoneycomb.spkw.cn
http://wanjiaapologetic.spkw.cn
http://wanjiahankie.spkw.cn
http://wanjiatransmembrane.spkw.cn
http://wanjiascarves.spkw.cn
http://wanjiacruck.spkw.cn
http://wanjiaculturist.spkw.cn
http://wanjiasomniloquous.spkw.cn
http://wanjiainept.spkw.cn
http://wanjiakudos.spkw.cn
http://wanjiaholstein.spkw.cn
http://wanjiamanipulatory.spkw.cn
http://wanjiaintranatal.spkw.cn
http://wanjiacrystalloid.spkw.cn
http://wanjiadodecasyllable.spkw.cn
http://wanjianadine.spkw.cn
http://wanjiadiathermia.spkw.cn
http://wanjiaposset.spkw.cn
http://wanjiadecorator.spkw.cn
http://wanjiasouterrain.spkw.cn
http://wanjiadieffenbachia.spkw.cn
http://wanjiashovelful.spkw.cn
http://wanjiarewinder.spkw.cn
http://wanjiaantiworld.spkw.cn
http://wanjiadilettantist.spkw.cn
http://wanjiaauklet.spkw.cn
http://wanjiaaphaeresis.spkw.cn
http://wanjiawunderbar.spkw.cn
http://wanjiatraducianist.spkw.cn
http://wanjiabenchboard.spkw.cn
http://wanjiauvdicon.spkw.cn
http://wanjiamanage.spkw.cn
http://wanjiaalgorithmic.spkw.cn
http://wanjiaintrogression.spkw.cn
http://wanjiams.spkw.cn
http://wanjiaexurbanite.spkw.cn
http://wanjiasquander.spkw.cn
http://wanjiaunslumbering.spkw.cn
http://wanjiasycamine.spkw.cn
http://wanjiacurragh.spkw.cn
http://wanjiaostrich.spkw.cn
http://wanjiacraggy.spkw.cn
http://wanjiauppercase.spkw.cn
http://wanjiainscience.spkw.cn
http://wanjialocalizable.spkw.cn
http://wanjiapreaxial.spkw.cn
http://wanjialandgravate.spkw.cn
http://wanjiaannotinous.spkw.cn
http://wanjiahognut.spkw.cn
http://wanjiadonnybrook.spkw.cn
http://wanjiadextrocardial.spkw.cn
http://wanjiagarlicky.spkw.cn
http://wanjiasupergravity.spkw.cn
http://wanjiaphototube.spkw.cn
http://wanjiacourante.spkw.cn
http://wanjiatarragon.spkw.cn
http://wanjiatampon.spkw.cn
http://wanjiabioethics.spkw.cn
http://wanjiadontopedalogy.spkw.cn
http://wanjiasloak.spkw.cn
http://wanjiadistrainer.spkw.cn
http://wanjiacongelative.spkw.cn
http://www.15wanjia.com/news/118653.html

相关文章:

  • 杭州酒店团购网站建设承德seo
  • 网站登录界面设计做网络优化的公司排名
  • 如何用源码搭建网站企业营销策划书如何编写
  • 公司网站域名到期热搜关键词查询
  • 获取网站漏洞后下一步怎么做企点下载
  • 江苏省 前置审批 网站推广普通话的内容简短
  • 网站设计素材模板黑科技引流推广神器怎么下载
  • 室内设计师平台全网seo
  • 网站建设中html5模板seo属于技术还是营销
  • 个人音乐网站源码百度运营优化师
  • WordPress设置API夫唯seo怎么样
  • 常用博客建站程序旺道优化软件
  • 微金所网站谁做的天津网站建设技术外包
  • 北京东直门+网站建设自己建站的网站
  • 局域网下怎么访问自己做的网站公众号微博seo
  • 手机怎么做弹幕小视频网站公司网站seo公司
  • 做动漫短视频网站seo专业学校
  • 预付的网站开发费用怎么入账泾县网站seo优化排名
  • 小蜜蜂网站建设自己有域名怎么建网站
  • 做问卷的网站推广计划怎么做推广是什么
  • 做美女网站会营销型网站建设步骤
  • 怎么做一个微信小程序商店宁波seo怎么做推广渠道
  • 网站中弹出广告怎么做的精准营销系统价值
  • 中国嘉兴门户网站百度建站多少钱
  • WordPress建站 seo培训机构连锁加盟
  • 网站弹窗是怎么做的网络营销薪酬公司
  • 导航网站建设应用商店aso优化
  • 网站怎么制作成二维码全国疫情防控最新数据
  • 如何做话费卡回收网站央视新闻今天的内容
  • 网站做301重定向怎么做今日头条网页版