1 /* 2 * Copyright (C) 2009 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 /*------------------------------------------------------------------------------ 18 19 Table of contents 20 21 1. Include headers 22 2. Module defines 23 3. Data types 24 4. Function prototypes 25 26 ------------------------------------------------------------------------------*/ 27 28 #ifndef H264SWDEC_NEIGHBOUR_H 29 #define H264SWDEC_NEIGHBOUR_H 30 31 /*------------------------------------------------------------------------------ 32 1. Include headers 33 ------------------------------------------------------------------------------*/ 34 35 #include "basetype.h" 36 #include "h264bsd_macroblock_layer.h" 37 38 /*------------------------------------------------------------------------------ 39 2. Module defines 40 ------------------------------------------------------------------------------*/ 41 42 typedef enum { 43 MB_A = 0, 44 MB_B, 45 MB_C, 46 MB_D, 47 MB_CURR, 48 MB_NA = 0xFF 49 } neighbourMb_e; 50 51 /*------------------------------------------------------------------------------ 52 3. Data types 53 ------------------------------------------------------------------------------*/ 54 55 typedef struct 56 { 57 neighbourMb_e mb; 58 u8 index; 59 } neighbour_t; 60 61 /*------------------------------------------------------------------------------ 62 4. Function prototypes 63 ------------------------------------------------------------------------------*/ 64 65 void h264bsdInitMbNeighbours(mbStorage_t *pMbStorage, u32 picWidth, 66 u32 picSizeInMbs); 67 68 mbStorage_t* h264bsdGetNeighbourMb(mbStorage_t *pMb, neighbourMb_e neighbour); 69 70 u32 h264bsdIsNeighbourAvailable(mbStorage_t *pMb, mbStorage_t *pNeighbour); 71 72 const neighbour_t* h264bsdNeighbour4x4BlockA(u32 blockIndex); 73 const neighbour_t* h264bsdNeighbour4x4BlockB(u32 blockIndex); 74 const neighbour_t* h264bsdNeighbour4x4BlockC(u32 blockIndex); 75 const neighbour_t* h264bsdNeighbour4x4BlockD(u32 blockIndex); 76 77 #endif /* #ifdef H264SWDEC_NEIGHBOUR_H */ 78 79