Android 13 - Media框架(18)- CodecBase

从这一节开始我们会回到上层来看ACodec的实现,在这之前我们会先了解ACodec的基类CodecBase。CodecBase.h 中除了声明有自身接口外,还定义有内部类 CodecCallback、BufferCallback,以及另一个基类 BufferChannelBase,接下来我们会一一了解它们的作用。

1、CodecBase

2、CodecCallback

接口定义了所有从 CodecBase 发送给 MediaCodec 的事件,这些方法必须是非阻塞的

3、BufferCallback

接口定义了所有从 BufferChannelBase 发送给 MediaCodec 的事件,同样的,这些方法必须是非阻塞的。

4、BufferChannelBase

BufferChannel 位于 MediaCodec 和 CodecBase 之间,它管理着 buffer 的传输。预期只有 MediaCodec 会调用这些方法,CodecBase 需要单独实现自己的接口 BufferChannelBase,这里的意思就是 ACodec 需要实现一个自己的版本ACodecBufferChannel,CCodec 也需要实现一个自己的版本。

并发相关的问题:

  • 客户端可能在不同的线程中同时获取到 BufferChannelBase 对象,这里应该指的是 MediaCodec 和 CodecBase 可能会同时调用到 BufferChannel 的方法;
  • 所有的方法在持有锁时都不会依赖 CodeBase,意思就是 CodecBase 应该不会被阻塞;
  • 关键的内部代码执行时间小于 1 ms;
相关推荐
157092511347 小时前
Android进阶之光:HTTP协议原理深度解析
android·网络协议·http
终端安全笔记8 小时前
安卓五品牌通道差在哪:监管通道拆解
android
v_34836087628 小时前
Android native端 堆栈打印
android·算法
一笑的小酒馆9 小时前
AndroidKMP之导航和WebView
android
2501_9327502612 小时前
Android BottomNavigationView 入门介绍
android
Godikov14 小时前
硬件异步事件下的业务一致性:智能柜领取/归还流程的竞态设计
android
Godikov14 小时前
不用 Netty:Android 手写 TCP 客户端实战——自定义协议帧、粘包处理与可靠重连
android
事圆则缓14 小时前
Java 面向对象如何落到 Android View 体系
android
iPad协议个微协议15 小时前
# 微信自动营销系统如何基于 WechatApi 做事件驱动设计
android·微信·企业微信·个人开发·wechatapi·微信个人号开发
AirDroid_cn15 小时前
隐私沙盒:第三方应用读取剪切板内容如何拦截?
android·gitee