I want to send via video via network using udp+rtp and TI video decoder and encoder
In the sender side i tried this pipe :
gst-launch -v videotestsrc ! TIVidenc1 codecName=mpeg4enc engineName=encode ! rtpmp4vpay ! udpsink host=127.0.0.1 port=5000
and it works well, and in the receiver side the pipe is the following :
gst-launch -v --gst-debug=TIViddec2:5 udpsrc port=5000 caps="application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)MP4V-ES, profile-level-id=(string)1, config=(string)000001010000012000845d4c285020f0a21f, payload=(int)96, ssrc=(guint)1544793486, clock-base=(guint)2729320432, seqnum-base=(guint)27302" ! rtpmp4vdepay ! TIViddec2 codecName=mpeg4dec engineName=decode ! TIDmaiVideoSink videoStd=D1_PAL videoOutput=composite sync=false
i have the following error in the TIViddec2 element :
ERROR: from element /GstPipeline:pipeline0/GstTIViddec2:tividdec20: failed to decode video buffer
Additional debug info:
gsttividdec2.c(1371): gst_tividdec2_decode_thread (): /GstPipeline:pipeline0/GstTIViddec2:tividdec20
the debug report is the following :
0:00:03.512889916 985 0x15090 LOG TIViddec2 gsttividdec2.c:211:gst_tividdec2_get_type: initialized get_type
0:00:03.805887416 985 0x15090 LOG TIViddec2
gsttividdec2.c:317:gst_tividdec2_init_env: gst_tividdec2_init_env -
begin
0:00:03.808552291 985 0x15090 LOG TIViddec2
gsttividdec2.c:355:gst_tividdec2_init_env: gst_tividdec2_init_env - end
0:00:03.833795083 985 0x15090 LOG TIViddec2 gsttividdec2.c:462:gst_tividdec2_set_property: begin set_property
0:00:03.843963083 985 0x15090 LOG TIViddec2
gsttividdec2.c:481:gst_tividdec2_set_property: setting "codecName" to
"mpeg4dec"
0:00:03.846756708 985 0x15090 LOG TIViddec2 gsttividdec2.c:519:gst_tividdec2_set_property: end set_property
0:00:03.850290000 985 0x15090 LOG TIViddec2 gsttividdec2.c:462:gst_tividdec2_set_property: begin set_property
0:00:03.853121291 985 0x15090 LOG TIViddec2
gsttividdec2.c:472:gst_tividdec2_set_property: setting "engineName" to
"decode"
0:00:03.855921166 985 0x15090 LOG TIViddec2 gsttividdec2.c:519:gst_tividdec2_set_property: end set_property
Setting pipeline to PAUSED ...
0:00:03.986639916 985 0x15090 LOG TIViddec2
gsttividdec2.c:1049:gst_tividdec2_change_state: begin change_state (10)
0:00:03.989304041 985 0x15090 LOG TIViddec2 gsttividdec2.c:1086:gst_tividdec2_change_state: end change_state
0:00:03.998752291 985 0x15090 LOG TIViddec2
gsttividdec2.c:1049:gst_tividdec2_change_state: begin change_state (19)
0:00:04.002111541 985 0x15090 LOG TIViddec2 gsttividdec2.c:1086:gst_tividdec2_change_state: end change_state
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
0:00:04.166843666 985 0x15090 LOG TIViddec2
gsttividdec2.c:1049:gst_tividdec2_change_state: begin change_state (28)
0:00:04.169887750 985 0x15090 LOG TIViddec2 gsttividdec2.c:1086:gst_tividdec2_change_state: end change_state
New clock: GstSystemClock
/GstPipeline:pipeline0/GstRtpMP4VDepay:rtpmp4vdepay0.GstPad:src: caps =
video/mpeg, mpegversion=(int)4, systemstream=(boolean)false,
codec_data=(buffer)000001010000012000845d4c285020f0a21f
/GstPipeline:pipeline0/GstRtpMP4VDepay:rtpmp4vdepay0.GstPad:sink: caps
= application/x-rtp, media=(string)video, clock-rate=(int)90000,
encoding-name=(string)MP4V-ES, profile-level-id=(string)1,
config=(string)000001010000012000845d4c285020f0a21f, payload=(int)96,
ssrc=(guint)1544793486, clock-base=(guint)2729320432,
seqnum-base=(guint)27302
0:00:04.357769541 985 0xc53c0 DEBUG TIViddec2
gsttividdec2.c:720:gst_tividdec2_sink_event: pad "sink" received:
newsegment
(gst-launch-0.10:985): GStreamer-CRITICAL **: gst_debug_log_valist: assertion `category != NULL' failed
0:00:04.366475416 985 0xc53c0 INFO TIViddec2
gsttividdec2.c:564:gst_tividdec2_set_sink_caps: requested sink caps:
video/mpeg, mpegversion=(int)4, systemstream=(boolean)false,
codec_data=(buffer)000001010000012000845d4c285020f0a21f
0:00:04.369544666 985 0xc53c0 LOG TIViddec2 gsttividdec2.c:973:gst_tividdec2_exit_video: begin exit_video
0:00:04.372416874 985 0xc53c0 LOG TIViddec2 gsttividdec2.c:1030:gst_tividdec2_exit_video: end exit_video
0:00:04.375476250 985 0xc53c0 LOG TIViddec2
gsttividdec2.c:650:gst_tividdec2_set_sink_caps: sink caps negotiation
successful
/GstPipeline:pipeline0/GstTIViddec2:tividdec20.GstPad:sink: caps =
video/mpeg, mpegversion=(int)4, systemstream=(boolean)false,
codec_data=(buffer)000001010000012000845d4c285020f0a21f
0:00:04.383599583 985 0xc53c0 LOG TIViddec2 gsttividdec2.c:862:gst_tividdec2_init_video: begin init_video
0:00:04.387369250 985 0xcbdd0 LOG TIViddec2
gsttividdec2.c:1281:gst_tividdec2_decode_thread: init video
decode_thread
0:00:04.389335333 985 0xcbdd0 LOG TIViddec2
gsttividdec2.c:1150:gst_tividdec2_codec_start: opening codec engine
"decode"
0:00:04.394256666 985 0xcbdd0 LOG TIViddec2
gsttividdec2.c:1193:gst_tividdec2_codec_start: opening video decoder
"mpeg4dec"
(gst-launch-0.10:985): GStreamer-CRITICAL **: gst_debug_log_valist: assertion `category != NULL' failed
0:00:04.419129166 985 0xcbdd0 LOG TIViddec2
gsttividdec2.c:1230:gst_tividdec2_codec_start: creating output buffer
table
0:00:04.425244957 985 0xcbdd0 WARN TIViddec2
gsttividdec2.c:1563:gst_tividdec2_frame_duration: framerate not
specified; using 29.97fps
0:00:04.428627707 985 0xc53c0 LOG TIViddec2 gsttividdec2.c:959:gst_tividdec2_init_video: end init_video
(gst-launch-0.10:985): GStreamer-CRITICAL **: gst_debug_log_valist: assertion `category != NULL' failed
0:00:10.668819499 985 0xcbdd0 LOG TIViddec2
gsttividdec2.c:1364:gst_tividdec2_decode_thread: invoking the video
decoder
0:00:10.671121457 985 0xcbdd0 WARN TIViddec2
gsttividdec2.c:1371:gst_tividdec2_decode_thread:<tividdec20>
error: failed to decode video buffer
ERROR: from element /GstPipeline:pipeline0/GstTIViddec2:tividdec20: failed to decode video buffer
Additional debug info:
gsttividdec2.c(1371): gst_tividdec2_decode_thread (): /GstPipeline:pipeline0/GstTIViddec2:tividdec20
Execution ended after 6505942042 ns.
Setting pipeline to PAUSED ...
0:00:10.686062666 985 0x15090 LOG TIViddec2
gsttividdec2.c:1049:gst_tividdec2_change_state: begin change_state (35)
0:00:10.687560458 985 0x15090 LOG TIViddec2 gsttividdec2.c:1086:gst_tividdec2_change_state: end change_state
Setting pipeline to READY ...
0:00:10.699188583 985 0x15090 LOG TIViddec2
gsttividdec2.c:1049:gst_tividdec2_change_state: begin change_state (26)
/GstPipeline:pipeline0/GstTIViddec2:tividdec20.GstPad:sink: caps = NULL
0:00:10.705465916 985 0x15090 LOG TIViddec2 gsttividdec2.c:1086:gst_tividdec2_change_state: end change_state
/GstPipeline:pipeline0/GstRtpMP4VDepay:rtpmp4vdepay0.GstPad:src: caps = NULL
/GstPipeline:pipeline0/GstRtpMP4VDepay:rtpmp4vdepay0.GstPad:sink: caps = NULL
/GstPipeline:pipeline0/GstUDPSrc:udpsrc0.GstPad:src: caps = NULL
Setting pipeline to NULL ...
0:00:10.729347291 985 0x15090 LOG TIViddec2
gsttividdec2.c:1049:gst_tividdec2_change_state: begin change_state (17)
0:00:10.733256792 985 0x15090 LOG TIViddec2 gsttividdec2.c:973:gst_tividdec2_exit_video: begin exit_video
0:00:10.736419458 985 0xcbdd0 LOG TIViddec2
gsttividdec2.c:1099:gst_tividdec2_codec_stop: freeing cicrular input
buffer
0:00:10.753738458 985 0xcbdd0 LOG TIViddec2
gsttividdec2.c:1115:gst_tividdec2_codec_stop: freeing output buffers
0:00:10.775123624 985 0xcbdd0 LOG TIViddec2
gsttividdec2.c:1122:gst_tividdec2_codec_stop: closing video decoder
0:00:10.781912416 985 0xcbdd0 LOG TIViddec2 gsttividdec2.c:1128:gst_tividdec2_codec_stop: closing codec engine
0:00:10.783639124 985 0xcbdd0 LOG TIViddec2
gsttividdec2.c:1525:gst_tividdec2_decode_thread: exit video
decode_thread (-1)
0:00:10.788805999 985 0x15090 LOG TIViddec2
gsttividdec2.c:983:gst_tividdec2_exit_video: shutting down decode thread
0:00:10.791681374 985 0x15090 DEBUG TIViddec2
gsttividdec2.c:988:gst_tividdec2_exit_video: decode thread exited with
an error condition
0:00:10.794528708 985 0x15090 LOG TIViddec2 gsttividdec2.c:1030:gst_tividdec2_exit_video: end exit_video
0:00:10.797349458 985 0x15090 LOG TIViddec2 gsttividdec2.c:1086:gst_tividdec2_change_state: end change_state
I tried to receive video with host pc using this pipe :
gst-launch -v udpsrc port=5000 caps="application/x-rtp, media=(string)video, clock-rate=(int)90000,
encoding-name=(string)MP4V-ES, profile-level-id=(string)1,
config=(string)000001010000012000845d4c285020f0a21f, payload=(int)96,
ssrc=(guint)1544793486, clock-base=(guint)2729320432,
seqnum-base=(guint)27302" ! rtpmp4vdepay ! ffdec_mpeg4 ! xvimagesink
and it works fine.
I don't know why the TIViddec couldn't decode that came from rtpmp4vdepay
any help well be welcome
regards,