1*495ae853SAndroid Build Coastguard Worker /****************************************************************************** 2*495ae853SAndroid Build Coastguard Worker * 3*495ae853SAndroid Build Coastguard Worker * Copyright (C) 2022 The Android Open Source Project 4*495ae853SAndroid Build Coastguard Worker * 5*495ae853SAndroid Build Coastguard Worker * Licensed under the Apache License, Version 2.0 (the "License"); 6*495ae853SAndroid Build Coastguard Worker * you may not use this file except in compliance with the License. 7*495ae853SAndroid Build Coastguard Worker * You may obtain a copy of the License at: 8*495ae853SAndroid Build Coastguard Worker * 9*495ae853SAndroid Build Coastguard Worker * http://www.apache.org/licenses/LICENSE-2.0 10*495ae853SAndroid Build Coastguard Worker * 11*495ae853SAndroid Build Coastguard Worker * Unless required by applicable law or agreed to in writing, software 12*495ae853SAndroid Build Coastguard Worker * distributed under the License is distributed on an "AS IS" BASIS, 13*495ae853SAndroid Build Coastguard Worker * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14*495ae853SAndroid Build Coastguard Worker * See the License for the specific language governing permissions and 15*495ae853SAndroid Build Coastguard Worker * limitations under the License. 16*495ae853SAndroid Build Coastguard Worker * 17*495ae853SAndroid Build Coastguard Worker ***************************************************************************** 18*495ae853SAndroid Build Coastguard Worker * Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore 19*495ae853SAndroid Build Coastguard Worker */ 20*495ae853SAndroid Build Coastguard Worker /** 21*495ae853SAndroid Build Coastguard Worker ******************************************************************************* 22*495ae853SAndroid Build Coastguard Worker * @file 23*495ae853SAndroid Build Coastguard Worker * isvcd_defs.h 24*495ae853SAndroid Build Coastguard Worker * 25*495ae853SAndroid Build Coastguard Worker * @brief 26*495ae853SAndroid Build Coastguard Worker * Type definitions used in the code 27*495ae853SAndroid Build Coastguard Worker * 28*495ae853SAndroid Build Coastguard Worker * @author 29*495ae853SAndroid Build Coastguard Worker * Kishore 30*495ae853SAndroid Build Coastguard Worker * 31*495ae853SAndroid Build Coastguard Worker * @remarks 32*495ae853SAndroid Build Coastguard Worker * None 33*495ae853SAndroid Build Coastguard Worker * 34*495ae853SAndroid Build Coastguard Worker ******************************************************************************* 35*495ae853SAndroid Build Coastguard Worker */ 36*495ae853SAndroid Build Coastguard Worker 37*495ae853SAndroid Build Coastguard Worker #ifndef _ISVCD_DEFS_H_ 38*495ae853SAndroid Build Coastguard Worker #define _ISVCD_DEFS_H_ 39*495ae853SAndroid Build Coastguard Worker 40*495ae853SAndroid Build Coastguard Worker #include <stdint.h> 41*495ae853SAndroid Build Coastguard Worker 42*495ae853SAndroid Build Coastguard Worker typedef enum 43*495ae853SAndroid Build Coastguard Worker { 44*495ae853SAndroid Build Coastguard Worker ERROR_SVC_FIELD_PIC_UNSUPPORTED = 0xC1, 45*495ae853SAndroid Build Coastguard Worker ERROR_SVC_INV_SCAN_IDX = 0xC2, 46*495ae853SAndroid Build Coastguard Worker ERROR_SVC_INV_NAL_UNIT = 0xC3, 47*495ae853SAndroid Build Coastguard Worker ERROR_SVC_INV_SUBSET_SPS = 0xC4 48*495ae853SAndroid Build Coastguard Worker } isvcd_decoder_error_code_t; 49*495ae853SAndroid Build Coastguard Worker 50*495ae853SAndroid Build Coastguard Worker #define FLUSH 2 51*495ae853SAndroid Build Coastguard Worker 52*495ae853SAndroid Build Coastguard Worker #define SVCD_MAX_FRAME_WIDTH 4080 53*495ae853SAndroid Build Coastguard Worker #define SVCD_MAX_FRAME_HEIGHT 4080 54*495ae853SAndroid Build Coastguard Worker #define SVCD_MAX_FRAME_SIZE (4096 * 2048) 55*495ae853SAndroid Build Coastguard Worker 56*495ae853SAndroid Build Coastguard Worker #define SVCD_MIN_FRAME_WIDTH 32 57*495ae853SAndroid Build Coastguard Worker #define SVCD_MIN_FRAME_HEIGHT 32 58*495ae853SAndroid Build Coastguard Worker 59*495ae853SAndroid Build Coastguard Worker #define SCALABLE_BASELINE_PROFILE_IDC 83 60*495ae853SAndroid Build Coastguard Worker #define SCALABLE_HIGH_PROFILE_IDC 86 61*495ae853SAndroid Build Coastguard Worker #define SCALABLE_HIGH_INTRA_IDC 118 62*495ae853SAndroid Build Coastguard Worker 63*495ae853SAndroid Build Coastguard Worker #define SPS_EXTENSION_NAL 13 64*495ae853SAndroid Build Coastguard Worker #define PREFIX_UNIT_NAL 14 65*495ae853SAndroid Build Coastguard Worker #define SUBSET_SPS_NAL 15 66*495ae853SAndroid Build Coastguard Worker #define CODED_SLICE_EXTENSION_NAL 20 67*495ae853SAndroid Build Coastguard Worker 68*495ae853SAndroid Build Coastguard Worker #define EP_SLICE 5 69*495ae853SAndroid Build Coastguard Worker #define EB_SLICE 6 70*495ae853SAndroid Build Coastguard Worker #define EI_SLICE 7 71*495ae853SAndroid Build Coastguard Worker 72*495ae853SAndroid Build Coastguard Worker #define D_INTRA_IBL 16 73*495ae853SAndroid Build Coastguard Worker 74*495ae853SAndroid Build Coastguard Worker #define CAB_INFERRED 0xFF 75*495ae853SAndroid Build Coastguard Worker 76*495ae853SAndroid Build Coastguard Worker #define MAX_TOTAL_LYRS (MAX_QUALITY_ID + 1) * (MAX_DEPENDENCY_ID + 1) * 16 77*495ae853SAndroid Build Coastguard Worker 78*495ae853SAndroid Build Coastguard Worker #define MAX_QUALITY_LYRS 5 /* ReqRename */ 79*495ae853SAndroid Build Coastguard Worker /*!< Maximum number of layers with same 80*495ae853SAndroid Build Coastguard Worker dependency id 81*495ae853SAndroid Build Coastguard Worker */ 82*495ae853SAndroid Build Coastguard Worker #define MAX_DEPENDENCY_LYRS 6 /* ReqRename */ 83*495ae853SAndroid Build Coastguard Worker /*!< Maximum number of layers with 84*495ae853SAndroid Build Coastguard Worker different dependency id 85*495ae853SAndroid Build Coastguard Worker */ 86*495ae853SAndroid Build Coastguard Worker 87*495ae853SAndroid Build Coastguard Worker /** Maximum number of layers without spatial resolution change */ 88*495ae853SAndroid Build Coastguard Worker #define MAX_NUM_LYRS_IN_RES 5 89*495ae853SAndroid Build Coastguard Worker 90*495ae853SAndroid Build Coastguard Worker /** Maximum number of dependency layers in a resolution */ 91*495ae853SAndroid Build Coastguard Worker #define MAX_DEP_LYRS_IN_RES 3 92*495ae853SAndroid Build Coastguard Worker 93*495ae853SAndroid Build Coastguard Worker /* Maximum number of spatial resolution layers */ 94*495ae853SAndroid Build Coastguard Worker #define MAX_NUM_RES_LYRS 3 95*495ae853SAndroid Build Coastguard Worker 96*495ae853SAndroid Build Coastguard Worker /* Maximum number of layers in an access unit */ 97*495ae853SAndroid Build Coastguard Worker #define MAX_NUM_LAYERS MAX_NUM_LYRS_IN_RES *MAX_NUM_RES_LYRS 98*495ae853SAndroid Build Coastguard Worker 99*495ae853SAndroid Build Coastguard Worker #define MAX_NUM_PIC_BUFS (32 + 1) 100*495ae853SAndroid Build Coastguard Worker 101*495ae853SAndroid Build Coastguard Worker /*SVC Standard Specific Macros*/ 102*495ae853SAndroid Build Coastguard Worker #define MAX_QUALITY_ID 0 103*495ae853SAndroid Build Coastguard Worker #define MAX_DEPENDENCY_ID 4 104*495ae853SAndroid Build Coastguard Worker #define MAX_TEMPORAL_ID 7 105*495ae853SAndroid Build Coastguard Worker #define MAX_PRIORITY_ID 63 106*495ae853SAndroid Build Coastguard Worker #define MAX_REF_DEP_ID ((MAX_DEPENDENCY_ID << 4) | MAX_QUALITY_ID) 107*495ae853SAndroid Build Coastguard Worker 108*495ae853SAndroid Build Coastguard Worker #define BASE_LAYER 0 109*495ae853SAndroid Build Coastguard Worker #define MEDIAL_ENHANCEMENT_LAYER 1 110*495ae853SAndroid Build Coastguard Worker #define TARGET_LAYER 2 111*495ae853SAndroid Build Coastguard Worker 112*495ae853SAndroid Build Coastguard Worker #define MB_INFER 250 113*495ae853SAndroid Build Coastguard Worker 114*495ae853SAndroid Build Coastguard Worker #define SVC_INTER_MB (1 << 0) /*!< Intra MBs other than IPCM and I_BL */ 115*495ae853SAndroid Build Coastguard Worker #define SVC_INTRA_MB (1 << 1) /*!< P or B MBs decoded or inferred*/ 116*495ae853SAndroid Build Coastguard Worker #define SVC_IPCM_MB (1 << 2) /*!< IPCM_MB decoder or inferred*/ 117*495ae853SAndroid Build Coastguard Worker #define SVC_IBL_MB (1 << 3) /*!< I_BL MB always inferred */ 118*495ae853SAndroid Build Coastguard Worker #define SVC_INTRA_INTER_MB (1 << 4) /*!< Intra Inter MB */ 119*495ae853SAndroid Build Coastguard Worker 120*495ae853SAndroid Build Coastguard Worker #endif /*_ISVCD_DEFS_H_*/ 121