<?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 UMC and OpenCv in Intel® Integrated Performance Primitives</title>
    <link>https://community.intel.com/t5/Intel-Integrated-Performance/UMC-and-OpenCv/m-p/905929#M13441</link>
    <description>&lt;BR /&gt;I am trying to decode an avi file using UMC. End of my code i wanted to see video frames by using highgui library of opencv. However, all i can see is nothing but a gray window. I did steps which are given in the UMC document using sample codes. Here is my code:&lt;BR /&gt;&lt;BR /&gt;#include &lt;STDIO.H&gt;&lt;BR /&gt;#include &lt;STDLIB.H&gt;&lt;BR /&gt;#include "ippdefs.h"&lt;BR /&gt;#include "ipps.h"&lt;BR /&gt;#include "ippi.h"&lt;BR /&gt;#include "ippj.h"&lt;BR /&gt;#include "ippcc.h"&lt;BR /&gt;#include "vm_time.h"&lt;BR /&gt;#include "umc_defs.h"&lt;BR /&gt;#include "umc_structures.h"&lt;BR /&gt;#include "umc_data_reader.h"&lt;BR /&gt;#include "umc_splitter.h"&lt;BR /&gt;#include "umc_video_decoder.h"&lt;BR /&gt;#include "umc_mpeg4_video_decoder.h"&lt;BR /&gt;#include "umc_video_data.h"&lt;BR /&gt;#include "umc_file_reader.h"&lt;BR /&gt;#include "umc_fio_reader.h"&lt;BR /&gt;#include "umc_avi_splitter.h"&lt;BR /&gt;#include "cv.h"&lt;BR /&gt;#include "highgui.h"&lt;BR /&gt;#include "ippimage.h"&lt;BR /&gt;&lt;BR /&gt;using namespace UMC;&lt;BR /&gt;&lt;BR /&gt;UMC::Status InitDataReader(DataReader *data_reader, char *file_name)&lt;BR /&gt;{&lt;BR /&gt; FileReaderParams reader_params;&lt;BR /&gt;&lt;BR /&gt; reader_params.m_portion_size = 0;&lt;BR /&gt; strcpy(reader_params.m_file_name, file_name);&lt;BR /&gt;&lt;BR /&gt; return data_reader-&amp;gt;Init(&amp;amp;reader_params);&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;IplImage* InitializeImage(int width, int height, int bitDepth, int channels)&lt;BR /&gt;{&lt;BR /&gt; IplImage* imgTmp = NULL ;&lt;BR /&gt; imgTmp = cvCreateImageHeader(cvSize( width, height), bitDepth, channels );//iplCreateImageHeader(1, 0, IPL_DEPTH_32S, "ARGB", "ARGB", IPL_DATA_ORDER_PIXEL, IPL_ORIGIN_TL, IPL_ALIGN_4BYTES, 768, 576, NULL, NULL, NULL, NULL);&lt;BR /&gt; imgTmp-&amp;gt;imageData=(char *)malloc(imgTmp-&amp;gt;height*imgTmp-&amp;gt;widthStep);//(IMAGE_WIDTH*IMAGE_HEIGHT*channels*4);&lt;BR /&gt; return imgTmp;&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;UMC::Status InitAviSplitter(Splitter *avi_splitter, DataReader *data_reader)&lt;BR /&gt;{&lt;BR /&gt; SplitterParams splitter_params;&lt;BR /&gt; splitter_params.m_lFlags = UMC::VIDEO_SPLITTER;&lt;BR /&gt; splitter_params.m_pDataReader = data_reader;&lt;BR /&gt;&lt;BR /&gt; return avi_splitter-&amp;gt;Init(splitter_params);&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;UMC::Status InitMPEG4VDecoder(VideoDecoder *video_decoder, VideoStreamInfo *video_info)&lt;BR /&gt;{&lt;BR /&gt; if(video_info-&amp;gt;stream_type != UMC::MPEG4_VIDEO)&lt;BR /&gt;  return UMC_ERR_FAILED;&lt;BR /&gt;&lt;BR /&gt; VideoDecoderParams decoder_params;&lt;BR /&gt;&lt;BR /&gt; decoder_params.info = *video_info;&lt;BR /&gt; decoder_params.lFlags = 0;&lt;BR /&gt;&lt;BR /&gt; return video_decoder-&amp;gt;Init(&amp;amp;decoder_params);&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;UMC::Status DecodeVideo(char* input_file)&lt;BR /&gt;{&lt;BR /&gt; Ipp32u track=0;&lt;BR /&gt;&lt;BR /&gt; FIOReader src;&lt;BR /&gt; AVISplitter avi_spl;&lt;BR /&gt; SplitterInfo *spl_info;&lt;BR /&gt; VideoStreamInfo *video_info;&lt;BR /&gt; MPEG4VideoDecoder dec;&lt;BR /&gt; MediaData in;&lt;BR /&gt; VideoData out;&lt;BR /&gt; IplImage *img = InitializeImage(768, 576, IPL_DEPTH_8U, 4);&lt;BR /&gt;&lt;BR /&gt; UMC::Status umcRes;&lt;BR /&gt;&lt;BR /&gt; umcRes = InitDataReader(&amp;amp;src, input_file);&lt;BR /&gt; if(umcRes != UMC_OK)&lt;BR /&gt;  return umcRes;&lt;BR /&gt;&lt;BR /&gt; umcRes = InitAviSplitter(&amp;amp;avi_spl, &amp;amp;src);&lt;BR /&gt; if(umcRes != UMC_OK)&lt;BR /&gt;  return umcRes;&lt;BR /&gt;
&lt;BR /&gt; umcRes = avi_spl.GetInfo(&amp;amp;spl_info);&lt;BR /&gt; if(umcRes != UMC_OK)&lt;BR /&gt;  return umcRes;&lt;BR /&gt;&lt;BR /&gt; for(track=0; track &amp;lt; spl_info-&amp;gt;m_nOfTracks; track++)&lt;BR /&gt;  if(spl_info-&amp;gt;m_ppTrackInfo[track]-&amp;gt;m_Type == UMC::TRACK_MPEG4V)&lt;BR /&gt;   break;&lt;BR /&gt;&lt;BR /&gt; if(track &amp;gt;= spl_info-&amp;gt;m_nOfTracks)&lt;BR /&gt;  return UMC_ERR_INVALID_STREAM;&lt;BR /&gt;&lt;BR /&gt; video_info = (VideoStreamInfo *)spl_info-&amp;gt;m_ppTrackInfo[track]-&amp;gt;m_pStreamInfo;&lt;BR /&gt; video_info-&amp;gt;color_format = UMC::YUY2;&lt;BR /&gt;&lt;BR /&gt; umcRes = InitMPEG4VDecoder(&amp;amp;dec, video_info);&lt;BR /&gt; if(umcRes != UMC_OK)&lt;BR /&gt;  return umcRes;&lt;BR /&gt;&lt;BR /&gt; umcRes = out.Init(video_info-&amp;gt;clip_info.width, video_info-&amp;gt;clip_info.height, video_info-&amp;gt;color_format);&lt;BR /&gt; if(umcRes != UMC_OK)&lt;BR /&gt;  return umcRes;&lt;BR /&gt;&lt;BR /&gt; umcRes = out.Alloc();&lt;BR /&gt; if(umcRes != UMC_OK)&lt;BR /&gt;  return umcRes;&lt;BR /&gt;&lt;BR /&gt; cvNamedWindow("Display");&lt;BR /&gt;&lt;BR /&gt; while(UMC_OK==umcRes || UMC_ERR_NOT_ENOUGH_DATA == umcRes)&lt;BR /&gt; {&lt;BR /&gt;  while(UMC_ERR_NOT_ENOUGH_DATA == (umcRes = avi_spl.GetNextData(&amp;amp;in, track)))&lt;BR /&gt;   vm_time_sleep(5);&lt;BR /&gt;&lt;BR /&gt;  if(UMC_OK != umcRes)&lt;BR /&gt;   break;&lt;BR /&gt;&lt;BR /&gt;  umcRes = dec.GetFrame(&amp;amp;in, &amp;amp;out);&lt;BR /&gt;  if(umcRes != UMC_OK)&lt;BR /&gt;   break;&lt;BR /&gt;  &lt;BR /&gt;  memcpy(img-&amp;gt;imageData, out.m_pbAllocated, out.GetMappingSize());&lt;BR /&gt;  cvShowImage("Display", img);&lt;BR /&gt;  cvWaitKey(0);&lt;BR /&gt; }&lt;BR /&gt;&lt;BR /&gt; return umcRes;&lt;BR /&gt;}&lt;BR /&gt;int main()&lt;BR /&gt;{&lt;BR /&gt; ippStaticInit();&lt;BR /&gt; char inp[] = "C:\Documents and Settings\cagri\My Documents\Visual Studio 2005\Projects\Disk\pb.avi";&lt;BR /&gt;&lt;BR /&gt; DecodeVideo(inp);&lt;BR /&gt;&lt;BR /&gt; return 0;&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;I put m_pbAllocated variable of VideoData Class to public.My code can decode the file successfully. In this point my question is:&lt;BR /&gt;1- Is my problem on the getting frames from decoder?&lt;BR /&gt;2-Or is my problem is on transferring data from out(VideoData) yo img(IplImage)?&lt;BR /&gt;&lt;BR /&gt;Thanks in advance...&lt;BR /&gt;&lt;/STDLIB.H&gt;&lt;/STDIO.H&gt;</description>
    <pubDate>Mon, 11 Aug 2008 10:45:55 GMT</pubDate>
    <dc:creator>bedhead</dc:creator>
    <dc:date>2008-08-11T10:45:55Z</dc:date>
    <item>
      <title>UMC and OpenCv</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/UMC-and-OpenCv/m-p/905929#M13441</link>
      <description>&lt;BR /&gt;I am trying to decode an avi file using UMC. End of my code i wanted to see video frames by using highgui library of opencv. However, all i can see is nothing but a gray window. I did steps which are given in the UMC document using sample codes. Here is my code:&lt;BR /&gt;&lt;BR /&gt;#include &lt;STDIO.H&gt;&lt;BR /&gt;#include &lt;STDLIB.H&gt;&lt;BR /&gt;#include "ippdefs.h"&lt;BR /&gt;#include "ipps.h"&lt;BR /&gt;#include "ippi.h"&lt;BR /&gt;#include "ippj.h"&lt;BR /&gt;#include "ippcc.h"&lt;BR /&gt;#include "vm_time.h"&lt;BR /&gt;#include "umc_defs.h"&lt;BR /&gt;#include "umc_structures.h"&lt;BR /&gt;#include "umc_data_reader.h"&lt;BR /&gt;#include "umc_splitter.h"&lt;BR /&gt;#include "umc_video_decoder.h"&lt;BR /&gt;#include "umc_mpeg4_video_decoder.h"&lt;BR /&gt;#include "umc_video_data.h"&lt;BR /&gt;#include "umc_file_reader.h"&lt;BR /&gt;#include "umc_fio_reader.h"&lt;BR /&gt;#include "umc_avi_splitter.h"&lt;BR /&gt;#include "cv.h"&lt;BR /&gt;#include "highgui.h"&lt;BR /&gt;#include "ippimage.h"&lt;BR /&gt;&lt;BR /&gt;using namespace UMC;&lt;BR /&gt;&lt;BR /&gt;UMC::Status InitDataReader(DataReader *data_reader, char *file_name)&lt;BR /&gt;{&lt;BR /&gt; FileReaderParams reader_params;&lt;BR /&gt;&lt;BR /&gt; reader_params.m_portion_size = 0;&lt;BR /&gt; strcpy(reader_params.m_file_name, file_name);&lt;BR /&gt;&lt;BR /&gt; return data_reader-&amp;gt;Init(&amp;amp;reader_params);&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;IplImage* InitializeImage(int width, int height, int bitDepth, int channels)&lt;BR /&gt;{&lt;BR /&gt; IplImage* imgTmp = NULL ;&lt;BR /&gt; imgTmp = cvCreateImageHeader(cvSize( width, height), bitDepth, channels );//iplCreateImageHeader(1, 0, IPL_DEPTH_32S, "ARGB", "ARGB", IPL_DATA_ORDER_PIXEL, IPL_ORIGIN_TL, IPL_ALIGN_4BYTES, 768, 576, NULL, NULL, NULL, NULL);&lt;BR /&gt; imgTmp-&amp;gt;imageData=(char *)malloc(imgTmp-&amp;gt;height*imgTmp-&amp;gt;widthStep);//(IMAGE_WIDTH*IMAGE_HEIGHT*channels*4);&lt;BR /&gt; return imgTmp;&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;UMC::Status InitAviSplitter(Splitter *avi_splitter, DataReader *data_reader)&lt;BR /&gt;{&lt;BR /&gt; SplitterParams splitter_params;&lt;BR /&gt; splitter_params.m_lFlags = UMC::VIDEO_SPLITTER;&lt;BR /&gt; splitter_params.m_pDataReader = data_reader;&lt;BR /&gt;&lt;BR /&gt; return avi_splitter-&amp;gt;Init(splitter_params);&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;UMC::Status InitMPEG4VDecoder(VideoDecoder *video_decoder, VideoStreamInfo *video_info)&lt;BR /&gt;{&lt;BR /&gt; if(video_info-&amp;gt;stream_type != UMC::MPEG4_VIDEO)&lt;BR /&gt;  return UMC_ERR_FAILED;&lt;BR /&gt;&lt;BR /&gt; VideoDecoderParams decoder_params;&lt;BR /&gt;&lt;BR /&gt; decoder_params.info = *video_info;&lt;BR /&gt; decoder_params.lFlags = 0;&lt;BR /&gt;&lt;BR /&gt; return video_decoder-&amp;gt;Init(&amp;amp;decoder_params);&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;UMC::Status DecodeVideo(char* input_file)&lt;BR /&gt;{&lt;BR /&gt; Ipp32u track=0;&lt;BR /&gt;&lt;BR /&gt; FIOReader src;&lt;BR /&gt; AVISplitter avi_spl;&lt;BR /&gt; SplitterInfo *spl_info;&lt;BR /&gt; VideoStreamInfo *video_info;&lt;BR /&gt; MPEG4VideoDecoder dec;&lt;BR /&gt; MediaData in;&lt;BR /&gt; VideoData out;&lt;BR /&gt; IplImage *img = InitializeImage(768, 576, IPL_DEPTH_8U, 4);&lt;BR /&gt;&lt;BR /&gt; UMC::Status umcRes;&lt;BR /&gt;&lt;BR /&gt; umcRes = InitDataReader(&amp;amp;src, input_file);&lt;BR /&gt; if(umcRes != UMC_OK)&lt;BR /&gt;  return umcRes;&lt;BR /&gt;&lt;BR /&gt; umcRes = InitAviSplitter(&amp;amp;avi_spl, &amp;amp;src);&lt;BR /&gt; if(umcRes != UMC_OK)&lt;BR /&gt;  return umcRes;&lt;BR /&gt;
&lt;BR /&gt; umcRes = avi_spl.GetInfo(&amp;amp;spl_info);&lt;BR /&gt; if(umcRes != UMC_OK)&lt;BR /&gt;  return umcRes;&lt;BR /&gt;&lt;BR /&gt; for(track=0; track &amp;lt; spl_info-&amp;gt;m_nOfTracks; track++)&lt;BR /&gt;  if(spl_info-&amp;gt;m_ppTrackInfo[track]-&amp;gt;m_Type == UMC::TRACK_MPEG4V)&lt;BR /&gt;   break;&lt;BR /&gt;&lt;BR /&gt; if(track &amp;gt;= spl_info-&amp;gt;m_nOfTracks)&lt;BR /&gt;  return UMC_ERR_INVALID_STREAM;&lt;BR /&gt;&lt;BR /&gt; video_info = (VideoStreamInfo *)spl_info-&amp;gt;m_ppTrackInfo[track]-&amp;gt;m_pStreamInfo;&lt;BR /&gt; video_info-&amp;gt;color_format = UMC::YUY2;&lt;BR /&gt;&lt;BR /&gt; umcRes = InitMPEG4VDecoder(&amp;amp;dec, video_info);&lt;BR /&gt; if(umcRes != UMC_OK)&lt;BR /&gt;  return umcRes;&lt;BR /&gt;&lt;BR /&gt; umcRes = out.Init(video_info-&amp;gt;clip_info.width, video_info-&amp;gt;clip_info.height, video_info-&amp;gt;color_format);&lt;BR /&gt; if(umcRes != UMC_OK)&lt;BR /&gt;  return umcRes;&lt;BR /&gt;&lt;BR /&gt; umcRes = out.Alloc();&lt;BR /&gt; if(umcRes != UMC_OK)&lt;BR /&gt;  return umcRes;&lt;BR /&gt;&lt;BR /&gt; cvNamedWindow("Display");&lt;BR /&gt;&lt;BR /&gt; while(UMC_OK==umcRes || UMC_ERR_NOT_ENOUGH_DATA == umcRes)&lt;BR /&gt; {&lt;BR /&gt;  while(UMC_ERR_NOT_ENOUGH_DATA == (umcRes = avi_spl.GetNextData(&amp;amp;in, track)))&lt;BR /&gt;   vm_time_sleep(5);&lt;BR /&gt;&lt;BR /&gt;  if(UMC_OK != umcRes)&lt;BR /&gt;   break;&lt;BR /&gt;&lt;BR /&gt;  umcRes = dec.GetFrame(&amp;amp;in, &amp;amp;out);&lt;BR /&gt;  if(umcRes != UMC_OK)&lt;BR /&gt;   break;&lt;BR /&gt;  &lt;BR /&gt;  memcpy(img-&amp;gt;imageData, out.m_pbAllocated, out.GetMappingSize());&lt;BR /&gt;  cvShowImage("Display", img);&lt;BR /&gt;  cvWaitKey(0);&lt;BR /&gt; }&lt;BR /&gt;&lt;BR /&gt; return umcRes;&lt;BR /&gt;}&lt;BR /&gt;int main()&lt;BR /&gt;{&lt;BR /&gt; ippStaticInit();&lt;BR /&gt; char inp[] = "C:\Documents and Settings\cagri\My Documents\Visual Studio 2005\Projects\Disk\pb.avi";&lt;BR /&gt;&lt;BR /&gt; DecodeVideo(inp);&lt;BR /&gt;&lt;BR /&gt; return 0;&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;I put m_pbAllocated variable of VideoData Class to public.My code can decode the file successfully. In this point my question is:&lt;BR /&gt;1- Is my problem on the getting frames from decoder?&lt;BR /&gt;2-Or is my problem is on transferring data from out(VideoData) yo img(IplImage)?&lt;BR /&gt;&lt;BR /&gt;Thanks in advance...&lt;BR /&gt;&lt;/STDLIB.H&gt;&lt;/STDIO.H&gt;</description>
      <pubDate>Mon, 11 Aug 2008 10:45:55 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/UMC-and-OpenCv/m-p/905929#M13441</guid>
      <dc:creator>bedhead</dc:creator>
      <dc:date>2008-08-11T10:45:55Z</dc:date>
    </item>
    <item>
      <title>Re: UMC and OpenCv</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/UMC-and-OpenCv/m-p/905930#M13442</link>
      <description>&lt;P&gt;It is not clear where your problem are. Did you try to playback that particular AVI file with simple_player application (it is part of IPP audio-video-codecs sample)? Please take a look on UMC documentation to find how to access data in MediaData object&lt;/P&gt;
&lt;P&gt;Regards,&lt;BR /&gt; Vladimir&lt;/P&gt;</description>
      <pubDate>Wed, 27 Aug 2008 13:39:06 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/UMC-and-OpenCv/m-p/905930#M13442</guid>
      <dc:creator>Vladimir_Dudnik</dc:creator>
      <dc:date>2008-08-27T13:39:06Z</dc:date>
    </item>
  </channel>
</rss>

