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 68 AVCOL_PRI_UNSPECIFIED , // 2 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 81 AVCOL_TRC_UNSPECIFIED , // 2 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 93 AVCOL_TRC_ARIB_STD_B67 // 14 94 }; 95 96 static const int ff_avs3_color_matrix_tab[12] = { 97 AVCOL_SPC_RESERVED , // 0 98 AVCOL_SPC_BT709 , // 1 99 AVCOL_SPC_UNSPECIFIED , // 2 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] = { 112 AV_PICTURE_TYPE_NONE, 113 AV_PICTURE_TYPE_I, 114 AV_PICTURE_TYPE_P, 115 AV_PICTURE_TYPE_B 116 }; 117 118 #endif /* AVCODEC_AVS3_H */ 119