Changeset 595 in SHVCSoftware for trunk/source/Lib/TLibEncoder/TEncCfg.h


Ignore:
Timestamp:
2 Feb 2014, 06:01:53 (11 years ago)
Author:
seregin
Message:

merge with SHM-5.0-dev branch

Location:
trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk

  • trunk/source

  • trunk/source/Lib/TLibEncoder/TEncCfg.h

    r588 r595  
    44 * granted under this license. 
    55 *
    6  * Copyright (c) 2010-2013, ITU/ISO/IEC
     6 * Copyright (c) 2010-2014, ITU/ISO/IEC
    77 * All rights reserved.
    88 *
     
    9191
    9292std::istringstream &operator>>(std::istringstream &in, GOPEntry &entry);     //input
    93 
    94 #if REPN_FORMAT_IN_VPS
    95 struct RepFormatCfg
    96 {
    97   Int   m_chromaFormatIdc;
    98   Bool  m_separateColourPlaneFlag;
    99   Int   m_picWidthInLumaSamples;
    100   Int   m_picHeightInLumaSamples;
    101   Int   m_bitDepthLuma;
    102   Int   m_bitDepthChroma;
    103   RepFormatCfg()
    104     : m_chromaFormatIdc         (CHROMA_420)
    105     , m_separateColourPlaneFlag (0)
    106     , m_picWidthInLumaSamples   (352)
    107     , m_picHeightInLumaSamples  (288)
    108     , m_bitDepthLuma            (8)
    109     , m_bitDepthChroma          (8)
    110   {}
    111 };
    112 std::istringstream &operator>>(std::istringstream &in, RepFormatCfg &repFormatCfg);
    113 #endif
    114 
    11593//! \ingroup TLibEncoder
    11694//! \{
     
    162140  Int       m_maxTempLayer;                      ///< Max temporal layer
    163141  Bool m_useAMP;
    164 #if VPS_EXTN_DIRECT_REF_LAYERS
    165   Int       m_numDirectRefLayers;
    166   Int       m_refLayerId[MAX_VPS_LAYER_ID_PLUS1];
    167 
    168   Int       m_numActiveRefLayers;
    169   Int       m_predLayerId[MAX_VPS_LAYER_ID_PLUS1];
    170   Int       m_numSamplePredRefLayers;
    171   Int       m_samplePredRefLayerId[MAX_VPS_LAYER_ID_PLUS1];
    172   Int       m_numMotionPredRefLayers;
    173   Int       m_motionPredRefLayerId[MAX_VPS_LAYER_ID_PLUS1];
    174   Bool      m_samplePredEnabledFlag[MAX_VPS_LAYER_ID_PLUS1];
    175   Bool      m_motionPredEnabledFlag[MAX_VPS_LAYER_ID_PLUS1];
    176 #endif
    177 #if N0120_MAX_TID_REF_CFG
    178   Int       m_maxTidIlRefPicsPlus1;
    179 #endif
    180142  //======= Transform =============
    181143  UInt      m_uiQuadtreeTULog2MaxSize;
     
    194156  Int       m_maxNumOffsetsPerPic;
    195157  Bool      m_saoLcuBoundary;
    196 #if !HM_CLEANUP_SAO
    197   Bool      m_saoLcuBasedOptimization;
    198 #endif
    199   //====== Lossless ========
    200   Bool      m_useLossless;
    201158  //====== Motion search ========
    202159  Int       m_iFastSearch;                      //  0:Full search  1:Diamond  2:PMVFAST
     
    210167  Int       m_chromaCbQpOffset;                 //  Chroma Cb QP Offset (0:default)
    211168  Int       m_chromaCrQpOffset;                 //  Chroma Cr Qp Offset (0:default)
    212 #if AUXILIARY_PICTURES
    213   ChromaFormat m_chromaFormatIDC;
    214 #endif
    215169
    216170#if ADAPTIVE_QP_SELECTION
     
    222176 
    223177  //====== Tool list ========
    224   Bool      m_bUseSBACRD;
    225178  Bool      m_bUseASR;
    226179  Bool      m_bUseHADME;
     
    233186  Bool      m_bUseCbfFastMode;
    234187  Bool      m_useEarlySkipDetection;
    235 #if FAST_INTRA_SHVC
    236   Bool      m_useFastIntraScalable;
    237 #endif
    238188  Bool      m_useTransformSkip;
    239189  Bool      m_useTransformSkipFast;
     
    305255  Int       m_gradualDecodingRefreshInfoEnabled;
    306256  Int       m_decodingUnitInfoSEIEnabled;
    307 #if LAYERS_NOT_PRESENT_SEI
    308   Int       m_layersNotPresentSEIEnabled;
    309 #endif
    310257  Int       m_SOPDescriptionSEIEnabled;
    311258  Int       m_scalableNestingSEIEnabled;
    312 #if N0383_IL_CONSTRAINED_TILE_SETS_SEI
    313   Bool      m_interLayerConstrainedTileSetsSEIEnabled;
    314   UInt      m_ilNumSetsInMessage;
    315   Bool      m_skippedTileSetPresentFlag;
    316   UInt      m_topLeftTileIndex[1024];
    317   UInt      m_bottomRightTileIndex[1024];
    318   UInt      m_ilcIdc[1024];
    319 #endif
    320259  //====== Weighted Prediction ========
    321260  Bool      m_useWeightedPred;       //< Use of Weighting Prediction (P_SLICE)
     
    335274  Bool      m_RCForceIntraQP;
    336275  Bool      m_TransquantBypassEnableFlag;                     ///< transquant_bypass_enable_flag setting in PPS.
    337   Bool      m_CUTransquantBypassFlagValue;                    ///< if transquant_bypass_enable_flag, the fixed value to use for the per-CU cu_transquant_bypass_flag.
     276  Bool      m_CUTransquantBypassFlagForce;                    ///< if transquant_bypass_enable_flag, then, if true, all CU transquant bypass flags will be set to true.
    338277#if SVC_EXTENSION
    339   static TComVPS                    m_cVPS;
     278  static TComVPS             m_cVPS;
    340279#else
    341280  TComVPS                    m_cVPS;
     
    391330  Bool      m_crossLayerBLAFlag;
    392331#endif
    393 #endif
     332#if VPS_EXTN_DIRECT_REF_LAYERS
     333  Int       m_numDirectRefLayers;
     334  Int       m_refLayerId[MAX_VPS_LAYER_ID_PLUS1];
     335
     336  Int       m_numActiveRefLayers;
     337  Int       m_predLayerId[MAX_VPS_LAYER_ID_PLUS1];
     338  Int       m_numSamplePredRefLayers;
     339  Int       m_samplePredRefLayerId[MAX_VPS_LAYER_ID_PLUS1];
     340  Int       m_numMotionPredRefLayers;
     341  Int       m_motionPredRefLayerId[MAX_VPS_LAYER_ID_PLUS1];
     342  Bool      m_samplePredEnabledFlag[MAX_VPS_LAYER_ID_PLUS1];
     343  Bool      m_motionPredEnabledFlag[MAX_VPS_LAYER_ID_PLUS1];
     344#endif
     345#if N0120_MAX_TID_REF_CFG
     346  Int       m_maxTidIlRefPicsPlus1;
     347#endif
     348#if AUXILIARY_PICTURES
     349  ChromaFormat m_chromaFormatIDC;
     350#endif
     351#if FAST_INTRA_SHVC
     352  Bool      m_useFastIntraScalable;
     353#endif
     354#if LAYERS_NOT_PRESENT_SEI
     355  Int       m_layersNotPresentSEIEnabled;
     356#endif
     357#if N0383_IL_CONSTRAINED_TILE_SETS_SEI
     358  Bool      m_interLayerConstrainedTileSetsSEIEnabled;
     359  UInt      m_ilNumSetsInMessage;
     360  Bool      m_skippedTileSetPresentFlag;
     361  UInt      m_topLeftTileIndex[1024];
     362  UInt      m_bottomRightTileIndex[1024];
     363  UInt      m_ilcIdc[1024];
     364#endif
     365#endif //SVC_EXTENSION
    394366
    395367public:
     
    437409  Bool      getMaxTempLayer                 ()                              { return m_maxTempLayer;              }
    438410  Void      setMaxTempLayer                 ( Int maxTempLayer )            { m_maxTempLayer = maxTempLayer;      }
    439 #if VPS_EXTN_DIRECT_REF_LAYERS
    440   Int       getNumDirectRefLayers           ()                              { return m_numDirectRefLayers;      }
    441   Void      setNumDirectRefLayers           (Int num)                       { m_numDirectRefLayers = num;       }
    442 
    443   Int       getRefLayerId                   (Int i)                         { return m_refLayerId[i];           }
    444   Void      setRefLayerId                   (Int i, Int refLayerId)         { m_refLayerId[i] = refLayerId;     }
    445 
    446   Int       getNumActiveRefLayers           ()                              { return m_numActiveRefLayers;      }
    447   Void      setNumActiveRefLayers           (Int num)                       { m_numActiveRefLayers = num;       }
    448 
    449   Int       getPredLayerId                  (Int i)                         { return m_predLayerId[i];          }
    450   Void      setPredLayerId                  (Int i, Int refLayerId)         { m_predLayerId[i] = refLayerId;    }
    451 
    452   Int       getNumSamplePredRefLayers       ()                              { return m_numSamplePredRefLayers;  }
    453   Void      setNumSamplePredRefLayers       (Int num)                       { m_numSamplePredRefLayers = num;   }
    454 
    455   Int       getSamplePredRefLayerId         (Int i)                         { return m_samplePredRefLayerId[i];       }
    456   Void      setSamplePredRefLayerId         (Int i, Int refLayerId)         { m_samplePredRefLayerId[i] = refLayerId; }
    457 
    458   Int       getNumMotionPredRefLayers       ()                              { return m_numMotionPredRefLayers;  }
    459   Void      setNumMotionPredRefLayers       (Int num)                       { m_numMotionPredRefLayers = num;   }
    460 
    461   Int       getMotionPredRefLayerId         (Int i)                         { return m_motionPredRefLayerId[i];       }
    462   Void      setMotionPredRefLayerId         (Int i, Int refLayerId)         { m_motionPredRefLayerId[i] = refLayerId; }
    463 
    464   Bool      getSamplePredEnabledFlag        (Int i)                         { return m_samplePredEnabledFlag[i];  }
    465   Void      setSamplePredEnabledFlag        (Int i,Bool flag)               { m_samplePredEnabledFlag[i] = flag;  }
    466 
    467   Bool      getMotionPredEnabledFlag        (Int i)                         { return m_motionPredEnabledFlag[i];  }
    468   Void      setMotionPredEnabledFlag        (Int i,Bool flag)               { m_motionPredEnabledFlag[i] = flag;  }
    469 #endif
    470 #if N0120_MAX_TID_REF_CFG
    471   Int       getMaxTidIlRefPicsPlus1         ()                              { return m_maxTidIlRefPicsPlus1; }
    472   Void      setMaxTidIlRefPicsPlus1         (Int num)                       { m_maxTidIlRefPicsPlus1 = num;  }
    473 #endif
    474411  //======== Transform =============
    475412  Void      setQuadtreeTULog2MaxSize        ( UInt  u )      { m_uiQuadtreeTULog2MaxSize = u; }
     
    508445  Void      setQPAdaptationRange            ( Int   i )      { m_iQPAdaptationRange = i; }
    509446 
    510   //====== Lossless ========
    511   Void      setUseLossless                  (Bool    b  )        { m_useLossless = b;  }
    512447  //====== Sequence ========
    513448  Int       getFrameRate                    ()      { return  m_iFrameRate; }
     
    552487  Bool      getUseAdaptiveQP                ()      { return  m_bUseAdaptiveQP; }
    553488  Int       getQPAdaptationRange            ()      { return  m_iQPAdaptationRange; }
    554   //====== Lossless ========
    555   Bool      getUseLossless                  ()      { return  m_useLossless;  }
    556489 
    557490  //==== Tool list ========
    558   Void      setUseSBACRD                    ( Bool  b )     { m_bUseSBACRD  = b; }
    559491  Void      setUseASR                       ( Bool  b )     { m_bUseASR     = b; }
    560492  Void      setUseHADME                     ( Bool  b )     { m_bUseHADME   = b; }
     
    567499  Void      setUseCbfFastMode            ( Bool  b )     { m_bUseCbfFastMode = b; }
    568500  Void      setUseEarlySkipDetection        ( Bool  b )     { m_useEarlySkipDetection = b; }
    569 #if FAST_INTRA_SHVC
    570   Void      setUseFastIntraScalable         ( Bool  b )     { m_useFastIntraScalable = b; }
    571 #endif
    572501  Void      setUseConstrainedIntraPred      ( Bool  b )     { m_bUseConstrainedIntraPred = b; }
    573502  Void      setPCMInputBitDepthFlag         ( Bool  b )     { m_bPCMInputBitDepthFlag = b; }
     
    578507  Void      setdQPs                         ( Int*  p )     { m_aidQP       = p; }
    579508  Void      setDeltaQpRD                    ( UInt  u )     {m_uiDeltaQpRD  = u; }
    580   Bool      getUseSBACRD                    ()      { return m_bUseSBACRD;  }
    581509  Bool      getUseASR                       ()      { return m_bUseASR;     }
    582510  Bool      getUseHADME                     ()      { return m_bUseHADME;   }
     
    589517  Bool      getUseCbfFastMode           ()      { return m_bUseCbfFastMode; }
    590518  Bool      getUseEarlySkipDetection        ()      { return m_useEarlySkipDetection; }
    591 #if FAST_INTRA_SHVC
    592   Bool      getUseFastIntraScalable         ()      { return m_useFastIntraScalable; }
    593 #endif
    594519  Bool      getUseConstrainedIntraPred      ()      { return m_bUseConstrainedIntraPred; }
    595520  Bool      getPCMInputBitDepthFlag         ()      { return m_bPCMInputBitDepthFlag;   }
     
    625550  Void  setSaoLcuBoundary              (Bool val)      { m_saoLcuBoundary = val; }
    626551  Bool  getSaoLcuBoundary              ()              { return m_saoLcuBoundary; }
    627 #if !HM_CLEANUP_SAO
    628   Void  setSaoLcuBasedOptimization               (Bool val)            { m_saoLcuBasedOptimization = val; }
    629   Bool  getSaoLcuBasedOptimization               ()                    { return m_saoLcuBasedOptimization; }
    630 #endif
    631552  Void  setLFCrossTileBoundaryFlag               ( Bool   val  )       { m_loopFilterAcrossTilesEnabledFlag = val; }
    632553  Bool  getLFCrossTileBoundaryFlag               ()                    { return m_loopFilterAcrossTilesEnabledFlag;   }
     
    748669  Void  setDecodingUnitInfoSEIEnabled(Int b)                { m_decodingUnitInfoSEIEnabled = b;    }
    749670  Int   getDecodingUnitInfoSEIEnabled()                     { return m_decodingUnitInfoSEIEnabled; }
    750 #if LAYERS_NOT_PRESENT_SEI
    751   Void  setLayersNotPresentSEIEnabled(Int b)             { m_layersNotPresentSEIEnabled = b; }
    752   Int   getLayersNotPresentSEIEnabled()                  { return m_layersNotPresentSEIEnabled; }
    753 #endif
    754671  Void  setSOPDescriptionSEIEnabled(Int b)                { m_SOPDescriptionSEIEnabled = b; }
    755672  Int   getSOPDescriptionSEIEnabled()                     { return m_SOPDescriptionSEIEnabled; }
    756673  Void  setScalableNestingSEIEnabled(Int b)                { m_scalableNestingSEIEnabled = b; }
    757674  Int   getScalableNestingSEIEnabled()                     { return m_scalableNestingSEIEnabled; }
    758 #if N0383_IL_CONSTRAINED_TILE_SETS_SEI
    759   Void  setInterLayerConstrainedTileSetsSEIEnabled(Bool b) { m_interLayerConstrainedTileSetsSEIEnabled = b; }
    760   Bool  getInterLayerConstrainedTileSetsSEIEnabled()       { return m_interLayerConstrainedTileSetsSEIEnabled; }
    761   Void  setIlNumSetsInMessage(UInt b)                      { m_ilNumSetsInMessage = b; }
    762   Int   getIlNumSetsInMessage()                            { return m_ilNumSetsInMessage; }
    763   Void  setSkippedTileSetPresentFlag(Bool b)               { m_skippedTileSetPresentFlag = b; }
    764   Bool  getSkippedTileSetPresentFlag()                     { return m_skippedTileSetPresentFlag; }
    765   Void  setTopLeftTileIndex(UInt *b)
    766   {
    767     for (UInt i = 0; i < m_ilNumSetsInMessage; i++)
    768     {
    769       m_topLeftTileIndex[i] = b[i];
    770     }
    771   }
    772   UInt  getTopLeftTileIndex(UInt b)                        { return m_topLeftTileIndex[b]; }
    773   Void  setBottomRightTileIndex(UInt *b)
    774   {
    775     for (UInt i = 0; i < m_ilNumSetsInMessage; i++)
    776     {
    777       m_bottomRightTileIndex[i] = b[i];
    778     }
    779   }
    780   UInt  getBottomRightTileIndex(UInt b)                    { return m_bottomRightTileIndex[b]; }
    781   Void  setIlcIdc(UInt *b)
    782   {
    783     for (UInt i = 0; i < m_ilNumSetsInMessage; i++)
    784     {
    785       m_ilcIdc[i] = b[i];
    786     }
    787   }
    788   UInt  getIlcIdc(UInt b)                                  { return m_ilcIdc[b]; }
    789 #endif
    790675  Void      setUseWP               ( Bool b )    { m_useWeightedPred   = b;    }
    791676  Void      setWPBiPred            ( Bool b )    { m_useWeightedBiPred = b;    }
     
    820705  Bool      getTransquantBypassEnableFlag()           { return m_TransquantBypassEnableFlag; }
    821706  Void      setTransquantBypassEnableFlag(Bool flag)  { m_TransquantBypassEnableFlag = flag; }
    822   Bool      getCUTransquantBypassFlagValue()          { return m_CUTransquantBypassFlagValue; }
    823   Void      setCUTransquantBypassFlagValue(Bool flag) { m_CUTransquantBypassFlagValue = flag; }
     707  Bool      getCUTransquantBypassFlagForceValue()          { return m_CUTransquantBypassFlagForce; }
     708  Void      setCUTransquantBypassFlagForceValue(Bool flag) { m_CUTransquantBypassFlagForce = flag; }
    824709  Void setVPS(TComVPS *p) { m_cVPS = *p; }
    825710  TComVPS *getVPS() { return &m_cVPS; }
     
    934819  Void      setCrossLayerBLAFlag(Bool b) { m_crossLayerBLAFlag = b;    }
    935820#endif
     821#if FAST_INTRA_SHVC
     822  Bool      getUseFastIntraScalable         ()      { return m_useFastIntraScalable; }
     823  Void      setUseFastIntraScalable         ( Bool  b )     { m_useFastIntraScalable = b; }
     824#endif
     825#if VPS_EXTN_DIRECT_REF_LAYERS
     826  Int       getNumDirectRefLayers           ()                              { return m_numDirectRefLayers;      }
     827  Void      setNumDirectRefLayers           (Int num)                       { m_numDirectRefLayers = num;       }
     828
     829  Int       getRefLayerId                   (Int i)                         { return m_refLayerId[i];           }
     830  Void      setRefLayerId                   (Int i, Int refLayerId)         { m_refLayerId[i] = refLayerId;     }
     831
     832  Int       getNumActiveRefLayers           ()                              { return m_numActiveRefLayers;      }
     833  Void      setNumActiveRefLayers           (Int num)                       { m_numActiveRefLayers = num;       }
     834
     835  Int       getPredLayerId                  (Int i)                         { return m_predLayerId[i];          }
     836  Void      setPredLayerId                  (Int i, Int refLayerId)         { m_predLayerId[i] = refLayerId;    }
     837
     838  Int       getNumSamplePredRefLayers       ()                              { return m_numSamplePredRefLayers;  }
     839  Void      setNumSamplePredRefLayers       (Int num)                       { m_numSamplePredRefLayers = num;   }
     840
     841  Int       getSamplePredRefLayerId         (Int i)                         { return m_samplePredRefLayerId[i];       }
     842  Void      setSamplePredRefLayerId         (Int i, Int refLayerId)         { m_samplePredRefLayerId[i] = refLayerId; }
     843
     844  Int       getNumMotionPredRefLayers       ()                              { return m_numMotionPredRefLayers;  }
     845  Void      setNumMotionPredRefLayers       (Int num)                       { m_numMotionPredRefLayers = num;   }
     846
     847  Int       getMotionPredRefLayerId         (Int i)                         { return m_motionPredRefLayerId[i];       }
     848  Void      setMotionPredRefLayerId         (Int i, Int refLayerId)         { m_motionPredRefLayerId[i] = refLayerId; }
     849
     850  Bool      getSamplePredEnabledFlag        (Int i)                         { return m_samplePredEnabledFlag[i];  }
     851  Void      setSamplePredEnabledFlag        (Int i,Bool flag)               { m_samplePredEnabledFlag[i] = flag;  }
     852
     853  Bool      getMotionPredEnabledFlag        (Int i)                         { return m_motionPredEnabledFlag[i];  }
     854  Void      setMotionPredEnabledFlag        (Int i,Bool flag)               { m_motionPredEnabledFlag[i] = flag;  }
     855#endif
     856#if N0120_MAX_TID_REF_CFG
     857  Int       getMaxTidIlRefPicsPlus1         ()                              { return m_maxTidIlRefPicsPlus1; }
     858  Void      setMaxTidIlRefPicsPlus1         (Int num)                       { m_maxTidIlRefPicsPlus1 = num;  }
     859#endif
     860#if LAYERS_NOT_PRESENT_SEI
     861  Void  setLayersNotPresentSEIEnabled(Int b)             { m_layersNotPresentSEIEnabled = b; }
     862  Int   getLayersNotPresentSEIEnabled()                  { return m_layersNotPresentSEIEnabled; }
     863#endif
     864#if N0383_IL_CONSTRAINED_TILE_SETS_SEI
     865  Void  setInterLayerConstrainedTileSetsSEIEnabled(Bool b) { m_interLayerConstrainedTileSetsSEIEnabled = b; }
     866  Bool  getInterLayerConstrainedTileSetsSEIEnabled()       { return m_interLayerConstrainedTileSetsSEIEnabled; }
     867  Void  setIlNumSetsInMessage(UInt b)                      { m_ilNumSetsInMessage = b; }
     868  Int   getIlNumSetsInMessage()                            { return m_ilNumSetsInMessage; }
     869  Void  setSkippedTileSetPresentFlag(Bool b)               { m_skippedTileSetPresentFlag = b; }
     870  Bool  getSkippedTileSetPresentFlag()                     { return m_skippedTileSetPresentFlag; }
     871  Void  setTopLeftTileIndex(UInt *b)
     872  {
     873    for (UInt i = 0; i < m_ilNumSetsInMessage; i++)
     874    {
     875      m_topLeftTileIndex[i] = b[i];
     876    }
     877  }
     878  UInt  getTopLeftTileIndex(UInt b)                        { return m_topLeftTileIndex[b]; }
     879  Void  setBottomRightTileIndex(UInt *b)
     880  {
     881    for (UInt i = 0; i < m_ilNumSetsInMessage; i++)
     882    {
     883      m_bottomRightTileIndex[i] = b[i];
     884    }
     885  }
     886  UInt  getBottomRightTileIndex(UInt b)                    { return m_bottomRightTileIndex[b]; }
     887  Void  setIlcIdc(UInt *b)
     888  {
     889    for (UInt i = 0; i < m_ilNumSetsInMessage; i++)
     890    {
     891      m_ilcIdc[i] = b[i];
     892    }
     893  }
     894  UInt  getIlcIdc(UInt b)                                  { return m_ilcIdc[b]; }
     895#endif
    936896#endif
    937897};
    938898
     899#if SVC_EXTENSION
     900#if REPN_FORMAT_IN_VPS
     901struct RepFormatCfg
     902{
     903  Int   m_chromaFormatIdc;
     904  Bool  m_separateColourPlaneFlag;
     905  Int   m_picWidthInLumaSamples;
     906  Int   m_picHeightInLumaSamples;
     907  Int   m_bitDepthLuma;
     908  Int   m_bitDepthChroma;
     909  RepFormatCfg()
     910    : m_chromaFormatIdc         (CHROMA_420)
     911    , m_separateColourPlaneFlag (0)
     912    , m_picWidthInLumaSamples   (352)
     913    , m_picHeightInLumaSamples  (288)
     914    , m_bitDepthLuma            (8)
     915    , m_bitDepthChroma          (8)
     916  {}
     917};
     918std::istringstream &operator>>(std::istringstream &in, RepFormatCfg &repFormatCfg);
     919#endif
     920#endif //SVC_EXTENSION
     921
    939922//! \}
    940923
Note: See TracChangeset for help on using the changeset viewer.