问题标签 [openmax]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - OpenMAX 和 NDK:我可以从哪里获得表面?
我正在编写一个显示视频的应用程序。该应用程序是使用 Android NDK 和 JNI 编写的。
我想使用 OpenMAX。在 OpenMAX 示例中,它从 Java 中检索表面,但我在哪里可以获得要渲染的表面?我只能通过 applicationContext 获得 nativeWindow。
例子:
但我没有表面。
谢谢
c++ - 可变长度结构
OMX 提供了一个具有以下定义的结构
我有一个常量 char 数组要设置。
据我了解,我需要以某种方式将 memcopy 文件名设置为 struct.contentURI ,然后相应地更新 struct.size 。我该怎么做?
最好的祝福
decoding - 将缓冲区分配给音频解码器组件后的 OMX_ErrorUnsupportedSetting 错误事件
在将缓冲区提供给 Raspberry Pi 上的音频解码器组件后,我收到 OMX_ErrorUnsupportedSetting 错误事件。我尝试了任何想到的方法来更改参数,但回调仍然到达。OpenMAX 标准中是否有任何方法可以尝试调查导致该事件的参数?
这就是我正在做的事情:
- 创建组件;
- 禁用所有端口;
- 将状态设置为空闲;
- 设置端口格式以使用 OMX_AUDIO_CodingAAC;
- 将端口定义设置为使用 OMX_AUDIO_CodingAAC,每个 6144 字节的 4 个缓冲区;
- 将配置文件设置为这些值(不确定是否需要):profileType.nSampleRate = 48000; profileType.nFrameLength = 0; profileType.nChannels = 6; profileType.nBitRate = 288000; profileType.nAudioBandWidth = 0; 将带有 bCodecConfigIsComplete 的 OMX_PARAM_CODECCONFIGTYPE 设置为 1;
- 将 OMX_IndexParamBrcmDecoderPassThrough 设置为 true。
将所有缓冲区发送到组件后,我突然收到 OMX_ErrorUnsupportedSetting 事件并且端口未启用。知道我可能做错了什么或如何检查导致错误的参数吗?
android - 可以使用 OpenMAX for Android NDK 将实时视频/音频流式传输到服务器吗?例子?
OpenMax 有一个名为“Data Sink”的概念。
规格说明了它们:
以下是规范中的一些示例代码:
然而,在其他一些地方,它说:
有谁知道是否可以使用带有这些 URI/数据接收器的 OpenMax 来实现一个流式应用程序,该应用程序从麦克风/摄像头捕获实时数据并将其流式传输到服务器?例子?
video - OpenMax 读取媒体
我尝试使用 read_media 组件来硬件读取媒体文件http://home.nouwen.name/RaspberryPi/doc ... media.html 首先我创建组件:
接下来我创建参数:
然后我分配内存并将uri设置为文件:
最后我将参数设置为 read_media 组件:
但是设置组件文件的参数,有什么问题吗?有什么可以帮助我的吗?
video - omxplayer AVPacket
嗨,我正在尝试使用 OpenMax 组件和来自GitHub的 hello_video 示例解码视频。我只需编辑 video.c 并替换 AVFormat 上的“main frame while” -read frame packet for read not only *.h264 files 。(我需要阅读 mp4、mov、mkv ......).. 所以使用 test.h264 文件和我用 ffmpeg 生成的其他文件,一切正常,在屏幕上我可以看到电影。
但是,如果我打开 test.mp4 文件,我在屏幕上看不到图片,并且登录控制台显示数据正确读取并正确解析到视频解码器的输入缓冲区。谁能解释一下为什么我在第二次测试中看不到屏幕上的任何东西?
arm - 基准标记 ARM NEON OpenMAX 数字
我目前正在通过使用各种编译器(尝试过 DS-5 和 IAR)和各种库(Openmax,NE10)来对 Cortex-A8 处理器的性能进行基准测试。我正在专门研究 NEON 单元在比较时可以实现什么 1.Only ARM 2.ARM +VFPv3
Openmax 有两个版本 1. 为 NEON 定制 2. Arm 处理器的示例代码 我使用 OpenMax 制作了下表。正如预期的那样,NEON 代码性能是无与伦比的。
https://docs.google.com/file/d/0B318pI7x2QVceWRDTE5FQk8zcVk/edit
NE10 是目前唯一可用于 Cortex-AI 的其他信号处理库,我仍在开发 NE10 库。
有什么办法可以将这些数字与其他处理器进行比较?还是有任何用于比较处理器的程序标准程序?
以下是 Openmax api 的链接 http://www.khronos.org/files/openmax_dl_spec_1_0_2.pdf
video - 隧道 OpenMax 用于视频解码到视频编码组件
有谁知道如何在 Raspberry Pi 上使用 video_decode 和 video_encode OpenMax 组件设置隧道?以及如何正确设置输入和输出端口的属性? http://home.nouwen.name/RaspberryPi/documentation/ilcomponents/video_encode.html(130、131、200、201 )
我的代码成功解码并在屏幕上渲染帧,但是在我添加 video_encoder 并设置隧道 video_decode:131 -> video_encode:200 之后,我收到错误:
我的代码:
android - 使用 openmax AL 框架播放 mp4 文件
如何使用 openmax AL 框架和 android 缓冲区队列播放 mp4 文件?我想android缓冲区队列只提供了.ts数据
这是代码:
然后创建媒体播放器对象。
但它给了我一个错误,因为无法使用未提供 MPEG-2 TS 数据的 XA_DATALOCATOR_ANDROIDBUFFERQUEUE 数据源创建播放器。
android - Android MediaCodec AAC 编码器
我使用MediaCodec
自 API 级别 16 以来 Android SDK 提供的类和OMX.SEC.aac.enc
编码器将音频编码为文件。我从AudioRecord
课堂上得到音频输入。我的类实例AudioRecord
配置如下:
我能够播放AudioRecord
实例中的原始数据,所以问题不存在。
AudioRecord
我将实例的输出写入ByteBuffer
实例,并将其从编码器传递到可用的输入缓冲区。编码器的输出被写入 SD 卡上的文件。
这些是我的MediaCodec
实例的配置参数:
VLC 告诉我我的 aac 文件中没有流。该命令FFMPEG -i @filename@
给了我以下错误:Invalid data found when processing input。我测试的所有媒体播放器都无法播放我的文件。
为什么我无法播放我的文件?我没有收到任何OpenMAX
错误,LogCat
并且应用程序在编码时不会崩溃。我写了一个基于相同原理工作的视频编码器,它可以工作。
这是将数据从AudioRecord
实例读取到缓冲区的代码:
我的编码器中的 add 函数将一个缓冲区的内容复制到另一个缓冲区:
以下代码用于占用编码器的输入缓冲区:
我将编码器的输出写入本地文件,如下所示: