<?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 MJPEG Sample typos (in docs) in Intel® Integrated Performance Primitives</title>
    <link>https://community.intel.com/t5/Intel-Integrated-Performance/MJPEG-Sample-typos-in-docs/m-p/857375#M7368</link>
    <description>// The documentation sample has a couple minor typos ... here's the corrected version&lt;BR /&gt;&lt;BR /&gt;/*&lt;BR /&gt;//&lt;BR /&gt;// INTEL CORPORATION PROPRIETARY INFORMATION&lt;BR /&gt;// This software is supplied under the terms of a license agreement or&lt;BR /&gt;// nondisclosure agreement with Intel Corporation and may not be copied&lt;BR /&gt;// or disclosed except in accordance with the terms of that agreement.&lt;BR /&gt;// Copyright(c) 2005-2008 Intel Corporation. All Rights Reserved.&lt;BR /&gt;//&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 "ippcore.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_video_data.h"&lt;BR /&gt;#include "umc_video_render.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 "umc_mjpeg_video_decoder.h"&lt;BR /&gt;#include "fw_video_render.h"&lt;BR /&gt;&lt;BR /&gt;// Note: these are debug libs.&lt;BR /&gt;&lt;BR /&gt;//#pragma comment(lib, "ippcvmerged.lib")&lt;BR /&gt;//#pragma comment(lib, "ippcvemerged.lib")&lt;BR /&gt;//#pragma comment(lib, "winmm.lib")&lt;BR /&gt;&lt;BR /&gt;#pragma comment(lib, "ippcorel.lib")&lt;BR /&gt;#pragma comment(lib, "ippsmerged.lib")&lt;BR /&gt;#pragma comment(lib, "ippsemerged.lib")&lt;BR /&gt;#pragma comment(lib, "ippvcmerged.lib")&lt;BR /&gt;#pragma comment(lib, "ippvcemerged.lib")&lt;BR /&gt;#pragma comment(lib, "ippimerged.lib")&lt;BR /&gt;#pragma comment(lib, "ippiemerged.lib")&lt;BR /&gt;#pragma comment(lib, "ippjmerged.lib")&lt;BR /&gt;#pragma comment(lib, "ippjemerged.lib")&lt;BR /&gt;#pragma comment(lib, "ippccmerged.lib")&lt;BR /&gt;#pragma comment(lib, "ippccemerged.lib")&lt;BR /&gt;&lt;BR /&gt;// Create an environment varialbe IPPCODECLIBS to point to here ...&lt;BR /&gt;#pragma comment(lib, "D:/Work/ipp-samples/audio-video-codecs/_bin/Win32/debug_ascii/umc_io/umc_io.lib")&lt;BR /&gt;#pragma comment(lib, "D:/Work/ipp-samples/audio-video-codecs/_bin/Win32/debug_ascii/video_renders/video_renders.lib")&lt;BR /&gt;#pragma comment(lib, "D:/Work/ipp-samples/audio-video-codecs/_bin/Win32/debug_ascii/jpeg/jpeg.lib")&lt;BR /&gt;#pragma comment(lib, "D:/Work/ipp-samples/audio-video-codecs/_bin/Win32/debug_ascii/avi_spl/avi_spl.lib")&lt;BR /&gt;#pragma comment(lib, "D:/Work/ipp-samples/audio-video-codecs/_bin/Win32/debug_ascii/spl_common/spl_common.lib")&lt;BR /&gt;#pragma comment(lib, "D:/Work/ipp-samples/audio-video-codecs/_bin/Win32/debug_ascii/media_buffers/media_buffers.lib")&lt;BR /&gt;#pragma comment(lib, "D:/Work/ipp-samples/audio-video-codecs/_bin/Win32/debug_ascii/base_classes/base_classes.lib")&lt;BR /&gt;#pragma comment(lib, "D:/Work/ipp-samples/audio-video-codecs/_bin/Win32/debug_ascii/vm/vm.lib")&lt;BR /&gt;#pragma comment(lib, "D:/Work/ipp-samples/audio-video-codecs/_bin/Win32/debug_ascii/vm_plus/vm_plus.lib")&lt;BR /&gt;#pragma comment(lib, "D:/Work/ipp-samples/audio-video-codecs/_bin/Win32/debug_ascii/color_space_converter/color_space_converter.lib")&lt;BR /&gt;&lt;BR /&gt;using namespace UMC;&lt;BR /&gt;static void copyright(void)&lt;BR /&gt;{&lt;BR /&gt;vm_string_printf(VM_STRING("\nIntel Media processing sample based on\n"));&lt;BR /&gt;vm_string_printf(VM_STRING(" UMC and Intel Integrated Performance Primitives\n"));&lt;BR /&gt;vm_string_printf(VM_STRING("Copyright(c) 2005-2008 Intel Corporation. All Rights Reserved.\n\n"));&lt;BR /&gt;return;&lt;BR /&gt;} // copyright()&lt;BR /&gt;&lt;BR /&gt;static void ipp_version(void)&lt;BR /&gt;{&lt;BR /&gt;const IppLibraryVersion* version;&lt;BR /&gt;vm_string_printf(VM_STRING("Intel Integrated Performance Primitives\n"));&lt;BR /&gt;&lt;BR /&gt;/* ippCore version info */&lt;BR /&gt;version = ippGetLibVersion();&lt;BR /&gt;&lt;BR /&gt;vm_string_printf(VM_STRING(" %s,\t%s {%d.%d.%d.%d},\tbuild date %s\n"),&lt;BR /&gt;version-&amp;gt;Name,&lt;BR /&gt;version-&amp;gt;Version,&lt;BR /&gt;version-&amp;gt;major,version-&amp;gt;minor,version-&amp;gt;majorBuild,version-&amp;gt;build,version-&amp;gt;BuildDate);&lt;BR /&gt;&lt;BR /&gt;/* ippSP version info */&lt;BR /&gt;version = ippsGetLibVersion();&lt;BR /&gt;vm_string_printf(VM_STRING(" %s,\t%s {%d.%d.%d.%d},\tbuild date %s\n"),&lt;BR /&gt;version-&amp;gt;Name,&lt;BR /&gt;version-&amp;gt;Version,&lt;BR /&gt;version-&amp;gt;major,version-&amp;gt;minor,version-&amp;gt;majorBuild,version-&amp;gt;build,&lt;BR /&gt;version-&amp;gt;BuildDate);&lt;BR /&gt;&lt;BR /&gt;/* ippIP version info */&lt;BR /&gt;version = ippiGetLibVersion();&lt;BR /&gt;vm_string_printf(VM_STRING(" %s,\t%s {%d.%d.%d.%d},\tbuild date %s\n"),&lt;BR /&gt;version-&amp;gt;Name,&lt;BR /&gt;version-&amp;gt;Version,&lt;BR /&gt;version-&amp;gt;major,version-&amp;gt;minor,version-&amp;gt;majorBuild,version-&amp;gt;build,&lt;BR /&gt;version-&amp;gt;BuildDate);&lt;BR /&gt;&lt;BR /&gt;/* ippJP version info */&lt;BR /&gt;version = ippjGetLibVersion();&lt;BR /&gt;vm_string_printf(VM_STRING(" %s,\t%s {%d.%d.%d.%d},\tbuild date %s\n"),&lt;BR /&gt;version-&amp;gt;Name,&lt;BR /&gt;version-&amp;gt;Version,&lt;BR /&gt;version-&amp;gt;major,version-&amp;gt;minor,version-&amp;gt;majorBuild,version-&amp;gt;build,&lt;BR /&gt;version-&amp;gt;BuildDate);&lt;BR /&gt;&lt;BR /&gt;/* ippCC version info */&lt;BR /&gt;version = ippccGetLibVersion();&lt;BR /&gt;vm_string_printf(VM_STRING(" %s,\t%s {%d.%d.%d.%d},\tbuild date %s\n"),version-&amp;gt;Name,&lt;BR /&gt;version-&amp;gt;Version,&lt;BR /&gt;version-&amp;gt;major,version-&amp;gt;minor,version-&amp;gt;majorBuild,version-&amp;gt;build,&lt;BR /&gt;version-&amp;gt;BuildDate);&lt;BR /&gt;&lt;BR /&gt;vm_string_printf(VM_STRING("\n"));&lt;BR /&gt;&lt;BR /&gt;return;&lt;BR /&gt;} // ipp_version()&lt;BR /&gt;&lt;BR /&gt;Status&lt;BR /&gt;InitDataReader(DataReader* pDataReader, vm_char* file_name)&lt;BR /&gt;{&lt;BR /&gt;FileReaderParams reader_params;&lt;BR /&gt;reader_params.m_portion_size = 0;&lt;BR /&gt;vm_string_strcpy(reader_params.m_file_name, file_name);&lt;BR /&gt;return pDataReader-&amp;gt;Init(&amp;amp;reader_params);&lt;BR /&gt;} // InitDataReader()&lt;BR /&gt;&lt;BR /&gt;Status&lt;BR /&gt;InitAVISplitter(Splitter* pAVISplitter, DataReader* pDataReader)&lt;BR /&gt;{&lt;BR /&gt;SplitterParams spl_params;&lt;BR /&gt;spl_params.m_lFlags = VIDEO_SPLITTER; // want to exctract only video&lt;BR /&gt;spl_params.m_pDataReader = pDataReader;&lt;BR /&gt;return pAVISplitter-&amp;gt;Init(spl_params);&lt;BR /&gt;} // InitAVISplitter()&lt;BR /&gt;&lt;BR /&gt;Status&lt;BR /&gt;InitMJPEGVideoDecoder(VideoDecoder* pVideoDecoder, VideoStreamInfo* video_info)&lt;BR /&gt;{&lt;BR /&gt;if ( video_info-&amp;gt;stream_type != MJPEG_VIDEO )&lt;BR /&gt;return UMC_ERR_FAILED;&lt;BR /&gt;&lt;BR /&gt;VideoDecoderParams dec_params;&lt;BR /&gt;dec_params.info = *video_info;&lt;BR /&gt;dec_params.lFlags = 0;&lt;BR /&gt;dec_params.numThreads = 1;&lt;BR /&gt;return pVideoDecoder-&amp;gt;Init(&amp;amp;dec_params);&lt;BR /&gt;} // InitMJPEGVideoDecoder()&lt;BR /&gt;&lt;BR /&gt;Status&lt;BR /&gt;InitVideoRender(VideoRender* pVideoRender, VideoStreamInfo* video_info)&lt;BR /&gt;{&lt;BR /&gt;VideoRenderParams render_params;&lt;BR /&gt;Status umcRes = render_params.out_data_template.Init(&lt;BR /&gt;video_info-&amp;gt;clip_info.width,&lt;BR /&gt;video_info-&amp;gt;clip_info.height,&lt;BR /&gt;video_info-&amp;gt;color_format);&lt;BR /&gt;if ( UMC_OK != umcRes )&lt;BR /&gt;return umcRes;&lt;BR /&gt;&lt;BR /&gt;return pVideoRender-&amp;gt;Init(&amp;amp;render_params);&lt;BR /&gt;} // InitVideoRender()&lt;BR /&gt;&lt;BR /&gt;Status&lt;BR /&gt;DecodeMJPEGVideo(vm_char* input_file)&lt;BR /&gt;{&lt;BR /&gt;Ipp32u track;&lt;BR /&gt;Ipp32s nframes;&lt;BR /&gt;vm_tick t0;&lt;BR /&gt;vm_tick t1;&lt;BR /&gt;vm_tick total;&lt;BR /&gt;vm_tick freq;&lt;BR /&gt;Ipp64f fps;&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;MJPEGVideoDecoder mjpeg_dec;&lt;BR /&gt;FWVideoRender dst;&lt;BR /&gt;MediaData in;&lt;BR /&gt;VideoData out;&lt;BR /&gt;Status umcRes;&lt;BR /&gt;&lt;BR /&gt;// Initialize data reader component&lt;BR /&gt;umcRes = InitDataReader(&amp;amp;src, input_file);&lt;BR /&gt;&lt;BR /&gt;if ( umcRes != UMC_OK )&lt;BR /&gt;return umcRes;&lt;BR /&gt;&lt;BR /&gt;// Initialize splitter component&lt;BR /&gt;umcRes = InitAVISplitter(&amp;amp;avi_spl, &amp;amp;src);&lt;BR /&gt;&lt;BR /&gt;if ( umcRes != UMC_OK )&lt;BR /&gt;return umcRes;&lt;BR /&gt;&lt;BR /&gt;// get stream info&lt;BR /&gt;umcRes = avi_spl.GetInfo(&amp;amp;spl_info);&lt;BR /&gt;&lt;BR /&gt;if ( umcRes != UMC_OK )&lt;BR /&gt;return umcRes;&lt;BR /&gt;&lt;BR /&gt;// find required track&lt;BR /&gt;for ( track = 0; track &amp;lt; spl_info-&amp;gt;m_nOfTracks; track++ )&lt;BR /&gt;if ( TRACK_MJPEG == spl_info-&amp;gt;m_ppTrackInfo[track]-&amp;gt;m_Type )&lt;BR /&gt;break;&lt;BR /&gt;&lt;BR /&gt;// track of MJPEG type is not found&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;// get VideoStreamInfo structure&lt;BR /&gt;video_info = (VideoStreamInfo*)spl_info-&amp;gt;m_ppTrackInfo[track]-&amp;gt;m_pStreamInfo;&lt;BR /&gt;&lt;BR /&gt;video_info-&amp;gt;color_format = YUY2;&lt;BR /&gt;&lt;BR /&gt;vm_string_printf(VM_STRING("file: %s\n"),input_file);&lt;BR /&gt;vm_string_printf(VM_STRING(" video stream\n"));&lt;BR /&gt;//vm_string_printf(VM_STRING(" type :%s\n"),GetVideoTypeString(spl_info-&amp;gt;m_video_info.stream_type));&lt;BR /&gt;//vm_string_printf(VM_STRING(" dims : %dx%d\n"),spl_info-&amp;gt;m_video_info.clip_info.width,spl_info-&amp;gt;m_video_info.clip_info.height);&lt;BR /&gt;//vm_string_printf(VM_STRING(" color : %s\n"),GetFormatTypeString(spl_info-&amp;gt;m_video_info.color_format));&lt;BR /&gt;&lt;BR /&gt;// Initialize video decoder component&lt;BR /&gt;umcRes = InitMJPEGVideoDecoder(&amp;amp;mjpeg_dec, video_info);&lt;BR /&gt;&lt;BR /&gt;if ( umcRes != UMC_OK )&lt;BR /&gt;return umcRes;&lt;BR /&gt;&lt;BR /&gt;// Initialize video render component&lt;BR /&gt;umcRes = InitVideoRender(&amp;amp;dst, video_info);&lt;BR /&gt;&lt;BR /&gt;if ( umcRes != UMC_OK )&lt;BR /&gt;return umcRes;&lt;BR /&gt;&lt;BR /&gt;freq = vm_time_get_frequency();&lt;BR /&gt;total = 0;&lt;BR /&gt;nframes = 0;&lt;BR /&gt;&lt;BR /&gt;// decoding &amp;amp; rendering loop (frame by frame)&lt;BR /&gt;while ( umcRes == UMC_OK || umcRes == UMC_ERR_NOT_ENOUGH_DATA )&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 ( umcRes != UMC_OK )&lt;BR /&gt;break;&lt;BR /&gt;&lt;BR /&gt;umcRes = dst.LockInputBuffer(&amp;amp;out);&lt;BR /&gt;&lt;BR /&gt;if ( umcRes != UMC_OK )&lt;BR /&gt;break;&lt;BR /&gt;&lt;BR /&gt;t0 = vm_time_get_tick();&lt;BR /&gt;umcRes = mjpeg_dec.GetFrame(&amp;amp;in, &amp;amp;out);&lt;BR /&gt;&lt;BR /&gt;if ( umcRes != UMC_OK )&lt;BR /&gt;break;&lt;BR /&gt;&lt;BR /&gt;t1 = vm_time_get_tick();&lt;BR /&gt;total += (t1 - t0);&lt;BR /&gt;&lt;BR /&gt;if ( umcRes != UMC_OK )&lt;BR /&gt;continue;&lt;BR /&gt;&lt;BR /&gt;vm_string_printf(VM_STRING("frame# %d, FPS - %4.1f\r"), nframes, (Ipp64f)1.0 / ((t1 - t0) / (Ipp64f)freq));&lt;BR /&gt;&lt;BR /&gt;if ( umcRes == UMC_OK )&lt;BR /&gt;{&lt;BR /&gt;umcRes = dst.UnLockInputBuffer(&amp;amp;out);&lt;BR /&gt;&lt;BR /&gt;if ( umcRes != UMC_OK )&lt;BR /&gt;break;&lt;BR /&gt;&lt;BR /&gt;Ipp64f time = -1;&lt;BR /&gt;&lt;BR /&gt;while ( UMC_ERR_TIMEOUT == dst.GetRenderFrame(&amp;amp;time) );&lt;BR /&gt;&lt;BR /&gt;umcRes = dst.RenderFrame();&lt;BR /&gt;&lt;BR /&gt;if ( umcRes != UMC_OK )&lt;BR /&gt;break;&lt;BR /&gt;}&lt;BR /&gt;nframes++;&lt;BR /&gt;} // while()&lt;BR /&gt;&lt;BR /&gt;fps = (Ipp64f)(freq / ((Ipp64f)total / nframes));&lt;BR /&gt;&lt;BR /&gt;vm_string_printf(VM_STRING("processed %d frames, with avg performance %4.1f FPS\n"), nframes, fps);&lt;BR /&gt;&lt;BR /&gt;return umcRes;&lt;BR /&gt;} // DecodeMJPEGVideo()&lt;BR /&gt;&lt;BR /&gt;int main(Ipp32u argc, vm_char* argv[])&lt;BR /&gt;{&lt;BR /&gt;ippStaticInit();&lt;BR /&gt;copyright();&lt;BR /&gt;ipp_version();&lt;BR /&gt;&lt;BR /&gt;if ( argc &amp;gt; 1 )&lt;BR /&gt;DecodeMJPEGVideo(argv[1]);&lt;BR /&gt;else&lt;BR /&gt;vm_string_printf(VM_STRING("expected AVI file name"));&lt;BR /&gt;&lt;BR /&gt;return 0;&lt;BR /&gt;} // main()&lt;BR /&gt;&lt;/STDLIB.H&gt;&lt;/STDIO.H&gt;</description>
    <pubDate>Thu, 16 Apr 2009 18:30:55 GMT</pubDate>
    <dc:creator>noemata</dc:creator>
    <dc:date>2009-04-16T18:30:55Z</dc:date>
    <item>
      <title>MJPEG Sample typos (in docs)</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/MJPEG-Sample-typos-in-docs/m-p/857375#M7368</link>
      <description>// The documentation sample has a couple minor typos ... here's the corrected version&lt;BR /&gt;&lt;BR /&gt;/*&lt;BR /&gt;//&lt;BR /&gt;// INTEL CORPORATION PROPRIETARY INFORMATION&lt;BR /&gt;// This software is supplied under the terms of a license agreement or&lt;BR /&gt;// nondisclosure agreement with Intel Corporation and may not be copied&lt;BR /&gt;// or disclosed except in accordance with the terms of that agreement.&lt;BR /&gt;// Copyright(c) 2005-2008 Intel Corporation. All Rights Reserved.&lt;BR /&gt;//&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 "ippcore.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_video_data.h"&lt;BR /&gt;#include "umc_video_render.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 "umc_mjpeg_video_decoder.h"&lt;BR /&gt;#include "fw_video_render.h"&lt;BR /&gt;&lt;BR /&gt;// Note: these are debug libs.&lt;BR /&gt;&lt;BR /&gt;//#pragma comment(lib, "ippcvmerged.lib")&lt;BR /&gt;//#pragma comment(lib, "ippcvemerged.lib")&lt;BR /&gt;//#pragma comment(lib, "winmm.lib")&lt;BR /&gt;&lt;BR /&gt;#pragma comment(lib, "ippcorel.lib")&lt;BR /&gt;#pragma comment(lib, "ippsmerged.lib")&lt;BR /&gt;#pragma comment(lib, "ippsemerged.lib")&lt;BR /&gt;#pragma comment(lib, "ippvcmerged.lib")&lt;BR /&gt;#pragma comment(lib, "ippvcemerged.lib")&lt;BR /&gt;#pragma comment(lib, "ippimerged.lib")&lt;BR /&gt;#pragma comment(lib, "ippiemerged.lib")&lt;BR /&gt;#pragma comment(lib, "ippjmerged.lib")&lt;BR /&gt;#pragma comment(lib, "ippjemerged.lib")&lt;BR /&gt;#pragma comment(lib, "ippccmerged.lib")&lt;BR /&gt;#pragma comment(lib, "ippccemerged.lib")&lt;BR /&gt;&lt;BR /&gt;// Create an environment varialbe IPPCODECLIBS to point to here ...&lt;BR /&gt;#pragma comment(lib, "D:/Work/ipp-samples/audio-video-codecs/_bin/Win32/debug_ascii/umc_io/umc_io.lib")&lt;BR /&gt;#pragma comment(lib, "D:/Work/ipp-samples/audio-video-codecs/_bin/Win32/debug_ascii/video_renders/video_renders.lib")&lt;BR /&gt;#pragma comment(lib, "D:/Work/ipp-samples/audio-video-codecs/_bin/Win32/debug_ascii/jpeg/jpeg.lib")&lt;BR /&gt;#pragma comment(lib, "D:/Work/ipp-samples/audio-video-codecs/_bin/Win32/debug_ascii/avi_spl/avi_spl.lib")&lt;BR /&gt;#pragma comment(lib, "D:/Work/ipp-samples/audio-video-codecs/_bin/Win32/debug_ascii/spl_common/spl_common.lib")&lt;BR /&gt;#pragma comment(lib, "D:/Work/ipp-samples/audio-video-codecs/_bin/Win32/debug_ascii/media_buffers/media_buffers.lib")&lt;BR /&gt;#pragma comment(lib, "D:/Work/ipp-samples/audio-video-codecs/_bin/Win32/debug_ascii/base_classes/base_classes.lib")&lt;BR /&gt;#pragma comment(lib, "D:/Work/ipp-samples/audio-video-codecs/_bin/Win32/debug_ascii/vm/vm.lib")&lt;BR /&gt;#pragma comment(lib, "D:/Work/ipp-samples/audio-video-codecs/_bin/Win32/debug_ascii/vm_plus/vm_plus.lib")&lt;BR /&gt;#pragma comment(lib, "D:/Work/ipp-samples/audio-video-codecs/_bin/Win32/debug_ascii/color_space_converter/color_space_converter.lib")&lt;BR /&gt;&lt;BR /&gt;using namespace UMC;&lt;BR /&gt;static void copyright(void)&lt;BR /&gt;{&lt;BR /&gt;vm_string_printf(VM_STRING("\nIntel Media processing sample based on\n"));&lt;BR /&gt;vm_string_printf(VM_STRING(" UMC and Intel Integrated Performance Primitives\n"));&lt;BR /&gt;vm_string_printf(VM_STRING("Copyright(c) 2005-2008 Intel Corporation. All Rights Reserved.\n\n"));&lt;BR /&gt;return;&lt;BR /&gt;} // copyright()&lt;BR /&gt;&lt;BR /&gt;static void ipp_version(void)&lt;BR /&gt;{&lt;BR /&gt;const IppLibraryVersion* version;&lt;BR /&gt;vm_string_printf(VM_STRING("Intel Integrated Performance Primitives\n"));&lt;BR /&gt;&lt;BR /&gt;/* ippCore version info */&lt;BR /&gt;version = ippGetLibVersion();&lt;BR /&gt;&lt;BR /&gt;vm_string_printf(VM_STRING(" %s,\t%s {%d.%d.%d.%d},\tbuild date %s\n"),&lt;BR /&gt;version-&amp;gt;Name,&lt;BR /&gt;version-&amp;gt;Version,&lt;BR /&gt;version-&amp;gt;major,version-&amp;gt;minor,version-&amp;gt;majorBuild,version-&amp;gt;build,version-&amp;gt;BuildDate);&lt;BR /&gt;&lt;BR /&gt;/* ippSP version info */&lt;BR /&gt;version = ippsGetLibVersion();&lt;BR /&gt;vm_string_printf(VM_STRING(" %s,\t%s {%d.%d.%d.%d},\tbuild date %s\n"),&lt;BR /&gt;version-&amp;gt;Name,&lt;BR /&gt;version-&amp;gt;Version,&lt;BR /&gt;version-&amp;gt;major,version-&amp;gt;minor,version-&amp;gt;majorBuild,version-&amp;gt;build,&lt;BR /&gt;version-&amp;gt;BuildDate);&lt;BR /&gt;&lt;BR /&gt;/* ippIP version info */&lt;BR /&gt;version = ippiGetLibVersion();&lt;BR /&gt;vm_string_printf(VM_STRING(" %s,\t%s {%d.%d.%d.%d},\tbuild date %s\n"),&lt;BR /&gt;version-&amp;gt;Name,&lt;BR /&gt;version-&amp;gt;Version,&lt;BR /&gt;version-&amp;gt;major,version-&amp;gt;minor,version-&amp;gt;majorBuild,version-&amp;gt;build,&lt;BR /&gt;version-&amp;gt;BuildDate);&lt;BR /&gt;&lt;BR /&gt;/* ippJP version info */&lt;BR /&gt;version = ippjGetLibVersion();&lt;BR /&gt;vm_string_printf(VM_STRING(" %s,\t%s {%d.%d.%d.%d},\tbuild date %s\n"),&lt;BR /&gt;version-&amp;gt;Name,&lt;BR /&gt;version-&amp;gt;Version,&lt;BR /&gt;version-&amp;gt;major,version-&amp;gt;minor,version-&amp;gt;majorBuild,version-&amp;gt;build,&lt;BR /&gt;version-&amp;gt;BuildDate);&lt;BR /&gt;&lt;BR /&gt;/* ippCC version info */&lt;BR /&gt;version = ippccGetLibVersion();&lt;BR /&gt;vm_string_printf(VM_STRING(" %s,\t%s {%d.%d.%d.%d},\tbuild date %s\n"),version-&amp;gt;Name,&lt;BR /&gt;version-&amp;gt;Version,&lt;BR /&gt;version-&amp;gt;major,version-&amp;gt;minor,version-&amp;gt;majorBuild,version-&amp;gt;build,&lt;BR /&gt;version-&amp;gt;BuildDate);&lt;BR /&gt;&lt;BR /&gt;vm_string_printf(VM_STRING("\n"));&lt;BR /&gt;&lt;BR /&gt;return;&lt;BR /&gt;} // ipp_version()&lt;BR /&gt;&lt;BR /&gt;Status&lt;BR /&gt;InitDataReader(DataReader* pDataReader, vm_char* file_name)&lt;BR /&gt;{&lt;BR /&gt;FileReaderParams reader_params;&lt;BR /&gt;reader_params.m_portion_size = 0;&lt;BR /&gt;vm_string_strcpy(reader_params.m_file_name, file_name);&lt;BR /&gt;return pDataReader-&amp;gt;Init(&amp;amp;reader_params);&lt;BR /&gt;} // InitDataReader()&lt;BR /&gt;&lt;BR /&gt;Status&lt;BR /&gt;InitAVISplitter(Splitter* pAVISplitter, DataReader* pDataReader)&lt;BR /&gt;{&lt;BR /&gt;SplitterParams spl_params;&lt;BR /&gt;spl_params.m_lFlags = VIDEO_SPLITTER; // want to exctract only video&lt;BR /&gt;spl_params.m_pDataReader = pDataReader;&lt;BR /&gt;return pAVISplitter-&amp;gt;Init(spl_params);&lt;BR /&gt;} // InitAVISplitter()&lt;BR /&gt;&lt;BR /&gt;Status&lt;BR /&gt;InitMJPEGVideoDecoder(VideoDecoder* pVideoDecoder, VideoStreamInfo* video_info)&lt;BR /&gt;{&lt;BR /&gt;if ( video_info-&amp;gt;stream_type != MJPEG_VIDEO )&lt;BR /&gt;return UMC_ERR_FAILED;&lt;BR /&gt;&lt;BR /&gt;VideoDecoderParams dec_params;&lt;BR /&gt;dec_params.info = *video_info;&lt;BR /&gt;dec_params.lFlags = 0;&lt;BR /&gt;dec_params.numThreads = 1;&lt;BR /&gt;return pVideoDecoder-&amp;gt;Init(&amp;amp;dec_params);&lt;BR /&gt;} // InitMJPEGVideoDecoder()&lt;BR /&gt;&lt;BR /&gt;Status&lt;BR /&gt;InitVideoRender(VideoRender* pVideoRender, VideoStreamInfo* video_info)&lt;BR /&gt;{&lt;BR /&gt;VideoRenderParams render_params;&lt;BR /&gt;Status umcRes = render_params.out_data_template.Init(&lt;BR /&gt;video_info-&amp;gt;clip_info.width,&lt;BR /&gt;video_info-&amp;gt;clip_info.height,&lt;BR /&gt;video_info-&amp;gt;color_format);&lt;BR /&gt;if ( UMC_OK != umcRes )&lt;BR /&gt;return umcRes;&lt;BR /&gt;&lt;BR /&gt;return pVideoRender-&amp;gt;Init(&amp;amp;render_params);&lt;BR /&gt;} // InitVideoRender()&lt;BR /&gt;&lt;BR /&gt;Status&lt;BR /&gt;DecodeMJPEGVideo(vm_char* input_file)&lt;BR /&gt;{&lt;BR /&gt;Ipp32u track;&lt;BR /&gt;Ipp32s nframes;&lt;BR /&gt;vm_tick t0;&lt;BR /&gt;vm_tick t1;&lt;BR /&gt;vm_tick total;&lt;BR /&gt;vm_tick freq;&lt;BR /&gt;Ipp64f fps;&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;MJPEGVideoDecoder mjpeg_dec;&lt;BR /&gt;FWVideoRender dst;&lt;BR /&gt;MediaData in;&lt;BR /&gt;VideoData out;&lt;BR /&gt;Status umcRes;&lt;BR /&gt;&lt;BR /&gt;// Initialize data reader component&lt;BR /&gt;umcRes = InitDataReader(&amp;amp;src, input_file);&lt;BR /&gt;&lt;BR /&gt;if ( umcRes != UMC_OK )&lt;BR /&gt;return umcRes;&lt;BR /&gt;&lt;BR /&gt;// Initialize splitter component&lt;BR /&gt;umcRes = InitAVISplitter(&amp;amp;avi_spl, &amp;amp;src);&lt;BR /&gt;&lt;BR /&gt;if ( umcRes != UMC_OK )&lt;BR /&gt;return umcRes;&lt;BR /&gt;&lt;BR /&gt;// get stream info&lt;BR /&gt;umcRes = avi_spl.GetInfo(&amp;amp;spl_info);&lt;BR /&gt;&lt;BR /&gt;if ( umcRes != UMC_OK )&lt;BR /&gt;return umcRes;&lt;BR /&gt;&lt;BR /&gt;// find required track&lt;BR /&gt;for ( track = 0; track &amp;lt; spl_info-&amp;gt;m_nOfTracks; track++ )&lt;BR /&gt;if ( TRACK_MJPEG == spl_info-&amp;gt;m_ppTrackInfo[track]-&amp;gt;m_Type )&lt;BR /&gt;break;&lt;BR /&gt;&lt;BR /&gt;// track of MJPEG type is not found&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;// get VideoStreamInfo structure&lt;BR /&gt;video_info = (VideoStreamInfo*)spl_info-&amp;gt;m_ppTrackInfo[track]-&amp;gt;m_pStreamInfo;&lt;BR /&gt;&lt;BR /&gt;video_info-&amp;gt;color_format = YUY2;&lt;BR /&gt;&lt;BR /&gt;vm_string_printf(VM_STRING("file: %s\n"),input_file);&lt;BR /&gt;vm_string_printf(VM_STRING(" video stream\n"));&lt;BR /&gt;//vm_string_printf(VM_STRING(" type :%s\n"),GetVideoTypeString(spl_info-&amp;gt;m_video_info.stream_type));&lt;BR /&gt;//vm_string_printf(VM_STRING(" dims : %dx%d\n"),spl_info-&amp;gt;m_video_info.clip_info.width,spl_info-&amp;gt;m_video_info.clip_info.height);&lt;BR /&gt;//vm_string_printf(VM_STRING(" color : %s\n"),GetFormatTypeString(spl_info-&amp;gt;m_video_info.color_format));&lt;BR /&gt;&lt;BR /&gt;// Initialize video decoder component&lt;BR /&gt;umcRes = InitMJPEGVideoDecoder(&amp;amp;mjpeg_dec, video_info);&lt;BR /&gt;&lt;BR /&gt;if ( umcRes != UMC_OK )&lt;BR /&gt;return umcRes;&lt;BR /&gt;&lt;BR /&gt;// Initialize video render component&lt;BR /&gt;umcRes = InitVideoRender(&amp;amp;dst, video_info);&lt;BR /&gt;&lt;BR /&gt;if ( umcRes != UMC_OK )&lt;BR /&gt;return umcRes;&lt;BR /&gt;&lt;BR /&gt;freq = vm_time_get_frequency();&lt;BR /&gt;total = 0;&lt;BR /&gt;nframes = 0;&lt;BR /&gt;&lt;BR /&gt;// decoding &amp;amp; rendering loop (frame by frame)&lt;BR /&gt;while ( umcRes == UMC_OK || umcRes == UMC_ERR_NOT_ENOUGH_DATA )&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 ( umcRes != UMC_OK )&lt;BR /&gt;break;&lt;BR /&gt;&lt;BR /&gt;umcRes = dst.LockInputBuffer(&amp;amp;out);&lt;BR /&gt;&lt;BR /&gt;if ( umcRes != UMC_OK )&lt;BR /&gt;break;&lt;BR /&gt;&lt;BR /&gt;t0 = vm_time_get_tick();&lt;BR /&gt;umcRes = mjpeg_dec.GetFrame(&amp;amp;in, &amp;amp;out);&lt;BR /&gt;&lt;BR /&gt;if ( umcRes != UMC_OK )&lt;BR /&gt;break;&lt;BR /&gt;&lt;BR /&gt;t1 = vm_time_get_tick();&lt;BR /&gt;total += (t1 - t0);&lt;BR /&gt;&lt;BR /&gt;if ( umcRes != UMC_OK )&lt;BR /&gt;continue;&lt;BR /&gt;&lt;BR /&gt;vm_string_printf(VM_STRING("frame# %d, FPS - %4.1f\r"), nframes, (Ipp64f)1.0 / ((t1 - t0) / (Ipp64f)freq));&lt;BR /&gt;&lt;BR /&gt;if ( umcRes == UMC_OK )&lt;BR /&gt;{&lt;BR /&gt;umcRes = dst.UnLockInputBuffer(&amp;amp;out);&lt;BR /&gt;&lt;BR /&gt;if ( umcRes != UMC_OK )&lt;BR /&gt;break;&lt;BR /&gt;&lt;BR /&gt;Ipp64f time = -1;&lt;BR /&gt;&lt;BR /&gt;while ( UMC_ERR_TIMEOUT == dst.GetRenderFrame(&amp;amp;time) );&lt;BR /&gt;&lt;BR /&gt;umcRes = dst.RenderFrame();&lt;BR /&gt;&lt;BR /&gt;if ( umcRes != UMC_OK )&lt;BR /&gt;break;&lt;BR /&gt;}&lt;BR /&gt;nframes++;&lt;BR /&gt;} // while()&lt;BR /&gt;&lt;BR /&gt;fps = (Ipp64f)(freq / ((Ipp64f)total / nframes));&lt;BR /&gt;&lt;BR /&gt;vm_string_printf(VM_STRING("processed %d frames, with avg performance %4.1f FPS\n"), nframes, fps);&lt;BR /&gt;&lt;BR /&gt;return umcRes;&lt;BR /&gt;} // DecodeMJPEGVideo()&lt;BR /&gt;&lt;BR /&gt;int main(Ipp32u argc, vm_char* argv[])&lt;BR /&gt;{&lt;BR /&gt;ippStaticInit();&lt;BR /&gt;copyright();&lt;BR /&gt;ipp_version();&lt;BR /&gt;&lt;BR /&gt;if ( argc &amp;gt; 1 )&lt;BR /&gt;DecodeMJPEGVideo(argv[1]);&lt;BR /&gt;else&lt;BR /&gt;vm_string_printf(VM_STRING("expected AVI file name"));&lt;BR /&gt;&lt;BR /&gt;return 0;&lt;BR /&gt;} // main()&lt;BR /&gt;&lt;/STDLIB.H&gt;&lt;/STDIO.H&gt;</description>
      <pubDate>Thu, 16 Apr 2009 18:30:55 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/MJPEG-Sample-typos-in-docs/m-p/857375#M7368</guid>
      <dc:creator>noemata</dc:creator>
      <dc:date>2009-04-16T18:30:55Z</dc:date>
    </item>
    <item>
      <title>Re: MJPEG Sample typos (in docs)</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/MJPEG-Sample-typos-in-docs/m-p/857376#M7369</link>
      <description>&lt;DIV style="margin: 0px; height: auto;"&gt;&lt;/DIV&gt;
&lt;BR /&gt;The attached VS2008 project zip should beunpacked under:&lt;BR /&gt;&lt;BR /&gt;ipp-samplesaudio-video-codecsapplication</description>
      <pubDate>Thu, 16 Apr 2009 18:47:49 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/MJPEG-Sample-typos-in-docs/m-p/857376#M7369</guid>
      <dc:creator>noemata</dc:creator>
      <dc:date>2009-04-16T18:47:49Z</dc:date>
    </item>
  </channel>
</rss>

