We are wanting to stream between 2 EVM boards. One to capture and encode the audio/video. The other to display it.
Today we were able to get this working pretty well -- for a while. The decoder side (client) would crash after a couple of seconds sometime and after minutes other times.
The error was
ERROR: from element /GstPipeline:pipeline0/GstTIViddec2:tividdec20: fatal bit error
The Commands we used were.
Encoder/ Server
Normal 0 false false false EN-US X-NONE X-NONE
gst-launch v4l2src always-copy=FALSE ! 'video/x-raw-yuv,format=(fourcc)NV12,framerate=(fraction)30/1, width=(int)1280, height=(int)720' ! TIVidenc1 engineName=codecServer codecName=h264enc contiguousInputFrame=TRUE ! rtph264pay pt=96 config-interval=1 ! udpsink host=175.14.0.209 port=5000 sync=false
Decoder/Client
gst-launch -v udpsrc port=5000 caps="application/x-rtp,media=(string)video, payload=96, clock-rate=90000" ! rtph264depay ! typefind ! TIViddec2 codecName=h264dec engineName=codecServer ! TIDmaiVideoSink useUserptrBufs=true numBufs=3 videoStd=720P_60 videoOutput=component sync=false hideOSD=true
We start the Client first then the Server.After 5 seconds the video starts playing. After a couple minutes (random time) the decoder exits with an error
Output:
gst-launch -v udpsrc port=5000 caps="application/x-rtp,media=(
string)video, payload=96, clock-rate=90000" ! rtph264depay ! typefind ! TIViddec
2 codecName=h264dec engineName=codecServer ! TIDmaiVideoSink useUserptrBufs=true
numBufs=3 videoStd=720P_60 videoOutput=component sync=false hideOSD=true
Setting pipeline to PAUSED ...
/GstPipeline:pipeline0/GstUDPSrc:udpsrc0.GstPad:src: caps = application/x-rtp, media=(string)video, payloa
d=(int)96, clock-rate=(int)90000, encoding-name=(string)H264
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
/GstPipeline:pipeline0/GstRtpH264Depay:rtph264depay0.GstPad:src: caps = video/x-h264
/GstPipeline:pipeline0/GstRtpH264Depay:rtph264depay0.GstPad:sink: caps = application/x-rtp, media=(string)
video, payload=(int)96, clock-rate=(int)90000, encoding-name=(string)H264
/GstPipeline:pipeline0/GstTypeFindElement:typefindelement0.GstPad:src: caps = video/x-h264
/GstPipeline:pipeline0/GstTypeFindElement:typefindelement0.GstPad:sink: caps = video/x-h264
/GstPipeline:pipeline0/GstTIViddec2:tividdec20.GstPad:sink: caps = video/x-h264
/GstPipeline:pipeline0/GstTIViddec2:tividdec20.GstPad:src: caps = video/x-raw-yuv, format=(fourcc)NV12, fr
amerate=(fraction)30000/1001, width=(int)1280, height=(int)720
*************NOTE: THIS IS WHERE IS STOPS WHEN IT HANGS….******************
/GstPipeline:pipeline0/GstTIDmaiVideoSink:tidmaivideosink0.GstPad:sink: caps = video/x-raw-yuv, format=(fo
urcc)NV12, framerate=(fraction)30000/1001, width=(int)1280, height=(int)720
davinci_v4l2 davinci_v4l2.1: Before finishing with S_FMT:
layer.pix_fmt.bytesperline = 1280,
layer.pix_fmt.width = 1280,
layer.pix_fmt.height = 720,
layer.pix_fmt.sizeimage =1382400
davinci_v4l2 davinci_v4l2.1: pixfmt->width = 1280,
layer->layer_info.config.line_length= 1280
*************NOTE: Starts playing normal video
ERROR: from element /GstPipeline:pipeline0/GstTIViddec2:tividdec20: fatal bit error
Additional debug info:
gsttividdec2.c(1635): gst_tividdec2_decode_thread (): /GstPipeline:pipeline0/GstTIViddec2:tividdec20
Execution ended after 151664182917 ns.
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
/GstPipeline:pipeline0/GstTIDmaiVideoSink:tidmaivideosink0.GstPad:sink: caps = NULL
/GstPipeline:pipeline0/GstTIViddec2:tividdec20.GstPad:src: caps = NULL
/GstPipeline:pipeline0/GstTIViddec2:tividdec20.GstPad:sink: caps = NULL
/GstPipeline:pipeline0/GstTypeFindElement:typefindelement0.GstPad:src: caps = NULL
/GstPipeline:pipeline0/GstTypeFindElement:typefindelement0.GstPad:sink: caps = NULL
/GstPipeline:pipeline0/GstRtpH264Depay:rtph264depay0.GstPad:src: caps = NULL
/GstPipeline:pipeline0/GstRtpH264Depay:rtph264depay0.GstPad:sink: caps = NULL
/GstPipeline:pipeline0/GstUDPSrc:udpsrc0.GstPad:src: caps = NULL
Setting pipeline to NULL ...
Freeing pipeline ...
End of debug
What can be done to fix the fatal bit error?
Also how do we fix the problem where the the Client MUST be running before the client?
Thanks
Bill