xref: /aosp_15_r20/external/libavc/decoder/svc/isvcd_defs.h (revision 495ae853bb871d1e5a258cb02c2cc13cde8ddb9a)
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