Hello,
I'm working with the AM572x-EVK and SDK 06.03.00.106. (I could not use ducatih264dec on the newer SDK 8 version - it always fails)
My goal is to use ducatih264dec on a pipleline to the "appsink" and develop an application that displays on the DRM device.
However, on my tests, I see that the decoder element is opening and holding the DRM even when the pipeline sink isn't a display (appsink or fakesink).
After some investigation, I believe that gstducatividdec.c calls libdec that opens the DRM device regardless of the sink used on the pipeline.
Here is a way to reproduce the issue:
1. Launch a decoding pipeline to the fakesink or appsink (this should not open a display device):
gst-launch-1.0 filesrc location=./TearOfSteel-Short-720x406.264 ! queue ! h264parse ! ducatih264dec ! vpe ! fakesink sync=true
2. While that pipeline is running, try to open the drm device:
root@am57xx-evm:~# modetest -M omapdrm -s 57@58:1920x1080-60
setting mode 1920x1080-60Hz@XR24 on connectors 57, crtc 58
failed to set mode: Permission denied
The second command fails because libdce is the drmMaster.
I'd appreciate if you could help with:
- Is there a patch to libdce to fix this?
- Or a different way to build a pipeline that avoids opening the DRM device if the sink isn't the kmssink?
- Is there a version of the decoder that is known to work on SDK8?
Thanks!
Renato