Changeset 868 in SHVCSoftware for branches/SHM-dev/source/Lib


Ignore:
Timestamp:
13 Aug 2014, 18:37:06 (11 years ago)
Author:
seregin
Message:

update for CRI SEI, provided by Andrivon Pierre <Pierre.Andrivon@…>

Location:
branches/SHM-dev/source/Lib
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • branches/SHM-dev/source/Lib/TLibCommon/SEI.h

    r856 r868  
    458458  Bool  m_colourRemapCancelFlag;
    459459  Bool  m_colourRemapPersistenceFlag;
    460   Bool  m_colourRemapVideoSignalTypePresentFlag;
    461   Bool  m_colourRemapVideoFullRangeFlag;
     460  Bool  m_colourRemapVideoSignalInfoPresentFlag;
     461  Bool  m_colourRemapFullRangeFlag;
    462462  Int   m_colourRemapPrimaries;
    463   Int   m_colourRemapTransferCharacteristics;
    464   Int   m_colourRemapMatrixCoeffs;
    465   Int   m_colourRemapCodedDataBitDepth;
    466   Int   m_colourRemapTargetBitDepth;
     463  Int   m_colourRemapTransferFunction;
     464  Int   m_colourRemapMatrixCoefficients;
     465  Int   m_colourRemapInputBitDepth;
     466  Int   m_colourRemapBitDepth;
    467467  Int   m_preLutNumValMinus1[3];
    468468  std::vector<Int> m_preLutCodedValue[3];
  • branches/SHM-dev/source/Lib/TLibDecoder/SEIread.cpp

    r856 r868  
    936936  {
    937937    READ_FLAG( uiVal, "colour_remap_persistence_flag" );                sei.m_colourRemapPersistenceFlag = uiVal;
    938     READ_FLAG( uiVal, "colour_remap_video_signal_type_present_flag" );  sei.m_colourRemapVideoSignalTypePresentFlag = uiVal;
    939     if ( sei.m_colourRemapVideoSignalTypePresentFlag )
    940     {
    941       READ_FLAG( uiVal,    "colour_remap_video_full_range_flag" );     sei.m_colourRemapVideoFullRangeFlag = uiVal;
     938    READ_FLAG( uiVal, "colour_remap_video_signal_info_present_flag" );  sei.m_colourRemapVideoSignalInfoPresentFlag = uiVal;
     939    if ( sei.m_colourRemapVideoSignalInfoPresentFlag )
     940    {
     941      READ_FLAG( uiVal,    "colour_remap_full_range_flag" );           sei.m_colourRemapFullRangeFlag = uiVal;
    942942      READ_CODE( 8, uiVal, "colour_remap_primaries" );                 sei.m_colourRemapPrimaries = uiVal;
    943       READ_CODE( 8, uiVal, "colour_remap_transfer_characteristics" );  sei.m_colourRemapTransferCharacteristics = uiVal;
    944       READ_CODE( 8, uiVal, "colour_remap_matrix_coeffs" );             sei.m_colourRemapMatrixCoeffs = uiVal;
    945     }
    946     READ_CODE( 8, uiVal, "colour_remap_coded_data_bit_depth" );  sei.m_colourRemapCodedDataBitDepth = uiVal;
    947     READ_CODE( 8, uiVal, "colour_remap_target_bit_depth" );      sei.m_colourRemapTargetBitDepth = uiVal;
     943      READ_CODE( 8, uiVal, "colour_remap_transfer_function" );         sei.m_colourRemapTransferFunction = uiVal;
     944      READ_CODE( 8, uiVal, "colour_remap_matrix_coefficients" );       sei.m_colourRemapMatrixCoefficients = uiVal;
     945    }
     946    READ_CODE( 8, uiVal, "colour_remap_input_bit_depth" ); sei.m_colourRemapInputBitDepth = uiVal;
     947    READ_CODE( 8, uiVal, "colour_remap_bit_depth" ); sei.m_colourRemapBitDepth = uiVal;
    948948 
    949949    for( Int c=0 ; c<3 ; c++ )
     
    955955        for ( Int i=0 ; i<=sei.m_preLutNumValMinus1[c] ; i++ )
    956956        {
    957           READ_CODE( (( sei.m_colourRemapCodedDataBitDepth   + 7 ) >> 3 ) << 3, uiVal, "pre_lut_coded_value[c][i]" );  sei.m_preLutCodedValue[c][i]  = uiVal;
    958           READ_CODE( (( sei.m_colourRemapTargetBitDepth + 7 ) >> 3 ) << 3, uiVal, "pre_lut_target_value[c][i]" ); sei.m_preLutTargetValue[c][i] = uiVal;
     957          READ_CODE( (( sei.m_colourRemapInputBitDepth   + 7 ) >> 3 ) << 3, uiVal, "pre_lut_coded_value[c][i]" );  sei.m_preLutCodedValue[c][i]  = uiVal;
     958          READ_CODE( (( sei.m_colourRemapBitDepth + 7 ) >> 3 ) << 3, uiVal, "pre_lut_target_value[c][i]" ); sei.m_preLutTargetValue[c][i] = uiVal;
    959959        }
    960960      else // pre_lut_num_val_minus1[c] == 0
     
    962962        sei.m_preLutCodedValue[c][0]  = 0;
    963963        sei.m_preLutTargetValue[c][0] = 0;
    964         sei.m_preLutCodedValue[c][1]  = (1 << sei.m_colourRemapCodedDataBitDepth) - 1 ;
    965         sei.m_preLutTargetValue[c][1] = (1 << sei.m_colourRemapTargetBitDepth) - 1 ;
     964        sei.m_preLutCodedValue[c][1]  = (1 << sei.m_colourRemapInputBitDepth) - 1 ;
     965        sei.m_preLutTargetValue[c][1] = (1 << sei.m_colourRemapBitDepth) - 1 ;
    966966      }
    967967    }
     
    992992        for ( Int i=0 ; i<=sei.m_postLutNumValMinus1[c] ; i++ )
    993993        {
    994           READ_CODE( (( sei.m_colourRemapTargetBitDepth + 7 ) >> 3 ) << 3, uiVal, "post_lut_coded_value[c][i]" );  sei.m_postLutCodedValue[c][i] = uiVal;
    995           READ_CODE( (( sei.m_colourRemapTargetBitDepth + 7 ) >> 3 ) << 3, uiVal, "post_lut_target_value[c][i]" ); sei.m_postLutTargetValue[c][i] = uiVal;
     994          READ_CODE( (( sei.m_colourRemapBitDepth + 7 ) >> 3 ) << 3, uiVal, "post_lut_coded_value[c][i]" );  sei.m_postLutCodedValue[c][i] = uiVal;
     995          READ_CODE( (( sei.m_colourRemapBitDepth + 7 ) >> 3 ) << 3, uiVal, "post_lut_target_value[c][i]" ); sei.m_postLutTargetValue[c][i] = uiVal;
    996996        }
    997997      else
     
    999999        sei.m_postLutCodedValue[c][0]  = 0;
    10001000        sei.m_postLutTargetValue[c][0] = 0;
    1001         sei.m_postLutTargetValue[c][1] = (1 << sei.m_colourRemapTargetBitDepth) - 1;
    1002         sei.m_postLutCodedValue[c][1]  = (1 << sei.m_colourRemapTargetBitDepth) - 1;
     1001        sei.m_postLutTargetValue[c][1] = (1 << sei.m_colourRemapBitDepth) - 1;
     1002        sei.m_postLutCodedValue[c][1]  = (1 << sei.m_colourRemapBitDepth) - 1;
    10031003      }
    10041004    }
  • branches/SHM-dev/source/Lib/TLibDecoder/TDecGop.cpp

    r856 r868  
    367367    Int bitDepth = c ? bitDepthC : bitDepthY ;
    368368    preLut[c].resize(1 << bitDepth);
    369     postLut[c].resize(1 << pCriSEI->m_colourRemapTargetBitDepth);
     369    postLut[c].resize(1 << pCriSEI->m_colourRemapBitDepth);
    370370   
    371     Int bitDepthDiff = pCriSEI->m_colourRemapTargetBitDepth - bitDepth;
    372     Int iShift1 = (bitDepthDiff>0) ? bitDepthDiff : 0; //bit scale from bitdepth to TargetBitdepth (manage only case colourRemapTargetBitDepth>= bitdepth)
     371    Int bitDepthDiff = pCriSEI->m_colourRemapBitDepth - bitDepth;
     372    Int iShift1 = (bitDepthDiff>0) ? bitDepthDiff : 0; //bit scale from bitdepth to ColourRemapBitdepth (manage only case colourRemapBitDepth>= bitdepth)
    373373    if( bitDepthDiff<0 )
    374       printf ("Warning: CRI SEI - colourRemapTargetBitDepth (%d) <bitDepth (%d) - case not handled\n", pCriSEI->m_colourRemapTargetBitDepth, bitDepth);
    375     bitDepthDiff = pCriSEI->m_colourRemapTargetBitDepth - pCriSEI->m_colourRemapCodedDataBitDepth;
    376     Int iShift2 = (bitDepthDiff>0) ? bitDepthDiff : 0; //bit scale from codedDataBitdepth to TargetBitdepth (manage only case colourRemapTargetBitDepth>= colourRemapCodedDataBitDepth)
     374      printf ("Warning: CRI SEI - colourRemapBitDepth (%d) <bitDepth (%d) - case not handled\n", pCriSEI->m_colourRemapBitDepth, bitDepth);
     375    bitDepthDiff = pCriSEI->m_colourRemapBitDepth - pCriSEI->m_colourRemapInputBitDepth;
     376    Int iShift2 = (bitDepthDiff>0) ? bitDepthDiff : 0; //bit scale from ColourRemapInputBitdepth to ColourRemapBitdepth (manage only case colourRemapBitDepth>= colourRemapInputBitDepth)
    377377    if( bitDepthDiff<0 )
    378       printf ("Warning: CRI SEI - colourRemapTargetBitDepth (%d) <colourRemapCodedDataBitDepth (%d) - case not handled\n", pCriSEI->m_colourRemapTargetBitDepth, pCriSEI->m_colourRemapCodedDataBitDepth);
     378      printf ("Warning: CRI SEI - colourRemapBitDepth (%d) <colourRemapInputBitDepth (%d) - case not handled\n", pCriSEI->m_colourRemapBitDepth, pCriSEI->m_colourRemapInputBitDepth);
    379379
    380380    //Fill preLut
     
    384384      for ( Int iPivot=0 ; iPivot<=pCriSEI->m_preLutNumValMinus1[c] ; iPivot++ )
    385385      {
    386         Int iCodedPrev  = pCriSEI->m_preLutCodedValue[c][iPivot]    << iShift2; //Coded in CodedDataBitdepth
    387         Int iCodedNext  = pCriSEI->m_preLutCodedValue[c][iPivot+1]  << iShift2; //Coded in CodedDataBitdepth
    388         Int iTargetPrev = pCriSEI->m_preLutTargetValue[c][iPivot];              //Coded in TargetBitdepth
    389         Int iTargetNext = pCriSEI->m_preLutTargetValue[c][iPivot+1];            //Coded in TargetBitdepth
     386        Int iCodedPrev  = pCriSEI->m_preLutCodedValue[c][iPivot]    << iShift2; //Coded in CRInputBitdepth
     387        Int iCodedNext  = pCriSEI->m_preLutCodedValue[c][iPivot+1]  << iShift2; //Coded in CRInputBitdepth
     388        Int iTargetPrev = pCriSEI->m_preLutTargetValue[c][iPivot];              //Coded in CRBitdepth
     389        Int iTargetNext = pCriSEI->m_preLutTargetValue[c][iPivot+1];            //Coded in CRBitdepth
    390390        if ( iCodedPrev <= iSample && iSample <= iCodedNext )
    391391        {
     
    398398   
    399399    //Fill postLut
    400     for ( Int k=0 ; k<(1<<pCriSEI->m_colourRemapTargetBitDepth) ; k++ )
     400    for ( Int k=0 ; k<(1<<pCriSEI->m_colourRemapBitDepth) ; k++ )
    401401    {
    402402      Int iSample = k;
    403403      for ( Int iPivot=0 ; iPivot<=pCriSEI->m_postLutNumValMinus1[c] ; iPivot++ )
    404404      {
    405         Int iCodedPrev  = pCriSEI->m_postLutCodedValue[c][iPivot];    //Coded in TargetBitdepth
    406         Int iCodedNext  = pCriSEI->m_postLutCodedValue[c][iPivot+1];  //Coded in TargetBitdepth
    407         Int iTargetPrev = pCriSEI->m_postLutTargetValue[c][iPivot];   //Coded in TargetBitdepth
    408         Int iTargetNext = pCriSEI->m_postLutTargetValue[c][iPivot+1]; //Coded in TargetBitdepth
     405        Int iCodedPrev  = pCriSEI->m_postLutCodedValue[c][iPivot];    //Coded in CRBitdepth
     406        Int iCodedNext  = pCriSEI->m_postLutCodedValue[c][iPivot+1];  //Coded in CRBitdepth
     407        Int iTargetPrev = pCriSEI->m_postLutTargetValue[c][iPivot];   //Coded in CRBitdepth
     408        Int iTargetNext = pCriSEI->m_postLutTargetValue[c][iPivot+1]; //Coded in CRBitdepth
    409409        if ( iCodedPrev <= iSample && iSample <= iCodedNext )
    410410        {
     
    486486                    + storeCriSEI[layerId].m_colourRemapCoeffs[0][2]*YUVPre[2]
    487487                    + roundingOffset ) >> ( storeCriSEI[layerId].m_log2MatrixDenom );
    488         YUVMat[0] = Clip3( 0, (1<<storeCriSEI[layerId].m_colourRemapTargetBitDepth)-1, YUVMat[0] );
     488        YUVMat[0] = Clip3( 0, (1<<storeCriSEI[layerId].m_colourRemapBitDepth)-1, YUVMat[0] );
    489489        YUVOut[0][x] = postLut[0][ YUVMat[0] ];
    490490
     
    497497                        + storeCriSEI[layerId].m_colourRemapCoeffs[c][2]*YUVPre[2]
    498498                        + roundingOffset ) >> ( storeCriSEI[layerId].m_log2MatrixDenom );
    499             YUVMat[c] = Clip3( 0, (1<<storeCriSEI[layerId].m_colourRemapTargetBitDepth)-1, YUVMat[c] );
     499            YUVMat[c] = Clip3( 0, (1<<storeCriSEI[layerId].m_colourRemapBitDepth)-1, YUVMat[c] );
    500500            YUVOut[c][x>>1] = postLut[c][ YUVMat[c] ];   
    501501          }
     
    515515    //Write remapped picture in decoding order
    516516    Char  cTemp[255];
    517     sprintf(cTemp, "seiColourRemappedPic_L%d_%dx%d_%dbits.yuv", layerId, iWidth, iHeight, storeCriSEI[layerId].m_colourRemapTargetBitDepth );
    518     picColourRemapped.dump( cTemp, true, storeCriSEI[layerId].m_colourRemapTargetBitDepth );
     517    sprintf(cTemp, "seiColourRemappedPic_L%d_%dx%d_%dbits.yuv", layerId, iWidth, iHeight, storeCriSEI[layerId].m_colourRemapBitDepth );
     518    picColourRemapped.dump( cTemp, true, storeCriSEI[layerId].m_colourRemapBitDepth );
    519519
    520520    picColourRemapped.destroy();
  • branches/SHM-dev/source/Lib/TLibEncoder/SEIwrite.cpp

    r857 r868  
    646646  {
    647647    WRITE_FLAG( sei.m_colourRemapPersistenceFlag,              "colour_remap_persistence_flag" );
    648     WRITE_FLAG( sei.m_colourRemapVideoSignalTypePresentFlag,   "colour_remap_video_signal_type_present_flag" );
    649     if ( sei.m_colourRemapVideoSignalTypePresentFlag )
    650     {
    651       WRITE_FLAG( sei.m_colourRemapVideoFullRangeFlag,         "colour_remap_video_full_range_flag" );
     648    WRITE_FLAG( sei.m_colourRemapVideoSignalInfoPresentFlag,   "colour_remap_video_signal_info_present_flag" );
     649    if ( sei.m_colourRemapVideoSignalInfoPresentFlag )
     650    {
     651      WRITE_FLAG( sei.m_colourRemapFullRangeFlag,              "colour_remap_full_range_flag" );
    652652      WRITE_CODE( sei.m_colourRemapPrimaries,               8, "colour_remap_primaries" );
    653       WRITE_CODE( sei.m_colourRemapTransferCharacteristics, 8, "colour_remap_transfer_characteristics" );
    654       WRITE_CODE( sei.m_colourRemapMatrixCoeffs,            8, "colour_remap_matrix_coeffs" );
    655     }
    656     WRITE_CODE( sei.m_colourRemapCodedDataBitDepth,         8, "colour_remap_coded_data_bit_depth" );
    657     WRITE_CODE( sei.m_colourRemapTargetBitDepth,            8, "colour_remap_target_bit_depth" );
     653      WRITE_CODE( sei.m_colourRemapTransferFunction,        8, "colour_remap_transfer_function" );
     654      WRITE_CODE( sei.m_colourRemapMatrixCoefficients,      8, "colour_remap_matrix_coefficients" );
     655    }
     656    WRITE_CODE( sei.m_colourRemapInputBitDepth,             8, "colour_remap_input_bit_depth" );
     657    WRITE_CODE( sei.m_colourRemapBitDepth,                  8, "colour_remap_bit_depth" );
    658658    for( Int c=0 ; c<3 ; c++ )
    659659    {
     
    662662        for( Int i=0 ; i<=sei.m_preLutNumValMinus1[c] ; i++ )
    663663        {
    664           WRITE_CODE( sei.m_preLutCodedValue[c][i],  (( sei.m_colourRemapCodedDataBitDepth + 7 ) >> 3 ) << 3, "pre_lut_coded_value[c][i]" );
    665           WRITE_CODE( sei.m_preLutTargetValue[c][i], (( sei.m_colourRemapTargetBitDepth    + 7 ) >> 3 ) << 3, "pre_lut_target_value[c][i]" );
     664          WRITE_CODE( sei.m_preLutCodedValue[c][i], (( sei.m_colourRemapInputBitDepth + 7 ) >> 3 ) << 3, "pre_lut_coded_value[c][i]" );
     665          WRITE_CODE( sei.m_preLutTargetValue[c][i], (( sei.m_colourRemapBitDepth + 7 ) >> 3 ) << 3, "pre_lut_target_value[c][i]" );
    666666        }
    667667    }
     
    681681        for( Int i=0 ; i<=sei.m_postLutNumValMinus1[c] ; i++ )
    682682        {
    683           WRITE_CODE( sei.m_postLutCodedValue[c][i], (( sei.m_colourRemapTargetBitDepth + 7 ) >> 3 ) << 3, "post_lut_coded_value[c][i]" );       
    684           WRITE_CODE( sei.m_postLutTargetValue[c][i], (( sei.m_colourRemapTargetBitDepth + 7 ) >> 3 ) << 3, "post_lut_target_value[c][i]" );
     683          WRITE_CODE( sei.m_postLutCodedValue[c][i], (( sei.m_colourRemapBitDepth + 7 ) >> 3 ) << 3, "post_lut_coded_value[c][i]" );       
     684          WRITE_CODE( sei.m_postLutTargetValue[c][i], (( sei.m_colourRemapBitDepth + 7 ) >> 3 ) << 3, "post_lut_target_value[c][i]" );
    685685        }
    686686    }
  • branches/SHM-dev/source/Lib/TLibEncoder/TEncCfg.h

    r856 r868  
    394394  Bool      m_colourRemapSEICancelFlag;
    395395  Bool      m_colourRemapSEIPersistenceFlag;
    396   Bool      m_colourRemapSEIVideoSignalTypePresentFlag;
    397   Bool      m_colourRemapSEIVideoFullRangeFlag;
     396  Bool      m_colourRemapSEIVideoSignalInfoPresentFlag;
     397  Bool      m_colourRemapSEIFullRangeFlag;
    398398  Int       m_colourRemapSEIPrimaries;
    399   Int       m_colourRemapSEITransferCharacteristics;
    400   Int       m_colourRemapSEIMatrixCoeffs;
    401   Int       m_colourRemapSEICodedDataBitDepth;
    402   Int       m_colourRemapSEITargetBitDepth;
     399  Int       m_colourRemapSEITransferFunction;
     400  Int       m_colourRemapSEIMatrixCoefficients;
     401  Int       m_colourRemapSEIInputBitDepth;
     402  Int       m_colourRemapSEIBitDepth;
    403403  Int       m_colourRemapSEIPreLutNumValMinus1[3];
    404404  Int*      m_colourRemapSEIPreLutCodedValue[3];
     
    712712  Void  setCRISEIPersistenceFlag(Bool b)                     { m_colourRemapSEIPersistenceFlag = b; }
    713713  Bool  getCRISEIPersistenceFlag()                           { return m_colourRemapSEIPersistenceFlag; }
    714   Void  setCRISEIVideoSignalTypePresentFlag(Bool b)          { m_colourRemapSEIVideoSignalTypePresentFlag = b; }
    715   Bool  getCRISEIVideoSignalTypePresentFlag()                { return m_colourRemapSEIVideoSignalTypePresentFlag; }
    716   Void  setCRISEIVideoFullRangeFlag(Bool b)                  { m_colourRemapSEIVideoFullRangeFlag = b; }
    717   Bool  getCRISEIVideoFullRangeFlag()                        { return m_colourRemapSEIVideoFullRangeFlag; }
     714  Void  setCRISEIVideoSignalInfoPresentFlag(Bool b)          { m_colourRemapSEIVideoSignalInfoPresentFlag = b; }
     715  Bool  getCRISEIVideoSignalInfoPresentFlag()                { return m_colourRemapSEIVideoSignalInfoPresentFlag; }
     716  Void  setCRISEIFullRangeFlag(Bool b)                       { m_colourRemapSEIFullRangeFlag = b; }
     717  Bool  getCRISEIFullRangeFlag()                             { return m_colourRemapSEIFullRangeFlag; }
    718718  Void  setCRISEIPrimaries(Int i)                            { m_colourRemapSEIPrimaries = i; }
    719719  Int   getCRISEIPrimaries()                                 { return m_colourRemapSEIPrimaries; } 
    720   Void  setCRISEITransferCharacteristics(Int i)              { m_colourRemapSEITransferCharacteristics = i; }
    721   Int   getCRISEITransferCharacteristics()                   { return m_colourRemapSEITransferCharacteristics; } 
    722   Void  setCRISEIMatrixCoeffs(Int i)                         { m_colourRemapSEIMatrixCoeffs = i; }
    723   Int   getCRISEIMatrixCoeffs()                              { return m_colourRemapSEIMatrixCoeffs; }
    724   Void  setCRISEICodedDataBitDepth(Int i)                    { m_colourRemapSEICodedDataBitDepth = i; }
    725   Int   getCRISEICodedDataBitDepth()                         { return m_colourRemapSEICodedDataBitDepth; }
    726   Void  setCRISEITargetBitDepth(Int i)                       { m_colourRemapSEITargetBitDepth = i; }
    727   Int   getCRISEITargetBitDepth()                            { return m_colourRemapSEITargetBitDepth; }
     720  Void  setCRISEITransferFunction(Int i)                     { m_colourRemapSEITransferFunction = i; }
     721  Int   getCRISEITransferFunction()                          { return m_colourRemapSEITransferFunction; } 
     722  Void  setCRISEIMatrixCoefficients(Int i)                   { m_colourRemapSEIMatrixCoefficients = i; }
     723  Int   getCRISEIMatrixCoefficients()                        { return m_colourRemapSEIMatrixCoefficients; }
     724  Void  setCRISEIInputBitDepth(Int i)                        { m_colourRemapSEIInputBitDepth = i; }
     725  Int   getCRISEIInputBitDepth()                             { return m_colourRemapSEIInputBitDepth; }
     726  Void  setCRISEIBitDepth(Int i)                             { m_colourRemapSEIBitDepth = i; }
     727  Int   getCRISEIBitDepth()                                  { return m_colourRemapSEIBitDepth; }
    728728  Void  setCRISEIPreLutNumValMinus1(Int *i)                  { for(Int c=0 ; c<3 ; c++) m_colourRemapSEIPreLutNumValMinus1[c] = i[c]; }
    729729  Int   getCRISEIPreLutNumValMinus1(Int i)                   { return m_colourRemapSEIPreLutNumValMinus1[i]; }
  • branches/SHM-dev/source/Lib/TLibEncoder/TEncGOP.cpp

    r860 r868  
    374374  {
    375375    seiColourRemappingInfo->m_colourRemapPersistenceFlag            = m_pcCfg->getCRISEIPersistenceFlag();
    376     seiColourRemappingInfo->m_colourRemapVideoSignalTypePresentFlag = m_pcCfg->getCRISEIVideoSignalTypePresentFlag();
    377     if( seiColourRemappingInfo->m_colourRemapVideoSignalTypePresentFlag )
    378     {
    379       seiColourRemappingInfo->m_colourRemapVideoFullRangeFlag      = m_pcCfg->getCRISEIVideoFullRangeFlag();
     376    seiColourRemappingInfo->m_colourRemapVideoSignalInfoPresentFlag = m_pcCfg->getCRISEIVideoSignalInfoPresentFlag();
     377    if( seiColourRemappingInfo->m_colourRemapVideoSignalInfoPresentFlag )
     378    {
     379      seiColourRemappingInfo->m_colourRemapFullRangeFlag           = m_pcCfg->getCRISEIFullRangeFlag();
    380380      seiColourRemappingInfo->m_colourRemapPrimaries               = m_pcCfg->getCRISEIPrimaries();
    381       seiColourRemappingInfo->m_colourRemapTransferCharacteristics = m_pcCfg->getCRISEITransferCharacteristics();
    382       seiColourRemappingInfo->m_colourRemapMatrixCoeffs            = m_pcCfg->getCRISEIMatrixCoeffs();
    383     }
    384     seiColourRemappingInfo->m_colourRemapCodedDataBitDepth = m_pcCfg->getCRISEICodedDataBitDepth();
    385     seiColourRemappingInfo->m_colourRemapTargetBitDepth    = m_pcCfg->getCRISEITargetBitDepth();
     381      seiColourRemappingInfo->m_colourRemapTransferFunction        = m_pcCfg->getCRISEITransferFunction();
     382      seiColourRemappingInfo->m_colourRemapMatrixCoefficients      = m_pcCfg->getCRISEIMatrixCoefficients();
     383    }
     384    seiColourRemappingInfo->m_colourRemapInputBitDepth             = m_pcCfg->getCRISEIInputBitDepth();
     385    seiColourRemappingInfo->m_colourRemapBitDepth                  = m_pcCfg->getCRISEIBitDepth();
    386386    for( Int c=0 ; c<3 ; c++ )
    387387    {
Note: See TracChangeset for help on using the changeset viewer.