h264data.h 2.23 KB
Newer Older
1
/*
2 3 4
 * This file is part of FFmpeg.
 *
 * FFmpeg is free software; you can redistribute it and/or
5 6
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
7
 * version 2.1 of the License, or (at your option) any later version.
8
 *
9
 * FFmpeg is distributed in the hope that it will be useful,
10 11 12 13 14
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
15
 * License along with FFmpeg; if not, write to the Free Software
16
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17 18
 */

19 20
#ifndef AVCODEC_H264DATA_H
#define AVCODEC_H264DATA_H
21

22
#include <stdint.h>
23

24
#include "h264dec.h"
25

26 27 28
extern const uint8_t ff_h264_golomb_to_pict_type[5];
extern const uint8_t ff_h264_golomb_to_intra4x4_cbp[48];
extern const uint8_t ff_h264_golomb_to_inter_cbp[48];
29

30 31
extern const uint8_t ff_h264_chroma_dc_scan[4];
extern const uint8_t ff_h264_chroma422_dc_scan[8];
32

33
typedef struct IMbInfo {
34 35 36 37 38
    uint16_t type;
    uint8_t pred_mode;
    uint8_t cbp;
} IMbInfo;

39
extern const IMbInfo ff_h264_i_mb_type_info[26];
40

41
typedef struct PMbInfo {
42 43 44 45
    uint16_t type;
    uint8_t partition_count;
} PMbInfo;

46 47 48 49
extern const PMbInfo ff_h264_p_mb_type_info[5];
extern const PMbInfo ff_h264_p_sub_mb_type_info[4];
extern const PMbInfo ff_h264_b_mb_type_info[23];
extern const PMbInfo ff_h264_b_sub_mb_type_info[13];
50

51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
static const AVRational ff_h264_pixel_aspect[17] = {
    {   0,  1 },
    {   1,  1 },
    {  12, 11 },
    {  10, 11 },
    {  16, 11 },
    {  40, 33 },
    {  24, 11 },
    {  20, 11 },
    {  32, 11 },
    {  80, 33 },
    {  18, 11 },
    {  15, 11 },
    {  64, 33 },
    { 160, 99 },
    {   4,  3 },
    {   3,  2 },
    {   2,  1 },
};
70

71 72 73 74 75 76
extern const uint8_t ff_h264_dequant4_coeff_init[6][3];
extern const uint8_t ff_h264_dequant8_coeff_init_scan[16];
extern const uint8_t ff_h264_dequant8_coeff_init[6][6];
extern const uint8_t ff_h264_quant_rem6[QP_MAX_NUM + 1];
extern const uint8_t ff_h264_quant_div6[QP_MAX_NUM + 1];

77
extern const uint8_t ff_h264_chroma_qp[7][QP_MAX_NUM + 1];
78

79
#endif /* AVCODEC_H264DATA_H */