1cabdff1aSopenharmony_ci/*
2cabdff1aSopenharmony_ci * This file is part of FFmpeg.
3cabdff1aSopenharmony_ci *
4cabdff1aSopenharmony_ci * FFmpeg is free software; you can redistribute it and/or
5cabdff1aSopenharmony_ci * modify it under the terms of the GNU Lesser General Public
6cabdff1aSopenharmony_ci * License as published by the Free Software Foundation; either
7cabdff1aSopenharmony_ci * version 2.1 of the License, or (at your option) any later version.
8cabdff1aSopenharmony_ci *
9cabdff1aSopenharmony_ci * FFmpeg is distributed in the hope that it will be useful,
10cabdff1aSopenharmony_ci * but WITHOUT ANY WARRANTY; without even the implied warranty of
11cabdff1aSopenharmony_ci * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12cabdff1aSopenharmony_ci * Lesser General Public License for more details.
13cabdff1aSopenharmony_ci *
14cabdff1aSopenharmony_ci * You should have received a copy of the GNU Lesser General Public
15cabdff1aSopenharmony_ci * License along with FFmpeg; if not, write to the Free Software
16cabdff1aSopenharmony_ci * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17cabdff1aSopenharmony_ci */
18cabdff1aSopenharmony_ci
19cabdff1aSopenharmony_ci#ifndef AVCODEC_H264DATA_H
20cabdff1aSopenharmony_ci#define AVCODEC_H264DATA_H
21cabdff1aSopenharmony_ci
22cabdff1aSopenharmony_ci#include <stdint.h>
23cabdff1aSopenharmony_ci
24cabdff1aSopenharmony_ci#include "libavutil/rational.h"
25cabdff1aSopenharmony_ci#include "h264.h"
26cabdff1aSopenharmony_ci
27cabdff1aSopenharmony_ciextern const uint8_t ff_h264_golomb_to_pict_type[5];
28cabdff1aSopenharmony_ciextern const uint8_t ff_h264_golomb_to_intra4x4_cbp[48];
29cabdff1aSopenharmony_ciextern const uint8_t ff_h264_golomb_to_inter_cbp[48];
30cabdff1aSopenharmony_ci
31cabdff1aSopenharmony_ciextern const uint8_t ff_h264_chroma_dc_scan[4];
32cabdff1aSopenharmony_ciextern const uint8_t ff_h264_chroma422_dc_scan[8];
33cabdff1aSopenharmony_ci
34cabdff1aSopenharmony_citypedef struct IMbInfo {
35cabdff1aSopenharmony_ci    uint16_t type;
36cabdff1aSopenharmony_ci    uint8_t pred_mode;
37cabdff1aSopenharmony_ci    uint8_t cbp;
38cabdff1aSopenharmony_ci} IMbInfo;
39cabdff1aSopenharmony_ci
40cabdff1aSopenharmony_ciextern const IMbInfo ff_h264_i_mb_type_info[26];
41cabdff1aSopenharmony_ci
42cabdff1aSopenharmony_citypedef struct PMbInfo {
43cabdff1aSopenharmony_ci    uint16_t type;
44cabdff1aSopenharmony_ci    uint8_t partition_count;
45cabdff1aSopenharmony_ci} PMbInfo;
46cabdff1aSopenharmony_ci
47cabdff1aSopenharmony_ciextern const PMbInfo ff_h264_p_mb_type_info[5];
48cabdff1aSopenharmony_ciextern const PMbInfo ff_h264_p_sub_mb_type_info[4];
49cabdff1aSopenharmony_ciextern const PMbInfo ff_h264_b_mb_type_info[23];
50cabdff1aSopenharmony_ciextern const PMbInfo ff_h264_b_sub_mb_type_info[13];
51cabdff1aSopenharmony_ci
52cabdff1aSopenharmony_cistatic const AVRational ff_h264_pixel_aspect[17] = {
53cabdff1aSopenharmony_ci    {   0,  1 },
54cabdff1aSopenharmony_ci    {   1,  1 },
55cabdff1aSopenharmony_ci    {  12, 11 },
56cabdff1aSopenharmony_ci    {  10, 11 },
57cabdff1aSopenharmony_ci    {  16, 11 },
58cabdff1aSopenharmony_ci    {  40, 33 },
59cabdff1aSopenharmony_ci    {  24, 11 },
60cabdff1aSopenharmony_ci    {  20, 11 },
61cabdff1aSopenharmony_ci    {  32, 11 },
62cabdff1aSopenharmony_ci    {  80, 33 },
63cabdff1aSopenharmony_ci    {  18, 11 },
64cabdff1aSopenharmony_ci    {  15, 11 },
65cabdff1aSopenharmony_ci    {  64, 33 },
66cabdff1aSopenharmony_ci    { 160, 99 },
67cabdff1aSopenharmony_ci    {   4,  3 },
68cabdff1aSopenharmony_ci    {   3,  2 },
69cabdff1aSopenharmony_ci    {   2,  1 },
70cabdff1aSopenharmony_ci};
71cabdff1aSopenharmony_ci
72cabdff1aSopenharmony_ciextern const uint8_t ff_h264_dequant4_coeff_init[6][3];
73cabdff1aSopenharmony_ciextern const uint8_t ff_h264_dequant8_coeff_init_scan[16];
74cabdff1aSopenharmony_ciextern const uint8_t ff_h264_dequant8_coeff_init[6][6];
75cabdff1aSopenharmony_ciextern const uint8_t ff_h264_quant_rem6[QP_MAX_NUM + 1];
76cabdff1aSopenharmony_ciextern const uint8_t ff_h264_quant_div6[QP_MAX_NUM + 1];
77cabdff1aSopenharmony_ci
78cabdff1aSopenharmony_ciextern const uint8_t ff_h264_chroma_qp[7][QP_MAX_NUM + 1];
79cabdff1aSopenharmony_ci
80cabdff1aSopenharmony_ci#endif /* AVCODEC_H264DATA_H */
81