<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">G'day James, it's nice to hear from another University of Auckland person.<div><br><div><br><blockquote type="cite"><div><span class="Apple-style-span" style="color:rgb(42,42,42);font-family:Verdana,Simsun,Tahoma,Arial,sans-serif;font-size:12px;line-height:15px"><div style="line-height:15px">I have a question about <span class="ecxApple-style-span" style="line-height:14px;font-family:Menlo;font-size:11px">parseSPropParameterSets() function.</span></div><div style="line-height:15px">
<span class="ecxApple-style-span" style="line-height:14px;font-family:Menlo;font-size:11px"><br style="line-height:14px"></span></div><div style="line-height:15px"><span class="ecxApple-style-span" style="line-height:14px;font-family:Menlo;font-size:11px">Based on my understanding, I think this function will read in the SPS and PPS data,</span></div></span></div></blockquote><div><br></div>Yes, it will read in a coded ASCII string that represents the SPS and PPS NAL units.</div><div><br></div><div><br><blockquote type="cite"><div><span class="Apple-style-span" style="color:rgb(42,42,42);font-family:Verdana,Simsun,Tahoma,Arial,sans-serif;font-size:12px;line-height:15px"><div style="line-height:15px"><span class="ecxApple-style-span" style="line-height:14px;font-family:Menlo;font-size:11px">then do base64 decode to generate a nal unit.</span></div>
<div style="line-height:15px"><span class="ecxApple-style-span" style="line-height:14px;font-family:Menlo;font-size:11px"><br style="line-height:14px"></span></div><div style="line-height:15px"><font class="ecxApple-style-span" face="Menlo" style="line-height:normal"><span class="ecxApple-style-span" style="line-height:14px;font-size:11px">I have fit the SPS and PPS data by using this </span></font></div>
<div style="line-height:15px"><span class="ecxApple-style-span" style="line-height:14px;font-family:Menlo;font-size:11px"><p style="line-height:normal;margin-top:0px;margin-right:0px;margin-bottom:1.35em;margin-left:0px;font:normal normal normal 11px/normal Menlo;color:rgb(187,45,157)">
<br style="line-height:14px"></p><p style="line-height:normal;margin-top:0px;margin-right:0px;margin-bottom:1.35em;margin-left:0px;font:normal normal normal 11px/normal Menlo;color:rgb(187,45,157)">unsigned<span style="line-height:14px;color:rgb(0,0,0)"> </span>int<span style="line-height:14px;color:rgb(0,0,0)"> num=</span><span style="line-height:14px;color:rgb(44,46,207)">0</span><span style="line-height:14px;color:rgb(0,0,0)">;  </span></p><p style="line-height:normal;margin-top:0px;margin-right:0px;margin-bottom:1.35em;margin-left:0px;font:normal normal normal 11px/normal Menlo">SPropRecord * sps=parseSPropParameterSets(context->subsession->fmtp_spropparametersets(),num);</p></span></div></span></div></blockquote><div>After the call, "sps" will be an array of "num" "SPropRecord"s - each one containing the data for a NAL unit (usually SPS or PPS).  So you can do, for example:</div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">        </span>for (unsigned i = 0; i < num; ++i) {</div><div><span class="Apple-tab-span" style="white-space:pre">              </span>unsigned nalUnitSize = sps[i].sPropLength;</div><div><span class="Apple-tab-span" style="white-space:pre">           </span>unsigned char* nalUnitBytes = sps[i].sPropBytes;  // this is a byte array, of size "nalUnitSize".</div><div><span class="Apple-tab-span" style="white-space:pre">             </span>// Then do whatever you like with this NAL unit data</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>}</div><br><div><br></div><blockquote type="cite"><div><span class="Apple-style-span" style="color:rgb(42,42,42);font-family:Verdana,Simsun,Tahoma,Arial,sans-serif;font-size:12px;line-height:15px"><div style="line-height:15px">My question is how can i store </div><div style="line-height:15px"><br style="line-height:15px"></div><div style="line-height:15px"><span class="ecxApple-style-span" style="line-height:14px;font-family:Menlo;font-size:11px"> SPropRecord * data to a NSData and send into extradata to decode?</span></div></span></div></blockquote><div><br></div>I don't know what a "NSData" is (it's apparently something outside our libraries), but I hope it should be obvious from the implementation of the function in "liveMedia/H264VideoRTPSource.cpp" how it works.</div></div><br><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>