After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 350433 - (RTPCAPS) [rtph263pdepay] h.263plus depayloader does not work
(RTPCAPS)
[rtph263pdepay] h.263plus depayloader does not work
Status: RESOLVED OBSOLETE
Product: GStreamer
Classification: Platform
Component: gst-plugins-good
git master
Other All
: Normal critical
: NONE
Assigned To: GStreamer Maintainers
GStreamer Maintainers
: 382109 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2006-08-08 13:46 UTC by Joni Valtanen
Modified: 2006-12-04 09:09 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
rtph263pdepay works after this (141.96 KB, patch)
2006-08-08 13:56 UTC, Joni Valtanen
none Details | Review

Description Joni Valtanen 2006-08-08 13:46:54 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)
Comment 1 Joni Valtanen 2006-08-08 13:56:05 UTC
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.
Comment 2 Wim Taymans 2006-08-09 18:21:21 UTC
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.

Comment 3 Joni Valtanen 2006-08-10 13:18:53 UTC
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. :)
Comment 4 Wim Taymans 2006-12-04 09:09:25 UTC
*** Bug 382109 has been marked as a duplicate of this bug. ***