GNOME Bugzilla – Bug 350433
[rtph263pdepay] h.263plus depayloader does not work
Last modified: 2006-12-04 09:09:25 UTC
Steps to reproduce: 1. term1: gst-launch-0.10 videotestsrc ! ffenc_h263p ! rtph263ppay ! udpsink host=127.0.0.1 port=10000 2. term2: gst-launch-0.10 udpsrc port=10000 ! rtph263pdepay ! fakesink dump=true Stack trace: Other information: Doesn't set base_rtp_depay:s clock_rate. Error message was something like: assert failed (filter->clock_rate > 0)
Created attachment 70485 [details] [review] rtph263pdepay works after this This "fix" is taken from rtppcmudepay. I am not sure at all is this right way to do this.
not the right way, the depayloader need to receive correct caps. This produces a more meaningfull error in CVS, fixed in -good 0.10.4. The right way to make this work is to specify the complete caps for the depayloader with the caps property on udpsrc. like: gst-launch-0.10 -v videotestsrc ! ffenc_h263p ! rtph263ppay ! udpsink Setting pipeline to PAUSED ... /pipeline0/videotestsrc0.src: caps = video/x-raw-yuv, format=(fourcc)I420, width=(int)320, height=(int)240, framerate=(fraction)30/1 Pipeline is PREROLLING ... /pipeline0/ffenc_h263p0.src: caps = video/x-h263, width=(int)320, height=(int)240, framerate=(fraction)30/1, variant=(string)h263p /pipeline0/ffenc_h263p0.sink: caps = video/x-raw-yuv, format=(fourcc)I420, width=(int)320, height=(int)240, framerate=(fraction)30/1 /pipeline0/rtph263ppay0.src: caps = application/x-rtp, media=(string)video, payload=(int)96, clock-rate=(int)90000, encoding-name=(string)H263-1998, ssrc=(guint)527842345, clock-base=(guint)1150776941, seqnum-base=(guint)30982 /pipeline0/rtph263ppay0.sink: caps = video/x-h263, width=(int)320, height=(int)240, framerate=(fraction)30/1, variant=(string)h263p /pipeline0/udpsink0.sink: caps = application/x-rtp, media=(string)video, payload=(int)96, clock-rate=(int)90000, encoding-name=(string)H263-1998, ssrc=(guint)527842345, clock-base=(guint)1150776941, seqnum-base=(guint)30982 Pipeline is PREROLLED ... Setting pipeline to PLAYING ... New clock: GstSystemClock Write down the caps on the udpsink and set them on the receiver: gst-launch-0.10 -v udpsrc caps="application/x-rtp, media=(string)video, payload=(int)96, clock-rate=(int)90000, encoding-name=(string)H263-1998, ssrc=(guint)527842345, clock-base=(guint)1150776941, seqnum-base=(guint)30982" ! rtph263pdepay ! fakesink Setting pipeline to PAUSED ... Pipeline is live and does not need PREROLL ... Setting pipeline to PLAYING ... New clock: GstSystemClock /pipeline0/rtph263pdepay0.sink: caps = application/x-rtp, media=(string)video, payload=(int)96, clock-rate=(int)90000, encoding-name=(string)H263-1998, ssrc=(guint)527842345, clock-base=(guint)1150776941, seqnum-base=(guint)30982 /pipeline0/rtph263pdepay0.src: caps = video/x-h263 /pipeline0/fakesink0.sink: caps = video/x-h263 /pipeline0/fakesink0: last-message = "preroll ******* " /pipeline0/fakesink0: last-message = "event ******* E (type: 102, GstEventNewsegment, update=(boolean)false, rate=(double)1, applied_rate=(double)1, format=(GstFormat)GST_FORMAT_TIME, start=(gint64)12832877111111, stop=(gint64)-1, position=(gint64)0) 0x80f48c8" /pipeline0/fakesink0: last-message = "chain ******* < ( 1543 bytes, timestamp: 3:33:52.877111111, duration: none, offset: -1, offset_end: -1, flags: 0) 0x8113ed0" /pipeline0/fakesink0: last-message = "chain ******* < ( 5158 bytes, timestamp: 3:33:52.910455555, duration: none, offset: -1, offset_end: -1, flags: 0) 0x8117100" These caps are usually negotiated to the receiver using an out-of-band SDP message, such as with SIP/RTSP. A GstCaps <-> SDP mapping is explained in gst-plugins-good/gst/rtp/README.
Thank you. Answer clears something about use of RTP for me. Next time I have to ask in IRC is something ok or howto use it. :)
*** Bug 382109 has been marked as a duplicate of this bug. ***