92 lines
3.4 KiB
C
92 lines
3.4 KiB
C
|
/*------------------------------------------------------------------------------
|
||
|
-- --
|
||
|
-- This software is confidential and proprietary and may be used --
|
||
|
-- only as expressly authorized by a licensing agreement from --
|
||
|
-- --
|
||
|
-- Hantro Products Oy. --
|
||
|
-- --
|
||
|
-- (C) COPYRIGHT 2006 HANTRO PRODUCTS OY --
|
||
|
-- ALL RIGHTS RESERVED --
|
||
|
-- --
|
||
|
-- The entire notice above must be reproduced --
|
||
|
-- on all copies and should not be removed. --
|
||
|
-- --
|
||
|
--------------------------------------------------------------------------------
|
||
|
--
|
||
|
-- Abstract : Get neighbour blocks
|
||
|
--
|
||
|
--------------------------------------------------------------------------------
|
||
|
--
|
||
|
-- Version control information, please leave untouched.
|
||
|
--
|
||
|
-- $RCSfile: h264hwd_neighbour.h,v $
|
||
|
-- $Date: 2008/03/13 12:48:06 $
|
||
|
-- $Revision: 1.1 $
|
||
|
--
|
||
|
------------------------------------------------------------------------------*/
|
||
|
|
||
|
/*------------------------------------------------------------------------------
|
||
|
|
||
|
Table of contents
|
||
|
|
||
|
1. Include headers
|
||
|
2. Module defines
|
||
|
3. Data types
|
||
|
4. Function prototypes
|
||
|
|
||
|
------------------------------------------------------------------------------*/
|
||
|
|
||
|
#ifndef H264HWD_NEIGHBOUR_H
|
||
|
#define H264HWD_NEIGHBOUR_H
|
||
|
|
||
|
/*------------------------------------------------------------------------------
|
||
|
1. Include headers
|
||
|
------------------------------------------------------------------------------*/
|
||
|
|
||
|
#include "basetype.h"
|
||
|
|
||
|
#include "h264hwd_macroblock_layer.h"
|
||
|
|
||
|
/*------------------------------------------------------------------------------
|
||
|
2. Module defines
|
||
|
------------------------------------------------------------------------------*/
|
||
|
|
||
|
typedef enum {
|
||
|
MB_A = 0,
|
||
|
MB_B,
|
||
|
MB_C,
|
||
|
MB_D,
|
||
|
MB_CURR,
|
||
|
MB_NA = 0xFF
|
||
|
} neighbourMb_e;
|
||
|
|
||
|
/*------------------------------------------------------------------------------
|
||
|
3. Data types
|
||
|
------------------------------------------------------------------------------*/
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
neighbourMb_e mb;
|
||
|
u8 index;
|
||
|
} neighbour_t;
|
||
|
|
||
|
/*------------------------------------------------------------------------------
|
||
|
4. Function prototypes
|
||
|
------------------------------------------------------------------------------*/
|
||
|
|
||
|
void h264bsdInitMbNeighbours(mbStorage_t *pMbStorage, u32 picWidth,
|
||
|
u32 picSizeInMbs);
|
||
|
|
||
|
/*@null@*/ mbStorage_t* h264bsdGetNeighbourMb(mbStorage_t *pMb,
|
||
|
neighbourMb_e neighbour);
|
||
|
|
||
|
u32 h264bsdIsNeighbourAvailable(mbStorage_t *pMb,
|
||
|
/*@null@*/ mbStorage_t *pNeighbour);
|
||
|
|
||
|
const neighbour_t* h264bsdNeighbour4x4BlockA(u32 blockIndex);
|
||
|
const neighbour_t* h264bsdNeighbour4x4BlockB(u32 blockIndex);
|
||
|
const neighbour_t* h264bsdNeighbour4x4BlockC(u32 blockIndex);
|
||
|
const neighbour_t* h264bsdNeighbour4x4BlockD(u32 blockIndex);
|
||
|
|
||
|
#endif /* #ifdef H264HWD_NEIGHBOUR_H */
|