<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"><base href="x-msg://8822/"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><blockquote type="cite"><div lang="EN-US" link="blue" vlink="purple" style="font-family: Helvetica; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><div class="WordSection1" style="page: WordSection1; "><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif; ">I am curious if someone could shed some light on the following assumption in the live555 code:<o:p></o:p></div><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif; "><o:p> </o:p></div><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif; ">liveMedia/H264VideoStreamFramer.cpp:524: // Note: We assume that there aren't any 'emulation prevention' bytes here to worry about...</div></div></div></blockquote><div><br></div>What this means is that we 'hope' that there aren't any 'emulation prevention' bytes to worry about, because our code doesn't check for them in this case.  (Our H.264 parsing code checks for/removes 'emulation prevention' bytes only when parsing SPS or PPS NAL units, because those are the only NAL units whose contents we really care about, and because doing so for other, much larger NAL units would be costly.)</div><div><br></div><div>As you noted, our "analyze_slice_header()" function doesn't check for/remove 'emulation prevention' bytes in VCL NAL units (the ones that have slice headers).  That's probably OK, because we call "analyze_slice_header()" only in certain cases, to check the parameters of the 'current' and 'next' NAL units' slice headers to try to figure out whether the 'current' NAL unit ends an 'access unit' (basically, a 'frame').  Our code probably ends up doing the right thing even for your stream.  But this turns out to be a moot point, because the "H264VideoStreamFramer" code will shortly be changed to make this 'end of access unit' check more accurate (and more efficient).  As part of this, the "analyze_slice_header()" function will probably be removed entirely.</div><br><div apple-content-edited="true">
<span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 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; font-size: medium; "><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 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; font-size: medium; ">Ross Finlayson<br>Live Networks, Inc.<br><a href="http://www.live555.com/">http://www.live555.com/</a></span></span>
</div>
<br></body></html>