询问mediaserver和mediaclient的区别

Viewed 37

问题描述


我这有一个代码,使用了官方的mp4format,在mapi库上选择中,有一个mediaserver和mediaclient两个,不太清楚这两个的区别,请问在哪有介绍?我用的使用server的库没问题,用client的就直接报错:
/home/wahuhu/k230_sdk/toolchain/riscv64-linux-musleabi_for_x86_64-pc-linux-gnu/bin/../lib/gcc/riscv64-unknown-linux-musl/12.0.1/../../../../riscv64-unknown-linux-musl/bin/ld: warning: _camera.elf has a LOAD segment with RWX permissions
/home/wahuhu/k230_sdk/src/common/cdk/user/mapi/mediaclient/lib/libmapi.a(mapi_venc.o): in function venc_internuclear_fifo_create': mapi_venc.c:(.text+0x16): relocation truncated to fit: R_RISCV_HI20 against FUNCTION.15'
/home/wahuhu/k230_sdk/src/common/cdk/user/mapi/mediaclient/lib/libmapi.a(read_venc_data.o): in function little_sys_mmap': read_venc_data.c:(.text+0x36): relocation truncated to fit: R_RISCV_HI20 against mmap_fd_tmp.1'
/home/wahuhu/k230_sdk/src/common/cdk/user/mapi/mediaclient/lib/libmapi.a(mapi_ai_client.o): in function _ai_aec_init_datafifo': mapi_ai_client.c:(.text+0x40): relocation truncated to fit: R_RISCV_HI20 against FUNCTION.19'
/home/wahuhu/k230_sdk/src/common/cdk/user/mapi/mediaclient/lib/libmapi.a(mapi_aenc_client.o): in function _reset_aenc_ctl': mapi_aenc_client.c:(.text+0x24): relocation truncated to fit: R_RISCV_HI20 against FUNCTION.20'
吓得我还以为真是.o文件里静态变量过大到处找问题

软件版本


纯rtos

1 Answers

┌─────────────┐ IPC 消息 ┌─────────────┐
│ mediaclient │ ◄──────────────► │ mediaserver │
│ (客户端) │ 同步请求/响应 │ (服务端) │
│ │ │ │
│ 小核linux发送 mapi 调用 │ │ 执行实际大核rtos下mpi接口操作│
└─────────────┘ └─────────────┘
小核应用通过调用 kd_mapi_xxx() 接口发起请求,MAPI 层将参数封装成 IPC 消息(包含模块 ID、命令字、参数体),经双核共享内存消息通道(kd_ipcmsg_send_sync)发送至大核;大核 mediaserver 接收消息后,根据模块 ID 路由到对应的 msg_server_xxx.c 处理函数,解包参数并调用底层 kd_mpi_xxx() 接口访问 MPP 硬件模块,执行完成后将结果沿原路返回小核,从而实现小核应用通过mapi接口透明访问大核 MPP 媒体处理能力。