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

娄底网站建设wyo8研发一个app费用

娄底网站建设wyo8,研发一个app费用,微信网页版怎么登录不了,怎样改网站英文域名概述瑞芯微提供的媒体处理软件平台#xff08;Media Process Platform#xff0c;简称 MPP#xff09;是适用于瑞芯微芯片系列的通用媒体处理软件平台。该平台对应用软件屏蔽了芯片相关的复杂底层处理#xff0c;其目的是为了屏蔽不同芯片的差异#xff0c;为使用者提供统…概述瑞芯微提供的媒体处理软件平台Media Process Platform简称 MPP是适用于瑞芯微芯片系列的通用媒体处理软件平台。该平台对应用软件屏蔽了芯片相关的复杂底层处理其目的是为了屏蔽不同芯片的差异为使用者提供统一的视频媒体处理接口Media Process Interface缩写 MPI。MPP提供的功能包括视频解码H.265 / H.264 / H.263 / VP9 / VP8 / MPEG-4 / MPEG-2 / MPEG-1 / VC1 / MJPEG视频编码H.264 / VP8 / MJPEG视频处理视频拷贝缩放色彩空间转换场视频解交织DeinterlaceMPP源码下载git clone https://github.com/rockchip-linux/mpp.git编码demo测试mpi_enc_test -w 720 -h 480 -t 7 -i /sdcard/soccer_720x480_30fps.yuv -o /sdcard/out.h264 -n 1000mpi_enc_test 的命令参数中图像宽度w图像高度h码流类型t为强制要求参数其他参数如输入文件i输出文件o编码帧数n等为可选参数。执行完测试程序在/sdcard目录下会生成out.h264文件。将out.h264在VLC media player播放器播放MPI接口使用流程 创建 MPP context 和 MPP api 接口ret mpp_create(p-ctx, p-mpi);初始化 MPPret mpp_init(p-ctx, MPP_CTX_ENC, p-type); // 初始化MPP设置一些MPP的模式ret mpi-control(ctx, MPP_ENC_SET_SEI_CFG, p-sei_mode);编码就是喂MppFrame输出MppPacket输入frameret mpi-encode_put_frame(ctx, frame); 输出packetret mpi-encode_get_packet(ctx, packet); RK官方编码demo mpi_enc_test.c简化#if defined(_WIN32) #include vld.h #endif#define MODULE_TAG mpi_enc_test#include string.h #include rk_mpi.h #include mpp_mem.h #include mpp_common.h #include utils.h #include mpi_enc_utils.h#include stdio.htypedef struct {// base flow contextMppCtx ctx;MppApi *mpi;// global flow control flagRK_U32 frm_eos;RK_U32 pkt_eos;RK_S32 frame_count;// src and dstFILE *fp_output;/* encoder config set */MppEncCfg cfg;// input / outputMppBufferGroup buf_grp;MppBuffer frm_buf;MppBuffer pkt_buf;MppBuffer md_info;MppEncSeiMode sei_mode;MppEncHeaderMode header_mode;// paramter for resource mallocRK_U32 width;RK_U32 height;RK_U32 hor_stride;RK_U32 ver_stride;MppFrameFormat fmt;MppCodingType type;// resourcessize_t header_size;size_t frame_size;size_t mdinfo_size;} MpiEncTestData;/* For each instance thread return value */ typedef struct {RK_S32 frame_count; } MpiEncMultiCtxRet;typedef struct {MpiEncTestArgs *cmd; // pointer to global command line infoconst char *name;pthread_t thd; // thread for for each instanceMpiEncTestData ctx; // context of encoderMpiEncMultiCtxRet ret; // return of encoder } MpiEncMultiCtxInfo;MPP_RET test_ctx_init(MpiEncMultiCtxInfo *info) {MpiEncTestArgs *cmd info-cmd;MpiEncTestData *p info-ctx;MPP_RET ret MPP_OK;// 设置编码宽高、对齐后宽高参数p-width cmd-width;p-height cmd-height;p-hor_stride (cmd-hor_stride) ? (cmd-hor_stride) :(MPP_ALIGN(cmd-width, 16));p-ver_stride (cmd-ver_stride) ? (cmd-ver_stride) :(MPP_ALIGN(cmd-height, 16));p-fmt cmd-format;p-type cmd-type;p-mdinfo_size (MPP_VIDEO_CodingHEVC cmd-type) ?(MPP_ALIGN(p-hor_stride, 64) 6) *(MPP_ALIGN(p-ver_stride, 64) 6) * 32 :(MPP_ALIGN(p-hor_stride, 64) 6) *(MPP_ALIGN(p-ver_stride, 16) 4) * 8;p-frame_size MPP_ALIGN(p-hor_stride, 64) * MPP_ALIGN(p-ver_stride, 64) * 4;return ret; }MPP_RET test_ctx_deinit(MpiEncTestData *p) {if (p) {if (p-fp_output) {fclose(p-fp_output);p-fp_output NULL;}}return MPP_OK; }MPP_RET test_mpp_enc_cfg_setup(MpiEncMultiCtxInfo *info) {MpiEncTestData *p info-ctx;MppApi *mpi p-mpi;MppCtx ctx p-ctx;MppEncCfg cfg p-cfg;MPP_RET ret;mpp_enc_cfg_set_s32(cfg, prep:width, p-width);mpp_enc_cfg_set_s32(cfg, prep:height, p-height);mpp_enc_cfg_set_s32(cfg, prep:hor_stride, p-hor_stride);mpp_enc_cfg_set_s32(cfg, prep:ver_stride, p-ver_stride);mpp_enc_cfg_set_s32(cfg, prep:format, p-fmt);ret mpi-control(ctx, MPP_ENC_SET_CFG, cfg); //创建 MPPp-sei_mode MPP_ENC_SEI_MODE_ONE_FRAME;ret mpi-control(ctx, MPP_ENC_SET_SEI_CFG, p-sei_mode); //设置一些MPP的模式if (p-type MPP_VIDEO_CodingAVC || p-type MPP_VIDEO_CodingHEVC) {p-header_mode MPP_ENC_HEADER_MODE_EACH_IDR;ret mpi-control(ctx, MPP_ENC_SET_HEADER_MODE, p-header_mode);}return ret; }MPP_RET test_mpp_run(MpiEncMultiCtxInfo *info) //图像编码函数 {MpiEncTestData *p info-ctx;MppApi *mpi p-mpi;MppCtx ctx p-ctx;MPP_RET ret MPP_OK;MppMeta meta NULL;MppFrame frame NULL;MppPacket packet NULL; // 存放编码数据void *buf mpp_buffer_get_ptr(p-frm_buf);ret fill_image(buf, p-width, p-height, p-hor_stride,p-ver_stride, p-fmt, p-frame_count);ret mpp_frame_init(frame);mpp_frame_set_width(frame, p-width);mpp_frame_set_height(frame, p-height);mpp_frame_set_hor_stride(frame, p-hor_stride);mpp_frame_set_ver_stride(frame, p-ver_stride);mpp_frame_set_fmt(frame, p-fmt);mpp_frame_set_eos(frame, p-frm_eos);mpp_frame_set_buffer(frame, p-frm_buf);meta mpp_frame_get_meta(frame);mpp_packet_init_with_buffer(packet, p-pkt_buf);mpp_packet_set_length(packet, 0);mpp_meta_set_packet(meta, KEY_OUTPUT_PACKET, packet);mpp_meta_set_buffer(meta, KEY_MOTION_INFO, p-md_info);ret mpi-encode_put_frame(ctx, frame); //输入frameif (ret) {mpp_frame_deinit(frame);}mpp_frame_deinit(frame);ret mpi-encode_get_packet(ctx, packet); //输出packetmpp_assert(packet);void *ptr mpp_packet_get_pos(packet);size_t len mpp_packet_get_length(packet);p-pkt_eos mpp_packet_get_eos(packet);fwrite(ptr, 1, len, p-fp_output);mpp_packet_deinit(packet); return ret; }void *enc_test(void *arg) //编码器初始化函数 {MpiEncMultiCtxInfo *info (MpiEncMultiCtxInfo *)arg;MpiEncTestData *p info-ctx;MppPollType timeout MPP_POLL_BLOCK;MPP_RET ret MPP_OK;ret test_ctx_init(info);ret mpp_buffer_group_get_internal(p-buf_grp, MPP_BUFFER_TYPE_DRM);ret mpp_buffer_get(p-buf_grp, p-frm_buf, p-frame_size p-header_size);ret mpp_buffer_get(p-buf_grp, p-pkt_buf, p-frame_size);ret mpp_buffer_get(p-buf_grp, p-md_info, p-mdinfo_size);ret mpp_create(p-ctx, p-mpi); //创建 MPP context 和 MPP api 接口ret p-mpi-control(p-ctx, MPP_SET_OUTPUT_TIMEOUT, timeout);ret mpp_init(p-ctx, MPP_CTX_ENC, p-type); // 初始化MPPret mpp_enc_cfg_init(p-cfg);ret test_mpp_enc_cfg_setup(info);ret test_mpp_run(info);ret p-mpi-reset(p-ctx);test_ctx_deinit(p);return NULL; }int enc_test_multi(MpiEncTestArgs* cmd, const char *name) {MpiEncMultiCtxInfo *ctxs NULL;RK_S32 ret MPP_NOK;RK_S32 i 0;ctxs mpp_calloc(MpiEncMultiCtxInfo, cmd-nthreads);ctxs[i].cmd cmd;ctxs[i].name name;ret pthread_create(ctxs[i].thd, NULL, enc_test, ctxs[i]);pthread_join(ctxs[i].thd, NULL);MPP_FREE(ctxs);return ret; }int main(int argc,char **argv) {argc 13;char* argvv[] {mpi_enc_test,-w,720,-h,480,-t,7,-i,/sdcard/soccer_720x480_30fps.yuv,-o,/sdcard/out.h264,-n,10};RK_S32 ret MPP_NOK;MpiEncTestArgs* cmd mpi_enc_test_cmd_get();// parse the cmd optionret mpi_enc_test_cmd_update_by_args(cmd, argc, argvv);mpi_enc_test_cmd_show_opt(cmd);ret enc_test_multi(cmd, argvv[0]);return ret; }
http://www.hkea.cn/news/14593573/

相关文章:

  • 网站设计计费郑州建设工程信息网站
  • 莱芜网站seowordpress know how
  • 网站建设合同样本响应式布局的优点是什么
  • 长沙经开区建设局网站漳州专业网站建设公司
  • 番禺 大石网站建设互联网广告代理加盟
  • 网站建设 中企动力 石家庄个体户怎么做购物网站
  • 郑州网站建设 华数网站建设注册什么公司好
  • 毕设做网站和app留言板网页模板
  • 上海网站开发哪家好薇wordpress例
  • 网站里面的视频功能怎么做上海金山区建设局网站
  • e4a做网站软件专业的佛山网站设计
  • 9.9网站怎么做舞台灯光网站建设公司
  • 本地化吃喝玩乐平台网站可以做吗品牌建设需打持久战
  • 百度上怎么做网站国外虚拟主机wordpress
  • 大连建站平台优惠云服务器
  • 网赌网站国外空间给公司做网站费用
  • 成都犀牛网站建设公司大连网站开发公司排名
  • 网站对不同分辨率怎么样建设一个电影网站视频
  • 尚易企业邮箱登录入口网站seo排名优化软件
  • 和田网站建设外贸手机网站
  • 建设部网站在哪里报名考试网站建设福永附近网络公司
  • 电子商务网站功能设计与分析网站建设 模版
  • 涪城移动网站建设创业平台是什么意思
  • 郑州微网站网站建设结算方式
  • 天河手机建网站深圳南园网站建设
  • 漳州网站建设哪家最正规wordpress the date
  • 鼎豪网站建设django网站开发流程
  • 托管网站费用网站大全免黄
  • 古田网站建设鄂州网站制作企业
  • 网络营销网站网站建设公司后端招聘要求