Android 13 - Media框架(21)- ACodec(三)

2023-12-20 11:01
文章标签 android 21 框架 media 13 acodec

本文主要是介绍Android 13 - Media框架(21)- ACodec(三),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

这一节我们将继续来学习 ACodec 的剩余部分。

    enum {kFlagIsSecure                                 = 1,kFlagPushBlankBuffersToNativeWindowOnShutdown = 2,kFlagIsGrallocUsageProtected                  = 4,kFlagPreregisterMetadataBuffers               = 8,};enum {kVideoGrallocUsage = (GRALLOC_USAGE_HW_TEXTURE| GRALLOC_USAGE_HW_COMPOSER| GRALLOC_USAGE_EXTERNAL_DISP)| static_cast<uint64_t>(BufferUsage::VIDEO_DECODER),};struct BufferInfo {enum Status {OWNED_BY_US,OWNED_BY_COMPONENT,OWNED_BY_UPSTREAM,OWNED_BY_DOWNSTREAM,OWNED_BY_NATIVE_WINDOW,UNRECOGNIZED,            // not a tracked buffer};static inline Status getSafeStatus(BufferInfo *info) {return info == NULL ? UNRECOGNIZED : info->mStatus;}IOMX::buffer_id mBufferID;Status mStatus;unsigned mDequeuedAt;sp<MediaCodecBuffer> mData;  // the client's buffer; if not using data conversion, this is// the codec buffer; otherwise, it is allocated separatelysp<RefBase> mMemRef;         // and a reference to the IMemory, so it does not go awaysp<MediaCodecBuffer> mCodecData;  // the codec's buffersp<RefBase> mCodecRef;            // and a reference to the IMemorysp<GraphicBuffer> mGraphicBuffer;bool mNewGraphicBuffer;int mFenceFd;FrameRenderTracker::Info *mRenderInfo;// The following field and 4 methods are used for debugging onlybool mIsReadFence;// Store |fenceFd| and set read/write flag. Log error, if there is already a fence stored.void setReadFence(int fenceFd, const char *dbg);void setWriteFence(int fenceFd, const char *dbg);// Log error, if the current fence is not a read/write fence.void checkReadFence(const char *dbg);void checkWriteFence(const char *dbg);};

这篇关于Android 13 - Media框架(21)- ACodec(三)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/515806

相关文章

Java 缓存框架 Caffeine 应用场景解析

《Java缓存框架Caffeine应用场景解析》文章介绍Caffeine作为高性能Java本地缓存框架,基于W-TinyLFU算法,支持异步加载、灵活过期策略、内存安全机制及统计监控,重点解析其... 目录一、Caffeine 简介1. 框架概述1.1 Caffeine的核心优势二、Caffeine 基础2

Android实现图片浏览功能的示例详解(附带源码)

《Android实现图片浏览功能的示例详解(附带源码)》在许多应用中,都需要展示图片并支持用户进行浏览,本文主要为大家介绍了如何通过Android实现图片浏览功能,感兴趣的小伙伴可以跟随小编一起学习一... 目录一、项目背景详细介绍二、项目需求详细介绍三、相关技术详细介绍四、实现思路详细介绍五、完整实现代码

在Android中使用WebView在线查看PDF文件的方法示例

《在Android中使用WebView在线查看PDF文件的方法示例》在Android应用开发中,有时我们需要在客户端展示PDF文件,以便用户可以阅读或交互,:本文主要介绍在Android中使用We... 目录简介:1. WebView组件介绍2. 在androidManifest.XML中添加Interne

Debian 13升级后网络转发等功能异常怎么办? 并非错误而是管理机制变更

《Debian13升级后网络转发等功能异常怎么办?并非错误而是管理机制变更》很多朋友反馈,更新到Debian13后网络转发等功能异常,这并非BUG而是Debian13Trixie调整... 日前 Debian 13 Trixie 发布后已经有众多网友升级到新版本,只不过升级后发现某些功能存在异常,例如网络转

GSON框架下将百度天气JSON数据转JavaBean

《GSON框架下将百度天气JSON数据转JavaBean》这篇文章主要为大家详细介绍了如何在GSON框架下实现将百度天气JSON数据转JavaBean,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录前言一、百度天气jsON1、请求参数2、返回参数3、属性映射二、GSON属性映射实战1、类对象映

Android协程高级用法大全

《Android协程高级用法大全》这篇文章给大家介绍Android协程高级用法大全,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友跟随小编一起学习吧... 目录1️⃣ 协程作用域(CoroutineScope)与生命周期绑定Activity/Fragment 中手

Android 缓存日志Logcat导出与分析最佳实践

《Android缓存日志Logcat导出与分析最佳实践》本文全面介绍AndroidLogcat缓存日志的导出与分析方法,涵盖按进程、缓冲区类型及日志级别过滤,自动化工具使用,常见问题解决方案和最佳实... 目录android 缓存日志(Logcat)导出与分析全攻略为什么要导出缓存日志?按需过滤导出1. 按

解决若依微服务框架启动报错的问题

《解决若依微服务框架启动报错的问题》Invalidboundstatement错误通常由MyBatis映射文件未正确加载或Nacos配置未读取导致,需检查XML的namespace与方法ID是否匹配,... 目录ruoyi-system模块报错报错详情nacos文件目录总结ruoyi-systnGLNYpe

Android Paging 分页加载库使用实践

《AndroidPaging分页加载库使用实践》AndroidPaging库是Jetpack组件的一部分,它提供了一套完整的解决方案来处理大型数据集的分页加载,本文将深入探讨Paging库... 目录前言一、Paging 库概述二、Paging 3 核心组件1. PagingSource2. Pager3.

Python Web框架Flask、Streamlit、FastAPI示例详解

《PythonWeb框架Flask、Streamlit、FastAPI示例详解》本文对比分析了Flask、Streamlit和FastAPI三大PythonWeb框架:Flask轻量灵活适合传统应用... 目录概述Flask详解Flask简介安装和基础配置核心概念路由和视图模板系统数据库集成实际示例Stre