Hello to all,
So, I want to receive a video stream encoded in RTP/H.264, decode it and write the raw data on a shared memory so that another application can use and display it.
To do the decoding, I use gstreamer, with the following pipeline:
gst-launch-1.0 udpsrc port=5004 caps="application/x-rtp,media=video,encoding-name=H264,clock-rate=90000,payload=96" ! rtpjitterbuffer latency=0 ! rtph264depay ! h264parse ! omxh264dec use-dmabuf=false ! video/x-raw,format=I420 ! shmsink socket-path=/tmp/gst0 sync=false wait-for-connection=true
I use the following pipeline to get the data from shared memory and display on screen :
gst-launch-1.0 shmsrc socket-path=/tmp/gst0 ! "video/x-raw, format=I420, color-matrix=sdtv, chroma-site=mpeg2, width=(int)1920, height=(int)720, framerate=(fraction)30/1" ! queue ! videoconvert ! fbdevsink
I’m at an impasse and I don’t really understand what the problem is. When I use the omxh264dec decoder as it is, I have a color shifted image but the data stream arrives without any problem, but when I use it with the DMA deactivated the images are well decoded and well rested but the image stream does not pass and I receive only first frames.
Has anyone experienced this kind of problem ?