我目前正试图挂钩到一个HW H.264解码器上的Oculus任务2(Adreno 650)。
该平台仅支持一个硬件解码器OMX.qcom.video.decoder.avc
视频解码管道是使用GStreamer创建的,当前如下所示:rtspsrc location=rtsp://192.168.1.239:8554/left ! application/x-rtp,encoding-name=H264,payload=96 ! rtph264depay ! decodebin ! videoconvert ! video/x-raw,width=1920,height=1080,format=RGBA ! appsink emit-signals=true name=wallesink sync=false
decodebin
bin应自动使用可用的OMX解码器,但GStreamer
库的构建不支持该解码器。
我目前正在使用GStreamer的这个版本。
所以我的问题很简单:What is the easiest way to add support for said OMX decoder?
我尝试过用Meson从源代码构建,但在启用OMX的情况下无法完成。
是否有任何其他版本的Android有这个解码器捆绑?
1条答案
按热度按时间7cwmlq891#
这些编解码器预建在android二进制文件中,从gstreamer主页https://gstreamer.freedesktop.org/data/pkg/android/分发。
OMX解码器至少在gstreamer 1.18.6中可用,当使用
decodebin3
节点时,它知道如何在quest1和quest2上选择硬件解码器。然而,在1.20.4中,自动选择并不起作用,必须为omx解码器设置更高的排名,使
decodebin
选择它们。https://gstreamer.freedesktop.org/documentation/tutorials/playback/hardware-accelerated-video-decoding.html?gi-language=c
在这里我找到了一个在github中的C语言例子:https://github.com/github0925/test/blob/0a919ce6f278a8fc5c7d203aaa220b3e703bb6b1/source/vendor/vpu/gstreamer_middleware/player/gstreamer_middleware_decode.c#L7
我还注意到,对于1.20.4,输入HEVC流应该使用
main-10
配置文件生成,因为出于某种原因,main
配置文件在gstreamer 1.18.6之后不再列在amcviddec-omxqcomvideodecoderhevc
功能中