Changeset 978 in SHVCSoftware for branches


Ignore:
Timestamp:
13 Jan 2015, 14:56:46 (10 years ago)
Author:
nokia
Message:

Implementation of JCTVC-R0071 - IRAP and EOS cross-layer impacts

Location:
branches/SHM-dev/source
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • branches/SHM-dev/source/App/TAppEncoder/TAppEncCfg.cpp

    r958 r978  
    499499#endif
    500500  Int*    cfg_waveFrontSynchro[MAX_LAYERS];
     501#if R0071_IRAP_EOS_CROSS_LAYER_IMPACTS
     502  Int*    cfg_layerSwitchOffBegin[MAX_LAYERS];
     503  Int*    cfg_layerSwitchOffEnd[MAX_LAYERS];
     504#endif
    501505
    502506  for(UInt layer = 0; layer < MAX_LAYERS; layer++)
     
    593597#if AUXILIARY_PICTURES
    594598    cfg_auxId[layer]                = &m_acLayerCfg[layer].m_auxId;
     599#endif
     600#if R0071_IRAP_EOS_CROSS_LAYER_IMPACTS
     601    cfg_layerSwitchOffBegin[layer] = &m_acLayerCfg[layer].m_layerSwitchOffBegin;
     602    cfg_layerSwitchOffEnd[layer]   = &m_acLayerCfg[layer].m_layerSwitchOffEnd;
    595603#endif
    596604  }
     
    12351243  ("AdaptiveResolutionChange",     m_adaptiveResolutionChange, 0, "Adaptive resolution change frame number. Should coincide with EL RAP picture. (0: disable)")
    12361244#endif
     1245#if R0071_IRAP_EOS_CROSS_LAYER_IMPACTS
     1246  ("LayerSwitchOffBegin%d", cfg_layerSwitchOffBegin, 0, MAX_LAYERS, "Switch layer %d off after given poc")
     1247  ("LayerSwitchOffEnd%d", cfg_layerSwitchOffEnd, 0, MAX_LAYERS, "Switch layer %d on at given poc")
     1248#endif
    12371249#if HIGHER_LAYER_IRAP_SKIP_FLAG
    12381250  ("SkipPictureAtArcSwitch",     m_skipPictureAtArcSwitch, false, "Code the higher layer picture in ARC up-switching as a skip picture. (0: disable)")
     
    20182030  if (!m_outputBitDepthY) { m_outputBitDepthY = m_internalBitDepthY; }
    20192031  if (!m_outputBitDepthC) { m_outputBitDepthC = m_internalBitDepthC; }
     2032#endif
     2033
     2034#if R0071_IRAP_EOS_CROSS_LAYER_IMPACTS
     2035  for (Int layer = 0; layer < MAX_LAYERS; layer++)
     2036  {
     2037    if (m_acLayerCfg[layer].m_layerSwitchOffBegin < m_acLayerCfg[layer].m_layerSwitchOffEnd)
     2038    {
     2039      if (m_iGOPSize > 0 && (m_acLayerCfg[layer].m_layerSwitchOffBegin % m_iGOPSize) != 0)
     2040      {
     2041        printf("LayerSwitchOffBegin%d: Must be multiple of GOP size.\n", layer);
     2042        exit(EXIT_FAILURE);
     2043      }
     2044      if (m_acLayerCfg[layer].m_iIntraPeriod > 0 && (m_acLayerCfg[layer].m_layerSwitchOffEnd % m_acLayerCfg[layer].m_iIntraPeriod) != 0)
     2045      {
     2046        printf("LayerSwitchOffEnd%d: Must be IRAP picture.\n", layer);
     2047        exit(EXIT_FAILURE);
     2048      }
     2049    }
     2050  }
    20202051#endif
    20212052
  • branches/SHM-dev/source/App/TAppEncoder/TAppEncLayerCfg.h

    r875 r978  
    149149#endif
    150150
     151#if R0071_IRAP_EOS_CROSS_LAYER_IMPACTS
     152  Int       m_layerSwitchOffBegin;
     153  Int       m_layerSwitchOffEnd;
     154#endif
     155
    151156public:
    152157  TAppEncLayerCfg();
  • branches/SHM-dev/source/App/TAppEncoder/TAppEncTop.cpp

    r976 r978  
    776776#if M0040_ADAPTIVE_RESOLUTION_CHANGE
    777777    m_acTEncTop[layer].setAdaptiveResolutionChange( m_adaptiveResolutionChange );
     778#endif
     779#if R0071_IRAP_EOS_CROSS_LAYER_IMPACTS
     780    m_acTEncTop[layer].setLayerSwitchOffBegin(m_acLayerCfg[layer].m_layerSwitchOffBegin);
     781    m_acTEncTop[layer].setLayerSwitchOffEnd(m_acLayerCfg[layer].m_layerSwitchOffEnd);
    778782#endif
    779783#if AUXILIARY_PICTURES
  • branches/SHM-dev/source/Lib/TLibCommon/TypeDef.h

    r966 r978  
    173173#define VPS_EXTN_DIRECT_REF_LAYERS       1      ///< Include indication of direct dependency of layers in VPS extension
    174174#define M0040_ADAPTIVE_RESOLUTION_CHANGE 1
     175#define R0071_IRAP_EOS_CROSS_LAYER_IMPACTS 1
    175176
    176177#define VPS_VUI_TILES_NOT_IN_USE__FLAG   1      ///< JCTVC-O0226: VPS VUI flag to indicate tile not in use
  • branches/SHM-dev/source/Lib/TLibDecoder/TDecTop.cpp

    r953 r978  
    100100  m_isLastNALWasEos = false;
    101101#endif
     102#if R0071_IRAP_EOS_CROSS_LAYER_IMPACTS
     103  m_lastPicHasEos = false;
     104#endif
    102105#if NO_CLRAS_OUTPUT_FLAG
    103106  m_noClrasOutputFlag          = false;
     
    11461149      setNoClrasOutputFlag(true);
    11471150    }
     1151#if R0071_IRAP_EOS_CROSS_LAYER_IMPACTS
     1152    else if (m_lastPicHasEos)
     1153    {
     1154      setNoClrasOutputFlag(true);
     1155    }
     1156#endif
    11481157    else if ( m_apcSlicePilot->getBlaPicFlag() )
    11491158    {
     
    18331842    }
    18341843#endif
     1844#if R0071_IRAP_EOS_CROSS_LAYER_IMPACTS
     1845    xCheckLayerReset();
     1846    xSetLayerInitializedFlag();
     1847#endif
    18351848    // Buffer initialize for prediction.
    18361849    m_cPrediction.initTempBuff();
     
    24262439#if P0297_VPS_POC_LSB_ALIGNED_FLAG
    24272440  setFirstPicInLayerDecodedFlag(true);
     2441#endif
     2442#if R0071_IRAP_EOS_CROSS_LAYER_IMPACTS
     2443  m_lastPicHasEos = false;
    24282444#endif
    24292445
     
    26902706#if Q0177_EOS_CHECKS
    26912707      assert( m_isLastNALWasEos == false );
     2708#if !R0071_IRAP_EOS_CROSS_LAYER_IMPACTS
    26922709      //Check layer id of the nalu. if it is not 0, give a warning message and just return without doing anything.
    26932710      if (nalu.m_layerId > 0)
     
    26962713        return false;
    26972714      }
     2715#endif
    26982716      m_isLastNALWasEos = true;
     2717#if R0071_IRAP_EOS_CROSS_LAYER_IMPACTS
     2718      m_lastPicHasEos = true;
     2719#endif
    26992720#endif
    27002721      m_associatedIRAPType = NAL_UNIT_INVALID;
     
    31013122}
    31023123#endif
     3124
     3125#if R0071_IRAP_EOS_CROSS_LAYER_IMPACTS
     3126Void TDecTop::xCheckLayerReset()
     3127{
     3128  if (m_apcSlicePilot->isIRAP() && m_layerId > 0)
     3129  {
     3130    Bool layerResetFlag;
     3131    UInt dolLayerId;
     3132    if (m_lastPicHasEos)
     3133    {
     3134      layerResetFlag = true;
     3135      dolLayerId = m_layerId;
     3136    }
     3137    else if ((m_apcSlicePilot->isCRA() && m_apcSlicePilot->getHandleCraAsBlaFlag()) ||
     3138      (m_apcSlicePilot->isIDR() && m_apcSlicePilot->getCrossLayerBLAFlag()) || m_apcSlicePilot->isBLA())
     3139    {
     3140      layerResetFlag = true;
     3141      dolLayerId = m_layerId;
     3142    }
     3143    else
     3144    {
     3145      layerResetFlag = false;
     3146    }
     3147
     3148    if (layerResetFlag)
     3149    {
     3150      for (Int i = 0; i < m_apcSlicePilot->getVPS()->getNumPredictedLayers(dolLayerId); i++)
     3151      {
     3152        UInt iLayerId = m_apcSlicePilot->getVPS()->getPredictedLayerId(dolLayerId, i);
     3153        m_ppcTDecTop[iLayerId]->m_layerInitializedFlag = false;
     3154        m_ppcTDecTop[iLayerId]->m_firstPicInLayerDecodedFlag = false;
     3155      }
     3156
     3157      for (TComList<TComPic*>::iterator i = m_cListPic.begin(); i != m_cListPic.end(); i++)
     3158      {
     3159        if ((*i)->getPOC() != m_apcSlicePilot->getPOC())
     3160        {
     3161          (*i)->getSlice(0)->setReferenced(false);
     3162        }
     3163      }
     3164
     3165      for (UInt i = 0; i < m_apcSlicePilot->getVPS()->getNumPredictedLayers(dolLayerId); i++)
     3166      {
     3167        UInt predLId = m_apcSlicePilot->getVPS()->getPredictedLayerId(dolLayerId, i);
     3168        for (TComList<TComPic*>::iterator pic = m_ppcTDecTop[predLId]->getListPic()->begin(); pic != m_ppcTDecTop[predLId]->getListPic()->end(); pic++)
     3169        {
     3170          if ((*pic)->getSlice(0)->getPOC() != m_apcSlicePilot->getPOC())
     3171          {
     3172            (*pic)->getSlice(0)->setReferenced(false);
     3173          }
     3174        }
     3175      }
     3176    }
     3177  }
     3178}
     3179
     3180Void TDecTop::xSetLayerInitializedFlag()
     3181{
     3182  if (m_apcSlicePilot->isIRAP() && m_apcSlicePilot->getNoRaslOutputFlag())
     3183  {
     3184    if (m_layerId == 0)
     3185    {
     3186      m_ppcTDecTop[m_layerId]->setLayerInitializedFlag(true);
     3187    }
     3188    else if (!m_ppcTDecTop[m_layerId]->getLayerInitializedFlag() && m_apcSlicePilot->getVPS()->getNumDirectRefLayers(m_layerId) == 0)
     3189    {
     3190      m_ppcTDecTop[m_layerId]->setLayerInitializedFlag(true);
     3191    }
     3192    else if (!m_ppcTDecTop[m_layerId]->getLayerInitializedFlag())
     3193    {
     3194      Bool refLayersInitialized = true;
     3195      for (UInt j = 0; j < m_apcSlicePilot->getVPS()->getNumDirectRefLayers(m_layerId); j++)
     3196      {
     3197        UInt refLayerId = m_apcSlicePilot->getVPS()->getRefLayerId(m_layerId, j);
     3198        if (!m_ppcTDecTop[refLayerId]->getLayerInitializedFlag())
     3199        {
     3200          refLayersInitialized = false;
     3201        }
     3202      }
     3203      if (refLayersInitialized)
     3204      {
     3205        m_ppcTDecTop[m_layerId]->setLayerInitializedFlag(true);
     3206      }
     3207    }
     3208  }
     3209}
     3210#endif
     3211
    31033212#endif //SVC_EXTENSION
    31043213
  • branches/SHM-dev/source/Lib/TLibDecoder/TDecTop.h

    r953 r978  
    120120  Bool                    m_isLastNALWasEos;
    121121#endif
     122#if R0071_IRAP_EOS_CROSS_LAYER_IMPACTS
     123  Bool                    m_lastPicHasEos;
     124#endif
    122125#if SVC_EXTENSION
    123126  static UInt             m_prevPOC;        // POC of the previous slice
     
    350353  Void setConfModeFlag(Bool x) { m_confModeFlag = x; }
    351354#endif
     355#if R0071_IRAP_EOS_CROSS_LAYER_IMPACTS
     356  Void xCheckLayerReset();
     357  Void xSetNoRaslOutputFlag();
     358  Void xSetLayerInitializedFlag();
     359#endif
    352360};// END CLASS DEFINITION TDecTop
    353361
  • branches/SHM-dev/source/Lib/TLibEncoder/TEncCfg.h

    r912 r978  
    321321#if M0040_ADAPTIVE_RESOLUTION_CHANGE
    322322  Int       m_adaptiveResolutionChange;
     323#endif
     324#if R0071_IRAP_EOS_CROSS_LAYER_IMPACTS
     325  int       m_layerSwitchOffBegin;
     326  int       m_layerSwitchOffEnd;
    323327#endif
    324328#if O0153_ALT_OUTPUT_LAYER_FLAG
     
    928932  Int       getAdaptiveResolutionChange()      { return m_adaptiveResolutionChange; }
    929933#endif
     934#if R0071_IRAP_EOS_CROSS_LAYER_IMPACTS
     935  Void      setLayerSwitchOffBegin(Int x) { m_layerSwitchOffBegin = x;    }
     936  Int       getLayerSwitchOffBegin()      { return m_layerSwitchOffBegin; }
     937  Void      setLayerSwitchOffEnd(Int x)   { m_layerSwitchOffEnd = x;      }
     938  Int       getLayerSwitchOffEnd()        { return m_layerSwitchOffEnd;   }
     939#endif
    930940#if HIGHER_LAYER_IRAP_SKIP_FLAG
    931941  Void      setSkipPictureAtArcSwitch(Int x) { m_skipPictureAtArcSwitch = x;    }
  • branches/SHM-dev/source/Lib/TLibEncoder/TEncGOP.cpp

    r944 r978  
    119119  m_lastPocPeriodId = -1;
    120120#endif
     121#if R0071_IRAP_EOS_CROSS_LAYER_IMPACTS
     122  m_noRaslOutputFlag = false;
     123  m_prevPicHasEos    = false;
     124#endif
    121125#endif //SVC_EXTENSION
    122126  return;
     
    913917    }
    914918#endif
     919#if R0071_IRAP_EOS_CROSS_LAYER_IMPACTS
     920    if (pocCurr > m_pcEncTop->getLayerSwitchOffBegin() && pocCurr < m_pcEncTop->getLayerSwitchOffEnd())
     921    {
     922      continue;
     923    }
     924#endif
    915925
    916926    if( getNalUnitType(pocCurr, m_iLastIDR, isField) == NAL_UNIT_CODED_SLICE_IDR_W_RADL || getNalUnitType(pocCurr, m_iLastIDR, isField) == NAL_UNIT_CODED_SLICE_IDR_N_LP )
     
    10671077    }
    10681078#endif
     1079#if R0071_IRAP_EOS_CROSS_LAYER_IMPACTS
     1080    // Set the nal unit type
     1081    pcSlice->setNalUnitType(getNalUnitType(pocCurr, m_iLastIDR, isField));
     1082#endif
    10691083#if NO_CLRAS_OUTPUT_FLAG
    10701084    if (m_layerId == 0 &&
     
    10801094        m_pcEncTop->setNoClrasOutputFlag(true);
    10811095      }
     1096#if R0071_IRAP_EOS_CROSS_LAYER_IMPACTS
     1097      else if (m_prevPicHasEos)
     1098      {
     1099        m_pcEncTop->setNoClrasOutputFlag(true);
     1100      }
     1101#endif
    10821102      else if (pcSlice->getNalUnitType() == NAL_UNIT_CODED_SLICE_BLA_W_LP
    10831103            || pcSlice->getNalUnitType() == NAL_UNIT_CODED_SLICE_BLA_W_RADL
     
    11061126      }
    11071127    }
     1128#endif
     1129#if R0071_IRAP_EOS_CROSS_LAYER_IMPACTS
     1130    xCheckLayerReset(pcSlice);
     1131    xSetNoRaslOutputFlag(pcSlice);
     1132    xSetLayerInitializedFlag(pcSlice);
    11081133#endif
    11091134#if M0040_ADAPTIVE_RESOLUTION_CHANGE
     
    12171242    }
    12181243
     1244#if !R0071_IRAP_EOS_CROSS_LAYER_IMPACTS
    12191245    // Set the nal unit type
    12201246    pcSlice->setNalUnitType(getNalUnitType(pocCurr, m_iLastIDR, isField));
     1247#endif
    12211248#if SVC_EXTENSION
    12221249    if (m_layerId > 0)
     
    29402967
    29412968#if SETTING_NO_OUT_PIC_PRIOR
     2969#if R0071_IRAP_EOS_CROSS_LAYER_IMPACTS
     2970          if (pcSlice->isIRAP())
     2971          {
     2972            //the inference for NoOutputPriorPicsFlag
     2973            // KJS: This cannot happen at the encoder
     2974            if (!m_bFirst && pcSlice->isIRAP() && m_noRaslOutputFlag)
     2975            {
     2976              if (pcSlice->getNalUnitType() == NAL_UNIT_CODED_SLICE_CRA)
     2977              {
     2978                pcSlice->setNoOutputPriorPicsFlag(true);
     2979              }
     2980            }
     2981          }
     2982#else
    29422983          pcSlice->setNoRaslOutputFlag(false);
    29432984          if (pcSlice->isIRAP())
     
    29572998            }
    29582999          }
     3000#endif
    29593001#endif
    29603002
     
    35243566        }
    35253567      }
     3568
     3569#if R0071_IRAP_EOS_CROSS_LAYER_IMPACTS
     3570      m_prevPicHasEos = false;
     3571      if (m_pcCfg->getLayerSwitchOffBegin() < m_pcCfg->getLayerSwitchOffEnd())
     3572      {
     3573        Int pocNext;
     3574        if (iGOPid == m_iGopSize - 1)
     3575        {
     3576          pocNext = iPOCLast - iNumPicRcvd + m_iGopSize + m_pcCfg->getGOPEntry(0).m_POC;
     3577        }
     3578        else
     3579        {
     3580          pocNext = iPOCLast - iNumPicRcvd + m_pcCfg->getGOPEntry(iGOPid + 1).m_POC;
     3581        }
     3582
     3583        if (pocNext > m_pcCfg->getLayerSwitchOffBegin() && pocCurr < m_pcCfg->getLayerSwitchOffEnd())
     3584        {
     3585          OutputNALUnit nalu(NAL_UNIT_EOS, pcSlice->getTLayer(), pcSlice->getLayerId());
     3586          m_pcEntropyCoder->setEntropyCoder(m_pcCavlcCoder, pcSlice);
     3587          accessUnit.push_back(new NALUnitEBSP(nalu));
     3588          m_prevPicHasEos = true;
     3589        }
     3590      }
     3591#endif
     3592
    35263593      xResetNonNestedSEIPresentFlags();
    35273594      xResetNestedSEIPresentFlags();
     
    53785445}
    53795446#endif
     5447
     5448#if R0071_IRAP_EOS_CROSS_LAYER_IMPACTS
     5449Void TEncGOP::xCheckLayerReset(TComSlice *slice)
     5450{
     5451  Bool layerResetFlag;
     5452  Int dolLayerId;
     5453
     5454  if (slice->isIRAP() && slice->getLayerId() > 0)
     5455  {
     5456    if (m_prevPicHasEos)
     5457    {
     5458      layerResetFlag = true;
     5459      dolLayerId = slice->getLayerId();
     5460    }
     5461    else if ((slice->isCRA() && slice->getHandleCraAsBlaFlag()) || (slice->isIDR() && slice->getCrossLayerBLAFlag()) || slice->isBLA())
     5462    {
     5463      layerResetFlag = true;
     5464      dolLayerId = slice->getLayerId();
     5465    }
     5466    else
     5467    {
     5468      layerResetFlag = false;
     5469    }
     5470
     5471    if (layerResetFlag)
     5472    {
     5473      for (Int i = 0; i < slice->getVPS()->getNumPredictedLayers(dolLayerId); i++)
     5474      {
     5475        Int iLayerId = slice->getVPS()->getPredictedLayerId(dolLayerId, i);
     5476        m_ppcTEncTop[iLayerId]->setLayerInitializedFlag(false);
     5477        m_ppcTEncTop[iLayerId]->setFirstPicInLayerDecodedFlag(false);
     5478      }
     5479
     5480      // Each picture that is in the DPB and has nuh_layer_id equal to dolLayerId is marked as "unused for reference".
     5481      for (TComList<TComPic*>::iterator pic = m_ppcTEncTop[dolLayerId]->getListPic()->begin(); pic != m_ppcTEncTop[dolLayerId]->getListPic()->end(); pic++)
     5482      {
     5483        if ((*pic)->getSlice(0)->getPOC() != slice->getPOC())
     5484        {
     5485          (*pic)->getSlice(0)->setReferenced(false);
     5486        }
     5487      }
     5488
     5489      // Each picture that is in DPB and has nuh_layer_id equal to any value of IdPredictedLayer[dolLayerId][i]
     5490      // for the values of i in range of 0 to NumPredictedLayers[dolLayerId] - 1, inclusive, is marked as "unused for reference"
     5491      for (UInt i = 0; i < slice->getVPS()->getNumPredictedLayers(dolLayerId); i++)
     5492      {
     5493        UInt predLId = slice->getVPS()->getPredictedLayerId(dolLayerId, i);
     5494        for (TComList<TComPic*>::iterator pic = m_ppcTEncTop[predLId]->getListPic()->begin(); pic != m_ppcTEncTop[predLId]->getListPic()->end(); pic++)
     5495        {
     5496          if ((*pic)->getSlice(0)->getPOC() != slice->getPOC())
     5497          {
     5498            (*pic)->getSlice(0)->setReferenced(false);
     5499          }
     5500        }
     5501      }
     5502    }
     5503  }
     5504}
     5505
     5506Void TEncGOP::xSetNoRaslOutputFlag(TComSlice *slice)
     5507{
     5508  if (slice->isIRAP())
     5509  {
     5510    m_noRaslOutputFlag = slice->getHandleCraAsBlaFlag();  // default value
     5511    if (slice->isIDR() || slice->isBLA() || m_bFirst || m_prevPicHasEos)
     5512    {
     5513      m_noRaslOutputFlag = true;
     5514    }
     5515    else if (!m_ppcTEncTop[m_layerId]->getLayerInitializedFlag())
     5516    {
     5517      Bool refLayersInitialized = true;
     5518      for (UInt j = 0; j < slice->getVPS()->getNumDirectRefLayers(m_layerId); j++)
     5519      {
     5520        UInt refLayerId = slice->getVPS()->getRefLayerId(m_layerId, j);
     5521        if (!m_ppcTEncTop[refLayerId]->getLayerInitializedFlag())
     5522        {
     5523          refLayersInitialized = false;
     5524        }
     5525      }
     5526      if (refLayersInitialized)
     5527      {
     5528        m_noRaslOutputFlag = true;
     5529      }
     5530    }
     5531  }
     5532}
     5533
     5534Void TEncGOP::xSetLayerInitializedFlag(TComSlice *slice)
     5535{
     5536  if (slice->isIRAP() && m_noRaslOutputFlag)
     5537  {
     5538    if (m_layerId == 0)
     5539    {
     5540      m_ppcTEncTop[m_layerId]->setLayerInitializedFlag(true);
     5541    }
     5542    else if (!m_ppcTEncTop[m_layerId]->getLayerInitializedFlag() && slice->getVPS()->getNumDirectRefLayers(m_layerId) == 0)
     5543    {
     5544      m_ppcTEncTop[m_layerId]->setLayerInitializedFlag(true);
     5545    }
     5546    else if (!m_ppcTEncTop[m_layerId]->getLayerInitializedFlag())
     5547    {
     5548      Bool refLayersInitialized = true;
     5549      for (UInt j = 0; j < slice->getVPS()->getNumDirectRefLayers(m_layerId); j++)
     5550      {
     5551        UInt refLayerId = slice->getVPS()->getRefLayerId(m_layerId, j);
     5552        if (!m_ppcTEncTop[refLayerId]->getLayerInitializedFlag())
     5553        {
     5554          refLayersInitialized = false;
     5555        }
     5556      }
     5557      if (refLayersInitialized)
     5558      {
     5559        m_ppcTEncTop[m_layerId]->setLayerInitializedFlag(true);
     5560      }
     5561    }
     5562  }
     5563}
     5564#endif // R0071_IRAP_EOS_CROSS_LAYER_IMPACTS
     5565
    53805566#endif //SVC_EXTENSION
    53815567
  • branches/SHM-dev/source/Lib/TLibEncoder/TEncGOP.h

    r912 r978  
    159159  Int   m_lastPocPeriodId;
    160160#endif
     161#if R0071_IRAP_EOS_CROSS_LAYER_IMPACTS
     162  Bool  m_noRaslOutputFlag;
     163  Bool  m_prevPicHasEos;
     164#endif
    161165#endif
    162166 
     
    281285  Void free_mem2DintWithPad(Int **array2D, Int iPadY, Int iPadX);
    282286#endif
     287#if R0071_IRAP_EOS_CROSS_LAYER_IMPACTS
     288  Void xCheckLayerReset(TComSlice *slice);
     289  Void xSetNoRaslOutputFlag(TComSlice *slice);
     290  Void xSetLayerInitializedFlag(TComSlice *slice);
     291#endif
    283292#endif //SVC_EXTENSION
    284293};// END CLASS DEFINITION TEncGOP
  • branches/SHM-dev/source/Lib/TLibEncoder/TEncTop.h

    r903 r978  
    172172  Int                     m_currPocMsb;
    173173#endif
     174#if R0071_IRAP_EOS_CROSS_LAYER_IMPACTS
     175  Bool                    m_prevPicHasEos;
     176#endif
    174177#endif //SVC_EXTENSION
    175178protected:
Note: See TracChangeset for help on using the changeset viewer.