"tee" causes green bar at bottom of video (Y out of sync with UV)
I want to send video to a display port and an H.265 encoder. Everything works with the exception of a green bar. The green bar is showing that the Y and UV channels are out of sync. I have circled the easy places to spot with red circles.
My pipline is as follows.
My gstreamer command that causes the green bar is as follows:
gst-launch-1.0 v4l2src io-mode=4 \
! video/x-raw,format=NV16_10LE32,width=1920,height=1080,framerate=60/1 \
! tee name=t \
t. ! queue \
! kmssink bus-id="fd4a0000.zynqmp-display" plane-id=39 sync=false fullscreen-overlay=true driver-name=xlnx \
t. ! queue \
! omxh265enc num-slices=8 control-rate=variable target-bitrate=2000 max-bitrate=3000 \
! video/x-h265, alignment=nal \
! h265parse \
! perf \
! rtph265pay config-interval=1 pt=96 \
! udpsink host=192.168.168.100 port=5000
The following gstreamer command without a "tee" works and does not have a green bar:
gst-launch-1.0 v4l2src io-mode=4 \
! video/x-raw,format=NV16_10LE32,width=1920,height=1080,framerate=60/1 \
! omxh265enc num-slices=8 control-rate=variable target-bitrate=2000 max-bitrate=3000 \
! video/x-h265 \
! perf \
! h265parse \
! rtph265pay config-interval=1 pt=96 \
! udpsink host=192.168.168.100 port=5000
I believe the following warning is relevant:
WARN omxvideoenc gstomxvideoenc.c:2874:gst_omx_video_enc_configure_input_buffer: input buffer doesn't provide video meta, can't adjust stride and slice height
How can I fix the unaligned Y / UV?
I appreciate any ideas or help in resolving this. (I tried hard to format this for clarity. :) )