opencore 2way 引擎的应用

本文介绍了Opencore2way视频电话应用的核心组件及其工作原理。重点解释了RIL、2way适配及3G_324M协议栈如何协同工作,并详细描述了音视频数据的编码、解码路径。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

opencore 2way 主要是用于视频电话应用,它的实现主要是要完成三个部分:RIL,2way 的适配和OpenCore 2way。

RIL模块负责与CP(基带处理器)进行数据交互。2way 的适配部分主要是向上层提供与2way的交互。而Phone应用和2way都会和RIL建立通信,Phone会向RIL发送一些AT指令,2way和RIL交互的是2way的PVCommsIONode,发送和接收数据这个Node往上传会到TSC_324m Node,该Node负责3G_324M协议栈(H223,H245)的实现。通过TSC_324m Node将音视频和控制数据分离后分别送入音视频解码的Node(进来的数据)进行解码或者将音视频和控制数据编码Node后送入TSC_324m Node(出去的数据) H223适配层该层数据有三种类型:

AL1: 用于传输数据或者控制信息。AL1 从上层接收用户数据或控制信息(由 H.245 协议描述),直接传递给复用层,不提供任何错误控制,所有可能的错误保护
都是由 AL1 的上层应用来提供。
AL2: 用于传输数字音频。AL2 从 3GPP-AMR 编码器接收编码后的音频数据 AL-SDU,加入 1 字节的循环冗余检验(CRC),并且选择性加入 1 字节的序列号,
转换成 MUX-SDU传递给复用层。
AL3: 用于传输视频。AL3 从 H.263 编码器接收编码后的视频数据,加入 2 字节的循环冗余检验(CRC),可选择性地加入 1 或者 2 字节的控制字节,转换成
MUX-SDU 传递给复用层。
复用层的作用是将适配层传递来的控制数据,音频数据和视频数据复用成单一比特流然后送入PVCommsIONode Node传输给RIL

当然解码之前的数据分为音频数据,视频数据和控制数据音频数据是由PvmfMediaInputNode node从AudioRecord获取音频输入设备的原始数据
视频数据是通过PvmfMediaInputNode node从Camera预览的回调中获取原始的yuv420sp 数据而控制数据是直接从应用层传输下来到2way适配
直接传到H324协议层这样就形成了以下的几条DataPath


PhoneA PhoneB

CPV2WayEncDataChannelDatapath(audio) CPV2WayDecDataChannelDatapath(audio)
CPV2WayMuxDatapath
CPV2WayEncDataChannelDatapath(video) CPV2WayDecDataChannelDatapath(video)

CPV2WayMuxDatapath 负责管理 TSC_324m 和 PVCommsIONode node
CPV2WayEncDataChannelDatapath(audio)负责管理 PvmfMediaInputNode(audio音频输出设备出来),PVMFOMXEncNode(audio数据编码), TSC_324m
CPV2WayEncDataChannelDatapath(video) 负责管理 PvmfMediaInputNode(camera设备出来),PVMFOMXEncNode(video数据编码), TSC_324m
CPV2WayDecDataChannelDatapath(audio) 负责管理 TSC_324m PVMFOMXAudioDecNode(audio数据解码) PVMediaOutputNode(audio音频输入设备进去)
CPV2WayDecDataChannelDatapath(video) 负责管理 TSC_324m PVMFVideoParserNode PVMFOMXVideoDecNode(video数据解码) PVMediaOutputNode(写入Surface output)

每条datapath管理这一条数据的流向,它所管理的每一个node必须保持状态上的一直性,node和node之间的数据是通过port来传输的


文字暂时做以上的简单描述,我会附上图片一张,看起来会更加生动。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值