Mercurial > cgi-bin > hgwebdir.cgi > PR > Applications > VSs > VSs__H264__App
comparison libavcodec/h264_pred.h @ 2:897f711a7157
rearrange to work with autoconf
| author | Nina Engelhardt <nengel@mailbox.tu-berlin.de> |
|---|---|
| date | Tue, 25 Sep 2012 15:55:33 +0200 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| -1:000000000000 | 0:3f357e250601 |
|---|---|
| 1 /* | |
| 2 * H.26L/H.264/AVC/JVT/14496-10/... encoder/decoder | |
| 3 * Copyright (c) 2003 Michael Niedermayer <michaelni@gmx.at> | |
| 4 * | |
| 5 * This file is part of FFmpeg. | |
| 6 * | |
| 7 * FFmpeg is free software; you can redistribute it and/or | |
| 8 * modify it under the terms of the GNU Lesser General Public | |
| 9 * License as published by the Free Software Foundation; either | |
| 10 * version 2.1 of the License, or (at your option) any later version. | |
| 11 * | |
| 12 * FFmpeg is distributed in the hope that it will be useful, | |
| 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
| 15 * Lesser General Public License for more details. | |
| 16 * | |
| 17 * You should have received a copy of the GNU Lesser General Public | |
| 18 * License along with FFmpeg; if not, write to the Free Software | |
| 19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA | |
| 20 */ | |
| 21 | |
| 22 /** | |
| 23 * @file | |
| 24 * H.264 / AVC / MPEG4 prediction functions. | |
| 25 * @author Michael Niedermayer <michaelni@gmx.at> | |
| 26 */ | |
| 27 | |
| 28 #ifndef AVCODEC_H264PRED_H | |
| 29 #define AVCODEC_H264PRED_H | |
| 30 | |
| 31 #include "libavutil/common.h" | |
| 32 #include "dsputil.h" | |
| 33 | |
| 34 /** | |
| 35 * Prediction types | |
| 36 */ | |
| 37 //@{ | |
| 38 #define VERT_PRED 0 | |
| 39 #define HOR_PRED 1 | |
| 40 #define DC_PRED 2 | |
| 41 #define DIAG_DOWN_LEFT_PRED 3 | |
| 42 #define DIAG_DOWN_RIGHT_PRED 4 | |
| 43 #define VERT_RIGHT_PRED 5 | |
| 44 #define HOR_DOWN_PRED 6 | |
| 45 #define VERT_LEFT_PRED 7 | |
| 46 #define HOR_UP_PRED 8 | |
| 47 | |
| 48 #define LEFT_DC_PRED 9 | |
| 49 #define TOP_DC_PRED 10 | |
| 50 #define DC_128_PRED 11 | |
| 51 | |
| 52 #define DIAG_DOWN_LEFT_PRED_RV40_NODOWN 12 | |
| 53 #define HOR_UP_PRED_RV40_NODOWN 13 | |
| 54 #define VERT_LEFT_PRED_RV40_NODOWN 14 | |
| 55 | |
| 56 #define DC_PRED8x8 0 | |
| 57 #define HOR_PRED8x8 1 | |
| 58 #define VERT_PRED8x8 2 | |
| 59 #define PLANE_PRED8x8 3 | |
| 60 | |
| 61 #define LEFT_DC_PRED8x8 4 | |
| 62 #define TOP_DC_PRED8x8 5 | |
| 63 #define DC_128_PRED8x8 6 | |
| 64 | |
| 65 #define ALZHEIMER_DC_L0T_PRED8x8 7 | |
| 66 #define ALZHEIMER_DC_0LT_PRED8x8 8 | |
| 67 #define ALZHEIMER_DC_L00_PRED8x8 9 | |
| 68 #define ALZHEIMER_DC_0L0_PRED8x8 10 | |
| 69 //@} | |
| 70 | |
| 71 /** | |
| 72 * Context for storing H.264 prediction functions | |
| 73 */ | |
| 74 typedef struct H264PredContext{ | |
| 75 void (*pred4x4 [9+3+3])(uint8_t *src, uint8_t *topright, int stride);//FIXME move to dsp? | |
| 76 void (*pred8x8l [9+3])(uint8_t *src, int topleft, int topright, int stride); | |
| 77 void (*pred8x8 [4+3+4])(uint8_t *src, int stride); | |
| 78 void (*pred16x16[4+3])(uint8_t *src, int stride); | |
| 79 | |
| 80 void (*pred4x4_add [2])(uint8_t *pix/*align 4*/, const DCTELEM *block/*align 16*/, int stride); | |
| 81 void (*pred8x8l_add [2])(uint8_t *pix/*align 8*/, const DCTELEM *block/*align 16*/, int stride); | |
| 82 void (*pred8x8_add [3])(uint8_t *pix/*align 8*/, const int *block_offset, const DCTELEM *block/*align 16*/, int stride); | |
| 83 void (*pred16x16_add[3])(uint8_t *pix/*align 16*/, const int *block_offset, const DCTELEM *block/*align 16*/, int stride); | |
| 84 }H264PredContext; | |
| 85 | |
| 86 void ff_h264_pred_init(H264PredContext *h); | |
| 87 void ff_h264_pred_init_arm(H264PredContext *h); | |
| 88 | |
| 89 | |
| 90 #endif /* AVCODEC_H264PRED_H */ |
