source: 3DVCSoftware/branches/HTM-9.2-dev0/source/Lib/TLibCommon/TypeDef.h @ 765

Last change on this file since 765 was 765, checked in by tech, 11 years ago

Cleanup part 2

  • Property svn:eol-style set to native
File size: 44.2 KB
Line 
1/* The copyright in this software is being made available under the BSD
2 * License, included below. This software may be subject to other third party
3 * and contributor rights, including patent rights, and no such rights are
4 * granted under this license. 
5 *
6 * Copyright (c) 2010-2013, ITU/ISO/IEC
7 * All rights reserved.
8 *
9 * Redistribution and use in source and binary forms, with or without
10 * modification, are permitted provided that the following conditions are met:
11 *
12 *  * Redistributions of source code must retain the above copyright notice,
13 *    this list of conditions and the following disclaimer.
14 *  * Redistributions in binary form must reproduce the above copyright notice,
15 *    this list of conditions and the following disclaimer in the documentation
16 *    and/or other materials provided with the distribution.
17 *  * Neither the name of the ITU/ISO/IEC nor the names of its contributors may
18 *    be used to endorse or promote products derived from this software without
19 *    specific prior written permission.
20 *
21 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
22 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
24 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS
25 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
26 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
27 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
28 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
29 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
30 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
31 * THE POSSIBILITY OF SUCH DAMAGE.
32 */
33
34/** \file     TypeDef.h
35    \brief    Define basic types, new types and enumerations
36*/
37
38#ifndef _TYPEDEF__
39#define _TYPEDEF__
40
41//! \ingroup TLibCommon
42//! \{
43/////////////////////////////////////////////////////////////////////////////////////////
44///////////////////////////////// EXTENSION SELECTION /////////////////////////////////// 
45/////////////////////////////////////////////////////////////////////////////////////////
46
47/* HEVC_EXT might be defined by compiler/makefile options.
48   
49   Linux makefiles support the following settings:   
50   make             -> HEVC_EXT not defined   
51   make HEVC_EXT=0  -> H_MV=0 H_3D=0   --> plain HM
52   make HEVC_EXT=1  -> H_MV=1 H_3D=0   --> MV only
53   make HEVC_EXT=2  -> H_MV=1 H_3D=1   --> full 3D
54*/
55
56#ifndef HEVC_EXT
57#define HEVC_EXT                    2
58#endif
59
60#if ( HEVC_EXT < 0 )||( HEVC_EXT > 2 )
61#error HEVC_EXT must be in the range of 0 to 2, inclusive.
62#endif
63
64#define H_MV          ( HEVC_EXT != 0)
65#define H_3D          ( HEVC_EXT == 2)
66
67
68/////////////////////////////////////////////////////////////////////////////////////////
69///////////////////////////////////   MAJOR DEFINES   /////////////////////////////////// 
70/////////////////////////////////////////////////////////////////////////////////////////
71
72#if H_MV
73#define H_MV_ENC_DEC_TRAC                 1  //< CU/PU level tracking
74#endif
75
76#if H_3D
77#define H_3D_QTLPC                        1   // OL_QTLIMIT_PREDCODING_B0068 //JCT3V-B0068
78                                              // HHI_QTLPC_RAU_OFF_C0160     // JCT3V-C0160 change 2: quadtree limitation and predictive coding switched off in random access units
79
80#define H_3D_VSO                          1   // VSO, View synthesis optimization, includes:
81                                              // HHI_VSO
82                                              // HHI_VSO_LS_TABLE_M23714 enable table base Lagrange multiplier optimization
83                                              // SAIT_VSO_EST_A0033, JCT3V-A0033 modification 3
84                                              // LGE_WVSO_A0119
85#define H_3D_NBDV                         1   // Neighboring block disparity derivation
86                                              // QC_JCT3V-A0097
87                                              // LGE_DVMCP_A0126
88                                              // LGE_DVMCP_MEM_REDUCTION_B0135     
89                                              // QC_SIMPLE_NBDV_B0047
90                                              // FIX_LGE_DVMCP_B0133
91                                              // QC_NBDV_LDB_FIX_C0055
92                                              // MTK_SAIT_TEMPORAL_FIRST_ORDER_C0141_C0097
93                                              // MTK_SIMPLIFY_DVTC_C0135           
94                                              // QC_CU_NBDV_D0181
95                                              // SEC_DEFAULT_DV_D0112
96                                              // MTK_DVMCP_FIX_E0172       fix the mismatch between software and WD for DV derivation from DVMCP blocks, issue 2 in JCT3V-E0172
97                                              // SEC_SIMPLIFIED_NBDV_E0142 Simplified NBDV, JCT3V-E0142 and JCT3V-E0190
98                                              // MTK_NBDV_TN_FIX_E0172     fix the issue of DV derivation from the temporal neighboring blocks, issue 7 in JCT3V-E0172
99                                              // MTK_TEXTURE_MRGCAND_BUGFIX_E0182  Bug fix for TEXTURE MERGING CANDIDATE     , JCT3V-E0182
100#define H_3D_ARP                          1   // Advanced residual prediction (ARP), JCT3V-D0177
101                                              // QC_MTK_INTERVIEW_ARP_F0123_F0108 JCT3V-F0123; JCT3V-F0108
102                                              // SHARP_ARP_REF_CHECK_F0105        ARP reference picture selection and DPB check
103                                              // LGE_ARP_CTX_F0161                JCT3V-F0161
104#define H_3D_IC                           1   // Illumination Compensation, JCT3V-B0045, JCT3V-C0046, JCT3V-D0060
105                                              // Unifying rounding offset, for IC part, JCT3V-D0135
106                                              // Full Pel Interpolation for Depth, HHI_FULL_PEL_DEPTH_MAP_MV_ACC
107                                              // SHARP_ILLUCOMP_REFINE_E0046
108                                              // MTK_CLIPPING_ALIGN_IC_E0168       // To support simplify bi-prediction PU with identical motion checking, JCT3V-E0168
109                                              // LGE_IC_CTX_F0160 //JCT3V-F0160
110                                              // SEC_ONLY_TEXTURE_IC_F0151
111
112#if H_3D_NBDV
113#define H_3D_NBDV_REF                     1   // Depth oriented neighboring block disparity derivation
114                                              // MTK_D0156
115                                              // MERL_D0166: Reference view selection in NBDV & Bi-VSP
116                                              // MERL_C0152: Basic VSP
117                                              // NBDV_DEFAULT_VIEWIDX_BUGFIX Bug fix for invalid default view index for NBDV
118                                              // NTT_DoNBDV_VECTOR_CLIP_E0141 disparity vector clipping in DoNBDV, JCT3V-E0141 and JCT3V-E0209
119#endif
120
121#define H_3D_VSP                          1   // View synthesis prediction
122                                              // MERL_C0152: Basic VSP
123                                              // MERL_D0166: Reference view selection in NBDV & Bi-VSP
124                                              // MTK_D0105, LG_D0139: No VSP for depth
125                                              // QC_D0191: Clean up
126                                              // LG_D0092: Multiple VSP candidate allowed
127                                              // MTK_VSP_FIX_ALIGN_WD_E0172
128                                              // NTT_VSP_ADAPTIVE_SPLIT_E0207 adaptive sub-PU partitioning in VSP, JCT3V-E0207
129                                              // NTT_VSP_DC_BUGFIX_E0208 bugfix for sub-PU based DC in VSP, JCT3V-E0208
130                                              // NTT_VSP_COMMON_E0207_E0208 common part of JCT3V-E0207 and JCT3V-E0208
131                                              // MTK_F0109_LG_F0120_VSP_BLOCK MTK_LG_SIMPLIFY_VSP_BLOCK_PARTITION_F0109_F0120 
132                                              // SHARP_VSP_BLOCK_IN_AMP_F0102 VSP partitioning for AMP
133                                              // MTK_VSP_SIMPLIFICATION_F0111 1. Inherited VSP also use NBDV of current CU, 2. VSP cannot be inherited from above LCU rowss
134                                              // LGE_SHARP_VSP_INHERIT_F0104
135
136#define H_3D_IV_MERGE                     1   // Inter-view motion merge candidate
137                                              // HHI_INTER_VIEW_MOTION_PRED
138                                              // SAIT_IMPROV_MOTION_PRED_M24829, improved inter-view motion vector prediction
139                                              // QC_MRG_CANS_B0048             , JCT3V-B0048, B0086, B0069
140                                              // OL_DISMV_POS_B0069            , different pos for disparity MV candidate, B0069
141                                              // MTK_INTERVIEW_MERGE_A0049     , second part
142                                              // QC_AMVP_MRG_UNIFY_IVCAN_C0051     
143                                              // TEXTURE MERGING CANDIDATE     , JCT3V-C0137
144                                              // QC_INRIA_MTK_MRG_E0126
145                                              // ETRIKHU_MERGE_REUSE_F0093 QC_DEPTH_IV_MRG_F0125, JCT3V-F0125: Depth oriented Inter-view MV candidate
146                                              // EC_MPI_ENABLING_MERGE_F0150, MPI flag in VPS and enabling in Merge mode
147
148
149
150
151#define H_3D_TMVP                         1   // QC_TMVP_C0047
152                                              // Sony_M23639
153
154#define H_3D_DIM                          1   // DIM, Depth intra modes, includes:
155                                              // HHI_DMM_WEDGE_INTRA
156                                              // HHI_DMM_PRED_TEX
157                                              // FIX_WEDGE_NOFLOAT_D0036
158                                              // LGE_EDGE_INTRA_A0070
159                                              // LGE_DMM3_SIMP_C0044
160                                              // QC_DC_PREDICTOR_D0183
161                                              // HHI_DELTADC_DLT_D0035
162                                              // PKU_QC_DEPTH_INTRA_UNI_D0195
163                                              // RWTH_SDC_DLT_B0036
164                                              // INTEL_SDC64_D0193
165                                              // RWTH_SDC_CTX_SIMPL_D0032
166                                              // LGE_CONCATENATE_D0141
167                                              // FIX_SDC_ENC_RD_WVSO_D0163
168                                              // MTK_SAMPLE_BASED_SDC_D0110
169                                              // SEC_DMM2_E0146_HHIFIX Removal of DMM2 from DMMs
170                                              // ZJU_DEPTH_INTRA_MODE_E0204 Simplified Binarization for depth_intra_mode
171                                              // KWU_SDC_SIMPLE_DC_E0117 Simplified DC calculation for SDC
172                                              // SCU_HS_DMM4_REMOVE_DIV_E0242 DMM4 Division Removal
173                                              // LGE_SDC_REMOVE_DC_E0158 Removal of DC mode from SDC
174                                              // LGE_PKU_DMM3_OVERLAP_E0159_HHIFIX 1   Removal of overlap between DMM3 and DMM1
175                                              // LGE_PRED_RES_CODING_DLT_DOMAIN_F0159 JCT3V-F0159
176                                              // HHI_DIM_PREDSAMP_FIX_F0171
177                                              // SEC_DMM3_RBC_F0147 Removal of DMM3 and RBC from DMMs
178                                              // QC_DIM_DELTADC_UNIFY_F0132 Unify delta DC coding in depth intra modes
179
180#define H_3D_INTER_SDC                    1   // INTER SDC, Inter simplified depth coding
181                                              // LGE_INTER_SDC_E0156  Enable inter SDC for depth coding
182#define H_3D_SPIVMP                       1   // H_3D_SPIVMP    // JCT3V-F0110: Sub-PU level inter-view motion prediction
183#define H_3D_FCO                          0   // Flexible coding order for 3D
184
185
186
187// OTHERS
188                                              // MTK_SONY_PROGRESSIVE_MV_COMPRESSION_E0170 // Progressive MV Compression, JCT3V-E0170
189#define H_3D_REN_MAX_DEV_OUT              0   // Output maximal possible shift deviation
190#define H_3D_FAST_TEXTURE_ENCODING        1   // Fast merge mode decision and early CU determination for texture component of dependent view, JCT3V-E0173
191                                              // MTK_FAST_TEXTURE_ENCODING_E0173
192#if H_3D_DIM
193#define H_3D_FAST_DEPTH_INTRA             1   // Fast DMM and RBC Mode Selection
194                                              // SCU_HS_FAST_DEPTH_INTRA_E0238_HHIFIX
195#endif
196
197#define CAM_HLS_F0136_F0045_F0082         1   // JCT3V-F0136/F0045: view order index based camera parameter signaling
198                                              // JCT3V-F0082: the cp_in_slice_segment_layer_flag to be view specific and used as a condition of the presence of slice header level camera parameters
199#define CAM_HLS_F0044                     1   // JCT3V-F0044: move camera parameter from slice header extension to slice header
200
201
202// Rate Control
203#define KWU_FIX_URQ                       1
204#define KWU_RC_VIEWRC_E0227               0  ///< JCT3V-E0227, view-wise target bitrate allocation
205#define KWU_RC_MADPRED_E0227              0  ///< JCT3V-E0227, inter-view MAD prediction
206
207#endif // H_3D
208
209
210
211/////////////////////////////////////////////////////////////////////////////////////////
212///////////////////////////////////   DERIVED DEFINES /////////////////////////////////// 
213/////////////////////////////////////////////////////////////////////////////////////////
214
215///// ***** VIEW SYNTHESIS OPTIMIZAION *********
216#if H_3D_VSO                                 
217#define H_3D_VSO_DIST_INT                 1   // Allow negative synthesized view distortion change
218#define H_3D_VSO_COLOR_PLANES             1   // Compute VSO distortion on color planes
219#define H_3D_VSO_EARLY_SKIP               1   // LGE_VSO_EARLY_SKIP_A0093, A0093 modification 4
220#define H_3D_VSO_RM_ASSERTIONS            0   // Output VSO assertions
221#define H_3D_VSO_SYNTH_DIST_OUT           0   // Output of synthesized view distortion instead of depth distortion in encoder output
222#define H_3D_VSO_FIX                      0   // This fix should be enabled after verification
223#endif
224
225////   ****** NEIGHBOURING BLOCK-BASED DISPARITY VECTOR  *********
226#if H_3D_NBDV
227#define DVFROM_LEFT                       0
228#define DVFROM_ABOVE                      1
229#define IDV_CANDS                         2
230#endif
231
232///// ***** ADVANCED INTERVIEW RESIDUAL PREDICTION *********
233#if H_3D_ARP
234#define H_3D_ARP_WFNR                     3
235#endif
236
237///// ***** DEPTH INTRA MODES *********
238#if H_3D_DIM
239#define H_3D_DIM_DMM                      1   // Depth Modeling Modes
240#define H_3D_DIM_SDC                      1   // Simplified Depth Coding method
241#define H_3D_DIM_DLT                      1   // Depth Lookup Table
242
243#if H_3D_DIM_DLT
244#define DLT_DIFF_CODING_IN_PPS            1   // moving DLT syntax elements from VPS to PPS and differential coding of DLT values
245                                              // JCT3V-F0131, JCT3V-F0139
246#if DLT_DIFF_CODING_IN_PPS
247#define Log2( n ) ( log((double)n) / log(2.0) )
248#endif
249#define H_3D_DELTA_DLT                    1
250#endif
251
252#define H_3D_DIM_ENC                      1   // Depth Intra encoder optimizations, includes:
253                                              // HHI_DEPTH_INTRA_SEARCH_RAU_C0160
254                                              // LG_ZEROINTRADEPTHRESI_A0087
255#endif
256///// ***** VIEW SYNTHESIS PREDICTION *********
257#if H_3D_VSP
258#define H_3D_VSP_BLOCKSIZE                4   // Supported values: 1, 2, and 4
259#if H_3D_VSP_BLOCKSIZE == 1
260#define H_3D_VSP_CONSTRAINED              1   // Constrained VSP @ 1x1
261#else
262#define H_3D_VSP_CONSTRAINED              0
263#endif
264#endif
265
266///// ***** ILLUMATION COMPENSATION *********
267#if H_3D_IC
268#define IC_REG_COST_SHIFT                 7
269#define IC_CONST_SHIFT                    5
270#define IC_SHIFT_DIFF                     12
271#endif
272
273///// ***** FCO *********
274#if H_3D_FCO
275#define H_3D_FCO_VSP_DONBDV_E0163               1   // Adaptive depth reference for flexible coding order
276#else
277#define H_3D_FCO_VSP_DONBDV_E0163               0   // Adaptive depth reference for flexible coding order
278#endif
279
280#if H_3D
281#define PPS_FIX_DEPTH                           1
282#endif
283
284
285/////////////////////////////////////////////////////////////////////////////////////////
286///////////////////////////////////   HTM-10.0 Integrations //////////////////////////////
287/////////////////////////////////////////////////////////////////////////////////////////
288
289// !!! PLEASE PUT MACROS RELATED TO HTM-10.0 INTEGRATIONS HERE !!!
290// !!! PLEASE PUT MACROS RELATED TO HTM-10.0 INTEGRATIONS HERE !!!
291// !!! PLEASE PUT MACROS RELATED TO HTM-10.0 INTEGRATIONS HERE !!!
292// !!! PLEASE PUT MACROS RELATED TO HTM-10.0 INTEGRATIONS HERE !!!
293// !!! PLEASE PUT MACROS RELATED TO HTM-10.0 INTEGRATIONS HERE !!!
294
295/////////////////////////////////////////////////////////////////////////////////////////
296///////////////////////////////////   HTM-9.1 Integrations //////////////////////////////
297/////////////////////////////////////////////////////////////////////////////////////////
298
299#define H_MV_FIX_TRACE_FILE                     1  // Fix linux compilation error related const char conversion
300
301#define H_MV_LAYER_WISE_STARTUP                 1  // Basic version of layer wise startup.
302#define H_MV_FIX_SKIP_PICTURES                  1  // Fix related to skipping pictures.
303#define H_MV_6_HRD_O0164_15                     1  // (HRD/O0164/Multilayer HRD) #15 Decision: Adopt, modified as follows: It was suggested to constrain the stalling based on the relative cpb removal times, which must be in decoding order. The "du_based_bpb_sync_flag" is not needed, in view of this. SEI in the highest layer of the layer set or (inclusive "or") VPS VUI is used to carry the parameters (at encoder discretion). SEI in higher layer and SEI in VUI do not need to repeat information available in some lower layer. Shall be after APS SEI and buffering period SEI and before all other SEI of all layers except other HRD related SEI.
304#define H_MV_6_HRD_O0217_13                     1  // (HRD/O0217/Sub-DPB based DPB operations) #13 Decision: Adopt ?Specify a separate DPB capacity for each layer ?no sharing of capacity across layers ?each layer has its own parameters (max pictures, max latency, max reordering). This proposal would specify distinct parameters for each "output layer set" and to change the definition of an operation point to be specific to an output layer set instead of a 'layer set". Decision: Adopted this aspect as well.
305#define H_MV_6_SHVC_O0098_36                    1  // (SHVC/O0098/Scaled ref layer offset) #36 Modify signalling of scaled reference layer offsets to allow signalling of any lower layer, rather than just a direct reference layer, in order to enable alignment of auxiliary pictures. In further JCT-VC and JCT-3V discussion, it was also agreed to use the same offset signalling for MV-HEVC as well as SHVC
306#define H_MV_6_GEN_0153_28                      1  //(Gen/O0153/output highest layer) #28 Add a flag in the VPS to indicate if startup process should output the highest available layer if the target output layer is not available.
307#define H_MV_6_PS_0109_25                       1  //XXX(PS/O0109/default_one_target_output_layer_idc) #25 To change default_one_target_output_layer_flag to a two-bit default_one_target_output_layer_idc, and reserve the values 2 and 3
308#define H_MV_6_O0226_37                         1  //(VUI/O0226/Mod tile WPP) #37 Modifications to the VUI indicators of tile and WPP alignment related syntax elements, from the r1.
309#define H_MV_6_RALS_O0149_11                    1  //XXX (RALS/O0149/Prop2): #11 Proposal: A new slice_reserved_flag is taken into use to indicate if a base-layer IDR picture initiates the layer-wise start-up process. Decision: Adopt (the bit should not be required to be present; if present should be the bit after the discardable_flag, and discardable_flag should be the first one of the three, and the poc reset flag is not required to be present).
310#define H_MV_6_PSEM_O0142_3                     1  // (PSEM/O0142/Conditional extension syntax) #3 Adopt JCTVC-O0142 (as a structure to be used to switch whatever extensions we define in SPS, not necessarily committing to having these extensions be separate for each extension, but the current plan unless decided otherwise is to use one flag for range extensions syntax presence and one flag for SHVC+MV-HEVC extension syntax presence)
311#define H_MV_6_FIX_GET_VIEW_ID                  1  // Fix get view id
312#define H_MV_6_LAYER_ID_32                      1  // (Gen/O0137,O0200,O0223,Layer id) #32 Add (editorial equivalent of) "The value of nuh_layer_id shall be in the range of 0 to 62. The value of 63 for nuh_layer_id is reserved for future use by ITU-T | ISO/IEC. Decoders shall ignore all data that follow the value 63 for nuh_layer_id in a NAL unit." and specify that vps_max_layers_minus1 shall not be equal to 63, but decoders shall allow that value to appear in the bitstream. Specify that the value 63 is interpreted the same as the value 62 (e.g., MaxLayersMinus1 = Min( 62, vps_max_layers_minus1) and subsequently refer to MaxLayersMinus1 instead of vps_max_layers_minus1)
313#define H_MV_6_PS_O0118_33                      1  // (PS/O0118/visual signal info in vui per layer) #33 Add visual signal information (video_format, video_full_range_flag, colour_primaries, transfer_characteristics, matrix_coeffs) per layer to the VPS VUI, from v2 version of JCTVC-O0118.
314#define H_MV_6_POC_31_35_38                     1  //XXX  Various related to POC
315                                                   // (Misc/O0062/POC LSB present) (SH changes)
316                                                   // (POC/O0117/Modify PicOrderCntVal of prevTid0Pic) #35 Modification of the PicOrderCntVal of prevTid0Pic and modification to the decoding process for reference picture set, to address problems found for cross-layer POC alignment.
317                                                   // (POC/O0211/Fix ambiguity) #38 Modify POC derivation to correct an ambiguity in the spec.
318#define H_MV_6_MISC_O0062_31                    1  // (Misc/O0062/POC LSB present) (without SH changes ) #31 The proposal's "option 3" is to add a flag in the VPS for each EL to control whether these LSBs are present or not (for IDR pictures), and when not present, the LSBs are inferred to be equal to 0. Decision: Adopted (as described herein).
319#define H_MV_6_ILDDS_ILREFPICS_27_34            1  // Various inter layer reference picture derivation
320                                                   // (ILDSD/O0225/max_tid_il_ref_pics RPL const.) #27 Change derivation of NumActiveRefLayerPics to consider max_tid_il_ref_pics.
321                                                   // (ILDSD/O0120/sub_layers_vps_max_minus1 RPL const) #34 Modify inter-layer reference picture list default construction to incorporate max temporal sub-layers per layer syntax elements in VPS extension, from r2 version of JCTVC-O0120
322#define H_MV_6_ILDDS_O0225_30                   1  // (ILDSD/O0225/signal max_tid_il_ref_pics per layer ) #30 2nd proposal of JCTVC-O0225 regarding signalling of max_tid_il_ref_pics per layer, based upon relation to SCE2 on single loop decoding. Decision: Adopted.
323#define H_MV_6_ILDSD_O0120_26                   1  // (ILDSD/O0120/sub_layers_vps_max_minus1) #26 Add syntax elements to signal max temporal sub-layers for each layer in the VPS, with a gating flag, from JCTVC- option 2.
324#define H_MV_6_PS_O0223_29                      1  // (PS/O0223/Cross layer alignment type) #29 Add a flag in VPS VUI to indicate cross layer pic type alignment.  Move cross_layer_irap_aligned_flag to VPS VUI and make presence condition on added flag
325#define H_MV_6_PS_0092_17                       1  // (PS/O0092/Sharing SPS PPS) #17 Restrict sharing of SPS and PPS across layers to avoid creating problems during sub-bitstream extraction, based on modification of proposals in JCTVC-O0059 and JCTVC-O0092, reflected in the v2 version of O0092.
326#define H_MV_6_PS_REP_FORM_18_19_20             1  //  Various Rep format
327                                                   // (PS/O0096/rep format syntax element length ) #20 Modification of length to 8 bit as decided later in trac.
328                                                   // (PS/O0179/Rep. Format) #18 Add flag in rep_format( ) syntax structure to control sending of chroma and bit depth related parameters, as proposed in the v2 version of JCTVC-O0179.
329                                                   // (PS/O0096/rep format) #20 Modify the SPS syntax for layers with nuh_layer_id > 0 to signal a reference to a rep_format index in the VPS, rather than signalling explicit representation format data in the SPS, from the v2 version of JCTVC-O0096.
330                                                   // (PS/FIX/N0092/Rep. Format) #19 Inferences.
331#define H_MV_6_PS_O0096_21                      1  // (PS/O0096/direct_dependency_type gating flag) #21 Add a gating flag in VPS extension to condition the presence of direct dependency type, with a default type signalled, from JCTVC-O0096
332#define H_MV_6_PS_O0109_22                      1  // (PS/O0109/view_id_len) #22 Modify the VPS extension syntax and semantics to replace view_id_len_minus1 with view_id_len, always signal that syntax element, add a constraint that (1<<view_id_len) >= NumViews, and modify view_id_val semantics to infer value of 0 when not present, from discussion of JCTVC-O0109
333#define H_MV_6_PS_O0109_23                      1  // (PS/O0109/profile_ref_minus1 constraint) #23 Modify the semantics of profile_ref_minus1[ i ] to replace “shall be less than i?with “shall be less than or equal to i? from discussion of JCTVC-O0109
334#define H_MV_6_PS_O0109_24                      1  // (PS/O0109/vps_vui_present_flag move) #24 Move the vps_vui_present_flag to precede vps_vui_offset, and make vps_vui_offset conditional on that flag, from JCTVC-O0109
335
336
337/////////////////////////////////////////////////////////////////////////////////////////
338///////////////////////////////////   HM RELATED DEFINES ////////////////////////////////
339/////////////////////////////////////////////////////////////////////////////////////////
340
341#define FIX1071 1 ///< fix for issue #1071
342
343#define MAX_NUM_PICS_IN_SOP           1024
344
345#define MAX_NESTING_NUM_OPS         1024
346#define MAX_NESTING_NUM_LAYER       64
347
348#define MAX_VPS_NUM_HRD_PARAMETERS                1
349#define MAX_VPS_OP_SETS_PLUS1                     1024
350#if H_MV
351#if H_MV_6_LAYER_ID_32
352#define MAX_VPS_NUH_LAYER_ID_PLUS1  63
353#else
354#define MAX_VPS_NUH_LAYER_ID_PLUS1  64
355#endif
356#define MAX_NUM_SCALABILITY_TYPES   16
357#define ENC_CFG_CONSOUT_SPACE       29           
358#else
359#define MAX_VPS_NUH_RESERVED_ZERO_LAYER_ID_PLUS1  1
360#endif
361
362#define RATE_CONTROL_LAMBDA_DOMAIN                  1  ///< JCTVC-K0103, rate control by R-lambda model
363#define M0036_RC_IMPROVEMENT                        1  ///< JCTVC-M0036, improvement for R-lambda model based rate control
364#define TICKET_1090_FIX                             1
365
366#if KWU_FIX_URQ
367#if RATE_CONTROL_LAMBDA_DOMAIN
368#define RC_FIX                                      1  /// suggested fix for M0036
369#define RATE_CONTROL_INTRA                          1  ///< JCTVC-M0257, rate control for intra
370#endif
371#else
372#define RC_FIX                                      1  /// suggested fix for M0036
373#define RATE_CONTROL_INTRA                          1  ///< JCTVC-M0257, rate control for intra
374#endif
375
376
377#define MAX_CPB_CNT                     32  ///< Upper bound of (cpb_cnt_minus1 + 1)
378#if H_MV
379#if H_MV_6_LAYER_ID_32
380#define MAX_NUM_LAYER_IDS               63
381#define MAX_NUM_LAYERS                  63
382#else
383#define MAX_NUM_LAYER_IDS               64
384#define MAX_NUM_LAYERS                  64
385#endif
386#define MAX_VPS_PROFILE_TIER_LEVEL      64
387#define MAX_VPS_ADD_OUTPUT_LAYER_SETS   1024
388#define MAX_VPS_OUTPUTLAYER_SETS        ( MAX_VPS_ADD_OUTPUT_LAYER_SETS + MAX_VPS_OP_SETS_PLUS1 )
389#if H_MV_6_PS_O0118_33
390#define  MAX_NUM_VIDEO_SIGNAL_INFO      16
391#endif
392#if H_MV_6_SHVC_O0098_36
393#define MAX_NUM_SCALED_REF_LAYERS       MAX_NUM_LAYERS-1
394#endif
395#if H_MV_6_HRD_O0164_15
396#define MAX_NUM_BSP_HRD_PARAMETERS      100 ///< Maximum value is actually not specified
397#define MAX_NUM_BITSTREAM_PARTITIONS    100 ///< Maximum value is actually not specified
398#define MAX_NUM_BSP_SCHED_COMBINATION   100 ///< Maximum value is actually not specified
399#endif
400#endif
401
402#define COEF_REMAIN_BIN_REDUCTION        3 ///< indicates the level at which the VLC
403                                           ///< transitions from Golomb-Rice to TU+EG(k)
404
405#define CU_DQP_TU_CMAX 5                   ///< max number bins for truncated unary
406#define CU_DQP_EG_k 0                      ///< expgolomb order
407
408#define SBH_THRESHOLD                    4  ///< I0156: value of the fixed SBH controlling threshold
409 
410#define SEQUENCE_LEVEL_LOSSLESS           0  ///< H0530: used only for sequence or frame-level lossless coding
411
412#define DISABLING_CLIP_FOR_BIPREDME         1  ///< Ticket #175
413 
414#define C1FLAG_NUMBER               8 // maximum number of largerThan1 flag coded in one chunk :  16 in HM5
415#define C2FLAG_NUMBER               1 // maximum number of largerThan2 flag coded in one chunk:  16 in HM5
416
417#define REMOVE_SAO_LCU_ENC_CONSTRAINTS_3 1  ///< disable the encoder constraint that conditionally disable SAO for chroma for entire slice in interleaved mode
418
419#define SAO_ENCODING_CHOICE              1  ///< I0184: picture early termination
420#if SAO_ENCODING_CHOICE
421#define SAO_ENCODING_RATE                0.75
422#define SAO_ENCODING_CHOICE_CHROMA       1 ///< J0044: picture early termination Luma and Chroma are handled separately
423#if SAO_ENCODING_CHOICE_CHROMA
424#define SAO_ENCODING_RATE_CHROMA         0.5
425#endif
426#endif
427
428#define MAX_NUM_VPS                16
429#define MAX_NUM_SPS                16
430#define MAX_NUM_PPS                64
431
432
433
434#define WEIGHTED_CHROMA_DISTORTION  1   ///< F386: weighting of chroma for RDO
435#define RDOQ_CHROMA_LAMBDA          1   ///< F386: weighting of chroma for RDOQ
436#define SAO_CHROMA_LAMBDA           1   ///< F386: weighting of chroma for SAO
437
438#define MIN_SCAN_POS_CROSS          4
439
440#define FAST_BIT_EST                1   ///< G763: Table-based bit estimation for CABAC
441
442#define MLS_GRP_NUM                         64     ///< G644 : Max number of coefficient groups, max(16, 64)
443#define MLS_CG_SIZE                         4      ///< G644 : Coefficient group size of 4x4
444
445#define ADAPTIVE_QP_SELECTION               1      ///< G382: Adaptive reconstruction levels, non-normative part for adaptive QP selection
446#if ADAPTIVE_QP_SELECTION
447#define ARL_C_PRECISION                     7      ///< G382: 7-bit arithmetic precision
448#define LEVEL_RANGE                         30     ///< G382: max coefficient level in statistics collection
449#endif
450
451#define NS_HAD                               0
452
453#define HHI_RQT_INTRA_SPEEDUP             1           ///< tests one best mode with full rqt
454#define HHI_RQT_INTRA_SPEEDUP_MOD         0           ///< tests two best modes with full rqt
455
456#if HHI_RQT_INTRA_SPEEDUP_MOD && !HHI_RQT_INTRA_SPEEDUP
457#error
458#endif
459
460#define VERBOSE_RATE 0 ///< Print additional rate information in encoder
461
462#define AMVP_DECIMATION_FACTOR            4
463
464#define SCAN_SET_SIZE                     16
465#define LOG2_SCAN_SET_SIZE                4
466
467#define FAST_UDI_MAX_RDMODE_NUM               35          ///< maximum number of RD comparison in fast-UDI estimation loop
468
469#define ZERO_MVD_EST                          0           ///< Zero Mvd Estimation in normal mode
470
471#define NUM_INTRA_MODE 36
472#if !REMOVE_LM_CHROMA
473#define LM_CHROMA_IDX  35
474#endif
475
476#define WRITE_BACK                      1           ///< Enable/disable the encoder to replace the deltaPOC and Used by current from the config file with the values derived by the refIdc parameter.
477#define AUTO_INTER_RPS                  1           ///< Enable/disable the automatic generation of refIdc from the deltaPOC and Used by current from the config file.
478#define PRINT_RPS_INFO                  0           ///< Enable/disable the printing of bits used to send the RPS.
479                                                    // using one nearest frame as reference frame, and the other frames are high quality (POC%4==0) frames (1+X)
480                                                    // this should be done with encoder only decision
481                                                    // but because of the absence of reference frame management, the related code was hard coded currently
482
483#define RVM_VCEGAM10_M 4
484
485#define PLANAR_IDX             0
486#define VER_IDX                26                    // index for intra VERTICAL   mode
487#define HOR_IDX                10                    // index for intra HORIZONTAL mode
488#define DC_IDX                 1                     // index for intra DC mode
489#define NUM_CHROMA_MODE        5                     // total number of chroma modes
490#define DM_CHROMA_IDX          36                    // chroma mode index for derived from luma intra mode
491
492
493#define FAST_UDI_USE_MPM 1
494
495#define RDO_WITHOUT_DQP_BITS              0           ///< Disable counting dQP bits in RDO-based mode decision
496
497#define FULL_NBIT 0 ///< When enabled, compute costs using full sample bitdepth.  When disabled, compute costs as if it is 8-bit source video.
498#if FULL_NBIT
499# define DISTORTION_PRECISION_ADJUSTMENT(x) 0
500#else
501# define DISTORTION_PRECISION_ADJUSTMENT(x) (x)
502#endif
503
504#define LOG2_MAX_NUM_COLUMNS_MINUS1        7
505#define LOG2_MAX_NUM_ROWS_MINUS1           7
506#define LOG2_MAX_COLUMN_WIDTH              13
507#define LOG2_MAX_ROW_HEIGHT                13
508
509#define MATRIX_MULT                             0   // Brute force matrix multiplication instead of partial butterfly
510
511#define REG_DCT 65535
512
513#define AMP_SAD                               1           ///< dedicated SAD functions for AMP
514#define AMP_ENC_SPEEDUP                       1           ///< encoder only speed-up by AMP mode skipping
515#if AMP_ENC_SPEEDUP
516#define AMP_MRG                               1           ///< encoder only force merge for AMP partition (no motion search for AMP)
517#endif
518
519#define SCALING_LIST_OUTPUT_RESULT    0 //JCTVC-G880/JCTVC-G1016 quantization matrices
520
521#define CABAC_INIT_PRESENT_FLAG     1
522
523// ====================================================================================================================
524// Basic type redefinition
525// ====================================================================================================================
526
527typedef       void                Void;
528typedef       bool                Bool;
529
530typedef       char                Char;
531typedef       unsigned char       UChar;
532typedef       short               Short;
533typedef       unsigned short      UShort;
534typedef       int                 Int;
535typedef       unsigned int        UInt;
536typedef       double              Double;
537typedef       float               Float;
538
539// ====================================================================================================================
540// 64-bit integer type
541// ====================================================================================================================
542
543#ifdef _MSC_VER
544typedef       __int64             Int64;
545
546#if _MSC_VER <= 1200 // MS VC6
547typedef       __int64             UInt64;   // MS VC6 does not support unsigned __int64 to double conversion
548#else
549typedef       unsigned __int64    UInt64;
550#endif
551
552#else
553
554typedef       long long           Int64;
555typedef       unsigned long long  UInt64;
556
557#endif
558
559// ====================================================================================================================
560// Type definition
561// ====================================================================================================================
562
563typedef       UChar           Pxl;        ///< 8-bit pixel type
564typedef       Short           Pel;        ///< 16-bit pixel type
565typedef       Int             TCoeff;     ///< transform coefficient
566
567#if H_3D_VSO
568// ====================================================================================================================
569// Define Distortion Types
570// ====================================================================================================================
571typedef       Int64           RMDist;     ///< renderer model distortion
572
573#if H_3D_VSO_DIST_INT
574typedef       Int64            Dist;       ///< RDO distortion
575typedef       Int64            Dist64; 
576#define       RDO_DIST_MIN     MIN_INT
577#define       RDO_DIST_MAX     MAX_INT
578#else
579typedef       UInt             Dist;       ///< RDO distortion
580typedef       UInt64           Dist; 
581#define       RDO_DIST_MIN     0
582#define       RDO_DIST_MAX     MAX_UINT
583#endif
584#endif
585/// parameters for adaptive loop filter
586class TComPicSym;
587
588// Slice / Slice segment encoding modes
589enum SliceConstraint
590{
591  NO_SLICES              = 0,          ///< don't use slices / slice segments
592  FIXED_NUMBER_OF_LCU    = 1,          ///< Limit maximum number of largest coding tree blocks in a slice / slice segments
593  FIXED_NUMBER_OF_BYTES  = 2,          ///< Limit maximum number of bytes in a slice / slice segment
594  FIXED_NUMBER_OF_TILES  = 3,          ///< slices / slice segments span an integer number of tiles
595};
596
597#define NUM_DOWN_PART 4
598
599enum SAOTypeLen
600{
601  SAO_EO_LEN    = 4, 
602  SAO_BO_LEN    = 4,
603  SAO_MAX_BO_CLASSES = 32
604};
605
606enum SAOType
607{
608  SAO_EO_0 = 0, 
609  SAO_EO_1,
610  SAO_EO_2, 
611  SAO_EO_3,
612  SAO_BO,
613  MAX_NUM_SAO_TYPE
614};
615
616typedef struct _SaoQTPart
617{
618  Int         iBestType;
619  Int         iLength;
620  Int         subTypeIdx ;                 ///< indicates EO class or BO band position
621  Int         iOffset[4];
622  Int         StartCUX;
623  Int         StartCUY;
624  Int         EndCUX;
625  Int         EndCUY;
626
627  Int         PartIdx;
628  Int         PartLevel;
629  Int         PartCol;
630  Int         PartRow;
631
632  Int         DownPartsIdx[NUM_DOWN_PART];
633  Int         UpPartIdx;
634
635  Bool        bSplit;
636
637  //---- encoder only start -----//
638  Bool        bProcessed;
639  Double      dMinCost;
640  Int64       iMinDist;
641  Int         iMinRate;
642  //---- encoder only end -----//
643} SAOQTPart;
644
645typedef struct _SaoLcuParam
646{
647  Bool       mergeUpFlag;
648  Bool       mergeLeftFlag;
649  Int        typeIdx;
650  Int        subTypeIdx;                  ///< indicates EO class or BO band position
651  Int        offset[4];
652  Int        partIdx;
653  Int        partIdxTmp;
654  Int        length;
655} SaoLcuParam;
656
657struct SAOParam
658{
659  Bool       bSaoFlag[2];
660  SAOQTPart* psSaoPart[3];
661  Int        iMaxSplitLevel;
662  Bool         oneUnitFlag[3];
663  SaoLcuParam* saoLcuParam[3];
664  Int          numCuInHeight;
665  Int          numCuInWidth;
666  ~SAOParam();
667};
668
669/// parameters for deblocking filter
670typedef struct _LFCUParam
671{
672  Bool bInternalEdge;                     ///< indicates internal edge
673  Bool bLeftEdge;                         ///< indicates left edge
674  Bool bTopEdge;                          ///< indicates top edge
675} LFCUParam;
676
677// ====================================================================================================================
678// Enumeration
679// ====================================================================================================================
680
681/// supported slice type
682enum SliceType
683{
684  B_SLICE,
685  P_SLICE,
686  I_SLICE
687};
688
689/// chroma formats (according to semantics of chroma_format_idc)
690enum ChromaFormat
691{
692  CHROMA_400  = 0,
693  CHROMA_420  = 1,
694  CHROMA_422  = 2,
695  CHROMA_444  = 3
696};
697
698/// supported partition shape
699enum PartSize
700{
701  SIZE_2Nx2N,           ///< symmetric motion partition,  2Nx2N
702  SIZE_2NxN,            ///< symmetric motion partition,  2Nx N
703  SIZE_Nx2N,            ///< symmetric motion partition,   Nx2N
704  SIZE_NxN,             ///< symmetric motion partition,   Nx N
705  SIZE_2NxnU,           ///< asymmetric motion partition, 2Nx( N/2) + 2Nx(3N/2)
706  SIZE_2NxnD,           ///< asymmetric motion partition, 2Nx(3N/2) + 2Nx( N/2)
707  SIZE_nLx2N,           ///< asymmetric motion partition, ( N/2)x2N + (3N/2)x2N
708  SIZE_nRx2N,           ///< asymmetric motion partition, (3N/2)x2N + ( N/2)x2N
709  SIZE_NONE = 15
710};
711
712/// supported prediction type
713enum PredMode
714{
715  MODE_INTER,           ///< inter-prediction mode
716  MODE_INTRA,           ///< intra-prediction mode
717  MODE_NONE = 15
718};
719
720/// texture component type
721enum TextType
722{
723  TEXT_LUMA,            ///< luma
724  TEXT_CHROMA,          ///< chroma (U+V)
725  TEXT_CHROMA_U,        ///< chroma U
726  TEXT_CHROMA_V,        ///< chroma V
727  TEXT_ALL,             ///< Y+U+V
728  TEXT_NONE = 15
729};
730
731/// reference list index
732enum RefPicList
733{
734  REF_PIC_LIST_0 = 0,   ///< reference list 0
735  REF_PIC_LIST_1 = 1,   ///< reference list 1
736  REF_PIC_LIST_X = 100  ///< special mark
737};
738
739/// distortion function index
740enum DFunc
741{
742  DF_DEFAULT  = 0,
743  DF_SSE      = 1,      ///< general size SSE
744  DF_SSE4     = 2,      ///<   4xM SSE
745  DF_SSE8     = 3,      ///<   8xM SSE
746  DF_SSE16    = 4,      ///<  16xM SSE
747  DF_SSE32    = 5,      ///<  32xM SSE
748  DF_SSE64    = 6,      ///<  64xM SSE
749  DF_SSE16N   = 7,      ///< 16NxM SSE
750 
751  DF_SAD      = 8,      ///< general size SAD
752  DF_SAD4     = 9,      ///<   4xM SAD
753  DF_SAD8     = 10,     ///<   8xM SAD
754  DF_SAD16    = 11,     ///<  16xM SAD
755  DF_SAD32    = 12,     ///<  32xM SAD
756  DF_SAD64    = 13,     ///<  64xM SAD
757  DF_SAD16N   = 14,     ///< 16NxM SAD
758 
759  DF_SADS     = 15,     ///< general size SAD with step
760  DF_SADS4    = 16,     ///<   4xM SAD with step
761  DF_SADS8    = 17,     ///<   8xM SAD with step
762  DF_SADS16   = 18,     ///<  16xM SAD with step
763  DF_SADS32   = 19,     ///<  32xM SAD with step
764  DF_SADS64   = 20,     ///<  64xM SAD with step
765  DF_SADS16N  = 21,     ///< 16NxM SAD with step
766 
767  DF_HADS     = 22,     ///< general size Hadamard with step
768  DF_HADS4    = 23,     ///<   4xM HAD with step
769  DF_HADS8    = 24,     ///<   8xM HAD with step
770  DF_HADS16   = 25,     ///<  16xM HAD with step
771  DF_HADS32   = 26,     ///<  32xM HAD with step
772  DF_HADS64   = 27,     ///<  64xM HAD with step
773  DF_HADS16N  = 28,     ///< 16NxM HAD with step
774#if H_3D_VSO
775  DF_VSD      = 29,      ///< general size VSD
776  DF_VSD4     = 30,      ///<   4xM VSD
777  DF_VSD8     = 31,      ///<   8xM VSD
778  DF_VSD16    = 32,      ///<  16xM VSD
779  DF_VSD32    = 33,      ///<  32xM VSD
780  DF_VSD64    = 34,      ///<  64xM VSD
781  DF_VSD16N   = 35,      ///< 16NxM VSD
782#endif
783
784#if AMP_SAD
785  DF_SAD12    = 43,
786  DF_SAD24    = 44,
787  DF_SAD48    = 45,
788
789  DF_SADS12   = 46,
790  DF_SADS24   = 47,
791  DF_SADS48   = 48,
792
793  DF_SSE_FRAME = 50     ///< Frame-based SSE
794#else
795  DF_SSE_FRAME = 33     ///< Frame-based SSE
796#endif
797};
798
799/// index for SBAC based RD optimization
800enum CI_IDX
801{
802  CI_CURR_BEST = 0,     ///< best mode index
803  CI_NEXT_BEST,         ///< next best index
804  CI_TEMP_BEST,         ///< temporal index
805  CI_CHROMA_INTRA,      ///< chroma intra index
806  CI_QT_TRAFO_TEST,
807  CI_QT_TRAFO_ROOT,
808  CI_NUM,               ///< total number
809};
810
811/// motion vector predictor direction used in AMVP
812enum MVP_DIR
813{
814  MD_LEFT = 0,          ///< MVP of left block
815  MD_ABOVE,             ///< MVP of above block
816  MD_ABOVE_RIGHT,       ///< MVP of above right block
817  MD_BELOW_LEFT,        ///< MVP of below left block
818  MD_ABOVE_LEFT         ///< MVP of above left block
819};
820
821/// coefficient scanning type used in ACS
822enum COEFF_SCAN_TYPE
823{
824  SCAN_DIAG = 0,         ///< up-right diagonal scan
825  SCAN_HOR,              ///< horizontal first scan
826  SCAN_VER               ///< vertical first scan
827};
828
829namespace Profile
830{
831  enum Name
832  {
833    NONE = 0,
834    MAIN = 1,
835    MAIN10 = 2,
836    MAINSTILLPICTURE = 3,
837#if H_MV
838    MAINSTEREO = 4,
839    MAINMULTIVIEW = 5,
840#if H_3D
841    MAIN3D = 6, 
842#endif
843#endif
844  };
845}
846
847namespace Level
848{
849  enum Tier
850  {
851    MAIN = 0,
852    HIGH = 1,
853  };
854
855  enum Name
856  {
857    NONE     = 0,
858    LEVEL1   = 30,
859    LEVEL2   = 60,
860    LEVEL2_1 = 63,
861    LEVEL3   = 90,
862    LEVEL3_1 = 93,
863    LEVEL4   = 120,
864    LEVEL4_1 = 123,
865    LEVEL5   = 150,
866    LEVEL5_1 = 153,
867    LEVEL5_2 = 156,
868    LEVEL6   = 180,
869    LEVEL6_1 = 183,
870    LEVEL6_2 = 186,
871  };
872}
873//! \}
874
875#if H_MV
876
877#if H_MV_6_PSEM_O0142_3
878  enum PsExtensionTypes
879  {
880    PS_EX_T_MV   = 1,
881#if H_3D
882    PS_EX_T_3D   = 3,
883#endif
884    PS_EX_T_ESC  = 7,
885    PS_EX_T_MAX_NUM = 8
886  };
887#endif
888
889/// scalability types
890  enum ScalabilityType
891  {
892#if H_3D
893    DEPTH_ID = 0,   
894#endif   
895    VIEW_ORDER_INDEX  = 1,
896  };
897#endif
898#if H_3D
899  // Renderer
900  enum BlenMod
901  {
902    BLEND_NONE  = -1,
903    BLEND_AVRG  = 0,
904    BLEND_LEFT  = 1,
905    BLEND_RIGHT = 2,
906    BLEND_GEN   =  3
907  };
908
909 
910  enum
911  {
912    VIEWPOS_INVALID = -1,
913    VIEWPOS_LEFT    = 0,
914    VIEWPOS_RIGHT   = 1,
915    VIEWPOS_MERGED  = 2
916  };
917
918
919#endif
920#endif
Note: See TracBrowser for help on using the repository browser.