1aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani/****************************************************************************** 2aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani * 3aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani * Copyright (C) 2015 The Android Open Source Project 4aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani * 5aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani * Licensed under the Apache License, Version 2.0 (the "License"); 6aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani * you may not use this file except in compliance with the License. 7aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani * You may obtain a copy of the License at: 8aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani * 9aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani * http://www.apache.org/licenses/LICENSE-2.0 10aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani * 11aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani * Unless required by applicable law or agreed to in writing, software 12aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani * distributed under the License is distributed on an "AS IS" BASIS, 13aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani * See the License for the specific language governing permissions and 15aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani * limitations under the License. 16aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani * 17aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani ***************************************************************************** 18aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani * Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore 19aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani*/ 20aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani/*****************************************************************************/ 21aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani/* */ 22aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani/* File Name : c_coding_example.h */ 23aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani/* */ 24aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani/* Description : This file contains all the necessary examples to */ 25aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani/* establish a consistent use of Ittiam C coding */ 26aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani/* standards (based on Indian Hill C Standards) */ 27aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani/* */ 28aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani/* List of Functions : <List the functions defined in this file> */ 29aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani/* */ 30aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani/* Issues / Problems : None */ 31aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani/* */ 32aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani/* Revision History : */ 33aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani/* */ 34aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani/* DD MM YYYY Author(s) Changes (Describe the changes made) */ 35aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani/* 10 01 2005 Ittiam Draft */ 36aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani/* */ 37aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani/*****************************************************************************/ 38aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani#ifndef __IMPEG2D_DEBUG_H__ 39aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani#define __IMPEG2D_DEBUG_H__ 40aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani 41aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani 42aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani/*************************************************************************/ 43aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani/* DEBUG */ 44aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani/*************************************************************************/ 45aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani#define DEBUG_MB 0 46aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani 47aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani 48aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani#if DEBUG_MB 49aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhanivoid impeg2d_trace_mb_start(UWORD32 mb_x, UWORD32 mb_y); 50aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhanivoid impeg2d_frm_num_set(void); 51aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama AvadhaniUWORD32 impeg2d_frm_num_get(void); 52aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani 53aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani#define IMPEG2D_TRACE_MB_START(mb_x, mb_y) void impeg2d_trace_mb_start(UWORD32 mb_x, UWORD32 mb_y); 54aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani#define IMPEG2D_FRM_NUM_SET() void impeg2d_frm_num_set(void); 55aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani#define IMPEG2D_FRM_NUM_GET() UWORD32 impeg2d_frm_num_get(void); 56aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani#else 57aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani#define IMPEG2D_TRACE_MB_START(mb_x, mb_y) 58aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani#define IMPEG2D_FRM_NUM_SET() 59aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani#define IMPEG2D_FRM_NUM_GET() 60aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani#endif 61aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani 62aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani 63aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani#define STATISTICS 0 64aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani 65aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani#if STATISTICS 66aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhanivoid impeg2d_idct_inp_statistics(WORD16 *pi2_idct_inp, WORD32 non_zero_cols, WORD32 non_zero_rows); 67aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhanivoid impeg2d_iqnt_inp_statistics(WORD16 *pi2_iqnt_inp, WORD32 non_zero_cols, WORD32 non_zero_rows); 68aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhanivoid impeg2d_print_statistics(void); 69aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani#define IMPEG2D_IDCT_INP_STATISTICS(pi2_idct_inp, non_zero_cols, non_zero_rows) impeg2d_idct_inp_statistics(pi2_idct_inp, non_zero_cols, non_zero_rows) 70aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani#define IMPEG2D_IQNT_INP_STATISTICS(pi2_iqnt_inp, non_zero_cols, non_zero_rows) impeg2d_iqnt_inp_statistics(pi2_iqnt_inp, non_zero_cols, non_zero_rows) 71aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani#define IMPEG2D_PRINT_STATISTICS() impeg2d_print_statistics() 72aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani#else 73aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani#define IMPEG2D_IDCT_INP_STATISTICS(pi2_idct_inp, non_zero_cols, non_zero_rows) 74aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani#define IMPEG2D_IQNT_INP_STATISTICS(pi2_iqnt_inp, non_zero_cols, non_zero_rows) 75aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani#define IMPEG2D_PRINT_STATISTICS() 76aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani#endif 77aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani 78aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani 79aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani#if 0 80aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani#define PROFILE_DIS_SKIP_MB 81aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani#define PROFILE_DIS_MC 82aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani#define PROFILE_DIS_INVQUANT 83aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani#define PROFILE_DIS_IDCT 84aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani#define PROFILE_DIS_MEMSET_RESBUF 85aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani#endif 86aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani 87aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani 88aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani#ifdef PROFILE_DIS_SKIP_MB 89aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani#define PROFILE_DISABLE_SKIP_MB() return; 90aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani#else 91aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani#define PROFILE_DISABLE_SKIP_MB() 92aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani#endif 93aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani 94aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani#ifdef PROFILE_DIS_MC 95aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani#define PROFILE_DISABLE_MC_IF0 if(0) 96aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani#define PROFILE_DISABLE_MC_RETURN return; 97aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani#else 98aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani#define PROFILE_DISABLE_MC_IF0 99aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani#define PROFILE_DISABLE_MC_RETURN 100aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani#endif 101aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani 102aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani#ifdef PROFILE_DIS_INVQUANT 103aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani#define PROFILE_DISABLE_INVQUANT_IF0 if(0) 104aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani#else 105aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani#define PROFILE_DISABLE_INVQUANT_IF0 106aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani#endif 107aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani 108aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani#ifdef PROFILE_DIS_IDCT 109aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani#define PROFILE_DISABLE_IDCT_IF0 if(0) 110aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani#else 111aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani#define PROFILE_DISABLE_IDCT_IF0 112aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani#endif 113aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani 114aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani#ifdef PROFILE_DIS_MEMSET_RESBUF 115aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani#define PROFILE_DISABLE_MEMSET_RESBUF_IF0 if(0) 116aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani#else 117aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani#define PROFILE_DISABLE_MEMSET_RESBUF_IF0 118aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani#endif 119aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani 120aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani 121aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani#endif /* __IMPEG2D_DEBUG_H__ */ 122