当前位置:网站首页>Metaltc5.0 realizes webrtc version IPC of Junzheng pure C
Metaltc5.0 realizes webrtc version IPC of Junzheng pure C
2022-07-24 06:51:00 【metaRTC】
summary
metaRTC5.0 The latest version realizes pure C Of webrtc edition IPC demo, At present, it provides a chip based on Junzheng ipc Code demo, More chips will be provided later ipc Code demo.
Download the source code
Release Release v5.0-b1 · metartc/metaRTC · GitHubA cross-platform WebRTC SDK. Contribute to metartc/metaRTC development by creating an account on GitHub.
https://github.com/metartc/metaRTC/releases/tag/v5.0-b1https://gitee.com/metartc/metaRTC/releases/v5.0-b1
https://gitee.com/metartc/metaRTC/releases/v5.0-b1
Important parameter
In the file include/yang_config.h in
If the resolution is too high , take Yang_isEmbbed Set to 0

compile
Compile the script :cmake_mips32.sh

Can be libimp.a Wait for a change libmip.so, Reduce program volume .
demo The use of glib library , If you use ulib library , You can replace the above class library .
Hard coded code
All chips need to be hard coded yangipc/YangIpcEncoder.h
typedef struct{
int32_t isConvert;
int32_t isStart;
pthread_t threadId;
YangVideoEncoderBuffer2 *out_videoBuffer;
}YangEncoderSession;
typedef struct{
YangEncoderSession session;
int32_t (*init)(YangEncoderSession* session);
void (*start)(YangEncoderSession* session);
void (*stop)(YangEncoderSession* session);
void (*sendMsgToEncoder)(YangEncoderSession* session,YangRequestType request);
}YangEncoderVideo;
void yang_create_videoEncoder(YangEncoderVideo* encoder);
void yang_destroy_videoEncoder(YangEncoderVideo* encoder);Jun Zheng implements the code
void yang_create_videoEncoder(YangEncoderVideo* encoder){
YangEncoderSession* session=&encoder->session;
session->isStart = 0;
session->isConvert = 1;
session->out_videoBuffer = NULL;
init_chn();
encoder->init=yang_jzEncoder_init;
encoder->start=yang_jzEncoder_start;
encoder->stop=yang_jzEncoder_stop;
encoder->sendMsgToEncoder=yang_jzEncoder_sendMsgToEncoder;
}
void yang_destroy_videoEncoder(YangEncoderVideo* encoder){
YangEncoderSession* session=&encoder->session;
if (session->isConvert) {
yang_jzEncoder_stop(session);
while (session->isStart) {
yang_usleep(1000);
}
}
session->out_videoBuffer = NULL;
int32_t ret=0;
/* Step.b UnBind */
if (chn[0].enable) {
ret = IMP_System_UnBind(&chn[0].framesource_chn, &chn[0].imp_encoder);
if (ret < 0) {
yang_error( "UnBind FrameSource channel0 and Encoder failed\n");
}
}
/* Step.c Encoder exit */
ret = sample_encoder_exit();
if (ret < 0) {
yang_error("Encoder exit failed\n");
return;
}
/* Step.d FrameSource exit */
ret = sample_framesource_exit();
if (ret < 0) {
yang_error("FrameSource exit failed\n");
return;
}
/* Step.e System exit */
ret = sample_system_exit();
if (ret < 0) {
yang_error("sample_system_exit() failed\n");
return;
}
}边栏推荐
- postgresql 日期处理函数用法
- nodejs开启多进程并实现进程间通信
- Mac解决 Can‘t connect to local MySQL server through socket ‘/tmp/mysql.sock‘ (2)问题
- 【LVGL(3)】设置对象大小、位置、盒子模型、状态
- Niuke net brush questions
- [lvgl (2)]
- Random forest, lgbm parameter adjustment based on Bayesian Optimization
- [small object velocimeter] only principle, no code
- 【学习笔记】网页出现白屏可能的原因与优化方法
- DHCP principle and configuration
猜你喜欢

Kubernetes rapid installation

数据分析思维之从整体出发分析零售行业——全方位多方面细节分析

【音频解码芯片】VS1503音频解码芯片的应用

【USB电压电流表】基于STM32F103C8T6 for Arduino

MySQL gets the self incrementing line mark (different from MySQL version)

JMeter distributed pressure measurement
![[lvgl layout] grid layout](/img/36/47f586f3dc1a114ed7775c4e190872.png)
[lvgl layout] grid layout

Redis特殊数据类型-HyperLogLog

It's not too much to fight a landlord in idea!

【LVGL布局】网格布局
随机推荐
[lvgl (4)] event and event bubble of the object
[lvgl] API functions for setting, changing and deleting styles of components
Today, let's talk about the underlying architecture design of MySQL database. How much do you know?
[esp8266 spot welder] Based on esp8266 for Arduino
Redis.conf详解
Redis basic type - combined with set
Sealos 打包部署 KubeSphere 容器平台
【小型物体测速仪】只有原理,无代码
Speed pointer in JS linked list
Account and authority management
JS: why [] = =! [] return true?
数据分析思维之从整体出发分析零售行业——全方位多方面细节分析
GE口:SGMII模式和serdes模式
SparkSQL核心使用,220724,
Breadth first search (template use)
Neural network superparameter adjustment (based on ray package)
Esp32 ultra detailed learning record: NTP synchronization time
Introduction, architecture and principle of kubernetes
Directory and file management
HashSet to array