<?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 Trouble decoding streaming MPEG4 in Intel® Integrated Performance Primitives</title>
    <link>https://community.intel.com/t5/Intel-Integrated-Performance/Trouble-decoding-streaming-MPEG4/m-p/855449#M7049</link>
    <description>&lt;P&gt;I'm using the UMC MPEG4 decoder code from simple player application to decode streaming MPEG4. I receive the frame in a buffer on the network and pass this to the decoder and also a output buffer where I want to receive the decoded frame. &lt;/P&gt;
&lt;P&gt;Earlier I was using IPP 3.0 sample code but now trying to upgrade the decoder to 5.3.&lt;/P&gt;
&lt;P&gt;But the decoder's GetFrame(...) method fails with UMC_ERR_NOT_ENOUGH_DATA.&lt;/P&gt;
&lt;P&gt;Am I missing some steps here?&lt;/P&gt;
&lt;P&gt;I init the decoder as follows:&lt;/P&gt;
&lt;P&gt;UMC::MPEG4VideoDecoder m_Decoder;&lt;BR /&gt;UMC::MediaData m_FrameIn;&lt;BR /&gt;UMC::VideoData m_FrameOut;&lt;BR /&gt;&lt;/P&gt;
&lt;P&gt;UMC::VideoStreamInfo VideoInfo;&lt;BR /&gt;VideoInfo.stream_type = UMC::MPEG4_VIDEO;&lt;/P&gt;
&lt;P&gt;UMC::Status umcRes = UMC::UMC_OK;&lt;BR /&gt;UMC::VideoDecoderParams VDecParams;&lt;/P&gt;
&lt;P&gt;VDecParams.info.stream_type = VideoInfo.stream_type;&lt;BR /&gt;VDecParams.info = VideoInfo;&lt;BR /&gt;VDecParams.lFlags = 0;//FLAG_VDEC_CONVERT | FLAG_VDEC_REORDER;&lt;BR /&gt;VDecParams.numThreads = 1;//numThreads;&lt;BR /&gt;VDecParams.pPostProcessing = NULL;//&amp;amp;rColorConverter;&lt;BR /&gt;&lt;BR /&gt;umcRes = m_Decoder.Init(&amp;amp;VDecParams);&lt;/P&gt;
&lt;P&gt;Then in a loop I decode as follows:&lt;/P&gt;
&lt;P&gt;m_FrameIn.SetBufferPointer(&lt;BR /&gt;a_arrInputBuffer.getUnsafeArrayPtr(), &lt;BR /&gt;a_arrInputBuffer.getLength() );&lt;/P&gt;
&lt;P&gt;m_FrameIn.SetDataSize(a_arrInputBuffer.getLength());&lt;BR /&gt;&lt;/P&gt;
&lt;P&gt;m_FrameOut.Init(352, 240, UMC::YUV420);&lt;/P&gt;
&lt;P&gt;m_FrameOut.SetBufferPointer(&lt;BR /&gt;a_arrOutputBuffer.getUnsafeArrayPtr(), &lt;BR /&gt;a_arrOutputBuffer.getLength() );&lt;/P&gt;
&lt;P&gt;m_FrameOut.SetDataSize(a_arrOutputBuffer.getLength());&lt;/P&gt;
&lt;P&gt;m_Decoder.GetFrame(&amp;amp;m_FrameIn, &amp;amp;m_FrameOut);&lt;/P&gt;
&lt;P&gt;For clarity I have deleted the error checking code from the post but I do check error codes for each function call. The a_arrInputBuffer is the frame I collect on the network.&lt;/P&gt;
&lt;P&gt;Funny thing is sometimes the code works (i.e. decoding successful) and sometimes it doesn't.&lt;/P&gt;
&lt;P&gt;TIA.&lt;/P&gt;</description>
    <pubDate>Mon, 04 Feb 2008 19:29:35 GMT</pubDate>
    <dc:creator>pushkar_p</dc:creator>
    <dc:date>2008-02-04T19:29:35Z</dc:date>
    <item>
      <title>Trouble decoding streaming MPEG4</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Trouble-decoding-streaming-MPEG4/m-p/855449#M7049</link>
      <description>&lt;P&gt;I'm using the UMC MPEG4 decoder code from simple player application to decode streaming MPEG4. I receive the frame in a buffer on the network and pass this to the decoder and also a output buffer where I want to receive the decoded frame. &lt;/P&gt;
&lt;P&gt;Earlier I was using IPP 3.0 sample code but now trying to upgrade the decoder to 5.3.&lt;/P&gt;
&lt;P&gt;But the decoder's GetFrame(...) method fails with UMC_ERR_NOT_ENOUGH_DATA.&lt;/P&gt;
&lt;P&gt;Am I missing some steps here?&lt;/P&gt;
&lt;P&gt;I init the decoder as follows:&lt;/P&gt;
&lt;P&gt;UMC::MPEG4VideoDecoder m_Decoder;&lt;BR /&gt;UMC::MediaData m_FrameIn;&lt;BR /&gt;UMC::VideoData m_FrameOut;&lt;BR /&gt;&lt;/P&gt;
&lt;P&gt;UMC::VideoStreamInfo VideoInfo;&lt;BR /&gt;VideoInfo.stream_type = UMC::MPEG4_VIDEO;&lt;/P&gt;
&lt;P&gt;UMC::Status umcRes = UMC::UMC_OK;&lt;BR /&gt;UMC::VideoDecoderParams VDecParams;&lt;/P&gt;
&lt;P&gt;VDecParams.info.stream_type = VideoInfo.stream_type;&lt;BR /&gt;VDecParams.info = VideoInfo;&lt;BR /&gt;VDecParams.lFlags = 0;//FLAG_VDEC_CONVERT | FLAG_VDEC_REORDER;&lt;BR /&gt;VDecParams.numThreads = 1;//numThreads;&lt;BR /&gt;VDecParams.pPostProcessing = NULL;//&amp;amp;rColorConverter;&lt;BR /&gt;&lt;BR /&gt;umcRes = m_Decoder.Init(&amp;amp;VDecParams);&lt;/P&gt;
&lt;P&gt;Then in a loop I decode as follows:&lt;/P&gt;
&lt;P&gt;m_FrameIn.SetBufferPointer(&lt;BR /&gt;a_arrInputBuffer.getUnsafeArrayPtr(), &lt;BR /&gt;a_arrInputBuffer.getLength() );&lt;/P&gt;
&lt;P&gt;m_FrameIn.SetDataSize(a_arrInputBuffer.getLength());&lt;BR /&gt;&lt;/P&gt;
&lt;P&gt;m_FrameOut.Init(352, 240, UMC::YUV420);&lt;/P&gt;
&lt;P&gt;m_FrameOut.SetBufferPointer(&lt;BR /&gt;a_arrOutputBuffer.getUnsafeArrayPtr(), &lt;BR /&gt;a_arrOutputBuffer.getLength() );&lt;/P&gt;
&lt;P&gt;m_FrameOut.SetDataSize(a_arrOutputBuffer.getLength());&lt;/P&gt;
&lt;P&gt;m_Decoder.GetFrame(&amp;amp;m_FrameIn, &amp;amp;m_FrameOut);&lt;/P&gt;
&lt;P&gt;For clarity I have deleted the error checking code from the post but I do check error codes for each function call. The a_arrInputBuffer is the frame I collect on the network.&lt;/P&gt;
&lt;P&gt;Funny thing is sometimes the code works (i.e. decoding successful) and sometimes it doesn't.&lt;/P&gt;
&lt;P&gt;TIA.&lt;/P&gt;</description>
      <pubDate>Mon, 04 Feb 2008 19:29:35 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Trouble-decoding-streaming-MPEG4/m-p/855449#M7049</guid>
      <dc:creator>pushkar_p</dc:creator>
      <dc:date>2008-02-04T19:29:35Z</dc:date>
    </item>
    <item>
      <title>Re: Trouble decoding streaming MPEG4</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Trouble-decoding-streaming-MPEG4/m-p/855450#M7050</link>
      <description>&lt;P&gt;Hi Nikolay,&lt;/P&gt;
&lt;P&gt;I don't think I will be able to send you the MP4 file because it is actually streaming data over the net.&lt;/P&gt;
&lt;P&gt;I was able to port my application to VS 2008 and now I can step into the UMC samples source code. By stepping I was able to find that GetFrame() actually fails because the internal call to InsideInit() fails.&lt;/P&gt;
&lt;P&gt;In the for(;;) loop in MPEG4VideoDecoder::InsideInit()it can find the start/code ptr &lt;/P&gt;
&lt;P&gt;mp4_SeekStartCodeOrShortPtr(...)&lt;/P&gt;
&lt;P&gt;but it doesn't match any of the video object or visual object codes it expects. Thus MPEG4VideoDecoder::InsideInit() fails with UMC_ERR_SYNC return code.&lt;/P&gt;
&lt;P&gt;Interestingly this clip used to be decoded by the MP4 decoder available in IPP 3.0. I've read that some simple profiles in MP4 are ~ H.263. Could it be that this is actually a H.263 and since now IPP has a separate H.263 decoder, the MP4 decoder fails to decode them?&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 12 Feb 2008 06:38:28 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Trouble-decoding-streaming-MPEG4/m-p/855450#M7050</guid>
      <dc:creator>pushkar_p</dc:creator>
      <dc:date>2008-02-12T06:38:28Z</dc:date>
    </item>
    <item>
      <title>Re: Trouble decoding streaming MPEG4</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Trouble-decoding-streaming-MPEG4/m-p/855451#M7051</link>
      <description>&lt;P&gt;Hello Nikolay,&lt;/P&gt;
&lt;P&gt;It seems the 0x00 0x00 0x80 is not coming for each frame. I looked at our old code again and found that this header sequencecomes in the config string (got from the sdp file I guess). When I passed this config data to the MP4 decoder init method it worked.&lt;/P&gt;
&lt;P&gt;One last question should this header come in each frame? &lt;/P&gt;</description>
      <pubDate>Tue, 12 Feb 2008 19:20:35 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Trouble-decoding-streaming-MPEG4/m-p/855451#M7051</guid>
      <dc:creator>pushkar_p</dc:creator>
      <dc:date>2008-02-12T19:20:35Z</dc:date>
    </item>
  </channel>
</rss>

