<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META content="text/html; charset=us-ascii" http-equiv=Content-Type>
<META name=GENERATOR content="MSHTML 10.00.9200.16798"></HEAD>
<BODY
style="WORD-WRAP: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space">
<DIV dir=ltr align=left><SPAN class=979340114-25022014><FONT color=#0000ff
size=2 face=Arial>Hello Ross,</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=979340114-25022014><FONT color=#0000ff
size=2 face=Arial></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=979340114-25022014><FONT color=#0000ff
size=2 face=Arial>I've run code analysis tool against the Live555 and found two
suspicious places, which might be an error:</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=979340114-25022014><FONT color=#0000ff
size=2 face=Arial></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=979340114-25022014><FONT color=#0000ff
size=2 face=Arial>Live555 from 2014/02/19</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=979340114-25022014><FONT color=#0000ff
size=2 face=Arial></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=979340114-25022014><FONT color=#0000ff
size=2 face=Arial>H264or5VideoStreamFramer.cpp, line 696
(681):</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=979340114-25022014>
<P><FONT size=2><FONT color=#0000ff>unsigned</FONT><FONT color=#0000ff>
num_negative_pics = 0;</FONT></FONT></P>
<P><FONT size=2><FONT color=#0000ff>unsigned</FONT><FONT color=#0000ff>
num_positive_pics = 0;</FONT></FONT></P>
<P><FONT size=2><FONT color=#0000ff><SPAN class=979340114-25022014><FONT
color=#ff0000>>>></FONT> </SPAN>for</FONT> (<FONT color=#0000ff><FONT
color=#0000ff>unsigned</FONT></FONT> j = 0; j <
num_negative_pics+num_positive_pics; ++j) {</FONT></P></SPAN></DIV>
<DIV><SPAN class=979340114-25022014><FONT color=#0000ff size=2 face=Arial>so,
these variables are not changed before the cycle and it's never
run.</FONT></SPAN></DIV>
<DIV><SPAN class=979340114-25022014><FONT color=#0000ff size=2
face=Arial></FONT></SPAN> </DIV>
<DIV><SPAN class=979340114-25022014><FONT color=#0000ff size=2
face=Arial></FONT></SPAN> </DIV>
<DIV><SPAN class=979340114-25022014><FONT color=#0000ff size=2
face=Arial>StreamParser.cpp, line 88 and 105:</FONT></SPAN></DIV>
<DIV><SPAN class=979340114-25022014><FONT color=#0000ff size=2 face=Arial><FONT
color=#0000ff size=2><FONT color=#0000ff
size=2></FONT></FONT></FONT></SPAN> </DIV>
<DIV><SPAN class=979340114-25022014><FONT color=#0000ff size=2 face=Arial><FONT
color=#0000ff size=2><FONT color=#0000ff size=2>return</FONT></FONT><FONT
color=#000000 size=2> (</FONT><FONT color=#0000ff size=2><FONT color=#0000ff
size=2>unsigned</FONT></FONT><FONT size=2><FONT color=#000000>)lastByte &~
((~0)<<numBits);</FONT></DIV></FONT></FONT></SPAN>
<DIV><SPAN class=979340114-25022014><FONT color=#0000ff size=2 face=Arial><FONT
color=#0000ff size=2><FONT color=#0000ff size=2>
<P>if</FONT></FONT><FONT size=2><FONT color=#000000> (numBits < 32) result
&=~ ((~0)<<numBits);</FONT></P></FONT></FONT></SPAN></DIV>
<DIV><SPAN class=979340114-25022014><FONT color=#0000ff size=2 face=Arial>You
better use (~0<STRONG>u</STRONG>)<< expression, as signed shift left is
UB.</FONT></SPAN></DIV>
<DIV><FONT size=2></FONT> </DIV>
<DIV><SPAN class=979340114-25022014><FONT size=2><FONT color=#0000ff
face=Arial>Regards,</FONT></FONT></SPAN></DIV>
<DIV><SPAN class=979340114-25022014><FONT color=#0000ff size=2
face=Arial>Nikolai</FONT> </SPAN></DIV>
<DIV><BR></DIV>
<DIV lang=en-us class=OutlookMessageHeader dir=ltr align=left>
<HR tabIndex=-1>
<FONT size=2 face=Tahoma><B>From:</B> live-devel-bounces@ns.live555.com
[mailto:live-devel-bounces@ns.live555.com] <B>On Behalf Of </B>Ross
Finlayson<BR><B>Sent:</B> Sunday, February 23, 2014 7:44 AM<BR><B>To:</B>
LIVE555 Streaming Media - development & use<BR><B>Subject:</B> Re:
[Live-devel] Error decoding stream<BR></FONT><BR></DIV>
<DIV></DIV>
<DIV>
<BLOCKQUOTE type="cite">I was wondering if the stream received with the
"testmp3receiver" had any ID3 tag in it, or was it only pure mp3
frames.</BLOCKQUOTE>
<DIV><BR></DIV>"testMP3Receiver" delivers data under the assumption that the
incoming stream was RTP-encoded MPEG-1 or 2 audio data (i.e., including MP3)
that was packetized according to RFC 2250. If the server (i.e.,
transmitting application) was "testMP3Streamer", then this data should be MPEG
audio only (no ID3 tag or anything else). If, however, the server (i.e.,
transmitting application) was something else, then who knows...</DIV><BR><BR>
<DIV apple-content-edited="true"><SPAN class=Apple-style-span
style="FONT-FAMILY: Helvetica; FONT-VARIANT: normal; WHITE-SPACE: normal; BORDER-COLLAPSE: separate; TEXT-TRANSFORM: none; WORD-SPACING: 0px; FONT-WEIGHT: normal; COLOR: rgb(0,0,0); FONT-STYLE: normal; ORPHANS: 2; WIDOWS: 2; LETTER-SPACING: normal; LINE-HEIGHT: normal; TEXT-INDENT: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"><SPAN
class=Apple-style-span
style="FONT-FAMILY: Helvetica; FONT-VARIANT: normal; WHITE-SPACE: normal; BORDER-COLLAPSE: separate; TEXT-TRANSFORM: none; WORD-SPACING: 0px; FONT-WEIGHT: normal; COLOR: rgb(0,0,0); FONT-STYLE: normal; ORPHANS: 2; WIDOWS: 2; LETTER-SPACING: normal; LINE-HEIGHT: normal; TEXT-INDENT: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">Ross
Finlayson<BR>Live Networks, Inc.<BR><A
href="http://www.live555.com/">http://www.live555.com/</A></SPAN></SPAN>
</DIV><BR></BODY></HTML>