diff --git a/doc/software-manual.tex b/doc/software-manual.tex
index 5140b2ed6948fbcaa5f091699416160f76c5335f..ce3a86419367867f2cd7bb0b0ada75ff01f62442 100644
--- a/doc/software-manual.tex
+++ b/doc/software-manual.tex
@@ -1000,40 +1000,88 @@ For --profile=main-RExt, specifies the value to use to derive the general_max_bi
 For --profile=main-RExt, specifies the chroma-format to use for the general profile constraints for RExt profiles; when 0, use the value of ChromaFormatIDC.
 \\
 
-\Option{IntraConstraintFlag} &
+\Option{GciPresentFlag} &
+%\ShortOption{\None} &
+\Default{1} &
+Specifies the value of gci_present_flag
+\\
+
+\Option{IntraOnlyConstraintFlag} &
 %\ShortOption{\None} &
 \Default{false} &
-For --profile=main-RExt, specifies the value of general_intra_constraint_flag to use for RExt profiles.
+Specifies the value of gci_intra_only_constraint_flag
+\\
+
+\Option{AllLayersIndependentConstraintFlag} &
+%\ShortOption{\None} &
+\Default{false} &
+Specifies the value of all_layers_independent_constraint_flag
 \\
 
 \Option{OnePictureOnlyConstraintFlag} &
 %\ShortOption{\None} &
 \Default{false} &
-Specifies the value of general_one_picture_only_constraint_flag.
+Specifies the value of general_one_picture_only_constraint_flag
 \\
 
-\Option{LowerBitRateConstraintFlag} &
+\Option{MaxBitDepthConstraintIdc} &
 %\ShortOption{\None} &
-\Default{true} &
-Specifies the value of general_lower_bit_constraint_flag to use for RExt profiles.
+\Default{16} &
+Specifies the value of 16 minus gci_sixteen_minus_max_bitdepth_constraint_idc
 \\
 
-\Option{NoResChangeInClvsConstraintFlag} &
+\Option{MaxChromaFormatConstraintIdc} &
+%\ShortOption{\None} &
+\Default{3} &
+Specifies the value of 3 minus gci_three_minus_max_chroma_format_constraint_idc
+\\
+
+\Option{TrailConstraintFlag} &
 %\ShortOption{\None} &
 \Default{false} &
-Specifies the value of no_res_change_in_clvs_constraint_flag
+Specifies the value of gci_no_trail_constraint_flag
 \\
 
-\Option{SingleLayerConstraintFlag} &
+\Option{StsaConstraintFlag} &
 %\ShortOption{\None} &
 \Default{false} &
-Specifies the value of single_layer_constraint_flag
+Specifies the value of gci_no_stsa_constraint_flag
 \\
 
-\Option{AllLayersIndependentConstraintFlag} &
+\Option{RaslConstraintFlag} &
 %\ShortOption{\None} &
 \Default{false} &
-Specifies the value of all_layers_independent_constraint_flag
+Specifies the value of gci_no_rasl_constraint_flag
+\\
+
+\Option{RadlConstraintFlag} &
+%\ShortOption{\None} &
+\Default{false} &
+Specifies the value of gci_no_radl_constraint_flag
+\\
+
+\Option{IdrConstraintFlag} &
+%\ShortOption{\None} &
+\Default{false} &
+Specifies the value of gci_no_idr_constraint_flag
+\\
+
+\Option{CraConstraintFlag} &
+%\ShortOption{\None} &
+\Default{false} &
+Specifies the value of gci_no_cra_constraint_flag
+\\
+
+\Option{GdrConstraintFlag} &
+%\ShortOption{\None} &
+\Default{false} &
+Specifies the value of gci_no_gdr_constraint_flag
+\\
+
+\Option{ApsConstraintFlag} &
+%\ShortOption{\None} &
+\Default{false} &
+Specifies the value of gci_no_aps_constraint_flag
 \\
 
 \Option{OneTilePerPicConstraintFlag} &
@@ -1060,24 +1108,252 @@ Specifies the value of one_slice_per_pic_constraint_flag
 Specifies the value of one_subpic_per_pic_constraint_flag
 \\
 
+\Option{PartitionConstraintsOverrideConstraintFlag} &
+%\ShortOption{\None} &
+\Default{false} &
+Specifies the value of gci_no_partition_constraints_override_constraint_flag
+\\
+
+\Option{QtbttDualTreeIntraConstraintFlag} &
+%\ShortOption{\None} &
+\Default{false} &
+Specifies the value of gci_no_qtbtt_dual_tree_intra_constraint_flag
+\\
+
+\Option{PaletteConstraintFlag} &
+%\ShortOption{\None} &
+\Default{false} &
+Specifies the value of gci_no_palette_constraint_flag
+\\
+
+\Option{IbcConstraintFlag} &
+%\ShortOption{\None} &
+\Default{false} &
+Specifies the value of gci_no_ibc_constraint_flag
+\\
+
+\Option{IspConstraintFlag} &
+%\ShortOption{\None} &
+\Default{false} &
+Specifies the value of gci_no_isp_constraint_flag
+\\
+
+\Option{MrlConstraintFlag} &
+%\ShortOption{\None} &
+\Default{false} &
+Specifies the value of gci_no_mrl_constraint_flag
+\\
+
+\Option{MipConstraintFlag} &
+%\ShortOption{\None} &
+\Default{false} &
+Specifies the value of gci_no_mip_constraint_flag
+\\
+
+\Option{CclmConstraintFlag} &
+%\ShortOption{\None} &
+\Default{false} &
+Specifies the value of gci_no_cclm_constraint_flag
+\\
+
+\Option{NoResChangeInClvsConstraintFlag} &
+%\ShortOption{\None} &
+\Default{false} &
+Specifies the value of gci_no_res_change_in_clvs_constraint_flag
+\\
+
+\Option{RefWraparoundConstraintFlag} &
+%\ShortOption{\None} &
+\Default{false} &
+Specifies the value of gci_no_ref_wraparound_constraint_flag
+\\
+
+\Option{TemporalMvpConstraintFlag} &
+%\ShortOption{\None} &
+\Default{false} &
+Specifies the value of gci_no_temporal_mvp_constraint_flag
+\\
+
+\Option{SbtmvpConstraintFlag} &
+%\ShortOption{\None} &
+\Default{false} &
+Specifies the value of gci_no_sbtmvp_constraint_flag
+\\
+
+\Option{AmvrConstraintFlag} &
+%\ShortOption{\None} &
+\Default{false} &
+Specifies the value of gci_no_amvr_constraint_flag
+\\
+
+\Option{SmvdConstraintFlag} &
+%\ShortOption{\None} &
+\Default{false} &
+Specifies the value of gci_no_smvd_constraint_flag
+\\
+
+\Option{BdofConstraintFlag} &
+%\ShortOption{\None} &
+\Default{false} &
+Specifies the value of gci_no_bdof_constraint_flag
+\\
+
+\Option{DmvrConstraintFlag} &
+%\ShortOption{\None} &
+\Default{false} &
+Specifies the value of gci_no_dmvr_constraint_flag
+\\
+
+\Option{MmvdConstraintFlag} &
+%\ShortOption{\None} &
+\Default{false} &
+Specifies the value of gci_no_mmvd_constraint_flag
+\\
+
+\Option{AffineMotionConstraintFlag} &
+%\ShortOption{\None} &
+\Default{false} &
+Specifies the value of gci_no_affine_motion_constraint_flag
+\\
+
+\Option{ProfConstraintFlag} &
+%\ShortOption{\None} &
+\Default{false} &
+Specifies the value of gci_no_prof_constraint_flag
+\\
+
+\Option{BcwConstraintFlag} &
+%\ShortOption{\None} &
+\Default{false} &
+Specifies the value of gci_no_bcw_constraint_flag
+\\
+
+\Option{CiipConstraintFlag} &
+%\ShortOption{\None} &
+\Default{false} &
+Specifies the value of gci_no_ciip_constraint_flag
+\\
+
+\Option{GpmConstraintFlag} &
+%\ShortOption{\None} &
+\Default{false} &
+Specifies the value of gci_no_gpm_constraint_flag
+\\
+
+\Option{TransformSkipConstraintFlag} &
+%\ShortOption{\None} &
+\Default{false} &
+Specifies the value of gci_no_transform_skip_constraint_flag
+\\
+
+\Option{BDPCMConstraintFlag} &
+%\ShortOption{\None} &
+\Default{false} &
+Specifies the value of gci_no_bdpcm_constraint_flag
+\\
+
+\Option{MtsConstraintFlag} &
+%\ShortOption{\None} &
+\Default{false} &
+Specifies the value of gci_no_mts_constraint_flag
+\\
+
+\Option{LfnstConstraintFlag} &
+%\ShortOption{\None} &
+\Default{false} &
+Specifies the value of gci_no_lfnst_constraint_flag
+\\
+
+\Option{JointCbCrConstraintFlag} &
+%\ShortOption{\None} &
+\Default{false} &
+Specifies the value of gci_no_joint_cbcr_constraint_flag
+\\
+
+\Option{SbtConstraintFlag} &
+%\ShortOption{\None} &
+\Default{false} &
+Specifies the value of gci_no_sbt_constraint_flag
+\\
+
+\Option{ActConstraintFlag} &
+%\ShortOption{\None} &
+\Default{false} &
+Specifies the value of gci_no_act_constraint_flag
+\\
+
 \Option{ExplicitScaleListConstraintFlag} &
 %\ShortOption{\None} &
 \Default{false} &
 Specifies the value of gci_no_explicit_scaling_list_constraint_flag
 \\
 
+\Option{DepQuantConstraintFlag} &
+%\ShortOption{\None} &
+\Default{false} &
+Specifies the value of gci_no_dep_quant_constraint_flag
+\\
+
+\Option{SignDataHidingConstraintFlag} &
+%\ShortOption{\None} &
+\Default{false} &
+Specifies the value of gci_no_sign_data_hiding_constraint_flag
+\\
+
+\Option{QpDeltaConstraintFlag} &
+%\ShortOption{\None} &
+\Default{false} &
+Specifies the value of gci_no_cu_qp_delta_constraint_flag
+\\
+
+\Option{SaoConstraintFlag} &
+%\ShortOption{\None} &
+\Default{false} &
+Specifies the value of gci_no_sao_constraint_flag
+\\
+
+\Option{AlfConstraintFlag} &
+%\ShortOption{\None} &
+\Default{false} &
+Specifies the value of gci_no_alf_constraint_flag
+\\
+
+\Option{CCAlfConstraintFlag} &
+%\ShortOption{\None} &
+\Default{false} &
+Specifies the value of gci_no_ccalf_constraint_flag
+\\
+
+\Option{LmcsConstraintFlag} &
+%\ShortOption{\None} &
+\Default{false} &
+Specifies the value of gci_no_lmcs_constraint_flag
+\\
+
+\Option{LadfConstraintFlag} &
+%\ShortOption{\None} &
+\Default{false} &
+Specifies the value of gci_no_ladf_constraint_flag
+\\
+
 \Option{VirtualBoundaryConstraintFlag} &
 %\ShortOption{\None} &
 \Default{false} &
 Specifies the value of gci_no_virtual_boundaries_constraint_flag
 \\
 
-\Option{FrameOnly} &
+
+\Option{SingleLayerConstraintFlag} &
+%\ShortOption{\None} &
+\Default{false} &
+Specifies the value of single_layer_constraint_flag
+\\
+
+\Option{FrameOnlyConstraintFlag} &
 %\ShortOption{\None} &
 \Default{false} &
 Specifies the value of general_frame_only_constraint_flag
 \\
-
 \end{OptionTableNoShorthand}
 
 
@@ -2924,7 +3200,7 @@ Specifies the value of general_progressive_source_flag
 \Default{false} &
 Specifies the value of general_interlaced_source_flag 
 \\
-\Option{NonPackedSource} &
+\Option{NonPackedSourceConstraintFlag} &
 %\ShortOption{\None} &
 \Default{false} &
 Specifies the value of general_non_packed_constraint_flag
diff --git a/source/App/EncoderApp/EncApp.cpp b/source/App/EncoderApp/EncApp.cpp
index b7f806bea7fa4386a0e2425f43924a29f335af12..8255d06f0ece9cda6d76e26262d45ea43e09f83a 100644
--- a/source/App/EncoderApp/EncApp.cpp
+++ b/source/App/EncoderApp/EncApp.cpp
@@ -219,17 +219,6 @@ void EncApp::xInitLibCfg()
   {
     m_cEncLib.setSubProfile(i, m_subProfile[i]);
   }
-  m_cEncLib.setNonPackedConstraintFlag                           ( m_nonPackedConstraintFlag);
-  m_cEncLib.setNonProjectedConstraintFlag                        ( m_nonProjectedConstraintFlag );
-  m_cEncLib.setSingleLayerConstraintFlag                         ( m_singleLayerConstraintFlag );
-  m_cEncLib.setAllLayersIndependentConstraintFlag                ( m_allLayersIndependentConstraintFlag );
-  m_cEncLib.setNoResChangeInClvsConstraintFlag                   ( m_noResChangeInClvsConstraintFlag );
-  m_cEncLib.setOneTilePerPicConstraintFlag                       ( m_oneTilePerPicConstraintFlag );
-  m_cEncLib.setPicHeaderInSliceHeaderConstraintFlag              ( m_picHeaderInSliceHeaderConstraintFlag );
-  m_cEncLib.setOneSlicePerPicConstraintFlag                      ( m_oneSlicePerPicConstraintFlag );
-  m_cEncLib.setOneSubpicPerPicConstraintFlag                     ( m_oneSubpicPerPicConstraintFlag );
-  m_cEncLib.setFrameOnlyConstraintFlag                           ( m_frameOnlyConstraintFlag);
-  m_cEncLib.setIntraConstraintFlag                               ( m_intraConstraintFlag );
 
   m_cEncLib.setPrintMSEBasedSequencePSNR                         ( m_printMSEBasedSequencePSNR);
   m_cEncLib.setPrintFrameMSE                                     ( m_printFrameMSE);
@@ -253,67 +242,226 @@ void EncApp::xInitLibCfg()
 
   //====== SPS constraint flags =======
 #if JVET_S0179_CONDITIONAL_SIGNAL_GCI
-  m_cEncLib.setGciPresentFlag                                    (true);
+  m_cEncLib.setGciPresentFlag                                    ( m_gciPresentFlag );
 #endif
-  m_cEncLib.setOnePictureOnlyConstraintFlag                      ( m_onePictureOnlyConstraintFlag );
-  m_cEncLib.setIntraOnlyConstraintFlag                           ( m_intraConstraintFlag );  // NOTE: This setting is not used, and is confused with setIntraConstraintFlag
-#if JVET_S0094_CHROMAFORMAT_BITDEPTH_CONSTRAINT
-  m_cEncLib.setMaxBitDepthConstraintIdc                          ( m_bitDepthConstraint );
-#else
-  m_cEncLib.setMaxBitDepthConstraintIdc                          ( m_bitDepthConstraint - 8 );
-#endif
-  m_cEncLib.setMaxChromaFormatConstraintIdc                      ( m_chromaFormatConstraint );
-  m_cEncLib.setFrameConstraintFlag                               ( m_bFrameConstraintFlag ); // NOTE: This setting is neither used nor setup, and is confused with setFrameOnlyConstraintFlag
-  m_cEncLib.setNoQtbttDualTreeIntraConstraintFlag                ( !m_dualTree );
-  m_cEncLib.setNoPartitionConstraintsOverrideConstraintFlag      ( !m_SplitConsOverrideEnabledFlag );
-  m_cEncLib.setNoSaoConstraintFlag                               ( !m_bUseSAO );
-  m_cEncLib.setNoAlfConstraintFlag                               ( !m_alf );
-  m_cEncLib.setNoCCAlfConstraintFlag                             ( !m_ccalf );
-  m_cEncLib.setNoRefWraparoundConstraintFlag                     ( m_bNoRefWraparoundConstraintFlag );
-  m_cEncLib.setNoTemporalMvpConstraintFlag                       ( m_TMVPModeId ? false : true );
-  m_cEncLib.setNoSbtmvpConstraintFlag                            ( m_SubPuMvpMode ? false : true );
-  m_cEncLib.setNoAmvrConstraintFlag                              ( m_bNoAmvrConstraintFlag );
-  m_cEncLib.setNoBdofConstraintFlag                              ( !m_BIO );
-  m_cEncLib.setNoDmvrConstraintFlag                              ( !m_DMVR );
-  m_cEncLib.setNoCclmConstraintFlag                              ( m_LMChroma ? false : true );
-  m_cEncLib.setNoMtsConstraintFlag                               ( (m_MTS || m_MTSImplicit) ? false : true );
-  m_cEncLib.setNoSbtConstraintFlag                               ( !m_SBT );
-  m_cEncLib.setNoAffineMotionConstraintFlag                      ( !m_Affine );
-  m_cEncLib.setNoBcwConstraintFlag                               ( !m_bcw );
-  m_cEncLib.setNoIbcConstraintFlag                               ( m_IBCMode ? false : true );
-  m_cEncLib.setNoCiipConstraintFlag                           ( !m_ciip );
-  m_cEncLib.setNoGeoConstraintFlag                               ( !m_Geo );
-  m_cEncLib.setNoLadfConstraintFlag                              ( !m_LadfEnabed );
-  m_cEncLib.setNoTransformSkipConstraintFlag                     ( !m_useTransformSkip );
-  m_cEncLib.setNoBDPCMConstraintFlag                             ( !m_useBDPCM );
-  m_cEncLib.setNoJointCbCrConstraintFlag                         (!m_JointCbCrMode);
-  m_cEncLib.setNoQpDeltaConstraintFlag                           ( m_bNoQpDeltaConstraintFlag );
-  m_cEncLib.setNoDepQuantConstraintFlag                          ( !m_depQuantEnabledFlag);
-  m_cEncLib.setNoSignDataHidingConstraintFlag                    ( !m_signDataHidingEnabledFlag );
-  m_cEncLib.setNoTrailConstraintFlag                             ( m_iIntraPeriod == 1 );
-  m_cEncLib.setNoStsaConstraintFlag                              ( m_iIntraPeriod == 1 || !xHasNonZeroTemporalID() );
-  m_cEncLib.setNoRaslConstraintFlag                              ( m_iIntraPeriod == 1 || !xHasLeadingPicture() );
-  m_cEncLib.setNoRadlConstraintFlag                              ( m_iIntraPeriod == 1 || !xHasLeadingPicture() );
-  m_cEncLib.setNoIdrConstraintFlag                               ( false ); // Not yet possible to encode bitstream starting with a GDR picture
-  m_cEncLib.setNoCraConstraintFlag                               ( m_iDecodingRefreshType != 1 );
-  m_cEncLib.setNoGdrConstraintFlag                               ( false ); // Not yet possible to encode GDR using config parameters
-  m_cEncLib.setNoApsConstraintFlag                               ( !m_alf && !m_lmcsEnabled && m_useScalingListId == SCALING_LIST_OFF);
-  m_cEncLib.setNoMrlConstraintFlag                               ( !m_MRL );
-  m_cEncLib.setNoIspConstraintFlag                               ( !m_ISP );
-  m_cEncLib.setNoMipConstraintFlag                               ( !m_MIP );
-  m_cEncLib.setNoLfnstConstraintFlag                             ( !m_LFNST );
-  m_cEncLib.setNoMmvdConstraintFlag                              ( !m_MMVD );
-  m_cEncLib.setNoSmvdConstraintFlag                              ( !m_SMVD );
-  m_cEncLib.setNoProfConstraintFlag                              ( !m_PROF );
-  m_cEncLib.setNoPaletteConstraintFlag                           ( m_PLTMode == 1 ? false : true );
-  m_cEncLib.setNoActConstraintFlag                               ( !m_useColorTrans );
-  m_cEncLib.setNoLmcsConstraintFlag                              ( !m_lmcsEnabled );
+  if (m_cEncLib.getGciPresentFlag())
+  {
+    m_cEncLib.setNonPackedConstraintFlag(m_nonPackedConstraintFlag);
+    m_cEncLib.setNonProjectedConstraintFlag(m_nonProjectedConstraintFlag);
+    m_cEncLib.setOneTilePerPicConstraintFlag(m_oneTilePerPicConstraintFlag);
+    m_cEncLib.setPicHeaderInSliceHeaderConstraintFlag(m_picHeaderInSliceHeaderConstraintFlag);
+    m_cEncLib.setOneSlicePerPicConstraintFlag(m_oneSlicePerPicConstraintFlag);
+    m_cEncLib.setOneSubpicPerPicConstraintFlag(m_oneSubpicPerPicConstraintFlag);
+    m_cEncLib.setFrameOnlyConstraintFlag(m_frameOnlyConstraintFlag);
+    m_cEncLib.setOnePictureOnlyConstraintFlag(m_onePictureOnlyConstraintFlag);
+    m_cEncLib.setIntraOnlyConstraintFlag(m_intraOnlyConstraintFlag);
+    m_cEncLib.setNoIdrConstraintFlag(m_noIdrConstraintFlag);
+    m_cEncLib.setNoGdrConstraintFlag(m_noGdrConstraintFlag);
+    m_cEncLib.setSingleLayerConstraintFlag(m_singleLayerConstraintFlag);
+    m_cEncLib.setAllLayersIndependentConstraintFlag(m_allLayersIndependentConstraintFlag);
+    m_cEncLib.setNoQpDeltaConstraintFlag(m_bNoQpDeltaConstraintFlag);
+
+    m_cEncLib.setNoTrailConstraintFlag(m_noTrailConstraintFlag);
+    CHECK(m_noTrailConstraintFlag && m_iIntraPeriod != 1, "TRAIL shall be deactivated when m_noTrailConstraintFlag is equal to 1");
+
+    m_cEncLib.setNoStsaConstraintFlag(m_noStsaConstraintFlag);
+    CHECK(m_noStsaConstraintFlag && (m_iIntraPeriod != 1 || xHasNonZeroTemporalID()), "STSA shall be deactivated when m_noStsaConstraintFlag is equal to 1");
+
+    m_cEncLib.setNoRaslConstraintFlag(m_noRaslConstraintFlag);
+    CHECK(m_noRaslConstraintFlag && (m_iIntraPeriod != 1 || xHasLeadingPicture()), "RASL shall be deactivated when m_noRaslConstraintFlag is equal to 1");
+
+    m_cEncLib.setNoRadlConstraintFlag(m_noRadlConstraintFlag);
+    CHECK(m_noRadlConstraintFlag && (m_iIntraPeriod != 1 || xHasLeadingPicture()), "RADL shall be deactivated when m_noRadlConstraintFlag is equal to 1");
+
+    m_cEncLib.setNoCraConstraintFlag(m_noCraConstraintFlag);
+    CHECK(m_noCraConstraintFlag && (m_iDecodingRefreshType == 1), "CRA shall be deactivated when m_noCraConstraintFlag is equal to 1");
+
+    m_cEncLib.setNoResChangeInClvsConstraintFlag(m_noResChangeInClvsConstraintFlag);
+    CHECK(m_noResChangeInClvsConstraintFlag && m_resChangeInClvsEnabled, "Resolution change in CLVS shall be deactivated when m_noResChangeInClvsConstraintFlag is equal to 1");
+
+    m_cEncLib.setMaxBitDepthConstraintIdc(m_maxBitDepthConstraintIdc);
+    CHECK(m_internalBitDepth[CHANNEL_TYPE_LUMA] > m_maxBitDepthConstraintIdc, "Internal bit depth shall be less than or equal to m_maxBitDepthConstraintIdc");
+
+    m_cEncLib.setMaxChromaFormatConstraintIdc(m_maxChromaFormatConstraintIdc);
+    CHECK(m_chromaFormatIDC > m_maxChromaFormatConstraintIdc, "Chroma format Idc shall be less than or equal to m_maxBitDepthConstraintIdc");
+
+    m_cEncLib.setNoQtbttDualTreeIntraConstraintFlag(m_bNoQtbttDualTreeIntraConstraintFlag);
+    CHECK(m_bNoQtbttDualTreeIntraConstraintFlag && m_dualTree, "Dual tree shall be deactivated when m_bNoQtbttDualTreeIntraConstraintFlag is equal to 1");
+
+    m_cEncLib.setNoPartitionConstraintsOverrideConstraintFlag(m_noPartitionConstraintsOverrideConstraintFlag);
+    CHECK(m_noPartitionConstraintsOverrideConstraintFlag && m_SplitConsOverrideEnabledFlag, "Partition override shall be deactivated when m_noPartitionConstraintsOverrideConstraintFlag is equal to 1");
+
+    m_cEncLib.setNoSaoConstraintFlag(m_bNoSaoConstraintFlag);
+    CHECK(m_bNoSaoConstraintFlag && m_bUseSAO, "SAO shall be deactivated when m_bNoSaoConstraintFlag is equal to 1");
+
+    m_cEncLib.setNoAlfConstraintFlag(m_bNoAlfConstraintFlag);
+    CHECK(m_bNoAlfConstraintFlag && m_alf, "ALF shall be deactivated when m_bNoAlfConstraintFlag is equal to 1");
+
+    m_cEncLib.setNoCCAlfConstraintFlag(m_noCCAlfConstraintFlag);
+    CHECK(m_noCCAlfConstraintFlag && m_ccalf, "CCALF shall be deactivated when m_noCCAlfConstraintFlag is equal to 1");
+
+    m_cEncLib.setNoRefWraparoundConstraintFlag(m_bNoRefWraparoundConstraintFlag);
+    CHECK(m_bNoRefWraparoundConstraintFlag && m_wrapAround, "Wrap around shall be deactivated when m_bNoRefWraparoundConstraintFlag is equal to 1");
+
+    m_cEncLib.setNoTemporalMvpConstraintFlag(m_bNoTemporalMvpConstraintFlag);
+    CHECK(m_bNoTemporalMvpConstraintFlag && m_TMVPModeId, "Temporal MVP shall be deactivated when m_bNoTemporalMvpConstraintFlag is equal to 1");
+
+    m_cEncLib.setNoSbtmvpConstraintFlag(m_bNoSbtmvpConstraintFlag);
+    CHECK(m_bNoSbtmvpConstraintFlag && m_SubPuMvpMode, "SbTMVP shall be deactivated when m_bNoSbtmvpConstraintFlag is equal to 1");
+
+    m_cEncLib.setNoAmvrConstraintFlag(m_bNoAmvrConstraintFlag);
+    CHECK(m_bNoAmvrConstraintFlag && (m_ImvMode != IMV_OFF || m_AffineAmvr), "AMVR shall be deactivated when m_bNoAmvrConstraintFlag is equal to 1");
+
+    m_cEncLib.setNoBdofConstraintFlag(m_bNoBdofConstraintFlag);
+    CHECK(m_bNoBdofConstraintFlag && m_BIO, "BIO shall be deactivated when m_bNoBdofConstraintFlag is equal to 1");
+
+    m_cEncLib.setNoDmvrConstraintFlag(m_noDmvrConstraintFlag);
+    CHECK(m_noDmvrConstraintFlag && m_DMVR, "DMVR shall be deactivated when m_noDmvrConstraintFlag is equal to 1");
+
+    m_cEncLib.setNoCclmConstraintFlag(m_bNoCclmConstraintFlag);
+    CHECK(m_bNoCclmConstraintFlag && m_LMChroma, "CCLM shall be deactivated when m_bNoCclmConstraintFlag is equal to 1");
+
+    m_cEncLib.setNoMtsConstraintFlag(m_bNoMtsConstraintFlag);
+    CHECK(m_bNoMtsConstraintFlag && (m_MTS || m_MTSImplicit), "MTS shall be deactivated when m_bNoMtsConstraintFlag is equal to 1");
+
+    m_cEncLib.setNoSbtConstraintFlag(m_noSbtConstraintFlag);
+    CHECK(m_noSbtConstraintFlag && m_SBT, "SBT shall be deactivated when mm_noSbtConstraintFlag_nonPackedConstraintFlag is equal to 1");
+
+    m_cEncLib.setNoAffineMotionConstraintFlag(m_bNoAffineMotionConstraintFlag);
+    CHECK(m_bNoAffineMotionConstraintFlag && m_Affine, "Affine shall be deactivated when m_bNoAffineMotionConstraintFlag is equal to 1");
+
+    m_cEncLib.setNoBcwConstraintFlag(m_bNoBcwConstraintFlag);
+    CHECK(m_bNoBcwConstraintFlag && m_bcw, "BCW shall be deactivated when m_bNoBcwConstraintFlag is equal to 1");
+
+    m_cEncLib.setNoIbcConstraintFlag(m_noIbcConstraintFlag);
+    CHECK(m_noIbcConstraintFlag && m_IBCMode, "IBC shall be deactivated when m_noIbcConstraintFlag is equal to 1");
+
+    m_cEncLib.setNoCiipConstraintFlag(m_bNoCiipConstraintFlag);
+    CHECK(m_bNoCiipConstraintFlag && m_ciip, "CIIP shall be deactivated when m_bNoCiipConstraintFlag is equal to 1");
+
+    m_cEncLib.setNoGeoConstraintFlag(m_noGeoConstraintFlag);
+    CHECK(m_noGeoConstraintFlag && m_Geo, "GEO shall be deactivated when m_noGeoConstraintFlag is equal to 1");
+
+    m_cEncLib.setNoLadfConstraintFlag(m_bNoLadfConstraintFlag);
+    CHECK(m_bNoLadfConstraintFlag && m_LadfEnabed, "LADF shall be deactivated when m_bNoLadfConstraintFlag is equal to 1");
+
+    m_cEncLib.setNoTransformSkipConstraintFlag(m_noTransformSkipConstraintFlag);
+    CHECK(m_noTransformSkipConstraintFlag && m_useTransformSkip, "Transform skip shall be deactivated when m_noTransformSkipConstraintFlag is equal to 1");
+
+    m_cEncLib.setNoBDPCMConstraintFlag(m_noBDPCMConstraintFlag);
+    CHECK(m_noBDPCMConstraintFlag && m_useBDPCM, "BDPCM shall be deactivated when m_noBDPCMConstraintFlag is equal to 1");
+
+    m_cEncLib.setNoJointCbCrConstraintFlag(m_noJointCbCrConstraintFlag);
+    CHECK(m_noJointCbCrConstraintFlag && m_JointCbCrMode, "JCCR shall be deactivated when m_noJointCbCrConstraintFlag is equal to 1");
+
+    m_cEncLib.setNoDepQuantConstraintFlag(m_bNoDepQuantConstraintFlag);
+    CHECK(m_bNoDepQuantConstraintFlag && m_depQuantEnabledFlag, "DQ shall be deactivated when m_bNoDepQuantConstraintFlag is equal to 1");
+
+    m_cEncLib.setNoSignDataHidingConstraintFlag(m_bNoSignDataHidingConstraintFlag);
+    CHECK(m_bNoSignDataHidingConstraintFlag && m_signDataHidingEnabledFlag, "SDH shall be deactivated when m_bNoSignDataHidingConstraintFlag is equal to 1");
+
+    m_cEncLib.setNoApsConstraintFlag(m_noApsConstraintFlag);
+    CHECK(m_noApsConstraintFlag && (m_lmcsEnabled || (m_useScalingListId != SCALING_LIST_OFF)), "LMCS and explict scaling list shall be deactivated when m_noApsConstraintFlag is equal to 1");
+
+    m_cEncLib.setNoMrlConstraintFlag(m_noMrlConstraintFlag);
+    CHECK(m_noMrlConstraintFlag && m_MRL, "MRL shall be deactivated when m_noMrlConstraintFlag is equal to 1");
+
+    m_cEncLib.setNoIspConstraintFlag(m_noIspConstraintFlag);
+    CHECK(m_noIspConstraintFlag && m_ISP, "ISP shall be deactivated when m_noIspConstraintFlag is equal to 1");
+
+    m_cEncLib.setNoMipConstraintFlag(m_noMipConstraintFlag);
+    CHECK(m_noMipConstraintFlag && m_MIP, "MIP shall be deactivated when m_noMipConstraintFlag is equal to 1");
+
+    m_cEncLib.setNoLfnstConstraintFlag(m_noLfnstConstraintFlag);
+    CHECK(m_noLfnstConstraintFlag && m_LFNST, "LFNST shall be deactivated when m_noLfnstConstraintFlag is equal to 1");
+
+    m_cEncLib.setNoMmvdConstraintFlag(m_noMmvdConstraintFlag);
+    CHECK(m_noMmvdConstraintFlag && m_MMVD, "MMVD shall be deactivated when m_noMmvdConstraintFlag is equal to 1");
+
+    m_cEncLib.setNoSmvdConstraintFlag(m_noSmvdConstraintFlag);
+    CHECK(m_noSmvdConstraintFlag && m_SMVD, "SMVD shall be deactivated when m_noSmvdConstraintFlag is equal to 1");
+
+    m_cEncLib.setNoProfConstraintFlag(m_noProfConstraintFlag);
+    CHECK(m_noProfConstraintFlag && m_PROF, "PROF shall be deactivated when m_noProfConstraintFlag is equal to 1");
+
+    m_cEncLib.setNoPaletteConstraintFlag(m_noPaletteConstraintFlag);
+    CHECK(m_noPaletteConstraintFlag && m_PLTMode, "Palette shall be deactivated when m_noPaletteConstraintFlag is equal to 1");
+
+    m_cEncLib.setNoActConstraintFlag(m_noActConstraintFlag);
+    CHECK(m_noActConstraintFlag && m_useColorTrans, "ACT shall be deactivated when m_noActConstraintFlag is equal to 1");
+
+    m_cEncLib.setNoLmcsConstraintFlag(m_noLmcsConstraintFlag);
+    CHECK(m_noLmcsConstraintFlag && m_lmcsEnabled, "LMCS shall be deactivated when m_noLmcsConstraintFlag is equal to 1");
+
 #if JVET_S0050_GCI
-  m_cEncLib.setNoExplicitScaleListConstraintFlag                 ( m_noExplicitScaleListConstraintFlag );
-  CHECK( m_noExplicitScaleListConstraintFlag && m_useScalingListId != SCALING_LIST_OFF, "Explicit scaling list shall be deactivated when m_noExplicitScaleListConstraintFlag is equal to 1");
-  m_cEncLib.setNoVirtualBoundaryConstraintFlag                   ( m_noVirtualBoundaryConstraintFlag );
-  CHECK( m_noVirtualBoundaryConstraintFlag && m_virtualBoundariesEnabledFlag, "Virtuall boundaries shall be deactivated when m_noVirtualBoundaryConstraintFlag is equal to 1");
+    m_cEncLib.setNoExplicitScaleListConstraintFlag(m_noExplicitScaleListConstraintFlag);
+    CHECK(m_noExplicitScaleListConstraintFlag && m_useScalingListId != SCALING_LIST_OFF, "Explicit scaling list shall be deactivated when m_noExplicitScaleListConstraintFlag is equal to 1");
+
+    m_cEncLib.setNoVirtualBoundaryConstraintFlag(m_noVirtualBoundaryConstraintFlag);
+    CHECK(m_noVirtualBoundaryConstraintFlag && m_virtualBoundariesEnabledFlag, "Virtuall boundaries shall be deactivated when m_noVirtualBoundaryConstraintFlag is equal to 1");
 #endif
+  }
+  else
+  {
+    m_cEncLib.setNonPackedConstraintFlag(false);
+    m_cEncLib.setNonProjectedConstraintFlag(false);
+    m_cEncLib.setSingleLayerConstraintFlag(false);
+    m_cEncLib.setAllLayersIndependentConstraintFlag(false);
+    m_cEncLib.setNoResChangeInClvsConstraintFlag(false);
+    m_cEncLib.setOneTilePerPicConstraintFlag(false);
+    m_cEncLib.setPicHeaderInSliceHeaderConstraintFlag(false);
+    m_cEncLib.setOneSlicePerPicConstraintFlag(false);
+    m_cEncLib.setOneSubpicPerPicConstraintFlag(false);
+    m_cEncLib.setFrameOnlyConstraintFlag(false);
+    m_cEncLib.setOnePictureOnlyConstraintFlag(false);
+    m_cEncLib.setIntraOnlyConstraintFlag(false);
+    m_cEncLib.setMaxBitDepthConstraintIdc(16);
+    m_cEncLib.setMaxChromaFormatConstraintIdc(3);
+    m_cEncLib.setNoQtbttDualTreeIntraConstraintFlag(false);
+    m_cEncLib.setNoPartitionConstraintsOverrideConstraintFlag(false);
+    m_cEncLib.setNoSaoConstraintFlag(false);
+    m_cEncLib.setNoAlfConstraintFlag(false);
+    m_cEncLib.setNoCCAlfConstraintFlag(false);
+    m_cEncLib.setNoRefWraparoundConstraintFlag(false);
+    m_cEncLib.setNoTemporalMvpConstraintFlag(false);
+    m_cEncLib.setNoSbtmvpConstraintFlag(false);
+    m_cEncLib.setNoAmvrConstraintFlag(false);
+    m_cEncLib.setNoBdofConstraintFlag(false);
+    m_cEncLib.setNoDmvrConstraintFlag(false);
+    m_cEncLib.setNoCclmConstraintFlag(false);
+    m_cEncLib.setNoMtsConstraintFlag(false);
+    m_cEncLib.setNoSbtConstraintFlag(false);
+    m_cEncLib.setNoAffineMotionConstraintFlag(false);
+    m_cEncLib.setNoBcwConstraintFlag(false);
+    m_cEncLib.setNoIbcConstraintFlag(false);
+    m_cEncLib.setNoCiipConstraintFlag(false);
+    m_cEncLib.setNoGeoConstraintFlag(false);
+    m_cEncLib.setNoLadfConstraintFlag(false);
+    m_cEncLib.setNoTransformSkipConstraintFlag(false);
+    m_cEncLib.setNoBDPCMConstraintFlag(false);
+    m_cEncLib.setNoJointCbCrConstraintFlag(false);
+    m_cEncLib.setNoQpDeltaConstraintFlag(false);
+    m_cEncLib.setNoDepQuantConstraintFlag(false);
+    m_cEncLib.setNoSignDataHidingConstraintFlag(false);
+    m_cEncLib.setNoTrailConstraintFlag(false);
+    m_cEncLib.setNoStsaConstraintFlag(false);
+    m_cEncLib.setNoRaslConstraintFlag(false);
+    m_cEncLib.setNoRadlConstraintFlag(false);
+    m_cEncLib.setNoIdrConstraintFlag(false);
+    m_cEncLib.setNoCraConstraintFlag(false);
+    m_cEncLib.setNoGdrConstraintFlag(false);
+    m_cEncLib.setNoApsConstraintFlag(false);
+    m_cEncLib.setNoMrlConstraintFlag(false);
+    m_cEncLib.setNoIspConstraintFlag(false);
+    m_cEncLib.setNoMipConstraintFlag(false);
+    m_cEncLib.setNoLfnstConstraintFlag(false);
+    m_cEncLib.setNoMmvdConstraintFlag(false);
+    m_cEncLib.setNoSmvdConstraintFlag(false);
+    m_cEncLib.setNoProfConstraintFlag(false);
+    m_cEncLib.setNoPaletteConstraintFlag(false);
+    m_cEncLib.setNoActConstraintFlag(false);
+    m_cEncLib.setNoLmcsConstraintFlag(false);
+  }
 
   //====== Coding Structure ========
   m_cEncLib.setIntraPeriod                                       ( m_iIntraPeriod );
diff --git a/source/App/EncoderApp/EncAppCfg.cpp b/source/App/EncoderApp/EncAppCfg.cpp
index f366497200ca4a1ca3c3d412366b5062c3eeb56e..c08061e802b92600dc5428c3cb8bda18708f0b4e 100644
--- a/source/App/EncoderApp/EncAppCfg.cpp
+++ b/source/App/EncoderApp/EncAppCfg.cpp
@@ -81,60 +81,6 @@ EncAppCfg::EncAppCfg()
 , m_snrInternalColourSpace(false)
 , m_outputInternalColourSpace(false)
 , m_packedYUVMode(false)
-#if JVET_S0179_CONDITIONAL_SIGNAL_GCI
-, m_gciPresentFlag(true)
-#endif
-, m_bIntraOnlyConstraintFlag(false)
-, m_maxBitDepthConstraintIdc(0)
-, m_maxChromaFormatConstraintIdc(CHROMA_420)
-, m_bFrameConstraintFlag(false)
-, m_singleLayerConstraintFlag(false)
-, m_allLayersIndependentConstraintFlag(false)
-, m_noMrlConstraintFlag(false)
-, m_noIspConstraintFlag(false)
-, m_noMipConstraintFlag(false)
-, m_noLfnstConstraintFlag(false)
-, m_noMmvdConstraintFlag(false)
-, m_noSmvdConstraintFlag(false)
-, m_noProfConstraintFlag(false)
-, m_noPaletteConstraintFlag(false)
-, m_noActConstraintFlag(false)
-, m_noLmcsConstraintFlag(false)
-, m_bNoQtbttDualTreeIntraConstraintFlag(false)
-, m_noPartitionConstraintsOverrideConstraintFlag(false)
-, m_bNoSaoConstraintFlag(false)
-, m_bNoAlfConstraintFlag(false)
-, m_noCCAlfConstraintFlag(false)
-, m_bNoRefWraparoundConstraintFlag(false)
-, m_bNoTemporalMvpConstraintFlag(false)
-, m_bNoSbtmvpConstraintFlag(false)
-, m_bNoAmvrConstraintFlag(false)
-, m_bNoBdofConstraintFlag(false)
-, m_noDmvrConstraintFlag(false)
-, m_bNoCclmConstraintFlag(false)
-, m_bNoMtsConstraintFlag(false)
-, m_noSbtConstraintFlag(false)
-, m_bNoAffineMotionConstraintFlag(false)
-, m_bNoBcwConstraintFlag(false)
-, m_noIbcConstraintFlag(false)
-, m_bNoCiipConstraintFlag(false)
-, m_noGeoConstraintFlag(false)
-, m_bNoLadfConstraintFlag(false)
-, m_noTransformSkipConstraintFlag(false)
-, m_noBDPCMConstraintFlag(false)
-, m_noJointCbCrConstraintFlag(false)
-, m_bNoQpDeltaConstraintFlag(false)
-, m_bNoDepQuantConstraintFlag(false)
-, m_bNoSignDataHidingConstraintFlag(false)
-, m_noTrailConstraintFlag(false)
-, m_noStsaConstraintFlag(false)
-, m_noRaslConstraintFlag(false)
-, m_noRadlConstraintFlag(false)
-, m_noIdrConstraintFlag(false)
-, m_noCraConstraintFlag(false)
-, m_noGdrConstraintFlag(false)
-, m_noApsConstraintFlag(false)
-
 #if EXTENSION_360_VIDEO
 , m_ext360(*this)
 #endif
@@ -822,25 +768,75 @@ bool EncAppCfg::parseCfg( int argc, char* argv[] )
   ("EnableDecodingCapabilityInformation",             m_DCIEnabled,                                     false, "Enables writing of Decoding Capability Information")
   ("MaxBitDepthConstraint",                           m_bitDepthConstraint,                                0u, "Bit depth to use for profile-constraint for RExt profiles. 0=automatically choose based upon other parameters")
   ("MaxChromaFormatConstraint",                       tmpConstraintChromaFormat,                            0, "Chroma-format to use for the profile-constraint for RExt profiles. 0=automatically choose based upon other parameters")
-  ("OnePictureOnlyConstraintFlag",                    m_onePictureOnlyConstraintFlag,                   false, "Value of general_intra_constraint_flag. Can only be used for single frame encodings. Will be set to true for still picture profiles")
-  ("IntraConstraintFlag",                             m_intraConstraintFlag,                            false, "Value of intra_only_constraint_flag")
 
-#if !JVET_S0266_VUI_length
-  ("NonPackedSource",                                 m_nonPackedConstraintFlag,                        false, "Indicate that source does not contain frame packing")
-  ("NonProjectedConstraintFlag",                      m_nonProjectedConstraintFlag,                     false, "Indicate that the bitstream contains projection SEI messages")
-#endif
-  ("NoResChangeInClvsConstraintFlag",                 m_noResChangeInClvsConstraintFlag,                false, "Indicate that the picture spatial resolution does not change within any CLVS referring to the SPS")
-  ("SingleLayerConstraintFlag",                       m_singleLayerConstraintFlag,                     false, "Indicate that the bitstream contains only one layer")
-  ("AllLayersIndependentConstraintFlag",              m_allLayersIndependentConstraintFlag,            false, "Indicate that all layers are independent")
+  ("GciPresentFlag",                                  m_gciPresentFlag,                                 false, "GCI field present")
+  ("IntraOnlyConstraintFlag",                         m_intraOnlyConstraintFlag,                        false, "Value of intra_only_constraint_flag")
+  ("AllLayersIndependentConstraintFlag",              m_allLayersIndependentConstraintFlag,             false, "Indicate that all layers are independent")
+  ("OnePictureOnlyConstraintFlag",                    m_onePictureOnlyConstraintFlag,                   false, "Value of general_intra_constraint_flag. Can only be used for single frame encodings. Will be set to true for still picture profiles")
+  ("MaxBitDepthConstraintIdc",                        m_maxBitDepthConstraintIdc,                          16u, "Indicate that bit_depth_minus8 plus 8 shall be in the range of 0 to m_maxBitDepthConstraintIdc")
+  ("MaxChromaFormatConstraintIdc",                    m_maxChromaFormatConstraintIdc,                        3, "Indicate that chroma_format_idc shall be in the range of 0 to m_maxChromaFormatConstraintIdc")
+  ("TrailConstraintFlag",                             m_noTrailConstraintFlag,                          false, "Indicate that TRAIL is deactivated")
+  ("StsaConstraintFlag",                              m_noStsaConstraintFlag,                           false, "Indicate that STSA is deactivated")
+  ("RaslConstraintFlag",                              m_noRaslConstraintFlag,                           false, "Indicate that RSAL is deactivated")
+  ("RadlConstraintFlag",                              m_noRadlConstraintFlag,                           false, "Indicate that RADL is deactivated")
+  ("IdrConstraintFlag",                               m_noIdrConstraintFlag,                            false, "Indicate that IDR is deactivated")
+  ("CraConstraintFlag",                               m_noCraConstraintFlag,                            false, "Indicate that CRA is deactivated")
+  ("GdrConstraintFlag",                               m_noGdrConstraintFlag,                            false, "Indicate that GDR is deactivated")
+  ("ApsConstraintFlag",                               m_noApsConstraintFlag,                            false, "Indicate that APS is deactivated")
   ("OneTilePerPicConstraintFlag",                     m_oneTilePerPicConstraintFlag,                    false, "Indicate that each picture shall contain only one tile")
   ("PicHeaderInSliceHeaderConstraintFlag",            m_picHeaderInSliceHeaderConstraintFlag,           false, "Indicate that picture header is present in slice header")
   ("OneSlicePerPicConstraintFlag",                    m_oneSlicePerPicConstraintFlag,                   false, "Indicate that each picture shall contain only one slice")
   ("OneSubpicPerPicConstraintFlag",                   m_oneSubpicPerPicConstraintFlag,                  false, "Indicate that each picture shall contain only one subpicture")
-  ("FrameOnly",                                       m_frameOnlyConstraintFlag,                        false, "Indicate that the bitstream contains only frames")
+  ("PartitionConstraintsOverrideConstraintFlag",      m_noPartitionConstraintsOverrideConstraintFlag,   false, "Indicate that Partition Override is deactivated")
+  ("QtbttDualTreeIntraConstraintFlag",                m_bNoQtbttDualTreeIntraConstraintFlag,            false, "Indicate that Qtbtt DualTree Intra is deactivated")
+  ("PaletteConstraintFlag",                           m_noPaletteConstraintFlag,                        false, "Indicate that PLT is deactivated")
+  ("IbcConstraintFlag",                               m_noIbcConstraintFlag,                            false, "Indicate that IBC is deactivated")
+  ("IspConstraintFlag",                               m_noIspConstraintFlag,                            false, "Indicate that ISP is deactivated")
+  ("MrlConstraintFlag",                               m_noMrlConstraintFlag,                            false, "Indicate that MRL is deactivated")
+  ("MipConstraintFlag",                               m_noMipConstraintFlag,                            false, "Indicate that MIP is deactivated")
+  ("CclmConstraintFlag",                              m_bNoCclmConstraintFlag,                          false, "Indicate that CCLM is deactivated")
+  ("NoResChangeInClvsConstraintFlag",                 m_noResChangeInClvsConstraintFlag,                false, "Indicate that the picture spatial resolution does not change within any CLVS referring to the SPS")
+  ("RefWraparoundConstraintFlag",                     m_bNoRefWraparoundConstraintFlag,                 false, "Indicate that Reference Wraparound is deactivated")
+  ("TemporalMvpConstraintFlag",                       m_bNoTemporalMvpConstraintFlag,                   false, "Indicate that temporal MVP is deactivated")
+  ("SbtmvpConstraintFlag",                            m_bNoSbtmvpConstraintFlag,                        false, "Indicate that SbTMVP is deactivated")
+  ("AmvrConstraintFlag",                              m_bNoAmvrConstraintFlag,                          false, "Indicate that AMVR is deactivated")
+  ("SmvdConstraintFlag",                              m_noSmvdConstraintFlag,                           false, "Indicate that SMVD is deactivated")
+  ("BdofConstraintFlag",                              m_bNoBdofConstraintFlag,                          false, "Indicate that BIO is deactivated")
+  ("DmvrConstraintFlag",                              m_noDmvrConstraintFlag,                           false, "Indicate that DMVR is deactivated")
+  ("MmvdConstraintFlag",                              m_noMmvdConstraintFlag,                           false, "Indicate that MMVD is deactivated")
+  ("AffineMotionConstraintFlag",                      m_bNoAffineMotionConstraintFlag,                  false, "Indicate that Affine is deactivated")
+  ("ProfConstraintFlag",                              m_noProfConstraintFlag,                           false, "Indicate that PROF is deactivated")
+  ("BcwConstraintFlag",                               m_bNoBcwConstraintFlag,                           false, "Indicate that BCW is deactivated")
+  ("CiipConstraintFlag",                              m_bNoCiipConstraintFlag,                          false, "Indicate that CIIP is deactivated")
+  ("GpmConstraintFlag",                               m_noGeoConstraintFlag,                            false, "Indicate that GPM is deactivated")
+  ("TransformSkipConstraintFlag",                     m_noTransformSkipConstraintFlag,                  false, "Indicate that Transform Skip is deactivated")
+  ("BDPCMConstraintFlag",                             m_noBDPCMConstraintFlag,                          false, "Indicate that BDPCM is deactivated")
+  ("MtsConstraintFlag",                               m_bNoMtsConstraintFlag,                           false, "Indicate that MTS is deactivated")
+  ("LfnstConstraintFlag",                             m_noLfnstConstraintFlag,                          false, "Indicate that LFNST is deactivated")
+  ("JointCbCrConstraintFlag",                         m_noJointCbCrConstraintFlag,                      false, "Indicate that JCCR is deactivated")
+  ("SbtConstraintFlag",                               m_noSbtConstraintFlag,                            false, "Indicate that SBT is deactivated")
+  ("ActConstraintFlag",                               m_noActConstraintFlag,                            false, "Indicate that ACT is deactivated")
 #if JVET_S0050_GCI
   ("ExplicitScaleListConstraintFlag",                 m_noExplicitScaleListConstraintFlag,              false, "Indicate that explicit scaling list is deactivated")
+#endif
+  ("DepQuantConstraintFlag",                          m_bNoDepQuantConstraintFlag,                      false, "Indicate that DQ is deactivated")
+  ("SignDataHidingConstraintFlag",                    m_bNoSignDataHidingConstraintFlag,                false, "Indicate that SDH is deactivated")
+  ("QpDeltaConstraintFlag",                           m_bNoQpDeltaConstraintFlag,                       false, "Indicate that QPdelta is deactivated")
+  ("SaoConstraintFlag",                               m_bNoSaoConstraintFlag,                           false, "Indicate that SAO is deactivated")
+  ("AlfConstraintFlag",                               m_bNoAlfConstraintFlag,                           false, "Indicate that ALF is deactivated")
+  ("CCAlfConstraintFlag",                             m_noCCAlfConstraintFlag,                          false, "Indicate that CCALF is deactivated")
+  ("LmcsConstraintFlag",                              m_noLmcsConstraintFlag,                           false, "Indicate that LMCS is deactivated")
+  ("LadfConstraintFlag",                              m_bNoLadfConstraintFlag,                          false, "Indicate that LADF is deactivated")
+#if JVET_S0050_GCI
   ("VirtualBoundaryConstraintFlag",                   m_noVirtualBoundaryConstraintFlag,                false, "Indicate that virtual boundary is deactivated")
 #endif
+  ("SingleLayerConstraintFlag",                       m_singleLayerConstraintFlag,                      false, "Indicate that the bitstream contains only one layer")
+  ("FrameOnlyConstraintFlag",                         m_frameOnlyConstraintFlag,                        false, "Indicate that the bitstream contains only frames")
+ #if !JVET_S0266_VUI_length
+  ("NonPackedSourceConstraintFlag",                   m_nonPackedConstraintFlag,                        false, "Indicate that source does not contain frame packing")
+  ("NonProjectedConstraintFlag",                      m_nonProjectedConstraintFlag,                     false, "Indicate that the bitstream contains projection SEI messages")
+#endif
+
   ("CTUSize",                                         m_uiCTUSize,                                       128u, "CTUSize (specifies the CTU size if QTBT is on) [default: 128]")
   ("Log2MinCuSize",                                   m_log2MinCuSize,                                     2u, "Log2 min CU size")
   ("SubPicInfoPresentFlag",                           m_subPicInfoPresentFlag,                          false, "equal to 1 specifies that subpicture parameters are present in in the SPS RBSP syntax")
@@ -1191,7 +1187,7 @@ bool EncAppCfg::parseCfg( int argc, char* argv[] )
   ("ProgressiveSource",                               m_progressiveSourceFlag,                          false, "Indicate that source is progressive")
   ("InterlacedSource",                                m_interlacedSourceFlag,                           false, "Indicate that source is interlaced")
 #if JVET_S0266_VUI_length
-  ("NonPackedSource",                                 m_nonPackedConstraintFlag,                        false, "Indicate that source does not contain frame packing")
+  ("NonPackedSourceConstraintFlag",                   m_nonPackedConstraintFlag,                        false, "Indicate that source does not contain frame packing")
   ("NonProjectedConstraintFlag",                      m_nonProjectedConstraintFlag,                     false, "Indicate that the bitstream contains projection SEI messages")
 #endif
   ("ChromaLocInfoPresent",                            m_chromaLocInfoPresentFlag,                       false, "Signals whether chroma_sample_loc_type_top_field and chroma_sample_loc_type_bottom_field are present")
@@ -2862,7 +2858,7 @@ bool EncAppCfg::xCheckParameter()
   }
   else
   {
-    xConfirmPara( m_intraConstraintFlag, "IntraConstraintFlag cannot be 1 for inter sequences");
+    xConfirmPara( m_intraOnlyConstraintFlag, "IntraOnlyConstraintFlag cannot be 1 for inter sequences");
   }
 
   int multipleFactor = m_compositeRefEnabled ? 2 : 1;
diff --git a/source/App/EncoderApp/EncAppCfg.h b/source/App/EncoderApp/EncAppCfg.h
index cc2eaaf90874e3c789dcb7a55ccb35d3ca074f67..8124d782fa2abc2ba5e51b1139834b92ead9afa6 100644
--- a/source/App/EncoderApp/EncAppCfg.h
+++ b/source/App/EncoderApp/EncAppCfg.h
@@ -136,8 +136,7 @@ protected:
 #endif
   bool      m_bIntraOnlyConstraintFlag;
   uint32_t  m_maxBitDepthConstraintIdc;
-  uint32_t  m_maxChromaFormatConstraintIdc;
-  bool      m_bFrameConstraintFlag;
+  int       m_maxChromaFormatConstraintIdc;
   bool      m_singleLayerConstraintFlag;
   bool      m_allLayersIndependentConstraintFlag;
   bool      m_noMrlConstraintFlag;
@@ -199,7 +198,7 @@ protected:
   uint32_t          m_bitDepthConstraint;
   ChromaFormat  m_chromaFormatConstraint;
   bool          m_onePictureOnlyConstraintFlag;
-  bool          m_intraConstraintFlag;
+  bool          m_intraOnlyConstraintFlag;
   bool          m_nonPackedConstraintFlag;
   bool          m_nonProjectedConstraintFlag;
   bool          m_noResChangeInClvsConstraintFlag;
diff --git a/source/Lib/CommonLib/Slice.h b/source/Lib/CommonLib/Slice.h
index 76d78a7eb0db616fdb77e024b360f49223ffede5..fc74bdd09a1ba5aa3491a363bf7315ee82b10475 100644
--- a/source/Lib/CommonLib/Slice.h
+++ b/source/Lib/CommonLib/Slice.h
@@ -250,7 +250,7 @@ class ConstraintInfo
   bool              m_frameOnlyConstraintFlag;
   bool              m_intraOnlyConstraintFlag;
   uint32_t          m_maxBitDepthConstraintIdc;
-  ChromaFormat      m_maxChromaFormatConstraintIdc;
+  int               m_maxChromaFormatConstraintIdc;
   bool              m_onePictureOnlyConstraintFlag;
   bool              m_lowerBitRateConstraintFlag;
 
@@ -406,8 +406,8 @@ public:
   uint32_t      getMaxBitDepthConstraintIdc() const { return m_maxBitDepthConstraintIdc; }
   void          setMaxBitDepthConstraintIdc(uint32_t bitDepth) { m_maxBitDepthConstraintIdc = bitDepth; }
 
-  ChromaFormat  getMaxChromaFormatConstraintIdc() const { return m_maxChromaFormatConstraintIdc; }
-  void          setMaxChromaFormatConstraintIdc(ChromaFormat fmt) { m_maxChromaFormatConstraintIdc = fmt; }
+  int           getMaxChromaFormatConstraintIdc() const { return m_maxChromaFormatConstraintIdc; }
+  void          setMaxChromaFormatConstraintIdc(int fmt) { m_maxChromaFormatConstraintIdc = fmt; }
 
 #if !JVET_S0266_VUI_length
   bool          getNonProjectedConstraintFlag() const { return m_nonProjectedConstraintFlag; }
diff --git a/source/Lib/EncoderLib/EncCfg.h b/source/Lib/EncoderLib/EncCfg.h
index 81d2b7f2437e0e2ba590e05f4fd71dc80ba1c61f..f004c8078d394a25a11206eecf65e570aea74613 100644
--- a/source/Lib/EncoderLib/EncCfg.h
+++ b/source/Lib/EncoderLib/EncCfg.h
@@ -181,8 +181,7 @@ protected:
   bool      m_onePictureOnlyConstraintFlag;
   bool      m_bIntraOnlyConstraintFlag;
   uint32_t  m_maxBitDepthConstraintIdc;
-  uint32_t  m_maxChromaFormatConstraintIdc;
-  bool      m_bFrameConstraintFlag;
+  int  m_maxChromaFormatConstraintIdc;
 
   bool      m_singleLayerConstraintFlag;
   bool      m_allLayersIndependentConstraintFlag;
@@ -249,7 +248,7 @@ protected:
   bool m_oneSlicePerPicConstraintFlag;
   bool m_oneSubpicPerPicConstraintFlag;
   bool m_frameOnlyConstraintFlag;
-  bool m_intraConstraintFlag;
+  bool m_intraOnlyConstraintFlag;
 
   //====== Coding Structure ========
   int       m_intraPeriod;                        // needs to be signed to allow '-1' for no intra period
@@ -776,15 +775,12 @@ public:
   void      setIntraOnlyConstraintFlag(bool bVal) { m_bIntraOnlyConstraintFlag = bVal; }
   uint32_t  getMaxBitDepthConstraintIdc() const { return m_maxBitDepthConstraintIdc; }
   void      setMaxBitDepthConstraintIdc(uint32_t u) { m_maxBitDepthConstraintIdc = u; }
-  uint32_t  getMaxChromaFormatConstraintIdc() const { return m_maxChromaFormatConstraintIdc; }
-  void      setMaxChromaFormatConstraintIdc(uint32_t u) { m_maxChromaFormatConstraintIdc = u; }
-  bool      getFrameConstraintFlag() const { return m_bFrameConstraintFlag; }
-  void      setFrameConstraintFlag(bool bVal) { m_bFrameConstraintFlag = bVal; }
+  int       getMaxChromaFormatConstraintIdc() const { return m_maxChromaFormatConstraintIdc; }
+  void      setMaxChromaFormatConstraintIdc(int u) { m_maxChromaFormatConstraintIdc = u; }
 #if JVET_S0179_CONDITIONAL_SIGNAL_GCI
   bool          getGciPresentFlag() const { return m_gciPresentFlag; }
   void          setGciPresentFlag(bool b) { m_gciPresentFlag = b; }
 #endif
-
   bool          getSingleLayerConstraintFlag() const { return m_singleLayerConstraintFlag; }
   void          setSingleLayerConstraintFlag(bool bVal) { m_singleLayerConstraintFlag = bVal; }
   bool          getAllLayersIndependentConstraintFlag() const { return m_allLayersIndependentConstraintFlag; }
@@ -1864,12 +1860,6 @@ public:
   bool         getFrameOnlyConstraintFlag() const                    { return m_frameOnlyConstraintFlag; }
   void         setFrameOnlyConstraintFlag(bool b)                    { m_frameOnlyConstraintFlag = b; }
 
-
-  bool         getIntraConstraintFlag() const                        { return m_intraConstraintFlag; }
-  void         setIntraConstraintFlag(bool b)                        { m_intraConstraintFlag=b; }
-
-
-
   void         setSummaryOutFilename(const std::string &s)           { m_summaryOutFilename = s; }
   const std::string& getSummaryOutFilename() const                   { return m_summaryOutFilename; }
   void         setSummaryPicFilenameBase(const std::string &s)       { m_summaryPicFilenameBase = s; }
diff --git a/source/Lib/EncoderLib/EncLib.cpp b/source/Lib/EncoderLib/EncLib.cpp
index 09febc4123e9f4ec2e3a82a80e6a2cdad698e770..66b948eb7e205c200559424ed97003695454f06e 100644
--- a/source/Lib/EncoderLib/EncLib.cpp
+++ b/source/Lib/EncoderLib/EncLib.cpp
@@ -1130,9 +1130,9 @@ void EncLib::xInitSPS( SPS& sps )
   cinfo->setOneSubpicPerPicConstraintFlag(m_oneSubpicPerPicConstraintFlag);
   cinfo->setFrameOnlyConstraintFlag     (m_frameOnlyConstraintFlag);
   cinfo->setOnePictureOnlyConstraintFlag(m_onePictureOnlyConstraintFlag);
-  cinfo->setIntraOnlyConstraintFlag         (m_intraConstraintFlag);
+  cinfo->setIntraOnlyConstraintFlag         (m_intraOnlyConstraintFlag);
   cinfo->setMaxBitDepthConstraintIdc    (m_maxBitDepthConstraintIdc);
-  cinfo->setMaxChromaFormatConstraintIdc((ChromaFormat)m_maxChromaFormatConstraintIdc);
+  cinfo->setMaxChromaFormatConstraintIdc((int)m_maxChromaFormatConstraintIdc);
   cinfo->setSingleLayerConstraintFlag (m_singleLayerConstraintFlag);
   cinfo->setAllLayersIndependentConstraintFlag (m_allLayersIndependentConstraintFlag);
   cinfo->setNoMrlConstraintFlag (m_noMrlConstraintFlag);