<?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 Using the IPP MP3Encoder  in Intel® Integrated Performance Primitives</title>
    <link>https://community.intel.com/t5/Intel-Integrated-Performance/Using-the-IPP-MP3Encoder/m-p/809304#M3812</link>
    <description>Hi,&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;You don't need to flush encoder (i.e. use NULL input) until you're really going to close audio. What happens if you don't use NULLs?&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Regards,&lt;/DIV&gt;&lt;DIV&gt;Sergey&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;</description>
    <pubDate>Tue, 05 Jun 2012 09:08:30 GMT</pubDate>
    <dc:creator>Sergey_K_Intel</dc:creator>
    <dc:date>2012-06-05T09:08:30Z</dc:date>
    <item>
      <title>Using the IPP MP3Encoder</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Using-the-IPP-MP3Encoder/m-p/809303#M3811</link>
      <description>Hello,&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;I am not sure if I am using the MP3Encoder correctly, but here is my issue. I am using this in the context of encoding live audio to be sent via an RTP stream.&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;The Encoder is intiailized using&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV id="_mcePaste"&gt;[bash]UMC::MP3EncoderParams audioCodecParams;
audioCodecParams.m_info_in.channels	 = channels;
audioCodecParams.m_info_in.sample_frequency	 = sampleRate;
audioCodecParams.m_info_in.channel_mask	 = 0;
audioCodecParams.m_info_out.bitrate	 = bitRate;
audioCodecParams.layer	 = 3;
audioCodecParams.force_mpeg1	 = 1;
audioCodecParams.stereo_mode	 = UMC_MPA_LR_STEREO;
audioCodecParams.mode	 = 0;
audioCodecParams.mc_matrix_procedure	 = 0;
audioCodecParams.mc_lfe_filter_off	 = 0;
audioCodecParams.m_pData	 = NULL;
[/bash] &lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;Then when I have my PCM sample of size 4608 (1152 * 2 channels * 2 bytes) I call&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;[bash]status = m_spMP3Encoder-&amp;gt;GetFrame(pIn, &amp;amp;m_mediaOutputDataVec[m_outputIndex]);[/bash] &lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;Them_mediaOutputDataVec does not contain the full encoding of the 4608 bytes (I am supposed to get at least 417 encoded bytes, I always get less than that). Thus I put the above line in a loop and keep looping till I getUMC::UMC_ERR_END_OF_STREAM in status.&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;[bash]do {
status = m_spMP3Encoder-&amp;gt;GetFrame(pIn, &amp;amp;m_mediaOutputDataVec[m_outputIndex]);
pIn = NULL;
} while (status != UMC::UMC_ERR_END_OF_STREAM)[/bash] &lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;The next time I call GetFrame with my next sample of size 4608 GetFrame never returns. I stepped through it and I can see it is stuck in an infinite loop in&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;mp3enc_bitstream.c line 984 in the do { //code } while (bytes).&lt;BR /&gt;&lt;BR /&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;I do not believe I am using this GetFrame correctly. A sample application would be extremely useful. I looked through the applications directory in the IPP installation and did not find any.&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;Thanks a lot for your help&lt;/DIV&gt;</description>
      <pubDate>Mon, 04 Jun 2012 17:29:47 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Using-the-IPP-MP3Encoder/m-p/809303#M3811</guid>
      <dc:creator>bitsmaker</dc:creator>
      <dc:date>2012-06-04T17:29:47Z</dc:date>
    </item>
    <item>
      <title>Using the IPP MP3Encoder</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Using-the-IPP-MP3Encoder/m-p/809304#M3812</link>
      <description>Hi,&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;You don't need to flush encoder (i.e. use NULL input) until you're really going to close audio. What happens if you don't use NULLs?&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Regards,&lt;/DIV&gt;&lt;DIV&gt;Sergey&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Tue, 05 Jun 2012 09:08:30 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Using-the-IPP-MP3Encoder/m-p/809304#M3812</guid>
      <dc:creator>Sergey_K_Intel</dc:creator>
      <dc:date>2012-06-05T09:08:30Z</dc:date>
    </item>
    <item>
      <title>Using the IPP MP3Encoder</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Using-the-IPP-MP3Encoder/m-p/809305#M3813</link>
      <description>If I do not use NULLs then it will continue to give me the partial encoded data.&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;However, if I do take this approach then for every PCM sample of size 4608 I get only part of the encoded (MP3) data in the first call to GetFrame. In the next call I send the next sample of size 4608 and I get the remainder of the encoded data from the first sample and part of the second.&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;I would think that given a sample of PCM data the GetFrame would return &lt;B&gt;ALL&lt;/B&gt; of the encoded data for that sample and not return &lt;B&gt;only a part of it.&lt;/B&gt;&lt;/DIV&gt;</description>
      <pubDate>Tue, 05 Jun 2012 14:35:09 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Using-the-IPP-MP3Encoder/m-p/809305#M3813</guid>
      <dc:creator>bitsmaker</dc:creator>
      <dc:date>2012-06-05T14:35:09Z</dc:date>
    </item>
    <item>
      <title>Using the IPP MP3Encoder</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Using-the-IPP-MP3Encoder/m-p/809306#M3814</link>
      <description>Any further thought on this?</description>
      <pubDate>Thu, 07 Jun 2012 15:08:29 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Using-the-IPP-MP3Encoder/m-p/809306#M3814</guid>
      <dc:creator>bitsmaker</dc:creator>
      <dc:date>2012-06-07T15:08:29Z</dc:date>
    </item>
    <item>
      <title>Hi,</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Using-the-IPP-MP3Encoder/m-p/809307#M3815</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;

&lt;P&gt;We are encountering the same issue (stuck inside an infinite loop in mp3enc_bitstream.c line 984) while trying to encode PCMU to MP3..&lt;/P&gt;

&lt;P&gt;Also we don't flush the encoder using NULL input.&lt;/P&gt;

&lt;P&gt;Did you guys figure out the solution for this problem yet ?&lt;/P&gt;

&lt;P&gt;Thanks in advance.&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 13 May 2014 16:07:02 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Using-the-IPP-MP3Encoder/m-p/809307#M3815</guid>
      <dc:creator>Gaurav_M_</dc:creator>
      <dc:date>2014-05-13T16:07:02Z</dc:date>
    </item>
    <item>
      <title>Hi,</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Using-the-IPP-MP3Encoder/m-p/809308#M3816</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;

&lt;P&gt;We are facing the same problem described here (stuck in an infinite loop in mp3enc_bitstream.c line 984).&lt;/P&gt;

&lt;P&gt;Also we are not passing NULL input to the encoder anywhere in our code.&lt;/P&gt;

&lt;P&gt;Did you guys figure out a solution for this problem yet ?&lt;/P&gt;

&lt;P&gt;Thanks in advance.&lt;/P&gt;</description>
      <pubDate>Tue, 13 May 2014 16:13:12 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Using-the-IPP-MP3Encoder/m-p/809308#M3816</guid>
      <dc:creator>Gaurav_M_</dc:creator>
      <dc:date>2014-05-13T16:13:12Z</dc:date>
    </item>
    <item>
      <title>If I remember correctly one</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Using-the-IPP-MP3Encoder/m-p/809309#M3817</link>
      <description>&lt;P&gt;If I remember correctly one has to not use NULLs and get the partial data. Then combine data for two packets worth and send it. See the mp3streamer test app in live555.&lt;/P&gt;</description>
      <pubDate>Tue, 13 May 2014 21:42:51 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Using-the-IPP-MP3Encoder/m-p/809309#M3817</guid>
      <dc:creator>bitsmaker</dc:creator>
      <dc:date>2014-05-13T21:42:51Z</dc:date>
    </item>
    <item>
      <title>Quote:bitsmaker wrote:</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Using-the-IPP-MP3Encoder/m-p/809310#M3818</link>
      <description>&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE&gt;bitsmaker wrote:&lt;BR /&gt;&lt;P&gt;&lt;/P&gt;

&lt;P&gt;If I remember correctly one has to not use NULLs and get the partial data. Then combine data for two packets worth and send it. See the mp3streamer test app in live555.&lt;/P&gt;

&lt;P&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;

&lt;P&gt;Thanks for you&amp;nbsp; reply.&lt;/P&gt;

&lt;P&gt;As mentioned in my earlier post we are not passing NULL input at all to the encoder and still facing the problem with IPP version 6.1.6.&lt;/P&gt;

&lt;P&gt;Other strange thing is that the issue is seen while running our software on Virtual Machine and things work fine when it is run on a physical machine.&lt;/P&gt;

&lt;P&gt;Any other suggestions/thoughts ?&lt;/P&gt;</description>
      <pubDate>Wed, 14 May 2014 14:27:26 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Using-the-IPP-MP3Encoder/m-p/809310#M3818</guid>
      <dc:creator>Gaurav_M_</dc:creator>
      <dc:date>2014-05-14T14:27:26Z</dc:date>
    </item>
  </channel>
</rss>

