首页 > 其他分享 >Android Media Framework(十六)ACodec - Ⅳ

Android Media Framework(十六)ACodec - Ⅳ

时间:2024-08-11 11:25:29浏览次数:14  
标签:nBufferCountMin buffer Media minUndequeuedBuffers 组件 Android ACodec def extraBuf

上一篇文章讲了ACodec的buffer分配过程,有同学读完后提出了一些问题,所以本篇内容是对上一篇文章的补充。本篇内容将会了解Graphic Output Buffer Count的计算方式,复习useBuffer的调用,学习ACodecBufferChannel。

1、configureOutputBuffersFromNativeWindow

有同学提问使用NativeWindow时,调用configureOutputBuffersFromNativeWindow计算output buffer count那段代码应该如何理解?

首先要理解nBufferCountMin是什么?

nBufferCountMin是组件定义的PortDefinition中的一个字段,表示维持组件运行的最小buffer数量,只要buffer的数量大于这个值组件就能正常运行起来。由于平台资源是有限的,所以buffer数量不能很大,组件一般也会定义一个buffer数量的最大值。

ACodec在计算实际使用的buffer数量nBufferCountActual时,会尝试从最小数量nBufferCountMin往上加,加的最大值为minUndequeuedBuffers + extraBuffers。

    for (OMX_U32 extraBuffers = 2 + 1; /* condition inside loop */; extraBuffers--) {
        OMX_U32 newBufferCount =
            def.nBufferCountMin + *minUndequeuedBuffers + extraBuffers;
        def.nBufferCountActual = newBufferCount;
        err = mOMXNode->setParameter(
                OMX_IndexParamPortDefinition, &def, sizeof(def));

        if (err == OK) {
            *minUndequeuedBuffers += extraBuffers;
            break;
        }
        /* exit condition */
        if (extraBuffers == 0) {
            return err;
        }
    }

2、useBuffer

3、ACodecBufferChannel

关注公众号《青山渺渺》阅读全文
请添加图片描述

标签:nBufferCountMin,buffer,Media,minUndequeuedBuffers,组件,Android,ACodec,def,extraBuf
From: https://blog.csdn.net/qq_41828351/article/details/141103046

相关文章

  • Android Media Framework(十七)ACodec - Ⅴ
    本篇文章我们一起来分析Executing状态下的数据处理流程。首先对上一篇文章做勘误:实际在调用allocateOutputBuffersFromNativeWindow分配buffer时我们会看到,一开始确实是分配了nBufferCountActual个buffer,但是后面又调用cancelBufferToNativeWindow销毁掉了备用的。可能......
  • 腾讯地图SDK Android版开发 3 地图图层
    腾讯地图SDKAndroid版开发3地图图层前言腾讯地图图层地图底图类型地图类图层类型常量接口路况图层接口示例代码地图风格类地图底图类型实时路况页面布局控件响应事件地图底图类型实时路况运行效果图前言本文主要介绍腾讯地图图层相关的功能和接口,以及使用方......
  • Java计算机毕业设计基于Android的校园网上拍卖平台(开题报告+源码+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景在数字化校园建设的浪潮中,学生们对于便捷、高效的二手商品交易需求日益增长。传统的校园跳蚤市场受限于时间、空间等因素,难以满足学生群体对于多样化......
  • Java计算机毕业设计基于Android的生活记账小助手APP的设计与实现(开题报告+源码+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景在快节奏的现代生活中,个人财务管理成为了许多人面临的一大挑战。随着智能手机的普及和移动互联网技术的飞速发展,移动应用成为辅助个人财务管理的得力......
  • 秒开WebView?Android性能优化全攻略
    在Android应用中,WebView组件被广泛用于显示网页内容。然而,由于WebView的一些固有限制和资源消耗,它可能会导致应用启动变慢或响应速度下降。下面是一些优化WebView性能的策略,以帮助你实现“秒开”效果:1.减少初始化时间• 延迟加载:不要在应用启动时立即初始化WebView,......
  • Java计算机毕业设计基于Android的校园网上拍卖平台(开题报告+源码+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着互联网技术的飞速发展,特别是移动互联网的普及,校园生活也日益数字化、便捷化。在传统校园市场中,二手物品的交换与拍卖往往受限于时间、空间和信息......
  • Android ndk string处理
    1.AndroidNDKNDK开发过程中常用的库定义在android-ndk-r25c/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android如libc++_shared.solibc++_static.alibstdc++.a库ndk工具链下载:./bin/sdkmanager--install"ndk;25.0.8775105"2.链接问......
  • CF1999F.Expected Median 题解
    一.前言这是一道很有趣的数学题目,用到了逆元和组合数学,非常适合新手练手。二.题目大意:给出一个长度为\(n\)的\(01\)数组。找出所有长度为\(k\)的子序列的中位数,求出其和。妥妥的数学题~三.分析首先考虑对答案的贡献。很明显,只有\(1\)作为中位数时才会做出贡献,于是......
  • Android开发基础08-掌握kotlin语言
    Kotlin是一种现代化的编程语言,作为Android开发的官方支持语言,越来越多的开发者选择使用Kotlin进行Android应用开发。在开始学习Android开发之前,掌握Kotlin语言的基础知识至关重要。1.基础知识a.开发环境设置安装JDK(JavaDevelopmentKit):Kotlin运行于JVM之上,因此需要先安......
  • Android开发基础07-掌握Java语言
    Android开发广泛使用Java作为编程语言,熟练掌握Java语言是十分必要的。1.基础入门知识a.设置开发环境安装JDK(JavaDevelopmentKit):JDK是进行Java开发的必备工具,务必下载安装并配置相应的环境变量。安装IDE(IntegratedDevelopmentEnvironment):推荐使用IntelliJIDEA、E......