10c1bc742181ded4930842b46e9507372f0b1b963James Dong/* 20c1bc742181ded4930842b46e9507372f0b1b963James Dong * Copyright (C) 2009 The Android Open Source Project 30c1bc742181ded4930842b46e9507372f0b1b963James Dong * 40c1bc742181ded4930842b46e9507372f0b1b963James Dong * Licensed under the Apache License, Version 2.0 (the "License"); 50c1bc742181ded4930842b46e9507372f0b1b963James Dong * you may not use this file except in compliance with the License. 60c1bc742181ded4930842b46e9507372f0b1b963James Dong * You may obtain a copy of the License at 70c1bc742181ded4930842b46e9507372f0b1b963James Dong * 80c1bc742181ded4930842b46e9507372f0b1b963James Dong * http://www.apache.org/licenses/LICENSE-2.0 90c1bc742181ded4930842b46e9507372f0b1b963James Dong * 100c1bc742181ded4930842b46e9507372f0b1b963James Dong * Unless required by applicable law or agreed to in writing, software 110c1bc742181ded4930842b46e9507372f0b1b963James Dong * distributed under the License is distributed on an "AS IS" BASIS, 120c1bc742181ded4930842b46e9507372f0b1b963James Dong * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 130c1bc742181ded4930842b46e9507372f0b1b963James Dong * See the License for the specific language governing permissions and 140c1bc742181ded4930842b46e9507372f0b1b963James Dong * limitations under the License. 150c1bc742181ded4930842b46e9507372f0b1b963James Dong */ 160c1bc742181ded4930842b46e9507372f0b1b963James Dong 170c1bc742181ded4930842b46e9507372f0b1b963James Dong/*------------------------------------------------------------------------------ 180c1bc742181ded4930842b46e9507372f0b1b963James Dong 190c1bc742181ded4930842b46e9507372f0b1b963James Dong Table of contents 200c1bc742181ded4930842b46e9507372f0b1b963James Dong 210c1bc742181ded4930842b46e9507372f0b1b963James Dong 1. Include headers 220c1bc742181ded4930842b46e9507372f0b1b963James Dong 2. Module defines 230c1bc742181ded4930842b46e9507372f0b1b963James Dong 3. Data types 240c1bc742181ded4930842b46e9507372f0b1b963James Dong 4. Function prototypes 250c1bc742181ded4930842b46e9507372f0b1b963James Dong 260c1bc742181ded4930842b46e9507372f0b1b963James Dong------------------------------------------------------------------------------*/ 270c1bc742181ded4930842b46e9507372f0b1b963James Dong 280c1bc742181ded4930842b46e9507372f0b1b963James Dong#ifndef H264SWDEC_INTRA_PREDICTION_H 290c1bc742181ded4930842b46e9507372f0b1b963James Dong#define H264SWDEC_INTRA_PREDICTION_H 300c1bc742181ded4930842b46e9507372f0b1b963James Dong 310c1bc742181ded4930842b46e9507372f0b1b963James Dong/*------------------------------------------------------------------------------ 320c1bc742181ded4930842b46e9507372f0b1b963James Dong 1. Include headers 330c1bc742181ded4930842b46e9507372f0b1b963James Dong------------------------------------------------------------------------------*/ 340c1bc742181ded4930842b46e9507372f0b1b963James Dong 350c1bc742181ded4930842b46e9507372f0b1b963James Dong#include "basetype.h" 360c1bc742181ded4930842b46e9507372f0b1b963James Dong#include "h264bsd_image.h" 370c1bc742181ded4930842b46e9507372f0b1b963James Dong#include "h264bsd_macroblock_layer.h" 380c1bc742181ded4930842b46e9507372f0b1b963James Dong 390c1bc742181ded4930842b46e9507372f0b1b963James Dong/*------------------------------------------------------------------------------ 400c1bc742181ded4930842b46e9507372f0b1b963James Dong 2. Module defines 410c1bc742181ded4930842b46e9507372f0b1b963James Dong------------------------------------------------------------------------------*/ 420c1bc742181ded4930842b46e9507372f0b1b963James Dong 430c1bc742181ded4930842b46e9507372f0b1b963James Dong/*------------------------------------------------------------------------------ 440c1bc742181ded4930842b46e9507372f0b1b963James Dong 3. Data types 450c1bc742181ded4930842b46e9507372f0b1b963James Dong------------------------------------------------------------------------------*/ 460c1bc742181ded4930842b46e9507372f0b1b963James Dong 470c1bc742181ded4930842b46e9507372f0b1b963James Dong/*------------------------------------------------------------------------------ 480c1bc742181ded4930842b46e9507372f0b1b963James Dong 4. Function prototypes 490c1bc742181ded4930842b46e9507372f0b1b963James Dong------------------------------------------------------------------------------*/ 500c1bc742181ded4930842b46e9507372f0b1b963James Dong#ifndef H264DEC_OMXDL 510c1bc742181ded4930842b46e9507372f0b1b963James Dongu32 h264bsdIntraPrediction(mbStorage_t *pMb, macroblockLayer_t *mbLayer, 520c1bc742181ded4930842b46e9507372f0b1b963James Dong image_t *image, u32 mbNum, u32 constrainedIntraPred, u8 *data); 530c1bc742181ded4930842b46e9507372f0b1b963James Dong 540c1bc742181ded4930842b46e9507372f0b1b963James Dongu32 h264bsdIntra4x4Prediction(mbStorage_t *pMb, u8 *data, 550c1bc742181ded4930842b46e9507372f0b1b963James Dong macroblockLayer_t *mbLayer, 560c1bc742181ded4930842b46e9507372f0b1b963James Dong u8 *above, u8 *left, u32 constrainedIntraPred); 570c1bc742181ded4930842b46e9507372f0b1b963James Dongu32 h264bsdIntra16x16Prediction(mbStorage_t *pMb, u8 *data, i32 residual[][16], 580c1bc742181ded4930842b46e9507372f0b1b963James Dong u8 *above, u8 *left, u32 constrainedIntraPred); 590c1bc742181ded4930842b46e9507372f0b1b963James Dong 600c1bc742181ded4930842b46e9507372f0b1b963James Dongu32 h264bsdIntraChromaPrediction(mbStorage_t *pMb, u8 *data, i32 residual[][16], 610c1bc742181ded4930842b46e9507372f0b1b963James Dong u8 *above, u8 *left, u32 predMode, u32 constrainedIntraPred); 620c1bc742181ded4930842b46e9507372f0b1b963James Dong 630c1bc742181ded4930842b46e9507372f0b1b963James Dongvoid h264bsdGetNeighbourPels(image_t *image, u8 *above, u8 *left, u32 mbNum); 640c1bc742181ded4930842b46e9507372f0b1b963James Dong 650c1bc742181ded4930842b46e9507372f0b1b963James Dong#else 660c1bc742181ded4930842b46e9507372f0b1b963James Dong 670c1bc742181ded4930842b46e9507372f0b1b963James Dongu32 h264bsdIntra4x4Prediction(mbStorage_t *pMb, u8 *data, 680c1bc742181ded4930842b46e9507372f0b1b963James Dong macroblockLayer_t *mbLayer, 690c1bc742181ded4930842b46e9507372f0b1b963James Dong u8 *pImage, u32 width, 700c1bc742181ded4930842b46e9507372f0b1b963James Dong u32 constrainedIntraPred, u32 block); 710c1bc742181ded4930842b46e9507372f0b1b963James Dong 720c1bc742181ded4930842b46e9507372f0b1b963James Dongu32 h264bsdIntra16x16Prediction(mbStorage_t *pMb, u8 *data, u8 *pImage, 730c1bc742181ded4930842b46e9507372f0b1b963James Dong u32 width, u32 constrainedIntraPred); 740c1bc742181ded4930842b46e9507372f0b1b963James Dong 750c1bc742181ded4930842b46e9507372f0b1b963James Dongu32 h264bsdIntraChromaPrediction(mbStorage_t *pMb, u8 *data, image_t *image, 760c1bc742181ded4930842b46e9507372f0b1b963James Dong u32 predMode, u32 constrainedIntraPred); 770c1bc742181ded4930842b46e9507372f0b1b963James Dong 780c1bc742181ded4930842b46e9507372f0b1b963James Dong#endif 790c1bc742181ded4930842b46e9507372f0b1b963James Dong 800c1bc742181ded4930842b46e9507372f0b1b963James Dong#endif /* #ifdef H264SWDEC_INTRA_PREDICTION_H */ 810c1bc742181ded4930842b46e9507372f0b1b963James Dong 82