You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
238 lines
7.7 KiB
238 lines
7.7 KiB
/****************************************************************************** |
|
* |
|
* Copyright (C) 2015 The Android Open Source Project |
|
* |
|
* Licensed under the Apache License, Version 2.0 (the "License"); |
|
* you may not use this file except in compliance with the License. |
|
* You may obtain a copy of the License at: |
|
* |
|
* http://www.apache.org/licenses/LICENSE-2.0 |
|
* |
|
* Unless required by applicable law or agreed to in writing, software |
|
* distributed under the License is distributed on an "AS IS" BASIS, |
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
|
* See the License for the specific language governing permissions and |
|
* limitations under the License. |
|
* |
|
***************************************************************************** |
|
* Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore |
|
*/ |
|
/** |
|
******************************************************************************* |
|
* @file |
|
* iv.h |
|
* |
|
* @brief |
|
* This file contains all the necessary structure and enumeration |
|
* definitions needed for the Application Program Interface(API) of the |
|
* Ittiam Video and Image codecs |
|
* |
|
* @author |
|
* 100239(RCY) |
|
* |
|
* @par List of Functions: |
|
* |
|
* @remarks |
|
* None |
|
* |
|
******************************************************************************* |
|
*/ |
|
|
|
|
|
#ifndef _IV_H |
|
#define _IV_H |
|
|
|
/*****************************************************************************/ |
|
/* Constant Macros */ |
|
/*****************************************************************************/ |
|
|
|
|
|
/*****************************************************************************/ |
|
/* Typedefs */ |
|
/*****************************************************************************/ |
|
|
|
/*****************************************************************************/ |
|
/* Enums */ |
|
/*****************************************************************************/ |
|
|
|
|
|
/* IV_API_CALL_STATUS_T:This is only to return the FAIL/PASS status to the */ |
|
/* application for the current API call */ |
|
|
|
typedef enum { |
|
IV_STATUS_NA = 0x7FFFFFFF, |
|
IV_SUCCESS = 0x0, |
|
IV_FAIL = 0x1, |
|
}IV_API_CALL_STATUS_T; |
|
|
|
|
|
/* IV_COLOR_FORMAT_T: This enumeration lists all the color formats which */ |
|
/* finds usage in video/image codecs */ |
|
|
|
typedef enum { |
|
IV_CHROMA_NA = 0x7FFFFFFF, |
|
IV_YUV_420P = 0x1, |
|
IV_YUV_422P = 0x2, |
|
IV_420_UV_INTL = 0x3, |
|
IV_YUV_422IBE = 0x4, |
|
IV_YUV_422ILE = 0x5, |
|
IV_YUV_444P = 0x6, |
|
IV_YUV_411P = 0x7, |
|
IV_GRAY = 0x8, |
|
IV_RGB_565 = 0x9, |
|
IV_RGB_24 = 0xa, |
|
IV_YUV_420SP_UV = 0xb, |
|
IV_YUV_420SP_VU = 0xc, |
|
IV_RGBA_8888 = 0xd |
|
}IV_COLOR_FORMAT_T; |
|
|
|
/* IV_PICTURE_CODING_TYPE_T: VOP/Frame coding type Enumeration */ |
|
|
|
typedef enum { |
|
IV_NA_FRAME = 0x7FFFFFFF, |
|
IV_I_FRAME = 0x0, |
|
IV_P_FRAME = 0x1, |
|
IV_B_FRAME = 0x2, |
|
IV_IDR_FRAME = 0x3, |
|
IV_II_FRAME = 0x4, |
|
IV_IP_FRAME = 0x5, |
|
IV_IB_FRAME = 0x6, |
|
IV_PI_FRAME = 0x7, |
|
IV_PP_FRAME = 0x8, |
|
IV_PB_FRAME = 0x9, |
|
IV_BI_FRAME = 0xa, |
|
IV_BP_FRAME = 0xb, |
|
IV_BB_FRAME = 0xc, |
|
IV_MBAFF_I_FRAME = 0xd, |
|
IV_MBAFF_P_FRAME = 0xe, |
|
IV_MBAFF_B_FRAME = 0xf, |
|
IV_MBAFF_IDR_FRAME = 0x10, |
|
IV_NOT_CODED_FRAME = 0x11, |
|
IV_FRAMETYPE_DEFAULT = IV_I_FRAME |
|
}IV_PICTURE_CODING_TYPE_T; |
|
|
|
/* IV_FLD_TYPE_T: field type Enumeration */ |
|
|
|
typedef enum { |
|
IV_NA_FLD = 0x7FFFFFFF, |
|
IV_TOP_FLD = 0x0, |
|
IV_BOT_FLD = 0x1, |
|
IV_FLD_TYPE_DEFAULT = IV_TOP_FLD |
|
}IV_FLD_TYPE_T; |
|
|
|
/* IV_CONTENT_TYPE_T: Video content type */ |
|
|
|
typedef enum { |
|
IV_CONTENTTYPE_NA = 0x7FFFFFFF, |
|
IV_PROGRESSIVE = 0x0, |
|
IV_INTERLACED = 0x1, |
|
IV_PROGRESSIVE_FRAME = 0x2, |
|
IV_INTERLACED_FRAME = 0x3, |
|
IV_INTERLACED_TOPFIELD = 0x4, |
|
IV_INTERLACED_BOTTOMFIELD = 0x5, |
|
IV_CONTENTTYPE_DEFAULT = IV_PROGRESSIVE, |
|
}IV_CONTENT_TYPE_T; |
|
|
|
/* IV_API_COMMAND_TYPE_T:API command type */ |
|
typedef enum { |
|
IV_CMD_NA = 0x7FFFFFFF, |
|
IV_CMD_DUMMY_ELEMENT = 0x4, |
|
}IV_API_COMMAND_TYPE_T; |
|
|
|
/*****************************************************************************/ |
|
/* Structure */ |
|
/*****************************************************************************/ |
|
|
|
/* IV_OBJ_T: This structure defines the handle for the codec instance */ |
|
|
|
typedef struct { |
|
/** |
|
* u4_size of the structure |
|
*/ |
|
UWORD32 u4_size; |
|
|
|
/** |
|
* Pointer to the API function pointer table of the codec |
|
*/ |
|
void *pv_fxns; |
|
|
|
/** |
|
* Pointer to the handle of the codec |
|
*/ |
|
void *pv_codec_handle; |
|
}iv_obj_t; |
|
|
|
|
|
/* IV_YUV_BUF_T: This structure defines attributes for the yuv buffer */ |
|
|
|
typedef struct { |
|
/** |
|
* u4_size of the structure |
|
*/ |
|
UWORD32 u4_size; |
|
|
|
/** |
|
* Pointer to Luma (Y) Buffer |
|
*/ |
|
|
|
void *pv_y_buf; |
|
/** |
|
* Pointer to Chroma (Cb) Buffer |
|
*/ |
|
void *pv_u_buf; |
|
|
|
/** |
|
* Pointer to Chroma (Cr) Buffer |
|
*/ |
|
void *pv_v_buf; |
|
|
|
/** |
|
* Width of the Luma (Y) Buffer |
|
*/ |
|
UWORD32 u4_y_wd; |
|
|
|
/** |
|
* Height of the Luma (Y) Buffer |
|
*/ |
|
UWORD32 u4_y_ht; |
|
|
|
/** |
|
* Stride/Pitch of the Luma (Y) Buffer |
|
*/ |
|
UWORD32 u4_y_strd; |
|
|
|
/** |
|
* Width of the Chroma (Cb) Buffer |
|
*/ |
|
UWORD32 u4_u_wd; |
|
|
|
/** |
|
* Height of the Chroma (Cb) Buffer |
|
*/ |
|
UWORD32 u4_u_ht; |
|
|
|
/** |
|
* Stride/Pitch of the Chroma (Cb) Buffer |
|
*/ |
|
UWORD32 u4_u_strd; |
|
|
|
/** |
|
* Width of the Chroma (Cr) Buffer |
|
*/ |
|
UWORD32 u4_v_wd; |
|
|
|
/** |
|
* Height of the Chroma (Cr) Buffer |
|
*/ |
|
UWORD32 u4_v_ht; |
|
|
|
/** |
|
* Stride/Pitch of the Chroma (Cr) Buffer |
|
*/ |
|
UWORD32 u4_v_strd; |
|
}iv_yuv_buf_t; |
|
|
|
|
|
|
|
#endif /* _IV_H */ |
|
|
|
|