Cuda Enabled OpenCV rendered Image is corrupted on Jetson TX2

Hi, for quite some time I’m trying to use OpenCV to show a video coming from udpsrc using gstreamer on Jetson TX2, If I use the following pipelines in terminal there would be no problem at all and the result is the image shown below:
Send: gst-launch-1.0 -v filesrc location=myTestVideo.mp4 ! qtdemux name=demux ! queue ! h264parse ! decodebin ! omxh264enc insert-sps-pps=true ! rtph264pay pt=96 ! udpsink host=127.0.0.1 port=8800
Receive: gst-launch-1.0 -v udpsrc port=8800 caps="application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, payload=(int)96" ! rtph264depay ! h264parse ! decodebin ! nvvidconv ! xvimagesink

But when I use the following OpenCV Code as a receiver with the same receiver pipeline an unexpected result is achieved:

import cv2
import numpy as np

cap_receive = cv2.VideoCapture('udpsrc port=8800 caps="application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, payload=(int)96" ! rtph264depay ! h264parse ! decodebin ! nvvidconv ! appsink', cv2.CAP_GSTREAMER)

if not cap_receive.isOpened():
  print('VideoCapture not opened')
  exit(0)

while True:
  ret,frame = cap_receive.read()

  if not ret:
    print('empty frame')
    break

  cv2.imshow('receive', frame)
  if cv2.waitKey(1)&0xFF == ord('q'):
    break

cv2.destroyAllWindows()

Thanks in advance, Cheers.