1bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee/*
2bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee INTEL CONFIDENTIAL
3bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee Copyright 2009 Intel Corporation All Rights Reserved.
4bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee The source code contained or described herein and all documents related to the source code ("Material") are owned by Intel Corporation or its suppliers or licensors. Title to the Material remains with Intel Corporation or its suppliers and licensors. The Material contains trade secrets and proprietary and confidential information of Intel or its suppliers and licensors. The Material is protected by worldwide copyright and trade secret laws and treaty provisions. No part of the Material may be used, copied, reproduced, modified, published, uploaded, posted, transmitted, distributed, or disclosed in any way without Intel’s prior express written permission.
5bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee
6bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee No license under any patent, copyright, trade secret or other intellectual property right is granted to or conferred upon you by disclosure or delivery of the Materials, either expressly, by implication, inducement, estoppel or otherwise. Any license under such intellectual property rights must be express and approved by Intel in writing.
7bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee */
8bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee
9bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee#ifndef __MIX_VIDEO_DEF_H__
10bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee#define __MIX_VIDEO_DEF_H__
11bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee#include <mixresult.h>
12bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee
13bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee/*
14bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * MI-X video error code
15bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee */
16bd8388b4555645b3d29abc6a94c303638064d69awonjong.leetypedef enum {
17bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee	MIX_RESULT_FRAME_NOTAVAIL = MIX_RESULT_ERROR_VIDEO_START + 1,
18bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee	MIX_RESULT_EOS,
19bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee	MIX_RESULT_POOLEMPTY,
20bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee	MIX_RESULT_OUTOFSURFACES,
21bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee	MIX_RESULT_DROPFRAME,
22bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee	MIX_RESULT_NOTIMPL,
23bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee	MIX_RESULT_VIDEO_LAST
24bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee} MIX_VIDEO_ERROR_CODE;
25bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee
26bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee/*
27bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee MixCodecMode
28bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee */
29bd8388b4555645b3d29abc6a94c303638064d69awonjong.leetypedef enum {
30bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee	MIX_CODEC_MODE_ENCODE = 0,
31bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee	MIX_CODEC_MODE_DECODE,
32bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee	MIX_CODEC_MODE_LAST
33bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee} MixCodecMode;
34bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee
35bd8388b4555645b3d29abc6a94c303638064d69awonjong.leetypedef enum {
36bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee	MIX_FRAMEORDER_MODE_DISPLAYORDER = 0,
37bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee	MIX_FRAMEORDER_MODE_DECODEORDER,
38bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee	MIX_FRAMEORDER_MODE_LAST
39bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee} MixFrameOrderMode;
40bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee
41bd8388b4555645b3d29abc6a94c303638064d69awonjong.leetypedef struct _MixIOVec {
42bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee	guchar *data;
43bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee	gint buffer_size;
44bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee    gint data_size;
45bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee} MixIOVec;
46bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee
47bd8388b4555645b3d29abc6a94c303638064d69awonjong.leetypedef struct _MixRect {
48bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee	gshort x;
49bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee	gshort y;
50bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee	gushort width;
51bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee	gushort height;
52bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee} MixRect;
53bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee
54bd8388b4555645b3d29abc6a94c303638064d69awonjong.leetypedef enum {
55bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee	MIX_STATE_UNINITIALIZED = 0,
56bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee	MIX_STATE_INITIALIZED,
57bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee	MIX_STATE_CONFIGURED,
58bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee	MIX_STATE_LAST
59bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee} MixState;
60bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee
61bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee
62bd8388b4555645b3d29abc6a94c303638064d69awonjong.leetypedef enum
63bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee{
64bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee    MIX_RAW_TARGET_FORMAT_NONE = 0,
65bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee    MIX_RAW_TARGET_FORMAT_YUV420 = 1,
66bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee    MIX_RAW_TARGET_FORMAT_YUV422 = 2,
67bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee    MIX_RAW_TARGET_FORMAT_YUV444 = 4,
68bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee    MIX_RAW_TARGET_FORMAT_PROTECTED = 0x80000000,
69bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee    MIX_RAW_TARGET_FORMAT_LAST
70bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee} MixRawTargetFormat;
71bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee
72bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee
73bd8388b4555645b3d29abc6a94c303638064d69awonjong.leetypedef enum
74bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee{
75bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee    MIX_ENCODE_TARGET_FORMAT_MPEG4 = 0,
76bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee    MIX_ENCODE_TARGET_FORMAT_H263 = 2,
77bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee    MIX_ENCODE_TARGET_FORMAT_H264 = 4,
78bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee    MIX_ENCODE_TARGET_FORMAT_PREVIEW = 8,
79bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee    MIX_ENCODE_TARGET_FORMAT_LAST
80bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee} MixEncodeTargetFormat;
81bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee
82bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee
83bd8388b4555645b3d29abc6a94c303638064d69awonjong.leetypedef enum
84bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee{
85bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee    MIX_RATE_CONTROL_NONE = 1,
86bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee    MIX_RATE_CONTROL_CBR = 2,
87bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee    MIX_RATE_CONTROL_VBR = 4,
88bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee    MIX_RATE_CONTROL_LAST
89bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee} MixRateControl;
90bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee
91bd8388b4555645b3d29abc6a94c303638064d69awonjong.leetypedef enum
92bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee{
93bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee    MIX_PROFILE_MPEG2SIMPLE = 0,
94bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee    MIX_PROFILE_MPEG2MAIN,
95bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee    MIX_PROFILE_MPEG4SIMPLE,
96bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee    MIX_PROFILE_MPEG4ADVANCEDSIMPLE,
97bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee    MIX_PROFILE_MPEG4MAIN,
98bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee    MIX_PROFILE_H264BASELINE,
99bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee    MIX_PROFILE_H264MAIN,
100bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee    MIX_PROFILE_H264HIGH,
101bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee    MIX_PROFILE_VC1SIMPLE,
102bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee    MIX_PROFILE_VC1MAIN,
103bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee    MIX_PROFILE_VC1ADVANCED,
104bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee    MIX_PROFILE_H263BASELINE
105bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee} MixProfile;
106bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee
107bd8388b4555645b3d29abc6a94c303638064d69awonjong.leetypedef enum
108bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee{
109bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee    MIX_DELIMITER_LENGTHPREFIX = 0,
110bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee    MIX_DELIMITER_ANNEXB
111bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee} MixDelimiterType;
112bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee
113bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee
114bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee#endif /*  __MIX_VIDEO_DEF_H__ */
115