xref: /aosp_15_r20/external/libavc/common/mvc/imvc_defs.h (revision 495ae853bb871d1e5a258cb02c2cc13cde8ddb9a)
1 /******************************************************************************
2  *
3  * Copyright (C) 2021 The Android Open Source Project
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at:
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  *****************************************************************************
18  * Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore
19  */
20 
21 #ifndef _IMVC_DEFS_H_
22 #define _IMVC_DEFS_H_
23 
24 #define MAX_NUM_VIEWS 6
25 
26 #define LOG2_MAX_NUM_VIEWS 3
27 
28 #define MAX_NUM_IVP_REFS MAX_NUM_VIEWS
29 
30 #define MAX_NUM_LEVEL_VALUES_SIGNALLED 1
31 
32 #define MAX_NUM_OPERATING_POINTS 1
33 
34 #define MULTIVIEW_HIGH_PROFILE_IDC 118
35 
36 #define NUM_OF_ZERO_BYTES_BEFORE_START_CODE 2
37 
38 #define EMULATION_PREVENTION_BYTE 0x03
39 
40 #define MIN_H264_QP 0
41 
42 #define MAX_H264_QP 51
43 
44 #define NUM_SP_COMPONENTS 2
45 
46 #define NUM_COMPONENTS 3
47 
48 #define FORCEINLINE __attribute__((always_inline)) inline
49 
50 typedef void *FT_ALIGNED_ALLOC(void *pv_mem_ctxt, WORD32 i4_alignment, WORD32 i4_size);
51 
52 typedef void FT_ALIGNED_FREE(void *pv_mem_ctxt, void *pv_buf);
53 
54 typedef enum COMPONENT_TYPES_T
55 {
56     Y = 0,
57     UV = 1,
58     U = 1,
59     V = 2,
60 } COMPONENT_TYPES_T;
61 
62 typedef enum AVC_EXT_NALU_ID_T
63 {
64     UNSPEC_0 = 0,
65 
66     SLICE_NON_IDR = 1,
67 
68     SLICE_DPA = 2,
69 
70     SLICE_DPB = 3,
71 
72     SLICE_DPC = 4,
73 
74     SLICE_IDR = 5,
75 
76     SEI = 6,
77 
78     SPS = 7,
79 
80     PPS = 8,
81 
82     AUD = 9,
83 
84     EOSEQ = 10,
85 
86     EOSTR = 11,
87 
88     FILLER = 12,
89 
90     SPSE = 13,
91 
92     PREFIX_NAL = 14,
93 
94     SUBSET_SPS = 15,
95 
96     AUX_PIC = 19,
97 
98     CODED_SLICE_EXTENSION = 20,
99 
100     UNSPEC_31 = 24
101 
102 } AVC_EXT_NALU_ID_T;
103 
104 typedef enum SLICE_TYPES_T
105 {
106     PSLICE = 0,
107     BSLICE = 1,
108     ISLICE = 2,
109     SPSLICE = 3,
110     SISLICE = 4,
111     MAXSLICE_TYPE,
112 } SLICE_TYPES_T;
113 
114 #endif
115