<?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 Hi Jeff, in Intel® Integrated Performance Primitives</title>
    <link>https://community.intel.com/t5/Intel-Integrated-Performance/Problem-with-muxing-MPEG2-video-and-audio/m-p/984606#M21666</link>
    <description>Hi Jeff,
Thank you for your reply. The alternative that you suggested doesn't work for me. We have our own medical camera and the camera process is feeding the memory buffers with video and audio data. This is not a file, buffers with single video and audio frames. So my idea is to mux the data to the mpeg file based on user request (mpeg1/2/4). MPEG4 muxer works great but MPEG2 does not. I have to find the solution to mux video and audio data to mpeg2.
Thank you.
Sergey Tsybikov
Smith&amp;amp;Nephew Endoscopy</description>
    <pubDate>Thu, 10 Jan 2013 15:48:27 GMT</pubDate>
    <dc:creator>stsybikov</dc:creator>
    <dc:date>2013-01-10T15:48:27Z</dc:date>
    <item>
      <title>Problem with muxing MPEG2 video and audio</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Problem-with-muxing-MPEG2-video-and-audio/m-p/984603#M21663</link>
      <description>&lt;P&gt;Hi Intel Gurus,&lt;/P&gt;
&lt;P&gt;I have&amp;nbsp;a trouble to mux YUV420 video with audio to MPEG2. It's no issue to mux just the video. Works like a charm.&amp;nbsp;But when I try to use PutAudioData I receive Unhandled exception error: Access&amp;nbsp;violation reading location 0x0000000.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This is extraction from my code:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;////////////////////////////&lt;BR /&gt;&amp;nbsp;// Video Info&lt;BR /&gt;&amp;nbsp;UMC::VideoStreamInfo VideoInfo;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;memset(&amp;amp;VideoInfo, 0, sizeof(VideoInfo));&lt;BR /&gt;&amp;nbsp;VideoInfo.streamPID&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;= 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;VideoInfo.stream_type&amp;nbsp;&amp;nbsp;&amp;nbsp;= UMC::MPEG2_VIDEO;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;VideoInfo.color_format&amp;nbsp;&amp;nbsp;&amp;nbsp;= UMC::YUV420; &lt;BR /&gt;&amp;nbsp;VideoInfo.interlace_type&amp;nbsp;&amp;nbsp;= UMC::PROGRESSIVE; &lt;BR /&gt;&amp;nbsp;VideoInfo.aspect_ratio_height&amp;nbsp;= 9;&lt;BR /&gt;&amp;nbsp;VideoInfo.aspect_ratio_width&amp;nbsp;= 16;&lt;BR /&gt;&amp;nbsp;VideoInfo.clip_info.height&amp;nbsp;&amp;nbsp;= 1080; &lt;BR /&gt;&amp;nbsp;VideoInfo.clip_info.width&amp;nbsp;&amp;nbsp;= 1920; &lt;BR /&gt;&amp;nbsp;VideoInfo.bitrate&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;= 10000000; &lt;BR /&gt;&amp;nbsp;VideoInfo.framerate&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;= 24;&lt;BR /&gt;&amp;nbsp;VideoInfo.disp_clip_info.height&amp;nbsp;= 1080; &lt;BR /&gt;&amp;nbsp;VideoInfo.disp_clip_info.width&amp;nbsp;= 1920;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;//////////////////////////////&lt;BR /&gt;&amp;nbsp;// Audio Info&lt;BR /&gt;UMC::AudioStreamInfo AudioInfo;&lt;BR /&gt;memset(&amp;amp;AudioInfo, 0, sizeof(AudioInfo));&lt;BR /&gt;AudioInfo.streamPID&amp;nbsp;&amp;nbsp;&amp;nbsp;= 1;&lt;BR /&gt;AudioInfo.stream_type&amp;nbsp;&amp;nbsp;= UMC::AAC_AUDIO;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;AudioInfo.channels&amp;nbsp;&amp;nbsp;&amp;nbsp;= 2;&lt;BR /&gt;AudioInfo.bitPerSample&amp;nbsp;&amp;nbsp;= 16;&lt;BR /&gt;AudioInfo.bitrate&amp;nbsp;&amp;nbsp;&amp;nbsp;= 24;&lt;BR /&gt;AudioInfo.sample_frequency&amp;nbsp;= 44100;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;UMC::MPEG2MuxerParams MuxerParams;&lt;BR /&gt;&amp;nbsp;MuxerParams.m_lpDataWriter&amp;nbsp;&amp;nbsp;&amp;nbsp;= &amp;amp;Writer;&lt;BR /&gt;&amp;nbsp;MuxerParams.m_SystemType&amp;nbsp;&amp;nbsp;&amp;nbsp;= UMC::MPEG2_PURE_VIDEO_STREAM;&lt;BR /&gt;MuxerParams.m_nNumberOfTracks&amp;nbsp;= 2;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;&amp;nbsp;MuxerParams.pTrackParams&amp;nbsp;&amp;nbsp;&amp;nbsp;= new UMC::TrackParams[MuxerParams.m_nNumberOfTracks];&lt;BR /&gt;&amp;nbsp;// Track 1&lt;BR /&gt;&amp;nbsp;MuxerParams.pTrackParams[0].type&amp;nbsp;&amp;nbsp;= UMC::VIDEO_TRACK;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;MuxerParams.pTrackParams[0].info.video&amp;nbsp;= &amp;amp;VideoInfo;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;MuxerParams.pTrackParams[0].bufferParams.m_prefInputBufferSize&amp;nbsp;=&amp;nbsp;2000000;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;// Track 2&lt;BR /&gt;&amp;nbsp;MuxerParams.pTrackParams[1].type&amp;nbsp;&amp;nbsp;= UMC::AUDIO_TRACK;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;MuxerParams.pTrackParams[1].info.audio&amp;nbsp;= &amp;amp;AudioInfo;&lt;BR /&gt;&amp;nbsp;MuxerParams.pTrackParams[1].bufferParams.m_prefInputBufferSize&amp;nbsp;=&amp;nbsp;20000000;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;MuxerParams.pTrackParams[1].bufferParams.m_prefOutputBufferSize&amp;nbsp;=&amp;nbsp;20000000;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;UMC::MPEG2Muxer Muxer;&lt;BR /&gt;&amp;nbsp;Muxer.Init(&amp;amp;MuxerParams);&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;/////////////////////////////////////////////&lt;BR /&gt;&amp;nbsp;// MPEG2 Encoder - video&lt;BR /&gt;&amp;nbsp;UMC::MPEG2EncoderParams videoParams;&lt;BR /&gt;&amp;nbsp;videoParams.info.clip_info.height&amp;nbsp;&amp;nbsp;=&amp;nbsp;1080&lt;BR /&gt;&amp;nbsp;videoParams.info.clip_info.width&amp;nbsp;&amp;nbsp;=&amp;nbsp;1920; &lt;BR /&gt;&amp;nbsp;videoParams.info.bitrate&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;= 1000000;&lt;BR /&gt;&amp;nbsp;videoParams.info.color_format&amp;nbsp;&amp;nbsp;&amp;nbsp;= UMC::YUV420;&lt;BR /&gt;&amp;nbsp;videoParams.info.framerate&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;= 24;&lt;BR /&gt;&amp;nbsp;videoParams.info.stream_type&amp;nbsp;&amp;nbsp;&amp;nbsp;= UMC::MPEG2_VIDEO;&lt;BR /&gt;&amp;nbsp;videoParams.info.aspect_ratio_height&amp;nbsp;= 9;&lt;BR /&gt;&amp;nbsp;videoParams.info.aspect_ratio_width&amp;nbsp;&amp;nbsp;= 16;&lt;BR /&gt;&amp;nbsp;videoParams.numThreads&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;= 1;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;UMC::MPEG2VideoEncoder Mpeg2Encoder;&lt;BR /&gt;&amp;nbsp;Mpeg2Encoder.Init(&amp;amp;videoParams);&lt;BR /&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;////////////////////////////////////////////&lt;BR /&gt;&amp;nbsp;// AAC Encoder - audio&lt;BR /&gt;&amp;nbsp;&amp;nbsp;UMC::AACEncoderParams audioParams;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;audioParams.ns_mode&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;= 1;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;audioParams.stereo_mode&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;= UMC_AAC_JOINT_STEREO;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;audioParams.m_info_in.channels&amp;nbsp;&amp;nbsp;&amp;nbsp;= 2;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;audioParams.m_info_in.sample_frequency&amp;nbsp;= 44100;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;audioParams.m_info_in.bitrate&amp;nbsp;&amp;nbsp;&amp;nbsp;= 24000;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;audioParams.audioObjectType&amp;nbsp;&amp;nbsp;&amp;nbsp;= UMC::AOT_AAC_LC;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;audioParams.outputFormat&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;= UMC::UMC_AAC_ADTS;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;audioParams.m_info_out.channels&amp;nbsp;&amp;nbsp;&amp;nbsp;= 2;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;audioParams.m_info_out.bitrate&amp;nbsp;&amp;nbsp;&amp;nbsp;= 24000;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;audioParams.m_info_out.sample_frequency = 44100;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;UMC::AACEncoder AacEncoder; &lt;BR /&gt;&amp;nbsp;AacEncoder.Init(&amp;amp;audioParams);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;UMC::VideoData DataVideoIn;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;DataVideoIn.Init(&amp;nbsp;1920, 1080, UMC::YUV420,8);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;Ipp8u* pOutputVideoData = ippsMalloc_8u(3110400);&lt;BR /&gt;&amp;nbsp;Ipp8u* pOutputAudioData&amp;nbsp; = ippsMalloc_8u(4096);&lt;BR /&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;UMC::MediaData DataVideoOut;&lt;BR /&gt;&amp;nbsp;UMC::MediaData MuxVideoData; &lt;BR /&gt;&amp;nbsp;UMC::AudioData DataAudioIn;&lt;BR /&gt;&amp;nbsp;UMC::AudioData DataAudioOut;&lt;BR /&gt;&amp;nbsp;UMC::MediaData MuxAudioData;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;DWORD dwEvent;&lt;BR /&gt;&amp;nbsp;int nEncodedVideoFrames = 0;&lt;BR /&gt;&amp;nbsp;int nEncodedAudioFrames = 0;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;//////////////////////////////////////////////////////&lt;/P&gt;
&lt;P&gt;Now I use WaitForMultipleObjects to catch the video and buffers&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;///////////////////////////////////////////////&lt;BR /&gt;// Audio Part&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;UMC::Status status;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;DataAudioIn.SetBufferPointer(pAudioFrameBuffer, nAudioBufferSize);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;DataAudioIn.SetDataSize(nAudioBufferSize);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;DataAudioOut.SetBufferPointer(pOutputAudioData, 100000000);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;status = AacEncoder.GetFrame(&amp;amp;DataAudioIn, &amp;amp;DataAudioOut);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;if (status == UMC::UMC_OK)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;nEncodedAudioFrames++;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int nDataSize = DataAudioOut.GetDataSize();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MuxAudioData.SetBufferPointer(pOutputAudioData, nDataSize); &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;memcpy(MuxAudioData.GetDataPointer(), DataAudioOut.GetDataPointer(), nDataSize); &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MuxAudioData.SetDataSize(nDataSize); &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MuxAudioData.SetTime(nEncodedAudioFrames*((double)1.0)/(44100/1024.0));&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;do &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; status = Muxer.PutAudioData(&amp;amp;MuxAudioData);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // I receive Unhandled exception right here&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (UMC::UMC_ERR_NOT_ENOUGH_BUFFER == status)&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; vm_time_sleep(5);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}while (UMC::UMC_ERR_NOT_ENOUGH_BUFFER == status);&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Audio Part works fine with MPEG4 muxing. The difference only that during initialization I used parameters specific to MPEG4.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thank you in advance&lt;/P&gt;
&lt;P&gt;Sergey Tsybikov&lt;/P&gt;
&lt;P&gt;Smith&amp;amp;Nephew&lt;/P&gt;</description>
      <pubDate>Fri, 04 Jan 2013 17:03:58 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Problem-with-muxing-MPEG2-video-and-audio/m-p/984603#M21663</guid>
      <dc:creator>stsybikov</dc:creator>
      <dc:date>2013-01-04T17:03:58Z</dc:date>
    </item>
    <item>
      <title>One more comment:</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Problem-with-muxing-MPEG2-video-and-audio/m-p/984604#M21664</link>
      <description>One more comment:

In the previous sample I defined
UMC::MPEG2MuxerParams MuxerParams;
MuxerParams.m_SystemType   = UMC::MPEG2_PURE_VIDEO_STREAM;

This setting allow me to mux only video and I received the crash for audio.

If I defined MuxerParams.m_SystemType   = UMC::MPEG2_PURE_AUDIO_STREAM  the mux of audio is fine, but the crash for video mux.

Does anyone know what parameter I have to use to combine audio and video together. I tried almost avery value from SystemStreamType but no success.

Thank you
Sergey Tsybikov</description>
      <pubDate>Tue, 08 Jan 2013 18:22:54 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Problem-with-muxing-MPEG2-video-and-audio/m-p/984604#M21664</guid>
      <dc:creator>stsybikov</dc:creator>
      <dc:date>2013-01-08T18:22:54Z</dc:date>
    </item>
    <item>
      <title>It probably won't be as</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Problem-with-muxing-MPEG2-video-and-audio/m-p/984605#M21665</link>
      <description>It probably won't be as simple as a parameter change.  Many problems have been discovered with using audio and video together in UMC's muxers.  As samples, their original purpose was to facilitate viewing output from the sample video codecs since many players only work with container formats.  While it may be possible to use them as a base (probably with a lot of work to get started, and then later to harden them) they aren't an ideal starting point for anything beyond what they were originally written for.   This has been discussed at great length internally, but for now there is not much more to say than that it is unlikely additional work to bring the muxers up to "turnkey" level will be prioritized.

This article may be of interest as an alternative, since the method described could be applied to a wide variety of video codecs:

&lt;A href="http://software.intel.com/en-us/articles/integrating-intel-media-sdk-with-ffmpeg-for-muxdemuxing-and-audio-encodedecode-usages" target="_blank"&gt;http://software.intel.com/en-us/articles/integrating-intel-media-sdk-with-ffmpeg-for-muxdemuxing-and-audio-encodedecode-usages&lt;/A&gt;

Best regards,
Jeff</description>
      <pubDate>Tue, 08 Jan 2013 23:21:02 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Problem-with-muxing-MPEG2-video-and-audio/m-p/984605#M21665</guid>
      <dc:creator>Jeffrey_M_Intel1</dc:creator>
      <dc:date>2013-01-08T23:21:02Z</dc:date>
    </item>
    <item>
      <title>Hi Jeff,</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Problem-with-muxing-MPEG2-video-and-audio/m-p/984606#M21666</link>
      <description>Hi Jeff,
Thank you for your reply. The alternative that you suggested doesn't work for me. We have our own medical camera and the camera process is feeding the memory buffers with video and audio data. This is not a file, buffers with single video and audio frames. So my idea is to mux the data to the mpeg file based on user request (mpeg1/2/4). MPEG4 muxer works great but MPEG2 does not. I have to find the solution to mux video and audio data to mpeg2.
Thank you.
Sergey Tsybikov
Smith&amp;amp;Nephew Endoscopy</description>
      <pubDate>Thu, 10 Jan 2013 15:48:27 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Problem-with-muxing-MPEG2-video-and-audio/m-p/984606#M21666</guid>
      <dc:creator>stsybikov</dc:creator>
      <dc:date>2013-01-10T15:48:27Z</dc:date>
    </item>
  </channel>
</rss>

