ii
Legal Information
Legal Lines and Disclaimers
INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL® PRODUCTS. NO LICENSE, EXPRESS OR
IMPLIED, BY ESTOPPEL OR OTHERWISE, TO ANY INTELLECTUAL PROPERTY RIGHTS IS GRANTED BY THIS DOCUMENT. EXCEPT
AS PROVIDED IN INTEL'S TERMS AND CONDITIONS OF SALE FOR SUCH PRODUCTS, INTEL ASSUMES NO LIABILITY
WHATSOEVER, AND INTEL DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY, RELATING TO SALE AND/OR USE OF INTEL
PRODUCTS INCLUDING LIABILITY OR WARRANTIES RELATING TO FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY,
OR INFRINGEMENT OF ANY PATENT, COPYRIGHT OR OTHER INTELLECTUAL PROPERTY RIGHT.
UNLESS OTHERWISE AGREED IN WRITING BY INTEL, THE INTEL PRODUCTS ARE NOT DESIGNED NOR INTENDED FOR ANY
APPLICATION IN WHICH THE FAILURE OF THE INTEL PRODUCT COULD CREATE A SITUATION WHERE PERSONAL INJURY OR
DEATH MAY OCCUR.
Intel may make changes to specifications and product descriptions at any time, without notice. Designers must not rely on the
absence or characteristics of any features or instructions marked "reserved" or "undefined." Intel reserves these for future
definition and shall have no responsibility whatsoever for conflicts or incompatibilities arising from future changes to them. The
information here is subject to change without notice. Do not finalize a design with this information.
The products described in this document may contain design defects or errors known as errata which may cause the product to
deviate from published specifications. Current characterized errata are available on request.
Contact your local Intel sales office or your distributor to obtain the latest specifications and before placing your product order.
Copies of documents which have an order number and are referenced in this document, or other Intel literature, may be
obtained by calling 1-800-548-4725, or by visiting Intel's Web Site.
Intel processor numbers are not a measure of performance. Processor numbers differentiate features within each processor
family, not across different processor families. See http://www.intel.com/products/processor_number for details.
MPEG-1, MPEG-2, MPEG-4, H.261, H.263, H.264, MP3, DV, VC-1, MJPEG, AC3, and AAC are international standards promoted
by ISO, IEC, ITU, ETSI and other organizations. Implementations of these standards, or the standard enabled platforms may
require licenses from various entities, including Intel Corporation.
This document contains information on products in the design phase of development.
Version Version Information Date
-001 Documents the first implementation of Intel® IPP Unified Media Classes
(UMC).
03/2005
-002 Documents the UMC implementation for 5.0 IPP Samples release. Methods for
DataReader, MediaData, and Splitter classes have been extended. A compre-
hensive example of Base Classes usage has been added.
09/2005
-003 Documents the UMC implementation for 5.1 IPP Samples release. 04/2006
-004 Documents the UMC implementation for IPP Samples 5.2 Beta release. Added
description of VideoProcessing and MemoryAllocator base classes, a chapter
describing H.264 and AAC codecs and DefaultMemoryAllocator, a Glossary.
10/2006
-005 Documents the UMC implementation for IPP Samples 5.2 release. Added
description of VC-1 video decoder and splitter, MPEG2 decoder and encoder,
Advanced Threaded Demuxer derivative classes.
01/2007
-006 Documents the UMC implementation for IPP Samples 5.3 Beta release. Added
description of the AACDecoderInt, AACEncoderInt, MPEG4 Video Decoder and
Encoder, VC1 Video Encoder, DV/DV50/DV100 Video Decoders, MP3 Audio
Decoder and Encoder derivative classes. Updated UMC Usage example.
06/2007
-007 Documents the UMC implementation for IPP Samples 5.3 release. Updated
Base classes description. Added description of the H.263 Decoder and Encoder,
AC3Decoder, MPEG2Muxer, audio and video renders derivative classes, File
Functions of VM Library.
09/2007
iii
BunnyPeople, Celeron, Celeron Inside, Centrino, Centrino logo, Core Inside, FlashFile, i960, InstantIP, Intel, Intel logo,
Intel386, Intel486, Intel740, IntelDX2, IntelDX4, IntelSX2, Intel Core, Intel Inside, Intel Inside logo, Intel. Leap ahead., Intel.
Leap ahead. logo, Intel NetBurst, Intel NetMerge, Intel NetStructure, Intel SingleDriver, Intel SpeedStep, Intel StrataFlash,
Intel Viiv, Intel vPro, Intel XScale, Itanium, Itanium Inside, MCS, MMX, Oplus, OverDrive, PDCharm, Pentium, Pentium Inside,
skoool, Sound Mark, The Journey Inside, VTune, Xeon, and Xeon Inside are trademarks of Intel Corporation in the U.S. and
other countries.* Other names and brands may be claimed as the property of others.
Copyright © 2005 - 2007, Intel Corporation. All rights reserved.
iv
v
Contents
Chapter 1 Overview
About This Software.................................................................... 1-1
Hardware and Software Requirements ...................................... 1-2
Platforms Supported .............................................................. 1-2
Technical Support ................................................................... 1-3
About This Manual ...................................................................... 1-3
Audience for This Manual......................................................... 1-3
Manual Organization ............................................................... 1-3
Notational Conventions ........................................................... 1-4
Font Conventions ............................................................... 1-4
Naming Conventions .......................................................... 1-4
Online Version........................................................................ 1-5
Chapter 2 Unified Media Classes Concepts
Purpose and Basic Features.......................................................... 2-1
UMC Structure............................................................................ 2-2
Data Flow Support...................................................................... 2-4
UMC Object Initialization ............................................................ 2-7
Error Reporting........................................................................... 2-8
Structures and Enumerators ....................................................... 2-9
Chapter 3 Base Classes
DataReader Class ................................................................... 3-1
Init ................................................................................ 3-3
Reset ............................................................................. 3-4