<?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 Getting low framerate while using UMC MJPEG Video Decoder in Intel® Integrated Performance Primitives</title>
    <link>https://community.intel.com/t5/Intel-Integrated-Performance/Getting-low-framerate-while-using-UMC-MJPEG-Video-Decoder/m-p/797664#M2896</link>
    <description>Hi Chao,&lt;BR /&gt;&lt;BR /&gt;Thanks for the reply,&lt;BR /&gt;I am using the GetFrame function for decoding.&lt;BR /&gt;This is how my code looks and this function will be called in an infinitive loop.Initializations of WinInetApi and opening the corresponding camera MJPEG URL happens in another initialization function.&lt;BR /&gt;&lt;BR /&gt;DWORD WINAPI StartStreaming1(LPVOID myParam) {&lt;BR /&gt; myParam;&lt;BR /&gt; UMC::Status status;&lt;BR /&gt; PMYDATA pDataArray = (PMYDATA)myParam;&lt;BR /&gt; DWORD pInetResetTimerMilliseconds = 1000 * CONN_REFRESH_SECS;&lt;BR /&gt; &lt;BR /&gt; //Reset the main buffer used for decoding to 0 if the buffer is allocated&lt;BR /&gt; if(pDataArray-&amp;gt;myParams.pChunkBuffer != NULL){&lt;BR /&gt;   memset(pDataArray-&amp;gt;myParams.pChunkBuffer,0,INET_BUF_SIZE);&lt;BR /&gt;   pDataArray-&amp;gt;myParams.u32totalBytes = 0;&lt;BR /&gt; }&lt;BR /&gt; //Set the DataIn pointers&lt;BR /&gt; status = pDataArray-&amp;gt;myParams.DataIn.SetBufferPointer(pDataArray-&amp;gt;myParams.pChunkBuffer,&lt;BR /&gt;  INET_BUF_SIZE);&lt;BR /&gt; status = pDataArray-&amp;gt;myParams.DataIn.SetDataSize(INET_BUF_SIZE);&lt;BR /&gt; // Prevent TCP Connection Time out by re-connecting&lt;BR /&gt; if(GetTickCount() &amp;gt;= pDataArray-&amp;gt;myParams.dwStartTime + pInetResetTimerMilliseconds) {&lt;BR /&gt;  InternetCloseHandle(pDataArray-&amp;gt;myParams.pURLHandle);&lt;BR /&gt;  pDataArray-&amp;gt;myParams.pURLHandle = NULL;&lt;BR /&gt;  InternetCloseHandle(pDataArray-&amp;gt;myParams.hInternetRoot);&lt;BR /&gt;  pDataArray-&amp;gt;myParams.hInternetRoot = NULL;&lt;BR /&gt;  //Reconnect&lt;BR /&gt;  pDataArray-&amp;gt;myParams.hInternetRoot = InternetOpen("MJPEGDisplay", INTERNET_OPEN_TYPE_PRECONFIG, NULL,NULL, 0);&lt;BR /&gt;  if(pDataArray-&amp;gt;myParams.hInternetRoot == NULL) {&lt;BR /&gt;   AfxMessageBox("INITIALIZE_INIT_WININET_FAILED");&lt;BR /&gt;   return INITIALIZE_INIT_WININET_FAILED;&lt;BR /&gt;  }&lt;BR /&gt;  //Open the MJPEG resource file specified by the complete HTTP URL&lt;BR /&gt;  pDataArray-&amp;gt;myParams.pURLHandle = InternetOpenUrl(pDataArray-&amp;gt;myParams.hInternetRoot,&lt;BR /&gt;    pDataArray-&amp;gt;myParams.sURL,NULL,0,INTERNET_FLAG_RELOAD | INTERNET_FLAG_NO_CACHE_WRITE | INTERNET_FLAG_KEEP_CONNECTION,0);&lt;BR /&gt;  if(pDataArray-&amp;gt;myParams.pURLHandle == NULL){&lt;BR /&gt;   DWORD dword = GetLastError();&lt;BR /&gt;   char myString[1024] = "InternetOpenUrl for ";&lt;BR /&gt;   sprintf_s(myString,"%s %d cam failed with %d",myString,0,dword);&lt;BR /&gt;   AfxMessageBox(myString);&lt;BR /&gt;   InternetCloseHandle(pDataArray-&amp;gt;myParams.hInternetRoot);&lt;BR /&gt;   return INITIALIZE_OPEN_MJPEG_URL_FAILED;&lt;BR /&gt;  }&lt;BR /&gt;  pDataArray-&amp;gt;myParams.dwStartTime = GetTickCount();&lt;BR /&gt;  }//if(GetTickCount() &amp;gt;= pDataArray&lt;I&gt;-&amp;gt;myParams.dwStartTime + pInetResetTimerMilliseconds)&lt;BR /&gt;  while((InternetReadFile(pDataArray-&amp;gt;myParams.pURLHandle, &lt;BR /&gt;  pDataArray-&amp;gt;myParams.pbyStreamData, &lt;BR /&gt;  pDataArray-&amp;gt;myParams.BytesToread, &lt;BR /&gt;  &amp;amp;pDataArray-&amp;gt;myParams.BytesRead) == TRUE) &amp;amp;&amp;amp;&lt;BR /&gt;  pDataArray-&amp;gt;myParams.BytesRead!=0) {&lt;BR /&gt;   if(pDataArray-&amp;gt;myParams.BytesRead &amp;lt; 300) {&lt;BR /&gt;    if(strstr((const char *)pDataArray-&amp;gt;myParams.pbyStreamData,"401 Unauthorized") != NULL) {&lt;BR /&gt;     AfxMessageBox("401 Unauthorized");&lt;BR /&gt;     return 1;&lt;BR /&gt;    } &lt;BR /&gt;    if(strstr((const char *)pDataArray-&amp;gt;myParams.pbyStreamData,"404 Not Found") != NULL) {&lt;BR /&gt;     AfxMessageBox("404 Not Found");&lt;BR /&gt;     return 1;&lt;BR /&gt;    }&lt;BR /&gt;    if(strstr((const char *)pDataArray-&amp;gt;myParams.pbyStreamData,"400 Bad Request") != NULL) {&lt;BR /&gt;     AfxMessageBox("400 Bad Request"); &lt;BR /&gt;     return 1;&lt;BR /&gt;    }&lt;BR /&gt;   }//if(pDataArray&lt;I&gt;-&amp;gt;myParams.BytesRead &amp;lt; 300)&lt;BR /&gt;   if(pDataArray-&amp;gt;myParams.u32totalBytes == INET_BUF_SIZE) return AfxMessageBox("Not able to get a frame");&lt;BR /&gt;   memcpy_s(pDataArray-&amp;gt;myParams.pChunkBuffer + &lt;BR /&gt;     pDataArray-&amp;gt;myParams.u32totalBytes,INET_BUF_SIZE,&lt;BR /&gt;     pDataArray-&amp;gt;myParams.pbyStreamData,&lt;BR /&gt;     pDataArray-&amp;gt;myParams.BytesRead);&lt;BR /&gt;   pDataArray-&amp;gt;myParams.u32totalBytes += pDataArray-&amp;gt;myParams.BytesRead;&lt;BR /&gt;   status = pDataArray-&amp;gt;myParams.DataOut.SetBufferPointer(pDataArray-&amp;gt;u8Buffer,&lt;BR /&gt;    sizeof(Ipp8u)*QCIF*3); &lt;BR /&gt;   status = pDataArray-&amp;gt;myParams.mjpegDecoder.GetFrame(&amp;amp;(pDataArray-&amp;gt;myParams.DataIn),&lt;BR /&gt;    &amp;amp;(pDataArray-&amp;gt;myParams.DataOut)); &lt;BR /&gt;    if (status == UMC::UMC_OK){&lt;BR /&gt;     iFrmCntr++;&lt;BR /&gt;     &lt;BR /&gt;     AfxMessageBox("Successful Decoding of a frame");&lt;BR /&gt;     ((CFaceMatchDlg*)g_hWnd)-&amp;gt;StaticDisplay1.DisplayImage(pDataArray-&amp;gt;u8Buffer,QCIF_WIDTH,QCIF_HEIGHT,24,"");&lt;BR /&gt;&lt;BR /&gt;     return 0;&lt;BR /&gt;    }//if (status == UMC::UMC_OK)&lt;BR /&gt;  }//Read the complete file&lt;BR /&gt;  if(pDataArray-&amp;gt;myParams.BytesRead == 0){&lt;BR /&gt;   AfxMessageBox("Read no bytes");&lt;BR /&gt;   return 1;&lt;BR /&gt;  }&lt;BR /&gt; return 0;&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;&lt;/I&gt;&lt;/I&gt;</description>
    <pubDate>Fri, 01 Jul 2011 10:48:10 GMT</pubDate>
    <dc:creator>Harish_Kulkarni</dc:creator>
    <dc:date>2011-07-01T10:48:10Z</dc:date>
    <item>
      <title>Getting low framerate while using UMC MJPEG Video Decoder</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Getting-low-framerate-while-using-UMC-MJPEG-Video-Decoder/m-p/797662#M2894</link>
      <description>Hi,&lt;BR /&gt;Here is the IPP version I use:&lt;BR /&gt;Intel Integrated Performance Primitives 7.0 Update 4 for Windows* OS&lt;BR /&gt;Package ID: w_ipp_7.0.4.196 w_ccompxe_2011.4.196&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;I am trying to decode a MJPEG stream from an IP camera and display it on a window.In the process for decoding MJPEG stream I am using UMC MJPEG Video Decoder class.&lt;BR /&gt;I am able to successfully get the frames and show it on a window but even if I mention the framerate as 25 or 30(supported by the camera),I get only 12 less than that frames per second and there is a second delay in streaming.I am bewildered at the issue.If required I will post the code.&lt;BR /&gt;Please help. &lt;BR /&gt;Thanks in advance&lt;BR /&gt;</description>
      <pubDate>Wed, 29 Jun 2011 13:18:03 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Getting-low-framerate-while-using-UMC-MJPEG-Video-Decoder/m-p/797662#M2894</guid>
      <dc:creator>Harish_Kulkarni</dc:creator>
      <dc:date>2011-06-29T13:18:03Z</dc:date>
    </item>
    <item>
      <title>Getting low framerate while using UMC MJPEG Video Decoder</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Getting-low-framerate-while-using-UMC-MJPEG-Video-Decoder/m-p/797663#M2895</link>
      <description>&lt;P&gt;Hi, &lt;BR /&gt;&lt;BR /&gt;Do you mean to call decoder GetFrame() method to decode the video? &lt;/P&gt;&lt;P&gt;Actually, GetFrame() method does not control the frame rate, and it tried to decode as fast as possible?&lt;/P&gt;&lt;P&gt;Thanks,&lt;BR /&gt;Chao&lt;/P&gt;</description>
      <pubDate>Fri, 01 Jul 2011 09:00:22 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Getting-low-framerate-while-using-UMC-MJPEG-Video-Decoder/m-p/797663#M2895</guid>
      <dc:creator>Chao_Y_Intel</dc:creator>
      <dc:date>2011-07-01T09:00:22Z</dc:date>
    </item>
    <item>
      <title>Getting low framerate while using UMC MJPEG Video Decoder</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Getting-low-framerate-while-using-UMC-MJPEG-Video-Decoder/m-p/797664#M2896</link>
      <description>Hi Chao,&lt;BR /&gt;&lt;BR /&gt;Thanks for the reply,&lt;BR /&gt;I am using the GetFrame function for decoding.&lt;BR /&gt;This is how my code looks and this function will be called in an infinitive loop.Initializations of WinInetApi and opening the corresponding camera MJPEG URL happens in another initialization function.&lt;BR /&gt;&lt;BR /&gt;DWORD WINAPI StartStreaming1(LPVOID myParam) {&lt;BR /&gt; myParam;&lt;BR /&gt; UMC::Status status;&lt;BR /&gt; PMYDATA pDataArray = (PMYDATA)myParam;&lt;BR /&gt; DWORD pInetResetTimerMilliseconds = 1000 * CONN_REFRESH_SECS;&lt;BR /&gt; &lt;BR /&gt; //Reset the main buffer used for decoding to 0 if the buffer is allocated&lt;BR /&gt; if(pDataArray-&amp;gt;myParams.pChunkBuffer != NULL){&lt;BR /&gt;   memset(pDataArray-&amp;gt;myParams.pChunkBuffer,0,INET_BUF_SIZE);&lt;BR /&gt;   pDataArray-&amp;gt;myParams.u32totalBytes = 0;&lt;BR /&gt; }&lt;BR /&gt; //Set the DataIn pointers&lt;BR /&gt; status = pDataArray-&amp;gt;myParams.DataIn.SetBufferPointer(pDataArray-&amp;gt;myParams.pChunkBuffer,&lt;BR /&gt;  INET_BUF_SIZE);&lt;BR /&gt; status = pDataArray-&amp;gt;myParams.DataIn.SetDataSize(INET_BUF_SIZE);&lt;BR /&gt; // Prevent TCP Connection Time out by re-connecting&lt;BR /&gt; if(GetTickCount() &amp;gt;= pDataArray-&amp;gt;myParams.dwStartTime + pInetResetTimerMilliseconds) {&lt;BR /&gt;  InternetCloseHandle(pDataArray-&amp;gt;myParams.pURLHandle);&lt;BR /&gt;  pDataArray-&amp;gt;myParams.pURLHandle = NULL;&lt;BR /&gt;  InternetCloseHandle(pDataArray-&amp;gt;myParams.hInternetRoot);&lt;BR /&gt;  pDataArray-&amp;gt;myParams.hInternetRoot = NULL;&lt;BR /&gt;  //Reconnect&lt;BR /&gt;  pDataArray-&amp;gt;myParams.hInternetRoot = InternetOpen("MJPEGDisplay", INTERNET_OPEN_TYPE_PRECONFIG, NULL,NULL, 0);&lt;BR /&gt;  if(pDataArray-&amp;gt;myParams.hInternetRoot == NULL) {&lt;BR /&gt;   AfxMessageBox("INITIALIZE_INIT_WININET_FAILED");&lt;BR /&gt;   return INITIALIZE_INIT_WININET_FAILED;&lt;BR /&gt;  }&lt;BR /&gt;  //Open the MJPEG resource file specified by the complete HTTP URL&lt;BR /&gt;  pDataArray-&amp;gt;myParams.pURLHandle = InternetOpenUrl(pDataArray-&amp;gt;myParams.hInternetRoot,&lt;BR /&gt;    pDataArray-&amp;gt;myParams.sURL,NULL,0,INTERNET_FLAG_RELOAD | INTERNET_FLAG_NO_CACHE_WRITE | INTERNET_FLAG_KEEP_CONNECTION,0);&lt;BR /&gt;  if(pDataArray-&amp;gt;myParams.pURLHandle == NULL){&lt;BR /&gt;   DWORD dword = GetLastError();&lt;BR /&gt;   char myString[1024] = "InternetOpenUrl for ";&lt;BR /&gt;   sprintf_s(myString,"%s %d cam failed with %d",myString,0,dword);&lt;BR /&gt;   AfxMessageBox(myString);&lt;BR /&gt;   InternetCloseHandle(pDataArray-&amp;gt;myParams.hInternetRoot);&lt;BR /&gt;   return INITIALIZE_OPEN_MJPEG_URL_FAILED;&lt;BR /&gt;  }&lt;BR /&gt;  pDataArray-&amp;gt;myParams.dwStartTime = GetTickCount();&lt;BR /&gt;  }//if(GetTickCount() &amp;gt;= pDataArray&lt;I&gt;-&amp;gt;myParams.dwStartTime + pInetResetTimerMilliseconds)&lt;BR /&gt;  while((InternetReadFile(pDataArray-&amp;gt;myParams.pURLHandle, &lt;BR /&gt;  pDataArray-&amp;gt;myParams.pbyStreamData, &lt;BR /&gt;  pDataArray-&amp;gt;myParams.BytesToread, &lt;BR /&gt;  &amp;amp;pDataArray-&amp;gt;myParams.BytesRead) == TRUE) &amp;amp;&amp;amp;&lt;BR /&gt;  pDataArray-&amp;gt;myParams.BytesRead!=0) {&lt;BR /&gt;   if(pDataArray-&amp;gt;myParams.BytesRead &amp;lt; 300) {&lt;BR /&gt;    if(strstr((const char *)pDataArray-&amp;gt;myParams.pbyStreamData,"401 Unauthorized") != NULL) {&lt;BR /&gt;     AfxMessageBox("401 Unauthorized");&lt;BR /&gt;     return 1;&lt;BR /&gt;    } &lt;BR /&gt;    if(strstr((const char *)pDataArray-&amp;gt;myParams.pbyStreamData,"404 Not Found") != NULL) {&lt;BR /&gt;     AfxMessageBox("404 Not Found");&lt;BR /&gt;     return 1;&lt;BR /&gt;    }&lt;BR /&gt;    if(strstr((const char *)pDataArray-&amp;gt;myParams.pbyStreamData,"400 Bad Request") != NULL) {&lt;BR /&gt;     AfxMessageBox("400 Bad Request"); &lt;BR /&gt;     return 1;&lt;BR /&gt;    }&lt;BR /&gt;   }//if(pDataArray&lt;I&gt;-&amp;gt;myParams.BytesRead &amp;lt; 300)&lt;BR /&gt;   if(pDataArray-&amp;gt;myParams.u32totalBytes == INET_BUF_SIZE) return AfxMessageBox("Not able to get a frame");&lt;BR /&gt;   memcpy_s(pDataArray-&amp;gt;myParams.pChunkBuffer + &lt;BR /&gt;     pDataArray-&amp;gt;myParams.u32totalBytes,INET_BUF_SIZE,&lt;BR /&gt;     pDataArray-&amp;gt;myParams.pbyStreamData,&lt;BR /&gt;     pDataArray-&amp;gt;myParams.BytesRead);&lt;BR /&gt;   pDataArray-&amp;gt;myParams.u32totalBytes += pDataArray-&amp;gt;myParams.BytesRead;&lt;BR /&gt;   status = pDataArray-&amp;gt;myParams.DataOut.SetBufferPointer(pDataArray-&amp;gt;u8Buffer,&lt;BR /&gt;    sizeof(Ipp8u)*QCIF*3); &lt;BR /&gt;   status = pDataArray-&amp;gt;myParams.mjpegDecoder.GetFrame(&amp;amp;(pDataArray-&amp;gt;myParams.DataIn),&lt;BR /&gt;    &amp;amp;(pDataArray-&amp;gt;myParams.DataOut)); &lt;BR /&gt;    if (status == UMC::UMC_OK){&lt;BR /&gt;     iFrmCntr++;&lt;BR /&gt;     &lt;BR /&gt;     AfxMessageBox("Successful Decoding of a frame");&lt;BR /&gt;     ((CFaceMatchDlg*)g_hWnd)-&amp;gt;StaticDisplay1.DisplayImage(pDataArray-&amp;gt;u8Buffer,QCIF_WIDTH,QCIF_HEIGHT,24,"");&lt;BR /&gt;&lt;BR /&gt;     return 0;&lt;BR /&gt;    }//if (status == UMC::UMC_OK)&lt;BR /&gt;  }//Read the complete file&lt;BR /&gt;  if(pDataArray-&amp;gt;myParams.BytesRead == 0){&lt;BR /&gt;   AfxMessageBox("Read no bytes");&lt;BR /&gt;   return 1;&lt;BR /&gt;  }&lt;BR /&gt; return 0;&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;&lt;/I&gt;&lt;/I&gt;</description>
      <pubDate>Fri, 01 Jul 2011 10:48:10 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Getting-low-framerate-while-using-UMC-MJPEG-Video-Decoder/m-p/797664#M2896</guid>
      <dc:creator>Harish_Kulkarni</dc:creator>
      <dc:date>2011-07-01T10:48:10Z</dc:date>
    </item>
  </channel>
</rss>

