1*495ae853SAndroid Build Coastguard Worker /****************************************************************************** 2*495ae853SAndroid Build Coastguard Worker * 3*495ae853SAndroid Build Coastguard Worker * Copyright (C) 2015 The Android Open Source Project 4*495ae853SAndroid Build Coastguard Worker * 5*495ae853SAndroid Build Coastguard Worker * Licensed under the Apache License, Version 2.0 (the "License"); 6*495ae853SAndroid Build Coastguard Worker * you may not use this file except in compliance with the License. 7*495ae853SAndroid Build Coastguard Worker * You may obtain a copy of the License at: 8*495ae853SAndroid Build Coastguard Worker * 9*495ae853SAndroid Build Coastguard Worker * http://www.apache.org/licenses/LICENSE-2.0 10*495ae853SAndroid Build Coastguard Worker * 11*495ae853SAndroid Build Coastguard Worker * Unless required by applicable law or agreed to in writing, software 12*495ae853SAndroid Build Coastguard Worker * distributed under the License is distributed on an "AS IS" BASIS, 13*495ae853SAndroid Build Coastguard Worker * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14*495ae853SAndroid Build Coastguard Worker * See the License for the specific language governing permissions and 15*495ae853SAndroid Build Coastguard Worker * limitations under the License. 16*495ae853SAndroid Build Coastguard Worker * 17*495ae853SAndroid Build Coastguard Worker ***************************************************************************** 18*495ae853SAndroid Build Coastguard Worker * Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore 19*495ae853SAndroid Build Coastguard Worker */ 20*495ae853SAndroid Build Coastguard Worker #ifndef _IH264D_DEFS_H_ 21*495ae853SAndroid Build Coastguard Worker #define _IH264D_DEFS_H_ 22*495ae853SAndroid Build Coastguard Worker 23*495ae853SAndroid Build Coastguard Worker /** 24*495ae853SAndroid Build Coastguard Worker ************************************************************************ 25*495ae853SAndroid Build Coastguard Worker * \file ih264d_defs.h 26*495ae853SAndroid Build Coastguard Worker * 27*495ae853SAndroid Build Coastguard Worker * \brief 28*495ae853SAndroid Build Coastguard Worker * Type definitions used in the code 29*495ae853SAndroid Build Coastguard Worker * 30*495ae853SAndroid Build Coastguard Worker * \date 31*495ae853SAndroid Build Coastguard Worker * 19/11/2002 32*495ae853SAndroid Build Coastguard Worker * 33*495ae853SAndroid Build Coastguard Worker * \author Sriram Sethuraman 34*495ae853SAndroid Build Coastguard Worker * 35*495ae853SAndroid Build Coastguard Worker ************************************************************************ 36*495ae853SAndroid Build Coastguard Worker */ 37*495ae853SAndroid Build Coastguard Worker #include <stdint.h> 38*495ae853SAndroid Build Coastguard Worker 39*495ae853SAndroid Build Coastguard Worker #define H264_MAX_FRAME_WIDTH 4080 40*495ae853SAndroid Build Coastguard Worker #define H264_MAX_FRAME_HEIGHT 4080 41*495ae853SAndroid Build Coastguard Worker #define H264_MAX_FRAME_SIZE (4096 * 2048) 42*495ae853SAndroid Build Coastguard Worker 43*495ae853SAndroid Build Coastguard Worker #define H264_MIN_FRAME_WIDTH 16 44*495ae853SAndroid Build Coastguard Worker #define H264_MIN_FRAME_HEIGHT 16 45*495ae853SAndroid Build Coastguard Worker 46*495ae853SAndroid Build Coastguard Worker #define FMT_CONV_NUM_ROWS 16 47*495ae853SAndroid Build Coastguard Worker 48*495ae853SAndroid Build Coastguard Worker /** Decoder currently has an additional latency of 2 pictures when 49*495ae853SAndroid Build Coastguard Worker * returning output for display 50*495ae853SAndroid Build Coastguard Worker */ 51*495ae853SAndroid Build Coastguard Worker #define DISPLAY_LATENCY 2 52*495ae853SAndroid Build Coastguard Worker 53*495ae853SAndroid Build Coastguard Worker /** Bit manipulation macros */ 54*495ae853SAndroid Build Coastguard Worker #define CHECKBIT(a,i) ((a) & (1 << i)) 55*495ae853SAndroid Build Coastguard Worker #define CLEARBIT(a,i) ((a) &= ~(1 << i)) 56*495ae853SAndroid Build Coastguard Worker 57*495ae853SAndroid Build Coastguard Worker /** Macro to check if a number lies in the valid integer range */ 58*495ae853SAndroid Build Coastguard Worker #define IS_OUT_OF_RANGE_S32(a) (((a) < INT32_MIN) || ((a) > INT32_MAX)) 59*495ae853SAndroid Build Coastguard Worker 60*495ae853SAndroid Build Coastguard Worker /** Macro to convert a integer to a boolean value */ 61*495ae853SAndroid Build Coastguard Worker #define BOOLEAN(x) (!!(x)) 62*495ae853SAndroid Build Coastguard Worker 63*495ae853SAndroid Build Coastguard Worker /** Arithmetic operations */ 64*495ae853SAndroid Build Coastguard Worker #define MOD(x,y) ((x)%(y)) 65*495ae853SAndroid Build Coastguard Worker #define DIV(x,y) ((x)/(y)) 66*495ae853SAndroid Build Coastguard Worker #define MUL(x,y) ((x)*(y)) 67*495ae853SAndroid Build Coastguard Worker #define SIGN_POW2_DIV(x, y) (((x) < 0) ? (-((-(x)) >> (y))) : ((x) >> (y))) 68*495ae853SAndroid Build Coastguard Worker 69*495ae853SAndroid Build Coastguard Worker #define MB_ENABLE_FILTERING 0x00 70*495ae853SAndroid Build Coastguard Worker #define MB_DISABLE_FILTERING 0x01 71*495ae853SAndroid Build Coastguard Worker #define MB_DISABLE_TOP_EDGE 0x02 72*495ae853SAndroid Build Coastguard Worker #define MB_DISABLE_LEFT_EDGE 0x04 73*495ae853SAndroid Build Coastguard Worker 74*495ae853SAndroid Build Coastguard Worker /** Maximum number of reference pics */ 75*495ae853SAndroid Build Coastguard Worker #define MAX_REF_BUFS 32 76*495ae853SAndroid Build Coastguard Worker #define MAX_DISP_BUFS_NEW 64 77*495ae853SAndroid Build Coastguard Worker #define MAX_FRAMES 16 78*495ae853SAndroid Build Coastguard Worker 79*495ae853SAndroid Build Coastguard Worker #define INVALID_FRAME_NUM 0x0fffffff 80*495ae853SAndroid Build Coastguard Worker #define GAP_FRAME_NUM 0x1fffffff 81*495ae853SAndroid Build Coastguard Worker 82*495ae853SAndroid Build Coastguard Worker /** macros for reference picture lists, refIdx to POC mapping */ 83*495ae853SAndroid Build Coastguard Worker // 1 extra entry into reference picture lists for refIdx = -1. 84*495ae853SAndroid Build Coastguard Worker // this entry is always 0. this saves conditional checks in 85*495ae853SAndroid Build Coastguard Worker // FillBs modules. 86*495ae853SAndroid Build Coastguard Worker #define POC_LIST_L0_TO_L1_DIFF (( 2*MAX_FRAMES) + 1) 87*495ae853SAndroid Build Coastguard Worker #define POC_LIST_L0_TO_L1_DIFF_1 ((MAX_FRAMES) + 1) 88*495ae853SAndroid Build Coastguard Worker 89*495ae853SAndroid Build Coastguard Worker #define FRM_LIST_L0 0 //0 90*495ae853SAndroid Build Coastguard Worker #define FRM_LIST_L1 1 * POC_LIST_L0_TO_L1_DIFF//FRM_LIST_L0 + POC_LIST_L0_TO_L1_DIFF //0+33 //(1 * POC_LIST_L0_TO_L1_DIFF) 91*495ae853SAndroid Build Coastguard Worker #define TOP_LIST_FLD_L0 2 * POC_LIST_L0_TO_L1_DIFF//FRM_LIST_L1 + POC_LIST_L0_TO_L1_DIFF //0+33+33 //(2 * POC_LIST_L0_TO_L1_DIFF) 92*495ae853SAndroid Build Coastguard Worker #define TOP_LIST_FLD_L1 3 * POC_LIST_L0_TO_L1_DIFF//TOP_LIST_FLD_L0 + POC_LIST_L0_TO_L1_DIFF_1 //0+33+33+17 //(3 * POC_LIST_L0_TO_L1_DIFF) 93*495ae853SAndroid Build Coastguard Worker #define BOT_LIST_FLD_L0 4 * POC_LIST_L0_TO_L1_DIFF//TOP_LIST_FLD_L1 + POC_LIST_L0_TO_L1_DIFF_1 //0+33+33+17+17 94*495ae853SAndroid Build Coastguard Worker #define BOT_LIST_FLD_L1 5 * POC_LIST_L0_TO_L1_DIFF//BOT_LIST_FLD_L0 + POC_LIST_L0_TO_L1_DIFF_1 //0+33+33+17+17+17 95*495ae853SAndroid Build Coastguard Worker #define TOTAL_LIST_ENTRIES 6 * POC_LIST_L0_TO_L1_DIFF//BOT_LIST_FLD_L1 + POC_LIST_L0_TO_L1_DIFF_1 //0+33+33+17+17+17+17 96*495ae853SAndroid Build Coastguard Worker #define PAD_MV_BANK_ROW 64 97*495ae853SAndroid Build Coastguard Worker #define OFFSET_MV_BANK_ROW ((PAD_MV_BANK_ROW)>>1) 98*495ae853SAndroid Build Coastguard Worker #define PAD_PUC_CURNNZ 32 99*495ae853SAndroid Build Coastguard Worker #define OFFSET_PUC_CURNNZ (PAD_PUC_CURNNZ) 100*495ae853SAndroid Build Coastguard Worker #define PAD_MAP_IDX_POC (1) 101*495ae853SAndroid Build Coastguard Worker #define OFFSET_MAP_IDX_POC (1) 102*495ae853SAndroid Build Coastguard Worker 103*495ae853SAndroid Build Coastguard Worker #define OFFSET_MAP_IDX_POC (1) 104*495ae853SAndroid Build Coastguard Worker 105*495ae853SAndroid Build Coastguard Worker #define NAL_REF_IDC(nal_first_byte) ((nal_first_byte >> 5) & 0x3) 106*495ae853SAndroid Build Coastguard Worker #define NAL_FORBIDDEN_BIT(nal_first_byte) (nal_first_byte>>7) 107*495ae853SAndroid Build Coastguard Worker #define NAL_UNIT_TYPE(nal_first_byte) (nal_first_byte & 0x1F) 108*495ae853SAndroid Build Coastguard Worker 109*495ae853SAndroid Build Coastguard Worker #define INT_PIC_TYPE_I (0x00) 110*495ae853SAndroid Build Coastguard Worker 111*495ae853SAndroid Build Coastguard Worker #define YIELD_CNT_THRESHOLD 8 112*495ae853SAndroid Build Coastguard Worker 113*495ae853SAndroid Build Coastguard Worker 114*495ae853SAndroid Build Coastguard Worker #define OK 0 115*495ae853SAndroid Build Coastguard Worker #define END 1 116*495ae853SAndroid Build Coastguard Worker #define NOT_OK -1 117*495ae853SAndroid Build Coastguard Worker 118*495ae853SAndroid Build Coastguard Worker /* For 420SP */ 119*495ae853SAndroid Build Coastguard Worker #define YUV420SP_FACTOR 2 120*495ae853SAndroid Build Coastguard Worker 121*495ae853SAndroid Build Coastguard Worker /*To prevent buffer overflow access; in case the size of nal unit is 122*495ae853SAndroid Build Coastguard Worker * greater than the allocated buffer size*/ 123*495ae853SAndroid Build Coastguard Worker #define EXTRA_BS_OFFSET 16*16*2 124*495ae853SAndroid Build Coastguard Worker 125*495ae853SAndroid Build Coastguard Worker #define DECODED_SPS_MASK 1 126*495ae853SAndroid Build Coastguard Worker #define DECODED_PPS_MASK 2 127*495ae853SAndroid Build Coastguard Worker 128*495ae853SAndroid Build Coastguard Worker /** 129*495ae853SAndroid Build Coastguard Worker *************************************************************************** 130*495ae853SAndroid Build Coastguard Worker * Enum to hold various mem records being request 131*495ae853SAndroid Build Coastguard Worker **************************************************************************** 132*495ae853SAndroid Build Coastguard Worker */ 133*495ae853SAndroid Build Coastguard Worker enum 134*495ae853SAndroid Build Coastguard Worker { 135*495ae853SAndroid Build Coastguard Worker /** 136*495ae853SAndroid Build Coastguard Worker * Codec Object at API level 137*495ae853SAndroid Build Coastguard Worker */ 138*495ae853SAndroid Build Coastguard Worker MEM_REC_IV_OBJ, 139*495ae853SAndroid Build Coastguard Worker 140*495ae853SAndroid Build Coastguard Worker /** 141*495ae853SAndroid Build Coastguard Worker * Codec context 142*495ae853SAndroid Build Coastguard Worker */ 143*495ae853SAndroid Build Coastguard Worker MEM_REC_CODEC, 144*495ae853SAndroid Build Coastguard Worker 145*495ae853SAndroid Build Coastguard Worker /** 146*495ae853SAndroid Build Coastguard Worker * Bitstream buffer which holds emulation prevention removed bytes 147*495ae853SAndroid Build Coastguard Worker */ 148*495ae853SAndroid Build Coastguard Worker MEM_REC_BITSBUF, 149*495ae853SAndroid Build Coastguard Worker 150*495ae853SAndroid Build Coastguard Worker /** 151*495ae853SAndroid Build Coastguard Worker * Buffer to hold coeff data 152*495ae853SAndroid Build Coastguard Worker */ 153*495ae853SAndroid Build Coastguard Worker MEM_REC_COEFF_DATA, 154*495ae853SAndroid Build Coastguard Worker 155*495ae853SAndroid Build Coastguard Worker /** 156*495ae853SAndroid Build Coastguard Worker * Motion vector bank 157*495ae853SAndroid Build Coastguard Worker */ 158*495ae853SAndroid Build Coastguard Worker MEM_REC_MVBANK, 159*495ae853SAndroid Build Coastguard Worker 160*495ae853SAndroid Build Coastguard Worker /** 161*495ae853SAndroid Build Coastguard Worker * Holds mem records passed to the codec. 162*495ae853SAndroid Build Coastguard Worker */ 163*495ae853SAndroid Build Coastguard Worker MEM_REC_BACKUP, 164*495ae853SAndroid Build Coastguard Worker 165*495ae853SAndroid Build Coastguard Worker /** 166*495ae853SAndroid Build Coastguard Worker * Holds SPS 167*495ae853SAndroid Build Coastguard Worker */ 168*495ae853SAndroid Build Coastguard Worker MEM_REC_SPS, 169*495ae853SAndroid Build Coastguard Worker 170*495ae853SAndroid Build Coastguard Worker /** 171*495ae853SAndroid Build Coastguard Worker * Holds PPS 172*495ae853SAndroid Build Coastguard Worker */ 173*495ae853SAndroid Build Coastguard Worker MEM_REC_PPS, 174*495ae853SAndroid Build Coastguard Worker 175*495ae853SAndroid Build Coastguard Worker /** 176*495ae853SAndroid Build Coastguard Worker * Holds Slice Headers 177*495ae853SAndroid Build Coastguard Worker */ 178*495ae853SAndroid Build Coastguard Worker MEM_REC_SLICE_HDR, 179*495ae853SAndroid Build Coastguard Worker 180*495ae853SAndroid Build Coastguard Worker /** 181*495ae853SAndroid Build Coastguard Worker * Holds thread handles 182*495ae853SAndroid Build Coastguard Worker */ 183*495ae853SAndroid Build Coastguard Worker MEM_REC_THREAD_HANDLE, 184*495ae853SAndroid Build Coastguard Worker 185*495ae853SAndroid Build Coastguard Worker /** 186*495ae853SAndroid Build Coastguard Worker * Contains i4_status map indicating parse i4_status per MB basis 187*495ae853SAndroid Build Coastguard Worker */ 188*495ae853SAndroid Build Coastguard Worker MEM_REC_PARSE_MAP, 189*495ae853SAndroid Build Coastguard Worker 190*495ae853SAndroid Build Coastguard Worker /** 191*495ae853SAndroid Build Coastguard Worker * Contains i4_status map indicating processing i4_status per MB basis 192*495ae853SAndroid Build Coastguard Worker */ 193*495ae853SAndroid Build Coastguard Worker MEM_REC_PROC_MAP, 194*495ae853SAndroid Build Coastguard Worker 195*495ae853SAndroid Build Coastguard Worker /** 196*495ae853SAndroid Build Coastguard Worker * Contains slice number info for each MB 197*495ae853SAndroid Build Coastguard Worker */ 198*495ae853SAndroid Build Coastguard Worker 199*495ae853SAndroid Build Coastguard Worker MEM_REC_SLICE_NUM_MAP, 200*495ae853SAndroid Build Coastguard Worker 201*495ae853SAndroid Build Coastguard Worker /** 202*495ae853SAndroid Build Coastguard Worker * Holds dpb manager context 203*495ae853SAndroid Build Coastguard Worker */ 204*495ae853SAndroid Build Coastguard Worker MEM_REC_DPB_MGR, 205*495ae853SAndroid Build Coastguard Worker 206*495ae853SAndroid Build Coastguard Worker /** 207*495ae853SAndroid Build Coastguard Worker * Holds neighbors' info 208*495ae853SAndroid Build Coastguard Worker */ 209*495ae853SAndroid Build Coastguard Worker MEM_REC_NEIGHBOR_INFO, 210*495ae853SAndroid Build Coastguard Worker 211*495ae853SAndroid Build Coastguard Worker /** 212*495ae853SAndroid Build Coastguard Worker * Holds neighbors' info 213*495ae853SAndroid Build Coastguard Worker */ 214*495ae853SAndroid Build Coastguard Worker MEM_REC_PRED_INFO, 215*495ae853SAndroid Build Coastguard Worker 216*495ae853SAndroid Build Coastguard Worker 217*495ae853SAndroid Build Coastguard Worker /** 218*495ae853SAndroid Build Coastguard Worker * Holds inter pred inforamation on packed format info 219*495ae853SAndroid Build Coastguard Worker */ 220*495ae853SAndroid Build Coastguard Worker MEM_REC_PRED_INFO_PKD, 221*495ae853SAndroid Build Coastguard Worker /** 222*495ae853SAndroid Build Coastguard Worker * Holds neighbors' info 223*495ae853SAndroid Build Coastguard Worker */ 224*495ae853SAndroid Build Coastguard Worker MEM_REC_MB_INFO, 225*495ae853SAndroid Build Coastguard Worker 226*495ae853SAndroid Build Coastguard Worker /** 227*495ae853SAndroid Build Coastguard Worker * Holds deblock Mb info structure frame level) 228*495ae853SAndroid Build Coastguard Worker */ 229*495ae853SAndroid Build Coastguard Worker MEM_REC_DEBLK_MB_INFO, 230*495ae853SAndroid Build Coastguard Worker 231*495ae853SAndroid Build Coastguard Worker /** 232*495ae853SAndroid Build Coastguard Worker * Holds reference picture buffers in non-shared mode 233*495ae853SAndroid Build Coastguard Worker */ 234*495ae853SAndroid Build Coastguard Worker MEM_REC_REF_PIC, 235*495ae853SAndroid Build Coastguard Worker 236*495ae853SAndroid Build Coastguard Worker /** 237*495ae853SAndroid Build Coastguard Worker * Holds some misc intermediate_buffers 238*495ae853SAndroid Build Coastguard Worker */ 239*495ae853SAndroid Build Coastguard Worker MEM_REC_EXTRA_MEM, 240*495ae853SAndroid Build Coastguard Worker 241*495ae853SAndroid Build Coastguard Worker /** 242*495ae853SAndroid Build Coastguard Worker * Holds some misc intermediate_buffers 243*495ae853SAndroid Build Coastguard Worker */ 244*495ae853SAndroid Build Coastguard Worker MEM_REC_INTERNAL_SCRATCH, 245*495ae853SAndroid Build Coastguard Worker 246*495ae853SAndroid Build Coastguard Worker /** 247*495ae853SAndroid Build Coastguard Worker * Holds some misc intermediate_buffers 248*495ae853SAndroid Build Coastguard Worker */ 249*495ae853SAndroid Build Coastguard Worker MEM_REC_INTERNAL_PERSIST, 250*495ae853SAndroid Build Coastguard Worker 251*495ae853SAndroid Build Coastguard Worker /* holds structures related to picture buffer manager*/ 252*495ae853SAndroid Build Coastguard Worker MEM_REC_PIC_BUF_MGR, 253*495ae853SAndroid Build Coastguard Worker 254*495ae853SAndroid Build Coastguard Worker /*holds structure related to MV buffer manager*/ 255*495ae853SAndroid Build Coastguard Worker MEM_REC_MV_BUF_MGR, 256*495ae853SAndroid Build Coastguard Worker 257*495ae853SAndroid Build Coastguard Worker /** 258*495ae853SAndroid Build Coastguard Worker * Place holder to compute number of memory records. 259*495ae853SAndroid Build Coastguard Worker */ 260*495ae853SAndroid Build Coastguard Worker MEM_REC_CNT 261*495ae853SAndroid Build Coastguard Worker /* Do not add anything below */ 262*495ae853SAndroid Build Coastguard Worker }; 263*495ae853SAndroid Build Coastguard Worker 264*495ae853SAndroid Build Coastguard Worker #ifdef DEBLOCK_THREAD 265*495ae853SAndroid Build Coastguard Worker #define H264_MUTEX_LOCK(lock) ithread_mutex_lock(lock) 266*495ae853SAndroid Build Coastguard Worker #define H264_MUTEX_UNLOCK(lock) ithread_mutex_unlock(lock) 267*495ae853SAndroid Build Coastguard Worker #else //DEBLOCK_THREAD 268*495ae853SAndroid Build Coastguard Worker #define H264_MUTEX_LOCK(lock) 269*495ae853SAndroid Build Coastguard Worker #define H264_MUTEX_UNLOCK(lock) 270*495ae853SAndroid Build Coastguard Worker 271*495ae853SAndroid Build Coastguard Worker #define DEBUG_THREADS_PRINTF(...) 272*495ae853SAndroid Build Coastguard Worker #define DEBUG_PERF_PRINTF(...) 273*495ae853SAndroid Build Coastguard Worker 274*495ae853SAndroid Build Coastguard Worker /** Profile Types*/ 275*495ae853SAndroid Build Coastguard Worker #define BASE_PROFILE_IDC 66 276*495ae853SAndroid Build Coastguard Worker #define MAIN_PROFILE_IDC 77 277*495ae853SAndroid Build Coastguard Worker #define EXTENDED_PROFILE_IDC 88 278*495ae853SAndroid Build Coastguard Worker #define HIGH_PROFILE_IDC 100 279*495ae853SAndroid Build Coastguard Worker 280*495ae853SAndroid Build Coastguard Worker 281*495ae853SAndroid Build Coastguard Worker #define MB_SIZE 16 282*495ae853SAndroid Build Coastguard Worker #define BLK8x8SIZE 8 283*495ae853SAndroid Build Coastguard Worker #define BLK_SIZE 4 284*495ae853SAndroid Build Coastguard Worker #define NUM_BLKS_PER_MB 24 285*495ae853SAndroid Build Coastguard Worker #define NUM_LUM_BLKS_PER_MB 16 286*495ae853SAndroid Build Coastguard Worker #define LUM_BLK 0 287*495ae853SAndroid Build Coastguard Worker #define CHROM_BLK 1 288*495ae853SAndroid Build Coastguard Worker #define NUM_PELS_IN_MB 64 289*495ae853SAndroid Build Coastguard Worker 290*495ae853SAndroid Build Coastguard Worker /* Level Types */ 291*495ae853SAndroid Build Coastguard Worker #define H264_LEVEL_1_0 10 292*495ae853SAndroid Build Coastguard Worker #define H264_LEVEL_1_1 11 293*495ae853SAndroid Build Coastguard Worker #define H264_LEVEL_1_2 12 294*495ae853SAndroid Build Coastguard Worker #define H264_LEVEL_1_3 13 295*495ae853SAndroid Build Coastguard Worker #define H264_LEVEL_2_0 20 296*495ae853SAndroid Build Coastguard Worker #define H264_LEVEL_2_1 21 297*495ae853SAndroid Build Coastguard Worker #define H264_LEVEL_2_2 22 298*495ae853SAndroid Build Coastguard Worker #define H264_LEVEL_3_0 30 299*495ae853SAndroid Build Coastguard Worker #define H264_LEVEL_3_1 31 300*495ae853SAndroid Build Coastguard Worker #define H264_LEVEL_3_2 32 301*495ae853SAndroid Build Coastguard Worker #define H264_LEVEL_4_0 40 302*495ae853SAndroid Build Coastguard Worker #define H264_LEVEL_4_1 41 303*495ae853SAndroid Build Coastguard Worker #define H264_LEVEL_4_2 42 304*495ae853SAndroid Build Coastguard Worker #define H264_LEVEL_5_0 50 305*495ae853SAndroid Build Coastguard Worker #define H264_LEVEL_5_1 51 306*495ae853SAndroid Build Coastguard Worker 307*495ae853SAndroid Build Coastguard Worker #define MAX_MBS_LEVEL_51 36864 308*495ae853SAndroid Build Coastguard Worker #define MAX_MBS_LEVEL_50 22080 309*495ae853SAndroid Build Coastguard Worker #define MAX_MBS_LEVEL_42 8704 310*495ae853SAndroid Build Coastguard Worker #define MAX_MBS_LEVEL_41 8192 311*495ae853SAndroid Build Coastguard Worker #define MAX_MBS_LEVEL_40 8192 312*495ae853SAndroid Build Coastguard Worker #define MAX_MBS_LEVEL_32 5120 313*495ae853SAndroid Build Coastguard Worker #define MAX_MBS_LEVEL_31 3600 314*495ae853SAndroid Build Coastguard Worker #define MAX_MBS_LEVEL_30 1620 315*495ae853SAndroid Build Coastguard Worker #define MAX_MBS_LEVEL_22 1620 316*495ae853SAndroid Build Coastguard Worker #define MAX_MBS_LEVEL_21 792 317*495ae853SAndroid Build Coastguard Worker #define MAX_MBS_LEVEL_20 396 318*495ae853SAndroid Build Coastguard Worker #define MAX_MBS_LEVEL_13 396 319*495ae853SAndroid Build Coastguard Worker #define MAX_MBS_LEVEL_12 396 320*495ae853SAndroid Build Coastguard Worker #define MAX_MBS_LEVEL_11 396 321*495ae853SAndroid Build Coastguard Worker #define MAX_MBS_LEVEL_10 99 322*495ae853SAndroid Build Coastguard Worker 323*495ae853SAndroid Build Coastguard Worker /** NAL Types */ 324*495ae853SAndroid Build Coastguard Worker #define SLICE_NAL 1 325*495ae853SAndroid Build Coastguard Worker #define SLICE_DATA_PARTITION_A_NAL 2 326*495ae853SAndroid Build Coastguard Worker #define SLICE_DATA_PARTITION_B_NAL 3 327*495ae853SAndroid Build Coastguard Worker #define SLICE_DATA_PARTITION_C_NAL 4 328*495ae853SAndroid Build Coastguard Worker #define IDR_SLICE_NAL 5 329*495ae853SAndroid Build Coastguard Worker #define SEI_NAL 6 330*495ae853SAndroid Build Coastguard Worker #define SEQ_PARAM_NAL 7 331*495ae853SAndroid Build Coastguard Worker #define PIC_PARAM_NAL 8 332*495ae853SAndroid Build Coastguard Worker #define ACCESS_UNIT_DELIMITER_RBSP 9 333*495ae853SAndroid Build Coastguard Worker #define END_OF_SEQ_RBSP 10 334*495ae853SAndroid Build Coastguard Worker #define END_OF_STREAM_RBSP 11 335*495ae853SAndroid Build Coastguard Worker #define FILLER_DATA_NAL 12 336*495ae853SAndroid Build Coastguard Worker 337*495ae853SAndroid Build Coastguard Worker /** Entropy coding modes */ 338*495ae853SAndroid Build Coastguard Worker #define CAVLC 0 339*495ae853SAndroid Build Coastguard Worker #define CABAC 1 340*495ae853SAndroid Build Coastguard Worker 341*495ae853SAndroid Build Coastguard Worker /** Picture Types */ 342*495ae853SAndroid Build Coastguard Worker #define I_PIC 0 343*495ae853SAndroid Build Coastguard Worker #define IP_PIC 1 344*495ae853SAndroid Build Coastguard Worker #define IPB_PIC 2 345*495ae853SAndroid Build Coastguard Worker #define SI_PIC 3 346*495ae853SAndroid Build Coastguard Worker #define SIP_PIC 4 347*495ae853SAndroid Build Coastguard Worker #define ISI_PIC 5 348*495ae853SAndroid Build Coastguard Worker #define ISI_PSP_PIC 6 349*495ae853SAndroid Build Coastguard Worker #define ALL_PIC 7 350*495ae853SAndroid Build Coastguard Worker 351*495ae853SAndroid Build Coastguard Worker /* Frame or field picture type */ 352*495ae853SAndroid Build Coastguard Worker #define FRM_PIC 0x00 353*495ae853SAndroid Build Coastguard Worker #define TOP_FLD 0x01 354*495ae853SAndroid Build Coastguard Worker #define BOT_FLD 0x02 355*495ae853SAndroid Build Coastguard Worker #define COMP_FLD_PAIR 0x03 /* TOP_FLD | BOT_FLD */ 356*495ae853SAndroid Build Coastguard Worker #define AFRM_PIC 0x04 357*495ae853SAndroid Build Coastguard Worker #define TOP_REF 0x08 358*495ae853SAndroid Build Coastguard Worker #define BOT_REF 0x10 359*495ae853SAndroid Build Coastguard Worker #define PIC_MASK 0x03 360*495ae853SAndroid Build Coastguard Worker #define NON_EXISTING 0xff 361*495ae853SAndroid Build Coastguard Worker 362*495ae853SAndroid Build Coastguard Worker /* field picture type for display */ 363*495ae853SAndroid Build Coastguard Worker #define DISP_TOP_FLD 0x00 364*495ae853SAndroid Build Coastguard Worker #define DISP_BOT_FLD 0x01 365*495ae853SAndroid Build Coastguard Worker 366*495ae853SAndroid Build Coastguard Worker /** Slice Types */ 367*495ae853SAndroid Build Coastguard Worker #define NA_SLICE -1 368*495ae853SAndroid Build Coastguard Worker #define P_SLICE 0 369*495ae853SAndroid Build Coastguard Worker #define B_SLICE 1 370*495ae853SAndroid Build Coastguard Worker #define I_SLICE 2 371*495ae853SAndroid Build Coastguard Worker #define SP_SLICE 3 372*495ae853SAndroid Build Coastguard Worker #define SI_SLICE 4 373*495ae853SAndroid Build Coastguard Worker 374*495ae853SAndroid Build Coastguard Worker /* Definition for picture skip */ 375*495ae853SAndroid Build Coastguard Worker #define SKIP_NONE (0x0) 376*495ae853SAndroid Build Coastguard Worker #define I_SLC_BIT (0x1) 377*495ae853SAndroid Build Coastguard Worker #define P_SLC_BIT (0x2) 378*495ae853SAndroid Build Coastguard Worker #define B_SLC_BIT (0x4) 379*495ae853SAndroid Build Coastguard Worker 380*495ae853SAndroid Build Coastguard Worker /** Macros used for Deblocking */ 381*495ae853SAndroid Build Coastguard Worker #define D_INTER_MB 0 382*495ae853SAndroid Build Coastguard Worker #define D_INTRA_MB 1 383*495ae853SAndroid Build Coastguard Worker #define D_PRED_NON_16x16 2 384*495ae853SAndroid Build Coastguard Worker #define D_B_SLICE 4 385*495ae853SAndroid Build Coastguard Worker #define D_B_SUBMB 6 //D_B_SLICE | D_PRED_NON_16x16 | D_INTER_MB 386*495ae853SAndroid Build Coastguard Worker #define D_FLD_MB 0x80 387*495ae853SAndroid Build Coastguard Worker 388*495ae853SAndroid Build Coastguard Worker /** Macros for Cabac checks */ 389*495ae853SAndroid Build Coastguard Worker /** MbType */ 390*495ae853SAndroid Build Coastguard Worker /** |x|x|I_PCM|SKIP| 391*495ae853SAndroid Build Coastguard Worker |S|Inter/Intra|P/B|NON-BD16x16/BD16x16,I16x16/I4x4| */ 392*495ae853SAndroid Build Coastguard Worker #define CAB_INTRA 0x00 /* 0000 00xx */ 393*495ae853SAndroid Build Coastguard Worker #define CAB_INTER 0x04 /* 0000 01xx */ 394*495ae853SAndroid Build Coastguard Worker #define CAB_I4x4 0x00 /* 0000 00x0 */ 395*495ae853SAndroid Build Coastguard Worker #define CAB_I16x16 0x01 /* 0000 00x1 */ 396*495ae853SAndroid Build Coastguard Worker #define CAB_BD16x16 0x04 /* 0000 0100 */ 397*495ae853SAndroid Build Coastguard Worker #define CAB_NON_BD16x16 0x05 /* 0000 0101 */ 398*495ae853SAndroid Build Coastguard Worker #define CAB_P 0x07 /* 0000 0111 */ 399*495ae853SAndroid Build Coastguard Worker #define CAB_SI4x4 0x08 /* 0000 10x0 */ 400*495ae853SAndroid Build Coastguard Worker #define CAB_SI16x16 0x09 /* 0000 10x1 */ 401*495ae853SAndroid Build Coastguard Worker #define CAB_SKIP_MASK 0x10 /* 0001 0000 */ 402*495ae853SAndroid Build Coastguard Worker #define CAB_SKIP 0x10 /* 0001 0000 */ 403*495ae853SAndroid Build Coastguard Worker #define CAB_P_SKIP 0x16 /* 0001 x11x */ 404*495ae853SAndroid Build Coastguard Worker #define CAB_B_SKIP 0x14 /* 0001 x100 */ 405*495ae853SAndroid Build Coastguard Worker #define CAB_BD16x16_MASK 0x07 /* 0000 0111 */ 406*495ae853SAndroid Build Coastguard Worker #define CAB_INTRA_MASK 0x04 /* 0000 0100 */ 407*495ae853SAndroid Build Coastguard Worker #define CAB_I_PCM 0x20 /* 001x xxxx */ 408*495ae853SAndroid Build Coastguard Worker 409*495ae853SAndroid Build Coastguard Worker /**< Binarization types for CABAC */ 410*495ae853SAndroid Build Coastguard Worker /* |x|x|x|x|MSB_FIRST_FLC|FLC|TUNARY|UNARY| */ 411*495ae853SAndroid Build Coastguard Worker #define UNARY 1 412*495ae853SAndroid Build Coastguard Worker #define TUNARY 2 413*495ae853SAndroid Build Coastguard Worker #define FLC 4 414*495ae853SAndroid Build Coastguard Worker #define MSB_FIRST_FLC 12 415*495ae853SAndroid Build Coastguard Worker 416*495ae853SAndroid Build Coastguard Worker /** Macroblock Types */ 417*495ae853SAndroid Build Coastguard Worker #define I_4x4_MB 0 418*495ae853SAndroid Build Coastguard Worker #define I_16x16_MB 1 419*495ae853SAndroid Build Coastguard Worker #define P_MB 2 420*495ae853SAndroid Build Coastguard Worker #define B_MB 3 421*495ae853SAndroid Build Coastguard Worker #define SI_MB 4 422*495ae853SAndroid Build Coastguard Worker #define SP_MB 5 423*495ae853SAndroid Build Coastguard Worker #define I_PCM_MB 6 424*495ae853SAndroid Build Coastguard Worker 425*495ae853SAndroid Build Coastguard Worker #define SI4x4_MB 0xFF 426*495ae853SAndroid Build Coastguard Worker 427*495ae853SAndroid Build Coastguard Worker /** Intra luma 16x16 and chroma 8x8 prediction modes */ 428*495ae853SAndroid Build Coastguard Worker #define NUM_INTRA_PRED_MODES 4 429*495ae853SAndroid Build Coastguard Worker #define VERT 0 430*495ae853SAndroid Build Coastguard Worker #define HORIZ 1 431*495ae853SAndroid Build Coastguard Worker #define DC 2 432*495ae853SAndroid Build Coastguard Worker #define PLANE 3 433*495ae853SAndroid Build Coastguard Worker #define NOT_VALID -1 434*495ae853SAndroid Build Coastguard Worker #define DC_DC_DC_DC 0x02020202 /*packed 4 bytes used in Decode Intra Mb*/ 435*495ae853SAndroid Build Coastguard Worker 436*495ae853SAndroid Build Coastguard Worker /** Intra luma 4x4 prediction modes */ 437*495ae853SAndroid Build Coastguard Worker #define NUM_INTRA4x4_PRED_MODES 9 438*495ae853SAndroid Build Coastguard Worker 439*495ae853SAndroid Build Coastguard Worker /** VERT, HORIZ, DC are applicable to 4x4 as well */ 440*495ae853SAndroid Build Coastguard Worker /** D - Down; U - Up; L - Left; R - Right */ 441*495ae853SAndroid Build Coastguard Worker #define DIAG_DL 3 442*495ae853SAndroid Build Coastguard Worker #define DIAG_DR 4 443*495ae853SAndroid Build Coastguard Worker #define VERT_R 5 444*495ae853SAndroid Build Coastguard Worker #define HORIZ_D 6 445*495ae853SAndroid Build Coastguard Worker #define VERT_L 7 446*495ae853SAndroid Build Coastguard Worker #define HORIZ_U 8 447*495ae853SAndroid Build Coastguard Worker 448*495ae853SAndroid Build Coastguard Worker /** P_MB prediction modes */ 449*495ae853SAndroid Build Coastguard Worker #define NUM_INTER_MB_PRED_MODES 5 450*495ae853SAndroid Build Coastguard Worker #define PRED_16x16 0 451*495ae853SAndroid Build Coastguard Worker #define PRED_16x8 1 452*495ae853SAndroid Build Coastguard Worker #define PRED_8x16 2 453*495ae853SAndroid Build Coastguard Worker #define PRED_8x8 3 454*495ae853SAndroid Build Coastguard Worker #define PRED_8x8R0 4 455*495ae853SAndroid Build Coastguard Worker #define MAGIC_16x16 5 456*495ae853SAndroid Build Coastguard Worker #define MB_SKIP 255 457*495ae853SAndroid Build Coastguard Worker 458*495ae853SAndroid Build Coastguard Worker /* P_MB submb modes */ 459*495ae853SAndroid Build Coastguard Worker #define P_L0_8x8 0 460*495ae853SAndroid Build Coastguard Worker #define P_L0_8x4 1 461*495ae853SAndroid Build Coastguard Worker #define P_L0_4x8 2 462*495ae853SAndroid Build Coastguard Worker #define P_L0_4x4 3 463*495ae853SAndroid Build Coastguard Worker 464*495ae853SAndroid Build Coastguard Worker /* B_MB submb modes */ 465*495ae853SAndroid Build Coastguard Worker #define B_DIRECT_8x8 0 466*495ae853SAndroid Build Coastguard Worker #define B_L0_8x8 1 467*495ae853SAndroid Build Coastguard Worker #define B_L1_8x8 2 468*495ae853SAndroid Build Coastguard Worker #define B_BI_8x8 3 469*495ae853SAndroid Build Coastguard Worker #define B_L0_8x4 4 470*495ae853SAndroid Build Coastguard Worker #define B_L0_4x8 5 471*495ae853SAndroid Build Coastguard Worker #define B_L1_8x4 6 472*495ae853SAndroid Build Coastguard Worker #define B_L1_4x8 7 473*495ae853SAndroid Build Coastguard Worker #define B_BI_8x4 8 474*495ae853SAndroid Build Coastguard Worker #define B_BI_4x8 9 475*495ae853SAndroid Build Coastguard Worker #define B_L0_4x4 10 476*495ae853SAndroid Build Coastguard Worker #define B_L1_4x4 11 477*495ae853SAndroid Build Coastguard Worker #define B_BI_4x4 12 478*495ae853SAndroid Build Coastguard Worker 479*495ae853SAndroid Build Coastguard Worker /** B_MB prediction modes */ 480*495ae853SAndroid Build Coastguard Worker #define B_8x8 22 481*495ae853SAndroid Build Coastguard Worker #define PRED_INVALID -1 482*495ae853SAndroid Build Coastguard Worker #define B_DIRECT 0 483*495ae853SAndroid Build Coastguard Worker #define PRED_L0 1 484*495ae853SAndroid Build Coastguard Worker #define PRED_L1 2 485*495ae853SAndroid Build Coastguard Worker #define BI_PRED 3 486*495ae853SAndroid Build Coastguard Worker #define B_DIRECT_BI_PRED 23 487*495ae853SAndroid Build Coastguard Worker #define B_DIRECT_PRED_L0 24 488*495ae853SAndroid Build Coastguard Worker #define B_DIRECT_PRED_L1 25 489*495ae853SAndroid Build Coastguard Worker #define B_DIRECT_SPATIAL 26 490*495ae853SAndroid Build Coastguard Worker 491*495ae853SAndroid Build Coastguard Worker #define B_DIRECT8x8_BI_PRED 13 492*495ae853SAndroid Build Coastguard Worker #define B_DIRECT8x8_PRED_L0 14 493*495ae853SAndroid Build Coastguard Worker #define B_DIRECT8x8_PRED_L1 15 494*495ae853SAndroid Build Coastguard Worker 495*495ae853SAndroid Build Coastguard Worker #define ONE_TO_ONE 0 496*495ae853SAndroid Build Coastguard Worker #define FRM_TO_FLD 1 497*495ae853SAndroid Build Coastguard Worker #define FLD_TO_FRM 2 498*495ae853SAndroid Build Coastguard Worker 499*495ae853SAndroid Build Coastguard Worker /** Inter Sub MB Pred modes */ 500*495ae853SAndroid Build Coastguard Worker #define NUM_INTER_SUBMB_PRED_MODES 4 501*495ae853SAndroid Build Coastguard Worker #define SUBMB_8x8 0 502*495ae853SAndroid Build Coastguard Worker #define SUBMB_8x4 1 503*495ae853SAndroid Build Coastguard Worker #define SUBMB_4x8 2 504*495ae853SAndroid Build Coastguard Worker #define SUBMB_4x4 3 505*495ae853SAndroid Build Coastguard Worker 506*495ae853SAndroid Build Coastguard Worker /** Coded Block Pattern - Chroma */ 507*495ae853SAndroid Build Coastguard Worker #define CBPC_ALLZERO 0 508*495ae853SAndroid Build Coastguard Worker #define CBPC_ACZERO 1 509*495ae853SAndroid Build Coastguard Worker #define CBPC_NONZERO 2 510*495ae853SAndroid Build Coastguard Worker 511*495ae853SAndroid Build Coastguard Worker /** Index for accessing the left MB in the MV predictor array */ 512*495ae853SAndroid Build Coastguard Worker #define LEFT 0 513*495ae853SAndroid Build Coastguard Worker /** Index for accessing the top MB in the MV predictor array */ 514*495ae853SAndroid Build Coastguard Worker #define TOP 1 515*495ae853SAndroid Build Coastguard Worker /** Index for accessing the top right MB in the MV predictor array */ 516*495ae853SAndroid Build Coastguard Worker #define TOP_R 2 517*495ae853SAndroid Build Coastguard Worker /** Index for accessing the top Left MB in the MV predictor array */ 518*495ae853SAndroid Build Coastguard Worker #define TOP_L 3 519*495ae853SAndroid Build Coastguard Worker 520*495ae853SAndroid Build Coastguard Worker /** Maximum number of Sequence Parameter sets */ 521*495ae853SAndroid Build Coastguard Worker #define MAX_NUM_SEQ_PARAMS 32 522*495ae853SAndroid Build Coastguard Worker 523*495ae853SAndroid Build Coastguard Worker /** Maximum number of Picture Parameter sets */ 524*495ae853SAndroid Build Coastguard Worker #define MAX_NUM_PIC_PARAMS 256 525*495ae853SAndroid Build Coastguard Worker 526*495ae853SAndroid Build Coastguard Worker #define MASK_ERR_SEQ_SET_ID (0xFFFFFFE0) 527*495ae853SAndroid Build Coastguard Worker #define MASK_ERR_PIC_SET_ID (0xFFFFFF00) 528*495ae853SAndroid Build Coastguard Worker 529*495ae853SAndroid Build Coastguard Worker #define MAX_PIC_ORDER_CNT_TYPE 2 530*495ae853SAndroid Build Coastguard Worker 531*495ae853SAndroid Build Coastguard Worker #define MAX_BITS_IN_FRAME_NUM 16 532*495ae853SAndroid Build Coastguard Worker #define MAX_BITS_IN_POC_LSB 16 533*495ae853SAndroid Build Coastguard Worker 534*495ae853SAndroid Build Coastguard Worker #define H264_MAX_REF_PICS 16 535*495ae853SAndroid Build Coastguard Worker #define H264_MAX_REF_IDX 32 536*495ae853SAndroid Build Coastguard Worker #define MAX_WEIGHT_BIPRED_IDC 2 537*495ae853SAndroid Build Coastguard Worker #define MAX_CABAC_INIT_IDC 2 538*495ae853SAndroid Build Coastguard Worker 539*495ae853SAndroid Build Coastguard Worker #define H264_DEFAULT_NUM_CORES 1 540*495ae853SAndroid Build Coastguard Worker #define DEFAULT_SEPARATE_PARSE (H264_DEFAULT_NUM_CORES == 2)? 1 :0 541*495ae853SAndroid Build Coastguard Worker 542*495ae853SAndroid Build Coastguard Worker /** Maximum number of Slice groups */ 543*495ae853SAndroid Build Coastguard Worker #define MAX_NUM_SLICE_GROUPS 8 544*495ae853SAndroid Build Coastguard Worker #define MAX_NUM_REF_FRAMES_OFFSET 255 545*495ae853SAndroid Build Coastguard Worker 546*495ae853SAndroid Build Coastguard Worker /** Deblocking modes for a slice */ 547*495ae853SAndroid Build Coastguard Worker #define SLICE_BOUNDARY_DBLK_DISABLED 2 548*495ae853SAndroid Build Coastguard Worker #define DBLK_DISABLED 1 549*495ae853SAndroid Build Coastguard Worker #define DBLK_ENABLED 0 550*495ae853SAndroid Build Coastguard Worker #define MIN_DBLK_FIL_OFF -12 551*495ae853SAndroid Build Coastguard Worker #define MAX_DBLK_FIL_OFF 12 552*495ae853SAndroid Build Coastguard Worker 553*495ae853SAndroid Build Coastguard Worker /** Width of the predictor buffers used for MC */ 554*495ae853SAndroid Build Coastguard Worker #define MB_SIZE 16 555*495ae853SAndroid Build Coastguard Worker #define BLK8x8SIZE 8 556*495ae853SAndroid Build Coastguard Worker #define BLK_SIZE 4 557*495ae853SAndroid Build Coastguard Worker #define NUM_BLKS_PER_MB 24 558*495ae853SAndroid Build Coastguard Worker #define NUM_LUM_BLKS_PER_MB 16 559*495ae853SAndroid Build Coastguard Worker 560*495ae853SAndroid Build Coastguard Worker #define SUB_BLK_WIDTH 4 561*495ae853SAndroid Build Coastguard Worker #define SUB_SUB_BLK_SIZE 4 /* 2x2 pixel i4_size */ 562*495ae853SAndroid Build Coastguard Worker #define SUB_BLK_SIZE ((SUB_BLK_WIDTH) * (SUB_BLK_WIDTH)) 563*495ae853SAndroid Build Coastguard Worker #define MB_LUM_SIZE 256 564*495ae853SAndroid Build Coastguard Worker #define MB_CHROM_SIZE 64 565*495ae853SAndroid Build Coastguard Worker 566*495ae853SAndroid Build Coastguard Worker /**< Width to pad the luminance frame buff */ 567*495ae853SAndroid Build Coastguard Worker /**< Height to pad the luminance frame buff */ 568*495ae853SAndroid Build Coastguard Worker /**< Width to pad the chrominance frame buff */ 569*495ae853SAndroid Build Coastguard Worker /**< Height to pad the chrominance frame buff */ 570*495ae853SAndroid Build Coastguard Worker 571*495ae853SAndroid Build Coastguard Worker #define PAD_LEN_Y_H 32 572*495ae853SAndroid Build Coastguard Worker #define PAD_LEN_Y_V 20 573*495ae853SAndroid Build Coastguard Worker #define PAD_LEN_UV_H 16 574*495ae853SAndroid Build Coastguard Worker #define PAD_LEN_UV_V 8 575*495ae853SAndroid Build Coastguard Worker 576*495ae853SAndroid Build Coastguard Worker #define PAD_MV_BANK_ROW 64 577*495ae853SAndroid Build Coastguard Worker 578*495ae853SAndroid Build Coastguard Worker /**< Maimum u4_ofst by which the Mvs could point outside the frame buffers 579*495ae853SAndroid Build Coastguard Worker horizontally in the left and vertically in the top direction */ 580*495ae853SAndroid Build Coastguard Worker #define MAX_OFFSET_OUTSIDE_X_FRM -20 581*495ae853SAndroid Build Coastguard Worker #define MAX_OFFSET_OUTSIDE_Y_FRM -20 582*495ae853SAndroid Build Coastguard Worker #define MAX_OFFSET_OUTSIDE_UV_FRM -8 583*495ae853SAndroid Build Coastguard Worker 584*495ae853SAndroid Build Coastguard Worker /** UVLC parsing macros */ 585*495ae853SAndroid Build Coastguard Worker #define UEV 1 586*495ae853SAndroid Build Coastguard Worker #define SEV 2 587*495ae853SAndroid Build Coastguard Worker #define TEV 3 588*495ae853SAndroid Build Coastguard Worker 589*495ae853SAndroid Build Coastguard Worker /** Defines for Boolean values */ 590*495ae853SAndroid Build Coastguard Worker #ifndef TRUE 591*495ae853SAndroid Build Coastguard Worker #define TRUE 1 592*495ae853SAndroid Build Coastguard Worker #define FALSE 0 593*495ae853SAndroid Build Coastguard Worker #endif 594*495ae853SAndroid Build Coastguard Worker 595*495ae853SAndroid Build Coastguard Worker #define UNUSED_FOR_REF 0 596*495ae853SAndroid Build Coastguard Worker #define IS_SHORT_TERM 1 597*495ae853SAndroid Build Coastguard Worker #define IS_LONG_TERM 2 598*495ae853SAndroid Build Coastguard Worker 599*495ae853SAndroid Build Coastguard Worker /** Defines for which field gets displayed first */ 600*495ae853SAndroid Build Coastguard Worker #define MAX_FRAMES 16 601*495ae853SAndroid Build Coastguard Worker #define INVALID_FRAME_NUM 0x0fffffff 602*495ae853SAndroid Build Coastguard Worker #define DO_NOT_DISP 254 603*495ae853SAndroid Build Coastguard Worker #define DISP_FLD_FIRST_UNDEF 0 604*495ae853SAndroid Build Coastguard Worker #define DISP_TOP_FLD_FIRST 1 605*495ae853SAndroid Build Coastguard Worker #define DISP_BOT_FLD_FIRST 2 606*495ae853SAndroid Build Coastguard Worker 607*495ae853SAndroid Build Coastguard Worker /** Misc error resilience requirements*/ 608*495ae853SAndroid Build Coastguard Worker #define MAX_LOG2_WEIGHT_DENOM 7 609*495ae853SAndroid Build Coastguard Worker #define PRED_WEIGHT_MIN (-128) 610*495ae853SAndroid Build Coastguard Worker #define PRED_WEIGHT_MAX 127 611*495ae853SAndroid Build Coastguard Worker #define MAX_REDUNDANT_PIC_CNT 127 612*495ae853SAndroid Build Coastguard Worker 613*495ae853SAndroid Build Coastguard Worker 614*495ae853SAndroid Build Coastguard Worker 615*495ae853SAndroid Build Coastguard Worker #endif //DEBLOCK_THREAD 616*495ae853SAndroid Build Coastguard Worker 617*495ae853SAndroid Build Coastguard Worker #define NUM_COEFFS_IN_4x4BLK 16 618*495ae853SAndroid Build Coastguard Worker #define CABAC_BITS_TO_READ 23 619*495ae853SAndroid Build Coastguard Worker 620*495ae853SAndroid Build Coastguard Worker #define DISPLAY_PRIMARIES_X_UPPER_LIMIT 37000 621*495ae853SAndroid Build Coastguard Worker #define DISPLAY_PRIMARIES_X_LOWER_LIMIT 5 622*495ae853SAndroid Build Coastguard Worker #define DISPLAY_PRIMARIES_X_DIVISION_FACTOR 5 623*495ae853SAndroid Build Coastguard Worker 624*495ae853SAndroid Build Coastguard Worker #define DISPLAY_PRIMARIES_Y_UPPER_LIMIT 42000 625*495ae853SAndroid Build Coastguard Worker #define DISPLAY_PRIMARIES_Y_LOWER_LIMIT 5 626*495ae853SAndroid Build Coastguard Worker #define DISPLAY_PRIMARIES_Y_DIVISION_FACTOR 5 627*495ae853SAndroid Build Coastguard Worker 628*495ae853SAndroid Build Coastguard Worker #define WHITE_POINT_X_UPPER_LIMIT 37000 629*495ae853SAndroid Build Coastguard Worker #define WHITE_POINT_X_LOWER_LIMIT 5 630*495ae853SAndroid Build Coastguard Worker #define WHITE_POINT_X_DIVISION_FACTOR 5 631*495ae853SAndroid Build Coastguard Worker 632*495ae853SAndroid Build Coastguard Worker #define WHITE_POINT_Y_UPPER_LIMIT 42000 633*495ae853SAndroid Build Coastguard Worker #define WHITE_POINT_Y_LOWER_LIMIT 5 634*495ae853SAndroid Build Coastguard Worker #define WHITE_POINT_Y_DIVISION_FACTOR 5 635*495ae853SAndroid Build Coastguard Worker 636*495ae853SAndroid Build Coastguard Worker #define MAX_DISPLAY_MASTERING_LUMINANCE_UPPER_LIMIT 100000000 637*495ae853SAndroid Build Coastguard Worker #define MAX_DISPLAY_MASTERING_LUMINANCE_LOWER_LIMIT 50000 638*495ae853SAndroid Build Coastguard Worker #define MAX_DISPLAY_MASTERING_LUMINANCE_DIVISION_FACTOR 10000 639*495ae853SAndroid Build Coastguard Worker 640*495ae853SAndroid Build Coastguard Worker #define MIN_DISPLAY_MASTERING_LUMINANCE_UPPER_LIMIT 50000 641*495ae853SAndroid Build Coastguard Worker #define MIN_DISPLAY_MASTERING_LUMINANCE_LOWER_LIMIT 1 642*495ae853SAndroid Build Coastguard Worker 643*495ae853SAndroid Build Coastguard Worker #define AMBIENT_LIGHT_X_UPPER_LIMIT 50000 644*495ae853SAndroid Build Coastguard Worker #define AMBIENT_LIGHT_Y_UPPER_LIMIT 50000 645*495ae853SAndroid Build Coastguard Worker 646*495ae853SAndroid Build Coastguard Worker #define CCV_PRIMARIES_X_UPPER_LIMIT 5000000 647*495ae853SAndroid Build Coastguard Worker #define CCV_PRIMARIES_X_LOWER_LIMIT -5000000 648*495ae853SAndroid Build Coastguard Worker #define CCV_PRIMARIES_Y_UPPER_LIMIT 5000000 649*495ae853SAndroid Build Coastguard Worker #define CCV_PRIMARIES_Y_LOWER_LIMIT -5000000 650*495ae853SAndroid Build Coastguard Worker 651*495ae853SAndroid Build Coastguard Worker 652*495ae853SAndroid Build Coastguard Worker #define MEMSET_16BYTES(pu4_start,value) \ 653*495ae853SAndroid Build Coastguard Worker { \ 654*495ae853SAndroid Build Coastguard Worker memset(pu4_start,value,16); \ 655*495ae853SAndroid Build Coastguard Worker } 656*495ae853SAndroid Build Coastguard Worker 657*495ae853SAndroid Build Coastguard Worker #define MEMCPY_16BYTES(dst,src) \ 658*495ae853SAndroid Build Coastguard Worker { \ 659*495ae853SAndroid Build Coastguard Worker memcpy(dst,src,16); \ 660*495ae853SAndroid Build Coastguard Worker } 661*495ae853SAndroid Build Coastguard Worker 662*495ae853SAndroid Build Coastguard Worker 663*495ae853SAndroid Build Coastguard Worker #endif /*_IH264D_DEFS_H_*/ 664