<html dir="ltr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
<style id="owaParaStyle" type="text/css">P {margin-top:0;margin-bottom:0;}</style>
</head>
<body ocsi="0" fpstyle="1" style="">
<div style="direction: ltr;font-family: Tahoma;color: #000000;font-size: 13px;">
<div style=""> I just built and ran live555 and the proxyRtsptest app on my raspberry PI and I didn't have to change a thing.
<br>
</div>
<div style="font-family: Times New Roman; color: #000000; font-size: 16px">
<hr tabindex="-1">
<div style="direction: ltr;" id="divRpF862678"><font color="#000000" face="Tahoma" size="2"><b>From:</b> live-devel-bounces@ns.live555.com [live-devel-bounces@ns.live555.com] on behalf of Ross Finlayson [finlayson@live555.com]<br>
<b>Sent:</b> Tuesday, March 19, 2013 12:30 PM<br>
<b>To:</b> LIVE555 Streaming Media - development & use<br>
<b>Subject:</b> Re: [Live-devel] SOCKLEN_T type / AC3AudioStreamParser try-catch / AC3 stream header<br>
</font><br>
</div>
<div></div>
<div>
<div>
<blockquote type="cite">
<div style="" lang="EN-US">
<div class="WordSection1" style="">
<div style="margin:0in 0in 0.0001pt; font-size:11pt; font-family:Calibri,sans-serif">
I compiled and ran live555 on Raspberry Pi but I changed the type of SOCKLEN_T</div>
</div>
</div>
</blockquote>
<div><br>
</div>
For the bazillionth time: Please DO NOT change the supplied code! (I want to make it as easy as possible for you to comply with the LGPL :-)</div>
<div><br>
</div>
<div><br>
</div>
<div>
<blockquote type="cite">
<div lang="EN-US">
<div class="WordSection1" style="">
<div style="margin:0in 0in 0.0001pt; font-size:11pt; font-family:Calibri,sans-serif">
<span style="font-size:11pt">Int works fine on windows but it’s unsigned int on the PI.</span></div>
</div>
</div>
</blockquote>
<br>
</div>
<div>Does your development environment for the 'Raspberry Pi' (Linux, right?) not already define "socklen_t"?? If it does, then you should be able to use the existing "config.linux" configuration file. But even if it doesn't, there's a very easy way to make
this change, without having to modify the supplied code:</div>
<div><br>
</div>
<div>Create a "config.linux-for-raspberry-pi" configuration file (perhaps just by copying "config.linux"), and, in the 'COMPILE_OPTS' line, set</div>
<div><span class="Apple-tab-span" style="white-space:pre"></span>-DSOCKLEN_T="unsigned int"</div>
<div>(I'm not sure about the quoting there; you might need to use single quotes instead?)</div>
<div><br>
</div>
<div>(If you find that you need to create a separate "config.linux-for-raspberry-pi" configuration file, then please share it on the mailing list, so I can include it in future software releases.)</div>
<div><br>
</div>
<div><br>
</div>
<blockquote type="cite">
<div lang="EN-US">
<div class="WordSection1" style="">
<div style="margin:0in 0in 0.0001pt; font-size:11pt; font-family:Calibri,sans-serif">
<span style="font-size:11pt">I noticed a try/catch block in liveMedia\AC3AudioStreamFramer.cpp is this intentional?</span></div>
</div>
</div>
</blockquote>
<div><br>
</div>
Of course it's intentional; I wouldn't write that code for no reason :-)
<div><br>
<br>
<blockquote type="cite">
<div lang="EN-US">
<div class="WordSection1" style="">
<div style="margin:0in 0in 0.0001pt; font-size:11pt; font-family:Calibri,sans-serif">
</div>
<div style="margin:0in 0in 0.0001pt; font-size:11pt; font-family:Calibri,sans-serif">
<span style="font-size:11pt">Since my compiler stumbled over try/catch (exceptions turned off)</span></div>
</div>
</div>
</blockquote>
<div><br>
</div>
Sorry, but that won't work. To compile our code, your C++ compiler needs to understand C++ language exceptions. (I wish this weren't true, but we use C++ exceptions for stream parsing; getting rid of them would be difficult.)
<div><br>
</div>
<div><br>
<blockquote type="cite">
<div lang="EN-US">
<div class="WordSection1" style="">
<div style="margin:0in 0in 0.0001pt; font-size:11pt; font-family:Calibri,sans-serif">
<span style="font-size:11pt">I came across (liveMedia/AC3AudioStreamFramer.cpp)</span></div>
<div style="margin:0in 0in 0.0001pt; font-size:11pt; font-family:Calibri,sans-serif">
</div>
<div style="margin:0in 0in 0.0001pt; font-size:11pt; font-family:Calibri,sans-serif">
</div>
<div style="margin:0in 0in 0.0001pt; font-size:11pt; font-family:Calibri,sans-serif">
<span style="font-size:9.5pt; font-family:Consolas; color:green">// We expect an AC3 audio header (first 2 bytes == 0x0B77) at the start:</span><span style="font-size:9.5pt; font-family:Consolas"></span></div>
<div style="margin:0in 0in 0.0001pt; font-size:11pt; font-family:Calibri,sans-serif">
<span style="font-size:9.5pt; font-family:Consolas"> <span style="color:blue">while</span> (1) {</span></div>
<div style="margin:0in 0in 0.0001pt; font-size:11pt; font-family:Calibri,sans-serif">
<span style="font-size:9.5pt; font-family:Consolas"> <span style="color:blue">unsigned</span> next4Bytes = test4Bytes();</span></div>
<div style="margin:0in 0in 0.0001pt; font-size:11pt; font-family:Calibri,sans-serif">
<span style="font-size:9.5pt; font-family:Consolas"> <span style="color:blue">if</span> (next4Bytes>>16 == 0x0B77) <span style="color:blue">break</span>;</span></div>
<div style="margin:0in 0in 0.0001pt; font-size:11pt; font-family:Calibri,sans-serif">
<span style="font-size:9.5pt; font-family:Consolas"> skipBytes(1);</span></div>
<div style="margin:0in 0in 0.0001pt; font-size:11pt; font-family:Calibri,sans-serif">
<span style="font-size:9.5pt; font-family:Consolas"> saveParserState();</span></div>
<div style="margin:0in 0in 0.0001pt; font-size:11pt; font-family:Calibri,sans-serif">
<span style="font-size:9.5pt; font-family:Consolas"> }</span></div>
<div style="margin:0in 0in 0.0001pt; font-size:11pt; font-family:Calibri,sans-serif">
</div>
<div style="margin:0in 0in 0.0001pt; font-size:11pt; font-family:Calibri,sans-serif">
AC3 streams are WORD oriented and both endianness’ are possible.</div>
</div>
</div>
</blockquote>
<div><br>
</div>
Are you saying that both orders are possible *in the stream*?? I don't think that's true. The AC-3 specification says, I think, that all values are sent in 'big endian' order (i.e., high-order byte first). Our "test4Bytes()" code reads the next 4 bytes -
one at a time - from the stream, always returning a 'big endian' result (regardless of the byte order of the host computer). So the code of ours that you quoted is correct, I believe.</div>
</div>
<br>
<br>
<div><span class="Apple-style-span" style=""><span class="Apple-style-span" style="">Ross Finlayson<br>
Live Networks, Inc.<br>
<a href="http://www.live555.com/" target="_blank">http://www.live555.com/</a></span></span>
</div>
<br>
</div>
</div>
</div>
<P> </P>
<P> </P>
<P>This message and any attachments contain confidential and proprietary
information, and may contain privileged information, belonging to one or more
affiliates of Windy City Wire Cable & Technology Products, LLC. No privilege
is waived by this transmission. Unauthorized use, copying or disclosure of such
information is prohibited and may be unlawful. If you receive this message in
error, please delete it from your system, destroy any printouts or copies of it,
and notify the sender immediately by e-mail or phone.</P><br></body>
</html>