FFmpeg
avs3.h
Go to the documentation of this file.
1 /*
2  * AVS3 related definitions
3  *
4  * Copyright (C) 2020 Huiwen Ren, <hwrenx@gmail.com>
5  *
6  * This file is part of FFmpeg.
7  *
8  * FFmpeg is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU Lesser General Public
10  * License as published by the Free Software Foundation; either
11  * version 2.1 of the License, or (at your option) any later version.
12  *
13  * FFmpeg is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16  * Lesser General Public License for more details.
17  *
18  * You should have received a copy of the GNU Lesser General Public
19  * License along with FFmpeg; if not, write to the Free Software
20  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
21  */
22 
23 #ifndef AVCODEC_AVS3_H
24 #define AVCODEC_AVS3_H
25 
26 #define AVS3_NAL_START_CODE 0x010000
27 #define AVS3_SEQ_START_CODE 0xB0
28 #define AVS3_SEQ_END_CODE 0xB1
29 #define AVS3_USER_DATA_START_CODE 0xB2
30 #define AVS3_INTRA_PIC_START_CODE 0xB3
31 #define AVS3_UNDEF_START_CODE 0xB4
32 #define AVS3_EXTENSION_START_CODE 0xB5
33 #define AVS3_INTER_PIC_START_CODE 0xB6
34 #define AVS3_VIDEO_EDIT_CODE 0xB7
35 #define AVS3_FIRST_SLICE_START_CODE 0x00
36 #define AVS3_PROFILE_BASELINE_MAIN 0x20
37 #define AVS3_PROFILE_BASELINE_MAIN10 0x22
38 
39 #define AVS3_ISPIC(x) ((x) == AVS3_INTRA_PIC_START_CODE || (x) == AVS3_INTER_PIC_START_CODE)
40 #define AVS3_ISUNIT(x) ((x) == AVS3_SEQ_START_CODE || AVS3_ISPIC(x))
41 
42 #include "libavutil/avutil.h"
43 #include "libavutil/pixfmt.h"
44 #include "libavutil/rational.h"
45 
46 static const AVRational ff_avs3_frame_rate_tab[16] = {
47  { 0 , 0 }, // forbid
48  { 24000, 1001},
49  { 24 , 1 },
50  { 25 , 1 },
51  { 30000, 1001},
52  { 30 , 1 },
53  { 50 , 1 },
54  { 60000, 1001},
55  { 60 , 1 },
56  { 100 , 1 },
57  { 120 , 1 },
58  { 200 , 1 },
59  { 240 , 1 },
60  { 300 , 1 },
61  { 0 , 0 }, // reserved
62  { 0 , 0 } // reserved
63 };
64 
65 static const int ff_avs3_color_primaries_tab[10] = {
66  AVCOL_PRI_RESERVED0 , // 0
67  AVCOL_PRI_BT709 , // 1
69  AVCOL_PRI_RESERVED , // 3
70  AVCOL_PRI_BT470M , // 4
71  AVCOL_PRI_BT470BG , // 5
72  AVCOL_PRI_SMPTE170M , // 6
73  AVCOL_PRI_SMPTE240M , // 7
74  AVCOL_PRI_FILM , // 8
75  AVCOL_PRI_BT2020 // 9
76 };
77 
78 static const int ff_avs3_color_transfer_tab[15] = {
79  AVCOL_TRC_RESERVED0 , // 0
80  AVCOL_TRC_BT709 , // 1
82  AVCOL_TRC_RESERVED , // 3
83  AVCOL_TRC_GAMMA22 , // 4
84  AVCOL_TRC_GAMMA28 , // 5
85  AVCOL_TRC_SMPTE170M , // 6
86  AVCOL_TRC_SMPTE240M , // 7
87  AVCOL_TRC_LINEAR , // 8
88  AVCOL_TRC_LOG , // 9
89  AVCOL_TRC_LOG_SQRT , // 10
90  AVCOL_TRC_BT2020_12 , // 11
91  AVCOL_TRC_SMPTE2084 , // 12
92  AVCOL_TRC_UNSPECIFIED , // 13
94 };
95 
96 static const int ff_avs3_color_matrix_tab[12] = {
97  AVCOL_SPC_RESERVED , // 0
98  AVCOL_SPC_BT709 , // 1
100  AVCOL_SPC_RESERVED , // 3
101  AVCOL_SPC_FCC , // 4
102  AVCOL_SPC_BT470BG , // 5
103  AVCOL_SPC_SMPTE170M , // 6
104  AVCOL_SPC_SMPTE240M , // 7
105  AVCOL_SPC_BT2020_NCL , // 8
106  AVCOL_SPC_BT2020_CL , // 9
107  AVCOL_SPC_UNSPECIFIED , // 10
108  AVCOL_SPC_UNSPECIFIED // 11
109 };
110 
111 static const enum AVPictureType ff_avs3_image_type[4] = {
116 };
117 
118 #endif /* AVCODEC_AVS3_H */
ITU-R BT2020 for 12-bit system.
Definition: pixfmt.h:499
also ITU-R BT1361 / IEC 61966-2-4 xvYCC709 / SMPTE RP177 Annex B
Definition: pixfmt.h:514
static const int ff_avs3_color_transfer_tab[15]
Definition: avs3.h:78
"Linear transfer characteristics"
Definition: pixfmt.h:492
also ITU-R BT601-6 625 / ITU-R BT1358 625 / ITU-R BT1700 625 PAL & SECAM / IEC 61966-2-4 xvYCC601 ...
Definition: pixfmt.h:518
static const AVRational ff_avs3_frame_rate_tab[16]
Definition: avs3.h:46
also ITU-R BT601-6 525 / ITU-R BT1358 525 / ITU-R BT1700 NTSC
Definition: pixfmt.h:519
Convenience header that includes libavutil&#39;s core.
functionally identical to above
Definition: pixfmt.h:520
static const int ff_avs3_color_matrix_tab[12]
Definition: avs3.h:96
Undefined.
Definition: avutil.h:273
static enum AVPictureType ff_avs3_image_type[4]
Definition: avs3.h:111
also ITU-R BT470M / ITU-R BT1700 625 PAL & SECAM
Definition: pixfmt.h:488
also FCC Title 47 Code of Federal Regulations 73.682 (a)(20)
Definition: pixfmt.h:463
also ITU-R BT1361 / IEC 61966-2-4 / SMPTE RP177 Annex B
Definition: pixfmt.h:460
SMPTE ST 2084 for 10-, 12-, 14- and 16-bit systems.
Definition: pixfmt.h:500
colour filters using Illuminant C
Definition: pixfmt.h:468
ITU-R BT2020 non-constant luminance system.
Definition: pixfmt.h:523
also ITU-R BT601-6 625 / ITU-R BT1358 625 / ITU-R BT1700 625 PAL & SECAM
Definition: pixfmt.h:465
FCC Title 47 Code of Federal Regulations 73.682 (a)(20)
Definition: pixfmt.h:517
also ITU-R BT1361
Definition: pixfmt.h:485
also ITU-R BT601-6 525 or 625 / ITU-R BT1358 525 or 625 / ITU-R BT1700 NTSC
Definition: pixfmt.h:490
functionally identical to above
Definition: pixfmt.h:467
Rational number (pair of numerator and denominator).
Definition: rational.h:58
"Logarithmic transfer characteristic (100 * Sqrt(10) : 1 range)"
Definition: pixfmt.h:494
AVPictureType
Definition: avutil.h:272
ITU-R BT2020 constant luminance system.
Definition: pixfmt.h:524
Utilties for rational number calculation.
also ITU-R BT470BG
Definition: pixfmt.h:489
Bi-dir predicted.
Definition: avutil.h:276
ARIB STD-B67, known as "Hybrid log-gamma".
Definition: pixfmt.h:504
pixel format definitions
also ITU-R BT601-6 525 / ITU-R BT1358 525 / ITU-R BT1700 NTSC
Definition: pixfmt.h:466
ITU-R BT2020.
Definition: pixfmt.h:469
static const int ff_avs3_color_primaries_tab[10]
Definition: avs3.h:65
Predicted.
Definition: avutil.h:275
"Logarithmic transfer characteristic (100:1 range)"
Definition: pixfmt.h:493