<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: H264 Encoder and NAL Split in Intel® Integrated Performance Primitives</title>
    <link>https://community.intel.com/t5/Intel-Integrated-Performance/H264-Encoder-and-NAL-Split/m-p/859072#M7530</link>
    <description>&lt;DIV style="margin:0px;"&gt;
&lt;DIV id="quote_reply" style="margin-top: 5px; width: 100%;"&gt;
&lt;DIV style="margin-left:2px;margin-right:2px;"&gt;Quoting - &lt;A href="https://community.intel.com/en-us/profile/254231"&gt;yann.stephan@gmail.com&lt;/A&gt;&lt;/DIV&gt;
&lt;DIV style="background-color:#E5E5E5; padding:5px;border: 1px; border-style: inset;margin-left:2px;margin-right:2px;"&gt;&lt;EM&gt;When I use SLICE_CHECK_LIMIT, the stream is certainly split in NAL with a given size.&lt;BR /&gt;I didn't find an accessor in the sample for changing the value of m_MaxSliceSize, so I changed it in the code directly.&lt;BR /&gt;&lt;BR /&gt;My question is the following one:&lt;BR /&gt;&lt;BR /&gt;I use the following code (not optimized for a good understanding)&lt;BR /&gt;&lt;BR /&gt;int nSrcWidth = abs((long) pOutputFormat-&amp;gt;bmiHeader.biWidth);&lt;BR /&gt;int nSrcHeight = abs((long) pOutputFormat-&amp;gt;bmiHeader.biHeight);&lt;BR /&gt;&lt;BR /&gt;// Compared to I420 (YUV) plans are in YV12 (YVU)&lt;BR /&gt;LPBYTE pDestY = lpVideoBuffer;&lt;BR /&gt;LPBYTE pDestU = pDestY + (nSrcWidth * nSrcHeight);&lt;BR /&gt;LPBYTE pDestV = pDestU + ((nSrcWidth * nSrcHeight) / 4);&lt;BR /&gt;&lt;BR /&gt;m_pSrcMediaData-&amp;gt;SetPlanePointer(pDestY, 0); // Y&lt;BR /&gt;m_pSrcMediaData-&amp;gt;SetPlanePointer(pDestU, 1); // U&lt;BR /&gt;m_pSrcMediaData-&amp;gt;SetPlanePointer(pDestV, 2); // V&lt;BR /&gt;&lt;BR /&gt;m_pDstMediaData-&amp;gt;SetBufferPointer(lpCompressedData + sizeof(RTP_INFO_HEADER), lOutDataLen - sizeof(RTP_INFO_HEADER));&lt;BR /&gt;&lt;BR /&gt;if (m_h264VideoEncoder-&amp;gt;GetFrame(m_pSrcMediaData, m_pDstMediaData) == UMC::UMC_OK)&lt;BR /&gt;{&lt;BR /&gt; if (m_pDstMediaData-&amp;gt;GetDataSize() &amp;gt; 0)&lt;BR /&gt; {&lt;BR /&gt;....&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;The problem is that m_pDstMediaData is a continous stream, how I can access the NAL split in order to send it over the network. I need to split in NAL with a maximum size of the given MTU. The mode used is the single NAL unit.&lt;BR /&gt;&lt;BR /&gt;I found a h264_split but it's not very how I should use it (if I need to use it)&lt;BR /&gt;&lt;BR /&gt;Thanks for your answers.&lt;/EM&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;BR /&gt;I found maybe the answer, NAL units are separated by a simple (at least) 4-byte sequence containing a&lt;BR /&gt;big-endian 1, i.e. 00 00 00 01. So, by searching them I should be able to send them over the network.</description>
    <pubDate>Tue, 14 Apr 2009 21:33:53 GMT</pubDate>
    <dc:creator>yann_stephan</dc:creator>
    <dc:date>2009-04-14T21:33:53Z</dc:date>
    <item>
      <title>H264 Encoder and NAL Split</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/H264-Encoder-and-NAL-Split/m-p/859071#M7529</link>
      <description>When I use SLICE_CHECK_LIMIT, the stream is certainly split in NAL with a given size.&lt;BR /&gt;I didn't find an accessor in the sample for changing the value of m_MaxSliceSize, so I changed it in the code directly.&lt;BR /&gt;&lt;BR /&gt;My question is the following one:&lt;BR /&gt;&lt;BR /&gt;I use the following code (not optimized for a good understanding)&lt;BR /&gt;&lt;BR /&gt;int nSrcWidth = abs((long) pOutputFormat-&amp;gt;bmiHeader.biWidth);&lt;BR /&gt;int nSrcHeight = abs((long) pOutputFormat-&amp;gt;bmiHeader.biHeight);&lt;BR /&gt;&lt;BR /&gt;// Compared to I420 (YUV) plans are in YV12 (YVU)&lt;BR /&gt;LPBYTE pDestY = lpVideoBuffer;&lt;BR /&gt;LPBYTE pDestU = pDestY + (nSrcWidth * nSrcHeight);&lt;BR /&gt;LPBYTE pDestV = pDestU + ((nSrcWidth * nSrcHeight) / 4);&lt;BR /&gt;&lt;BR /&gt;m_pSrcMediaData-&amp;gt;SetPlanePointer(pDestY, 0); // Y&lt;BR /&gt;m_pSrcMediaData-&amp;gt;SetPlanePointer(pDestU, 1); // U&lt;BR /&gt;m_pSrcMediaData-&amp;gt;SetPlanePointer(pDestV, 2); // V&lt;BR /&gt;&lt;BR /&gt;m_pDstMediaData-&amp;gt;SetBufferPointer(lpCompressedData + sizeof(RTP_INFO_HEADER), lOutDataLen - sizeof(RTP_INFO_HEADER));&lt;BR /&gt;&lt;BR /&gt;if (m_h264VideoEncoder-&amp;gt;GetFrame(m_pSrcMediaData, m_pDstMediaData) == UMC::UMC_OK)&lt;BR /&gt;{&lt;BR /&gt; if (m_pDstMediaData-&amp;gt;GetDataSize() &amp;gt; 0)&lt;BR /&gt; {&lt;BR /&gt;....&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;The problem is that m_pDstMediaData is a continous stream, how I can access the NAL split in order to send it over the network. I need to split in NAL with a maximum size of the given MTU. The mode used is the single NAL unit.&lt;BR /&gt;&lt;BR /&gt;I found a h264_split but it's not very how I should use it (if I need to use it)&lt;BR /&gt;&lt;BR /&gt;Thanks for your answers.</description>
      <pubDate>Tue, 14 Apr 2009 21:22:26 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/H264-Encoder-and-NAL-Split/m-p/859071#M7529</guid>
      <dc:creator>yann_stephan</dc:creator>
      <dc:date>2009-04-14T21:22:26Z</dc:date>
    </item>
    <item>
      <title>Re: H264 Encoder and NAL Split</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/H264-Encoder-and-NAL-Split/m-p/859072#M7530</link>
      <description>&lt;DIV style="margin:0px;"&gt;
&lt;DIV id="quote_reply" style="margin-top: 5px; width: 100%;"&gt;
&lt;DIV style="margin-left:2px;margin-right:2px;"&gt;Quoting - &lt;A href="https://community.intel.com/en-us/profile/254231"&gt;yann.stephan@gmail.com&lt;/A&gt;&lt;/DIV&gt;
&lt;DIV style="background-color:#E5E5E5; padding:5px;border: 1px; border-style: inset;margin-left:2px;margin-right:2px;"&gt;&lt;EM&gt;When I use SLICE_CHECK_LIMIT, the stream is certainly split in NAL with a given size.&lt;BR /&gt;I didn't find an accessor in the sample for changing the value of m_MaxSliceSize, so I changed it in the code directly.&lt;BR /&gt;&lt;BR /&gt;My question is the following one:&lt;BR /&gt;&lt;BR /&gt;I use the following code (not optimized for a good understanding)&lt;BR /&gt;&lt;BR /&gt;int nSrcWidth = abs((long) pOutputFormat-&amp;gt;bmiHeader.biWidth);&lt;BR /&gt;int nSrcHeight = abs((long) pOutputFormat-&amp;gt;bmiHeader.biHeight);&lt;BR /&gt;&lt;BR /&gt;// Compared to I420 (YUV) plans are in YV12 (YVU)&lt;BR /&gt;LPBYTE pDestY = lpVideoBuffer;&lt;BR /&gt;LPBYTE pDestU = pDestY + (nSrcWidth * nSrcHeight);&lt;BR /&gt;LPBYTE pDestV = pDestU + ((nSrcWidth * nSrcHeight) / 4);&lt;BR /&gt;&lt;BR /&gt;m_pSrcMediaData-&amp;gt;SetPlanePointer(pDestY, 0); // Y&lt;BR /&gt;m_pSrcMediaData-&amp;gt;SetPlanePointer(pDestU, 1); // U&lt;BR /&gt;m_pSrcMediaData-&amp;gt;SetPlanePointer(pDestV, 2); // V&lt;BR /&gt;&lt;BR /&gt;m_pDstMediaData-&amp;gt;SetBufferPointer(lpCompressedData + sizeof(RTP_INFO_HEADER), lOutDataLen - sizeof(RTP_INFO_HEADER));&lt;BR /&gt;&lt;BR /&gt;if (m_h264VideoEncoder-&amp;gt;GetFrame(m_pSrcMediaData, m_pDstMediaData) == UMC::UMC_OK)&lt;BR /&gt;{&lt;BR /&gt; if (m_pDstMediaData-&amp;gt;GetDataSize() &amp;gt; 0)&lt;BR /&gt; {&lt;BR /&gt;....&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;The problem is that m_pDstMediaData is a continous stream, how I can access the NAL split in order to send it over the network. I need to split in NAL with a maximum size of the given MTU. The mode used is the single NAL unit.&lt;BR /&gt;&lt;BR /&gt;I found a h264_split but it's not very how I should use it (if I need to use it)&lt;BR /&gt;&lt;BR /&gt;Thanks for your answers.&lt;/EM&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;BR /&gt;I found maybe the answer, NAL units are separated by a simple (at least) 4-byte sequence containing a&lt;BR /&gt;big-endian 1, i.e. 00 00 00 01. So, by searching them I should be able to send them over the network.</description>
      <pubDate>Tue, 14 Apr 2009 21:33:53 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/H264-Encoder-and-NAL-Split/m-p/859072#M7530</guid>
      <dc:creator>yann_stephan</dc:creator>
      <dc:date>2009-04-14T21:33:53Z</dc:date>
    </item>
    <item>
      <title>Re: H264 Encoder and NAL Split</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/H264-Encoder-and-NAL-Split/m-p/859073#M7531</link>
      <description>&lt;DIV style="margin:0px;"&gt;
&lt;DIV id="quote_reply" style="margin-top: 5px; width: 100%;"&gt;
&lt;DIV style="margin-left:2px;margin-right:2px;"&gt;Quoting - &lt;A href="https://community.intel.com/en-us/profile/254231"&gt;yann.stephan@gmail.com&lt;/A&gt;&lt;/DIV&gt;
&lt;DIV style="background-color:#E5E5E5; padding:5px;border: 1px; border-style: inset;margin-left:2px;margin-right:2px;"&gt;&lt;EM&gt;
&lt;DIV style="margin:0px;"&gt;&lt;/DIV&gt;
&lt;BR /&gt;I found maybe the answer, NAL units are separated by a simple (at least) 4-byte sequence containing a&lt;BR /&gt;big-endian 1, i.e. 00 00 00 01. So, by searching them I should be able to send them over the network.&lt;/EM&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;BR /&gt;This is how I did too.</description>
      <pubDate>Tue, 05 May 2009 17:54:31 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/H264-Encoder-and-NAL-Split/m-p/859073#M7531</guid>
      <dc:creator>Emmanuel_W_</dc:creator>
      <dc:date>2009-05-05T17:54:31Z</dc:date>
    </item>
  </channel>
</rss>

