1bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee/* 2bd8388b4555645b3d29abc6a94c303638064d69awonjong.leeINTEL CONFIDENTIAL 3bd8388b4555645b3d29abc6a94c303638064d69awonjong.leeCopyright 2009 Intel Corporation All Rights Reserved. 4bd8388b4555645b3d29abc6a94c303638064d69awonjong.leeThe 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.leeNo 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_VIDEOCONFIGPARAMSENC_H264_H__ 10bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee#define __MIX_VIDEOCONFIGPARAMSENC_H264_H__ 11bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee 12bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee#include "mixvideoconfigparamsenc.h" 13bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee#include "mixvideodef.h" 14bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee 15bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee/** 16bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee* MIX_TYPE_VIDEOCONFIGPARAMSENC_H264: 17bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee* 18bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee* Get type of class. 19bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee*/ 20bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee#define MIX_TYPE_VIDEOCONFIGPARAMSENC_H264 (mix_videoconfigparamsenc_h264_get_type ()) 21bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee 22bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee/** 23bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee* MIX_VIDEOCONFIGPARAMSENC_H264: 24bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee* @obj: object to be type-casted. 25bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee*/ 26bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee#define MIX_VIDEOCONFIGPARAMSENC_H264(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MIX_TYPE_VIDEOCONFIGPARAMSENC_H264, MixVideoConfigParamsEncH264)) 27bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee 28bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee/** 29bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee* MIX_IS_VIDEOCONFIGPARAMSENC_H264: 30bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee* @obj: an object. 31bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee* 32bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee* Checks if the given object is an instance of #MixVideoConfigParamsEncH264 33bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee*/ 34bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee#define MIX_IS_VIDEOCONFIGPARAMSENC_H264(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MIX_TYPE_VIDEOCONFIGPARAMSENC_H264)) 35bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee 36bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee/** 37bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee* MIX_VIDEOCONFIGPARAMSENC_H264_CLASS: 38bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee* @klass: class to be type-casted. 39bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee*/ 40bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee#define MIX_VIDEOCONFIGPARAMSENC_H264_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), MIX_TYPE_VIDEOCONFIGPARAMSENC_H264, MixVideoConfigParamsEncH264Class)) 41bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee 42bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee/** 43bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee* MIX_IS_VIDEOCONFIGPARAMSENC_H264_CLASS: 44bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee* @klass: a class. 45bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee* 46bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee* Checks if the given class is #MixVideoConfigParamsEncH264Class 47bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee*/ 48bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee#define MIX_IS_VIDEOCONFIGPARAMSENC_H264_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), MIX_TYPE_VIDEOCONFIGPARAMSENC_H264)) 49bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee 50bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee/** 51bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee* MIX_VIDEOCONFIGPARAMSENC_H264_GET_CLASS: 52bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee* @obj: a #MixParams object. 53bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee* 54bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee* Get the class instance of the object. 55bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee*/ 56bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee#define MIX_VIDEOCONFIGPARAMSENC_H264_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), MIX_TYPE_VIDEOCONFIGPARAMSENC_H264, MixVideoConfigParamsEncH264Class)) 57bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee 58bd8388b4555645b3d29abc6a94c303638064d69awonjong.leetypedef struct _MixVideoConfigParamsEncH264 MixVideoConfigParamsEncH264; 59bd8388b4555645b3d29abc6a94c303638064d69awonjong.leetypedef struct _MixVideoConfigParamsEncH264Class MixVideoConfigParamsEncH264Class; 60bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee 61bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee/** 62bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee* MixVideoConfigParamsEncH264: 63bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee* 64bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee* MI-X VideoConfig Parameter object 65bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee*/ 66bd8388b4555645b3d29abc6a94c303638064d69awonjong.leestruct _MixVideoConfigParamsEncH264 67bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee{ 68bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee /*< public > */ 69bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee MixVideoConfigParamsEnc parent; 70bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee 71bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee /*< public > */ 72bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee 73bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee /* TODO: Add H.264 configuration paramters */ 74bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee guint basic_unit_size; 75bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee guint slice_num; 76bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee guint8 disable_deblocking_filter_idc; 77bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee 78bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee MixDelimiterType delimiter_type; 79bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee 80bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee void *reserved1; 81bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee void *reserved2; 82bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee void *reserved3; 83bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee void *reserved4; 84bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee}; 85bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee 86bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee/** 87bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee* MixVideoConfigParamsEncH264Class: 88bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee* 89bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee* MI-X VideoConfig object class 90bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee*/ 91bd8388b4555645b3d29abc6a94c303638064d69awonjong.leestruct _MixVideoConfigParamsEncH264Class 92bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee{ 93bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee /*< public > */ 94bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee MixVideoConfigParamsEncClass parent_class; 95bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee 96bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee /* class members */ 97bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee}; 98bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee 99bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee/** 100bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee* mix_videoconfigparamsenc_h264_get_type: 101bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee* @returns: type 102bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee* 103bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee* Get the type of object. 104bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee*/ 105bd8388b4555645b3d29abc6a94c303638064d69awonjong.leeGType mix_videoconfigparamsenc_h264_get_type (void); 106bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee 107bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee/** 108bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee* mix_videoconfigparamsenc_h264_new: 109bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee* @returns: A newly allocated instance of #MixVideoConfigParamsEncH264 110bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee* 111bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee* Use this method to create new instance of #MixVideoConfigParamsEncH264 112bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee*/ 113bd8388b4555645b3d29abc6a94c303638064d69awonjong.leeMixVideoConfigParamsEncH264 *mix_videoconfigparamsenc_h264_new (void); 114bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee/** 115bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee* mix_videoconfigparamsenc_h264_ref: 116bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee* @mix: object to add reference 117bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee* @returns: the MixVideoConfigParamsEncH264 instance where reference count has been increased. 118bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee* 119bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee* Add reference count. 120bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee*/ 121bd8388b4555645b3d29abc6a94c303638064d69awonjong.leeMixVideoConfigParamsEncH264 122bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * mix_videoconfigparamsenc_h264_ref (MixVideoConfigParamsEncH264 * mix); 123bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee 124bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee/** 125bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee* mix_videoconfigparamsenc_h264_unref: 126bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee* @obj: object to unref. 127bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee* 128bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee* Decrement reference count of the object. 129bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee*/ 130bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee#define mix_videoconfigparamsenc_h264_unref(obj) mix_params_unref(MIX_PARAMS(obj)) 131bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee 132bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee/* Class Methods */ 133bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee 134bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee/* TODO: Add getters and setters for other properties */ 135bd8388b4555645b3d29abc6a94c303638064d69awonjong.leeMIX_RESULT mix_videoconfigparamsenc_h264_set_bus (MixVideoConfigParamsEncH264 * obj, 136bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee guint basic_unit_size); 137bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee 138bd8388b4555645b3d29abc6a94c303638064d69awonjong.leeMIX_RESULT mix_videoconfigparamsenc_h264_get_bus (MixVideoConfigParamsEncH264 * obj, 139bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee guint * basic_unit_size); 140bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee 141bd8388b4555645b3d29abc6a94c303638064d69awonjong.leeMIX_RESULT mix_videoconfigparamsenc_h264_set_dlk (MixVideoConfigParamsEncH264 * obj, 142bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee guint disable_deblocking_filter_idc); 143bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee 144bd8388b4555645b3d29abc6a94c303638064d69awonjong.leeMIX_RESULT mix_videoconfigparamsenc_h264_get_dlk (MixVideoConfigParamsEncH264 * obj, 145bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee guint * disable_deblocking_filter_idc); 146bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee 147bd8388b4555645b3d29abc6a94c303638064d69awonjong.leeMIX_RESULT mix_videoconfigparamsenc_h264_set_slice_num(MixVideoConfigParamsEncH264 * obj, 148bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee guint slice_num); 149bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee 150bd8388b4555645b3d29abc6a94c303638064d69awonjong.leeMIX_RESULT mix_videoconfigparamsenc_h264_get_slice_num(MixVideoConfigParamsEncH264 * obj, 151bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee guint * slice_num); 152bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee 153bd8388b4555645b3d29abc6a94c303638064d69awonjong.leeMIX_RESULT mix_videoconfigparamsenc_h264_set_delimiter_type (MixVideoConfigParamsEncH264 * obj, 154bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee MixDelimiterType delimiter_type); 155bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee 156bd8388b4555645b3d29abc6a94c303638064d69awonjong.leeMIX_RESULT mix_videoconfigparamsenc_h264_get_delimiter_type (MixVideoConfigParamsEncH264 * obj, 157bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee MixDelimiterType * delimiter_type); 158bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee 159bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee#endif /* __MIX_VIDEOCONFIGPARAMSENC_H264_H__ */ 160bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee 161