gpt4 book ai didi

安卓奇巧 4.4.2 : Adaptive Playback impact on SurfaceFlinger

转载 作者:行者123 更新时间:2023-11-30 03:07:45 30 4
gpt4 key购买 nike

我遇到了这个 generic question on Adaptive PlaybackAndroid Kitkat 中。但是,我有一些具体的问题如下:

我能够理解对 codec 和相关框架的影响。但是,有一点我无法完全理解。

在自适应播放的情况下,编解码器在其输出端口上使用了一个元数据,它基本上抽象并打包了一个底层缓冲区句柄(很可能是一个gralloc 句柄)。如果分辨率发生变化,我假设 codec 直接更新 gralloc 句柄属性并将缓冲区发送回 OMX 客户端,而无需更改端口设置.

我的第一个问题是:我的理解和假设是否正确?

如果是这样,Surfaceflinger/SurfaceTexture 如何知道传入的有效载荷是 metadata 格式以及它如何检索 widthheight 来自底层 gralloc 实现?

能否请您指出相关资源以帮助我更好地理解这个问题?

非常感谢。

最佳答案

sendFormatChange=>kWhatOutputFormatChange=>MEDIA_SET_VIDEO_SIZE=> ... =>native_window_set_buffers_dimensions

只是澄清一下,让我们使用 QC 示例,组件识别裁剪变化 - 在此处查找 OMX_IndexConfigCommonOutputCrop omx_vdec , 然后 ACodec 清除 mSentFormat 这使得 ACodec 调用 sendFormatChange 发送 kWhatOutputFormatChange 事件到 NuPlayer 发送 MEDIA_SET_VIDEO_SIZE 到媒体播放器。在棍子的第二面,您将获得 native_window_set_buffers_geometry,它会强制 Surface::setBuffersDimensions

虽然使用 OMXCodec OMX_IndexConfigCommonOutputCrop 收到设置 mOutputPortSettingsHaveChanged,最近调用 OMXCodec::read 将返回 INFO_FORMAT_CHANGED AwesomePlayer 中的这个将使 notifyVideoSize_l 被调用并且这个发送到监听器 MEDIA_SET_VIDEO_SIZE

关于安卓奇巧 4.4.2 : Adaptive Playback impact on SurfaceFlinger,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21507591/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com