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 42typedef 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 55typedef struct 56{ 57 neighbourMb_e mb; 58 u8 index; 59} neighbour_t; 60 61/*------------------------------------------------------------------------------ 62 4. Function prototypes 63------------------------------------------------------------------------------*/ 64 65void h264bsdInitMbNeighbours(mbStorage_t *pMbStorage, u32 picWidth, 66 u32 picSizeInMbs); 67 68mbStorage_t* h264bsdGetNeighbourMb(mbStorage_t *pMb, neighbourMb_e neighbour); 69 70u32 h264bsdIsNeighbourAvailable(mbStorage_t *pMb, mbStorage_t *pNeighbour); 71 72const neighbour_t* h264bsdNeighbour4x4BlockA(u32 blockIndex); 73const neighbour_t* h264bsdNeighbour4x4BlockB(u32 blockIndex); 74const neighbour_t* h264bsdNeighbour4x4BlockC(u32 blockIndex); 75const neighbour_t* h264bsdNeighbour4x4BlockD(u32 blockIndex); 76 77#endif /* #ifdef H264SWDEC_NEIGHBOUR_H */ 78 79