[Bug 697672] VP8 passed through rtpbin decodes a single frame and then fails to decode until a key frame passed through
GStreamer (bugzilla.gnome.org)
bugzilla at gnome.org
Wed Apr 10 00:21:41 PDT 2013
https://bugzilla.gnome.org/show_bug.cgi?id=697672
GStreamer | gst-plugins-bad | 1.0.5
--- Comment #3 from tcdgreenwood at hotmail.com 2013-04-10 07:21:36 UTC ---
I decided to see if I could simplify the means to reproduce. Turns out you
only need RTP in one direction:
Run this first:
gst-launch-1.0 -v rtpbin name=rtpvp8 udpsrc name=vp8recv port=5002
caps="application/x-rtp, clock-rate=(int)90000,
encoding-name=(string)VP8-DRAFT-IETF-01, payload=(int)96, media=(string)video"
! rtpvp8.recv_rtp_sink_0 rtpvp8. ! rtpvp8depay ! vp8dec ! videoconvert !
osxvideosink
Run this second:
gst-launch-1.0 -v rtpbin name=rtpvp8 videotestsrc pattern=ball ! textoverlay
text="VP8" ! 'video/x-raw,width=320,height=240,framerate=15/1' ! vp8enc
cpu-used=15 keyframe-max-dist=10000 ! rtpvp8pay ! rtpvp8.send_rtp_sink_0
rtpvp8.send_rtp_src_0 ! udpsink async=false port=5002 host=::FFFF:7F00:0001
name=vrtpsink
You should see a very short section of video before it pauses (sometimes just a
static image).
Interestingly if the receiver cuts out rtpbin then it works OK. Instead of the
first pipeline run:
gst-launch-1.0 -v udpsrc name=vp8recv port=5002 caps="application/x-rtp,
clock-rate=(int)90000, encoding-name=(string)VP8-DRAFT-IETF-01,
payload=(int)96, media=(string)video" ! rtpvp8depay ! vp8dec ! videoconvert !
osxvideosink
Unfortunately this is not a solution for me as I need rtpbin for RTCP etc.
The difference in logging appears to be related to the setting of caps twice:
...
0:00:03.199149000 8345 0x7fe44310a190 INFO GST_EVENT
gstevent.c:1313:gst_event_new_reconfigure: creating reconfigure event
/GstPipeline:pipeline0/GstRtpBin:rtpvp8.GstGhostPad:recv_rtp_src_0_1996705949_96:
caps = application/x-rtp, clock-rate=(int)90000,
encoding-name=(string)VP8-DRAFT-IETF-01, payload=(int)96, media=(string)video,
ssrc=(uint)1996705949
0:00:03.199235000 8345 0x7fe44310a190 DEBUG rtpbasedepayload
gstrtpbasedepayload.c:191:gst_rtp_base_depayload_setcaps:<rtpvp8depay0> Set
caps
0:00:03.199243000 8345 0x7fe44310a190 DEBUG rtpbasedepayload
gstrtpbasedepayload.c:201:gst_rtp_base_depayload_setcaps:<rtpvp8depay0> NPT
start 0
...
0:00:03.265670000 8345 0x7fe44310a190 INFO GST_EVENT
gstevent.c:628:gst_event_new_caps: creating caps event 0x7fe448011540
/GstPipeline:pipeline0/GstRtpBin:rtpvp8/GstRtpSession:rtpsession0.GstPad:recv_rtp_sink:
caps = application/x-rtp, clock-rate=(int)90000,
encoding-name=(string)VP8-DRAFT-IETF-01, payload=(int)96, media=(string)video
/GstPipeline:pipeline0/GstRtpBin:rtpvp8/GstRtpSession:rtpsession0.GstPad:recv_rtp_sink:
caps = application/x-rtp, clock-rate=(int)90000,
encoding-name=(string)VP8-DRAFT-IETF-01, payload=(int)96, media=(string)video
0:00:03.265779000 8345 0x7fe44310a190 DEBUG rtpbasedepayload
gstrtpbasedepayload.c:191:gst_rtp_base_depayload_setcaps:<rtpvp8depay0> Set
caps
/GstPipeline:pipeline0/GstRtpBin:rtpvp8/GstRtpSession:rtpsession0.GstPad:recv_rtp_sink:
caps = application/x-rtp, clock-rate=(int)90000,
encoding-name=(string)VP8-DRAFT-IETF-01, payload=(int)96, media=(string)video
0:00:03.265791000 8345 0x7fe44310a190 DEBUG rtpbasedepayload
gstrtpbasedepayload.c:201:gst_rtp_base_depayload_setcaps:<rtpvp8depay0> NPT
start 0
0:00:03.265804000 8345 0x7fe44310a190 DEBUG rtpbasedepayload
gstrtpbasedepayload.c:209:gst_rtp_base_depayload_setcaps:<rtpvp8depay0> NPT
stop 18446744073709551615
/GstPipeline:pipeline0/GstRtpBin:rtpvp8.GstGhostPad:recv_rtp_sink_0: caps =
application/x-rtp, clock-rate=(int)90000,
encoding-name=(string)VP8-DRAFT-IETF-01, payload=(int)96, media=(string)video
...
On the good one the rtpvp8depay only get's "Set caps" once:
...
0:00:00.237910000 8221 0x7fb5eb0efa30 INFO GST_EVENT
gstevent.c:628:gst_event_new_caps: creating caps event 0x7fb5ec82b0f0
/GstPipeline:pipeline0/GstUDPSrc:vp8recv.GstPad:src: caps = application/x-rtp,
clock-rate=(int)90000, encoding-name=(string)VP8-DRAFT-IETF-01,
payload=(int)96, media=(string)video
0:00:00.237999000 8221 0x7fb5eb0efa30 DEBUG rtpbasedepayload
gstrtpbasedepayload.c:191:gst_rtp_base_depayload_setcaps:<rtpvp8depay0> Set
caps
0:00:00.238007000 8221 0x7fb5eb0efa30 DEBUG rtpbasedepayload
gstrtpbasedepayload.c:201:gst_rtp_base_depayload_setcaps:<rtpvp8depay0> NPT
start 0
...
I will attach full debug logs.
--
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.
More information about the gstreamer-bugs
mailing list