<div dir="ltr"><div><div><div>Here is the (hacked up/sucky) source code:<br><br>// CMC HACK<br> char cPipelineSrc2[256] = "";<br> int len = 0;<br> sprintf(cPipelineSrc2, cPipelineSrc1, RTPPorts.inputIpPort[PipelineIndex]);<br>
len = strlen(cPipelineSrc2);<br> cPipelineSrc2[len] = '\\';<br> cPipelineSrc2[len + 1] = '=';<br> cPipelineSrc2[len + 2] = ',';<br> cPipelineSrc2[len + 3] = 0;<br> strcat(cPipelineSrc2, "aM48gA");<br>
len = strlen(cPipelineSrc2);<br> cPipelineSrc2[len] = '\\';<br> cPipelineSrc2[len + 1] = '=';<br> cPipelineSrc2[len + 2] = '\\';<br> cPipelineSrc2[len + 3] = '=';<br> cPipelineSrc2[len + 4] = 0;<br>
strcat(cPipelineSrc2, " ! valve name=pay0 drop=false )");<br>// CMC HACK END<br><br><br></div>Here are some snippets from the log:<br><br>Apr 7 15:13:53 rtspdaemon[4368]: 0:00:00.014901065 4390 0x831e008 DEBUG RTSPSocket RTSPSocket.cpp:399:StartPipeline: RTSP Pipeline: ( udpsrc port=6201 name=UDPSrc ! application/x-rtp,media=video,payload=96,clock-rate=90000,encoding-name=H264,sprop-parameter-sets=(string)Z0LAH9oBQBbsBEAAAAMAQAAABSPGDKg\=,aM48gA\=\= ! valve name=pay0 drop=false )<br>
<br><br></div>So the pipeline looks similar, but still fails:<br><br>Apr 7 15:13:53 rtspdaemon[4368]: 0:00:00.955639095 4390 0x831e008 WARN default gststructure.c:2112:gst_structure_from_string: Failed to find delimiter, r=\=,aM48gA\=\=<br>
Apr 7 15:13:53 rtspdaemon[4368]: 0:00:00.955675848 4390 0x831e008 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=(string)Z0LAH9oBQBbsBEAAAAMAQAAABSPGDKg\=,aM48gA\=\="<br>
<br></div>Tim, I saw that you escaped the ',', which I haven't here. I have tried that also, but it seems to be failing on the first '=', so the ',' hasn't had a chance to cause any problems yet. <br>
<div><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Mon, Apr 7, 2014 at 2:05 PM, Chuck Crisler <span dir="ltr"><<a href="mailto:ccrisler@mutualink.net" target="_blank">ccrisler@mutualink.net</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">This works in gst-launch but seems to fail when compiled by gcc. I think that the compiler strips out the '\' and passes the un-escaped character sequence which fails GStreamer parsing. :-(<br>
</div><div class="HOEnZb"><div class="h5">
<div class="gmail_extra"><br><br><div class="gmail_quote">On Mon, Apr 7, 2014 at 9:39 AM, Chuck Crisler <span dir="ltr"><<a href="mailto:ccrisler@mutualink.net" target="_blank">ccrisler@mutualink.net</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Thank you Tim. I see that you are escaping the 'bad' characters ('=' and ','). I didn't think of that.<span><font color="#888888"><br>
<br>Chuck<br></font></span></div><div><div><div class="gmail_extra"><br><br><div class="gmail_quote">
On Fri, Apr 4, 2014 at 5:58 PM, Tim Müller <span dir="ltr"><<a href="mailto:tim@centricular.com" target="_blank">tim@centricular.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
On Fri, 2014-04-04 at 16:24 -0400, Chuck Crisler wrote:<br>
<br>
Hi Chuck,<br>
<div><br>
> OK, I am beginning to understand. Here is a part of the log.<br>
><br>
> Apr 4 16:08:05 rtspdaemon[731]: 0:00:00.015266513 753 0x808d008<br>
> DEBUG RTSPSocket RTSPSocket.cpp:380:StartPipeline: RTSP<br>
> Pipeline: ( udpsrc port=6215 name=UDPSrc !<br>
> application/x-rtp,media=video,payload=96,clock-rate=90000,encoding-name=H264,sprop-parameter-sets=Njc0ZDAwMTZkYTAyODBmNmMwNTUyMDAwMDAwMzAwNDAwMDAwMDc4YzA4MDAzZTgwMDAwYThjMzdiZGYwYmMyMjExYTg=,NjhlZTNjODA= ! valve name=pay0 drop=false )<br>
> Apr 4 16:08:06 rtspdaemon[731]: 0:00:00.423412736 753 0x808d008<br>
> WARN default<br>
> gststructure.c:2112:gst_structure_from_string: Failed to find<br>
> delimiter, r==,NjhlZTNjODA=<br>
> Apr 4 16:08:06 rtspdaemon[731]: 0:00:00.423444876 753 0x808d008<br>
> ERROR GST_PIPELINE ./grammar.y:713:_gst_parse_yyparse: could<br>
> not parse caps<br>
> "application/x-rtp,media=video,payload=96,clock-rate=90000,encoding-name=H264,sprop-parameter-sets=Njc0ZDAwMTZkYTAyODBmNmMwNTUyMDAwMDAwMzAwNDAwMDAwMDc4YzA4MDAzZTgwMDAwYThjMzdiZGYwYmMyMjExYTg=,NjhlZTNjODA="<br>
><br>
><br>
> gststructure works with ASCII but the sprops-parameter-set is BASE64<br>
> encoded.<br>
<br>
</div>BASE64 is a subset of ASCII.<br>
<div><br>
> So first, it can't handle the PPS added after the ',' (which is<br>
> legal). Second, it can't handle '=' in the field (which is legal).<br>
> Third, for some reason gststructure.c fails when I add the NAL type at<br>
> the beginning. The problem is that the Android app parses the SPS and<br>
> will fail if it isn't valid, even though the SPS and PPS are signaled<br>
> inband.<br>
<br>
</div>This seems to work for me:<br>
<br>
gst-launch-0.10 fakesrc ! 'application/x-rtp, media=(string)video,<br>
clock-rate=(int)90000, encoding-name=(string)H264,<br>
sprop-parameter-sets=(string)"Z01AFeygoP2AiAAAAwALuaygAHixbLA\=\,aOvssg<br>
\=\=", payload=(int)96, ssrc=(uint)1968523427,<br>
clock-base=(uint)<a href="tel:2269461842" value="+12269461842" target="_blank">2269461842</a>, seqnum-base=(uint)26782' ! fakesink<br>
<br>
Generated with:<br>
<br>
gst-launch-0.10 -v videotestsrc ! x264enc ! rtph264pay ! fakesink<br>
<br>
(well, almost, I looked at the debug log, because the -v output is<br>
doubly-escaped I think; h)<br>
<br>
Cheers<br>
<span><font color="#888888"> -Tim<br>
<br>
<br>
--<br>
Tim Müller, Centricular Ltd - <a href="http://www.centricular.com" target="_blank">http://www.centricular.com</a><br>
<br>
_______________________________________________<br>
gstreamer-devel mailing list<br>
<a href="mailto:gstreamer-devel@lists.freedesktop.org" target="_blank">gstreamer-devel@lists.freedesktop.org</a><br>
<a href="http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel" target="_blank">http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</a><br>
</font></span></blockquote></div><br></div>
</div></div></blockquote></div><br></div>
</div></div></blockquote></div><br></div>