We are trying to get higher quality video than we can with xvvideosink. The major problem
with that is a horizontal ‘tear’ across the video, possibly due to frame update/display update
lack of sync. This is particularly noticeable with fast horizontal panning across vertical edges.
We need to use sync=false to cut down on latency. This is with HD (1920x1080) video from an axis
As an alternative, we are looking at nvoverlaysink, which seems to not exhibit this problem.
I can get it to display on two of the three displays (2xHDMI, one CSI to HDMI Converter).
I’m using display-id=0,1,2 to select the displays.
The error I get on the last one
NvxBaseWorkerFunction comp OMX.Nvidia.std.iv_renderer.overlay.yuv420 Error -2147479552
Which is similar to the error reported here:
I’ve gone and set distributed the overlay buffers between the frame buffers as follows:
cd /sys/class/graphics/fb0 echo 4 > blank echo 0x3 > device/win_mask echo 0 > blank cd /sys/class/graphics/fb1 echo 4 > blank echo 0x0c > device/win_mask echo 0 > blank cd /sys/class/graphics/fb2 echo 4 > blank echo 0x30 > device/win_mask echo 0 > blank
As suggested in the reference.
Also I cannot seem to put a “textoverlay” element in the pipeline without getting an error.
Here’s the pipeline I’m using (Without overlay)
gst-launch-1.0 rtspsrc location=rtsp://184.108.40.206/axis-media/media.amp \ ! queue \ ! decodebin \ ! nvvidconv \ ! 'video/x-raw(memory:NVMM), format=I420' \ ! nvoverlaysink sync=false overlay-w=1918 overlay-h=1048 overlay-x=2 overlay-y=2 display-id=1
My questions are:
a) Is there a way to prevent ‘tearing’ using the xvimagesink or another renderer that will render directly into an x-window buffer?
b) Is there a limit on the number of overlays, or how they are distributed or accessed?
c) In the nvoverlaysink, what is the difference between display-id, overlay, and overlay-profile.
d) How do these map to bits in device/win_mask.
e) What elements or capsfilters would I need to insert a “textoverlay” element in the above pipeline.
f) Any other recommendations for smooth video display?
Thanks in Advance