sprop-param-set

Tim Müller tim at centricular.com
Fri Apr 4 14:58:00 PDT 2014


On Fri, 2014-04-04 at 16:24 -0400, Chuck Crisler wrote:

Hi Chuck,

> OK, I am beginning to understand. Here is a part of the log.
> 
> Apr  4 16:08:05 rtspdaemon[731]: 0:00:00.015266513   753  0x808d008
> DEBUG             RTSPSocket RTSPSocket.cpp:380:StartPipeline: RTSP
> Pipeline: ( udpsrc port=6215 name=UDPSrc !
> application/x-rtp,media=video,payload=96,clock-rate=90000,encoding-name=H264,sprop-parameter-sets=Njc0ZDAwMTZkYTAyODBmNmMwNTUyMDAwMDAwMzAwNDAwMDAwMDc4YzA4MDAzZTgwMDAwYThjMzdiZGYwYmMyMjExYTg=,NjhlZTNjODA= ! valve name=pay0 drop=false )
> Apr  4 16:08:06 rtspdaemon[731]: 0:00:00.423412736   753  0x808d008
> WARN                 default
> gststructure.c:2112:gst_structure_from_string: Failed to find
> delimiter, r==,NjhlZTNjODA=
> Apr  4 16:08:06 rtspdaemon[731]: 0:00:00.423444876   753  0x808d008
> ERROR           GST_PIPELINE ./grammar.y:713:_gst_parse_yyparse: could
> not parse caps
> "application/x-rtp,media=video,payload=96,clock-rate=90000,encoding-name=H264,sprop-parameter-sets=Njc0ZDAwMTZkYTAyODBmNmMwNTUyMDAwMDAwMzAwNDAwMDAwMDc4YzA4MDAzZTgwMDAwYThjMzdiZGYwYmMyMjExYTg=,NjhlZTNjODA="
> 
> 
> gststructure works with ASCII but the sprops-parameter-set is BASE64
> encoded.

BASE64 is a subset of ASCII.

>  So first, it can't handle the PPS added after the ',' (which is
> legal). Second, it can't handle '=' in the field (which is legal).
> Third, for some reason gststructure.c fails when I add the NAL type at
> the beginning. The problem is that the Android app parses the SPS and
> will fail if it isn't valid, even though the SPS and PPS are signaled
> inband.

This seems to work for me:

 gst-launch-0.10 fakesrc ! 'application/x-rtp, media=(string)video,
clock-rate=(int)90000, encoding-name=(string)H264,
sprop-parameter-sets=(string)"Z01AFeygoP2AiAAAAwALuaygAHixbLA\=\,aOvssg
\=\=", payload=(int)96, ssrc=(uint)1968523427,
clock-base=(uint)2269461842, seqnum-base=(uint)26782' ! fakesink

Generated with:

 gst-launch-0.10 -v videotestsrc ! x264enc ! rtph264pay ! fakesink

(well, almost, I looked at the debug log, because the -v output is
doubly-escaped I think; h)

 Cheers
  -Tim


-- 
Tim Müller, Centricular Ltd - http://www.centricular.com



More information about the gstreamer-devel mailing list