1cabdff1aSopenharmony_ci/* 2cabdff1aSopenharmony_ci * AVS3 related definitions 3cabdff1aSopenharmony_ci * 4cabdff1aSopenharmony_ci * Copyright (C) 2020 Huiwen Ren, <hwrenx@gmail.com> 5cabdff1aSopenharmony_ci * 6cabdff1aSopenharmony_ci * This file is part of FFmpeg. 7cabdff1aSopenharmony_ci * 8cabdff1aSopenharmony_ci * FFmpeg is free software; you can redistribute it and/or 9cabdff1aSopenharmony_ci * modify it under the terms of the GNU Lesser General Public 10cabdff1aSopenharmony_ci * License as published by the Free Software Foundation; either 11cabdff1aSopenharmony_ci * version 2.1 of the License, or (at your option) any later version. 12cabdff1aSopenharmony_ci * 13cabdff1aSopenharmony_ci * FFmpeg is distributed in the hope that it will be useful, 14cabdff1aSopenharmony_ci * but WITHOUT ANY WARRANTY; without even the implied warranty of 15cabdff1aSopenharmony_ci * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 16cabdff1aSopenharmony_ci * Lesser General Public License for more details. 17cabdff1aSopenharmony_ci * 18cabdff1aSopenharmony_ci * You should have received a copy of the GNU Lesser General Public 19cabdff1aSopenharmony_ci * License along with FFmpeg; if not, write to the Free Software 20cabdff1aSopenharmony_ci * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 21cabdff1aSopenharmony_ci */ 22cabdff1aSopenharmony_ci 23cabdff1aSopenharmony_ci#ifndef AVCODEC_AVS3_H 24cabdff1aSopenharmony_ci#define AVCODEC_AVS3_H 25cabdff1aSopenharmony_ci 26cabdff1aSopenharmony_ci#define AVS3_NAL_START_CODE 0x010000 27cabdff1aSopenharmony_ci#define AVS3_SEQ_START_CODE 0xB0 28cabdff1aSopenharmony_ci#define AVS3_SEQ_END_CODE 0xB1 29cabdff1aSopenharmony_ci#define AVS3_USER_DATA_START_CODE 0xB2 30cabdff1aSopenharmony_ci#define AVS3_INTRA_PIC_START_CODE 0xB3 31cabdff1aSopenharmony_ci#define AVS3_UNDEF_START_CODE 0xB4 32cabdff1aSopenharmony_ci#define AVS3_EXTENSION_START_CODE 0xB5 33cabdff1aSopenharmony_ci#define AVS3_INTER_PIC_START_CODE 0xB6 34cabdff1aSopenharmony_ci#define AVS3_VIDEO_EDIT_CODE 0xB7 35cabdff1aSopenharmony_ci#define AVS3_FIRST_SLICE_START_CODE 0x00 36cabdff1aSopenharmony_ci#define AVS3_PROFILE_BASELINE_MAIN 0x20 37cabdff1aSopenharmony_ci#define AVS3_PROFILE_BASELINE_MAIN10 0x22 38cabdff1aSopenharmony_ci 39cabdff1aSopenharmony_ci#define AVS3_ISPIC(x) ((x) == AVS3_INTRA_PIC_START_CODE || (x) == AVS3_INTER_PIC_START_CODE) 40cabdff1aSopenharmony_ci#define AVS3_ISUNIT(x) ((x) == AVS3_SEQ_START_CODE || AVS3_ISPIC(x)) 41cabdff1aSopenharmony_ci 42cabdff1aSopenharmony_ci#include "libavutil/avutil.h" 43cabdff1aSopenharmony_ci#include "libavutil/pixfmt.h" 44cabdff1aSopenharmony_ci#include "libavutil/rational.h" 45cabdff1aSopenharmony_ci 46cabdff1aSopenharmony_cistatic const AVRational ff_avs3_frame_rate_tab[16] = { 47cabdff1aSopenharmony_ci { 0 , 0 }, // forbid 48cabdff1aSopenharmony_ci { 24000, 1001}, 49cabdff1aSopenharmony_ci { 24 , 1 }, 50cabdff1aSopenharmony_ci { 25 , 1 }, 51cabdff1aSopenharmony_ci { 30000, 1001}, 52cabdff1aSopenharmony_ci { 30 , 1 }, 53cabdff1aSopenharmony_ci { 50 , 1 }, 54cabdff1aSopenharmony_ci { 60000, 1001}, 55cabdff1aSopenharmony_ci { 60 , 1 }, 56cabdff1aSopenharmony_ci { 100 , 1 }, 57cabdff1aSopenharmony_ci { 120 , 1 }, 58cabdff1aSopenharmony_ci { 200 , 1 }, 59cabdff1aSopenharmony_ci { 240 , 1 }, 60cabdff1aSopenharmony_ci { 300 , 1 }, 61cabdff1aSopenharmony_ci { 0 , 0 }, // reserved 62cabdff1aSopenharmony_ci { 0 , 0 } // reserved 63cabdff1aSopenharmony_ci}; 64cabdff1aSopenharmony_ci 65cabdff1aSopenharmony_cistatic const int ff_avs3_color_primaries_tab[10] = { 66cabdff1aSopenharmony_ci AVCOL_PRI_RESERVED0 , // 0 67cabdff1aSopenharmony_ci AVCOL_PRI_BT709 , // 1 68cabdff1aSopenharmony_ci AVCOL_PRI_UNSPECIFIED , // 2 69cabdff1aSopenharmony_ci AVCOL_PRI_RESERVED , // 3 70cabdff1aSopenharmony_ci AVCOL_PRI_BT470M , // 4 71cabdff1aSopenharmony_ci AVCOL_PRI_BT470BG , // 5 72cabdff1aSopenharmony_ci AVCOL_PRI_SMPTE170M , // 6 73cabdff1aSopenharmony_ci AVCOL_PRI_SMPTE240M , // 7 74cabdff1aSopenharmony_ci AVCOL_PRI_FILM , // 8 75cabdff1aSopenharmony_ci AVCOL_PRI_BT2020 // 9 76cabdff1aSopenharmony_ci}; 77cabdff1aSopenharmony_ci 78cabdff1aSopenharmony_cistatic const int ff_avs3_color_transfer_tab[15] = { 79cabdff1aSopenharmony_ci AVCOL_TRC_RESERVED0 , // 0 80cabdff1aSopenharmony_ci AVCOL_TRC_BT709 , // 1 81cabdff1aSopenharmony_ci AVCOL_TRC_UNSPECIFIED , // 2 82cabdff1aSopenharmony_ci AVCOL_TRC_RESERVED , // 3 83cabdff1aSopenharmony_ci AVCOL_TRC_GAMMA22 , // 4 84cabdff1aSopenharmony_ci AVCOL_TRC_GAMMA28 , // 5 85cabdff1aSopenharmony_ci AVCOL_TRC_SMPTE170M , // 6 86cabdff1aSopenharmony_ci AVCOL_TRC_SMPTE240M , // 7 87cabdff1aSopenharmony_ci AVCOL_TRC_LINEAR , // 8 88cabdff1aSopenharmony_ci AVCOL_TRC_LOG , // 9 89cabdff1aSopenharmony_ci AVCOL_TRC_LOG_SQRT , // 10 90cabdff1aSopenharmony_ci AVCOL_TRC_BT2020_12 , // 11 91cabdff1aSopenharmony_ci AVCOL_TRC_SMPTE2084 , // 12 92cabdff1aSopenharmony_ci AVCOL_TRC_UNSPECIFIED , // 13 93cabdff1aSopenharmony_ci AVCOL_TRC_ARIB_STD_B67 // 14 94cabdff1aSopenharmony_ci}; 95cabdff1aSopenharmony_ci 96cabdff1aSopenharmony_cistatic const int ff_avs3_color_matrix_tab[12] = { 97cabdff1aSopenharmony_ci AVCOL_SPC_RESERVED , // 0 98cabdff1aSopenharmony_ci AVCOL_SPC_BT709 , // 1 99cabdff1aSopenharmony_ci AVCOL_SPC_UNSPECIFIED , // 2 100cabdff1aSopenharmony_ci AVCOL_SPC_RESERVED , // 3 101cabdff1aSopenharmony_ci AVCOL_SPC_FCC , // 4 102cabdff1aSopenharmony_ci AVCOL_SPC_BT470BG , // 5 103cabdff1aSopenharmony_ci AVCOL_SPC_SMPTE170M , // 6 104cabdff1aSopenharmony_ci AVCOL_SPC_SMPTE240M , // 7 105cabdff1aSopenharmony_ci AVCOL_SPC_BT2020_NCL , // 8 106cabdff1aSopenharmony_ci AVCOL_SPC_BT2020_CL , // 9 107cabdff1aSopenharmony_ci AVCOL_SPC_UNSPECIFIED , // 10 108cabdff1aSopenharmony_ci AVCOL_SPC_UNSPECIFIED // 11 109cabdff1aSopenharmony_ci}; 110cabdff1aSopenharmony_ci 111cabdff1aSopenharmony_cistatic const enum AVPictureType ff_avs3_image_type[4] = { 112cabdff1aSopenharmony_ci AV_PICTURE_TYPE_NONE, 113cabdff1aSopenharmony_ci AV_PICTURE_TYPE_I, 114cabdff1aSopenharmony_ci AV_PICTURE_TYPE_P, 115cabdff1aSopenharmony_ci AV_PICTURE_TYPE_B 116cabdff1aSopenharmony_ci}; 117cabdff1aSopenharmony_ci 118cabdff1aSopenharmony_ci#endif /* AVCODEC_AVS3_H */ 119