In the same process, called twice drmOpen(),the return fd is the same.
When A thread renders HDMI, the B thread renders DSI, same fd will cause conflict.
For example, HDMI output resolution changes, need to reset crtc width and height.
When I want the delete renderer, and then createDrmRenderer, and pass in the new width and height, an unknown error will occur, such as blocking in delete.
In my actual project code, I used two threads to call the NvDrmRenderer class function separately to send video buffer to my two display interfaces. Because I need my two display interfaces to output different video at the same time.
However, the two threads I create will cause conflicts because of the same file descriptors.
The areas of conflict include drmClose(drm_fd) or poll(&fds, 1, timeout), the arguments to these functions are only file descriptors.
waynezhu:
Thank you for your reply.
We need HDMI and the DSi to display the video at the same time, because of this demand, video conferencing equipment generally support dual display.
Mosaic screen, we have used Vic to achieve a 9-way stitching, and design is a double display of different splicing screen.
I hope our future version can consider the double display of DRM, we are using the DRM module, think the direct configuration of CRTC is very good, and very save resources, because of the DRM module, we have abandoned the X11 solution