Ticket #965: missing_slice_types.patch

File missing_slice_types.patch, 2.6 KB (added by bheng, 9 years ago)
  • source/App/TAppEncoder/TAppEncTop.cpp

     
    541541    case NAL_UNIT_CODED_SLICE_IDR:
    542542    case NAL_UNIT_CODED_SLICE_IDR_N_LP:
    543543    case NAL_UNIT_CODED_SLICE_CRA:
     544        case NAL_UNIT_CODED_SLICE_RADL_N:
    544545    case NAL_UNIT_CODED_SLICE_DLP:
     546        case NAL_UNIT_CODED_SLICE_RASL_N:
    545547    case NAL_UNIT_CODED_SLICE_TFD:
    546548    case NAL_UNIT_VPS:
    547549    case NAL_UNIT_SPS:
  • source/Lib/TLibCommon/NAL.h

     
    7676        || m_nalUnitType == NAL_UNIT_CODED_SLICE_IDR
    7777        || m_nalUnitType == NAL_UNIT_CODED_SLICE_IDR_N_LP
    7878        || m_nalUnitType == NAL_UNIT_CODED_SLICE_CRA
     79        || m_nalUnitType == NAL_UNIT_CODED_SLICE_RADL_N
    7980        || m_nalUnitType == NAL_UNIT_CODED_SLICE_DLP
     81        || m_nalUnitType == NAL_UNIT_CODED_SLICE_RASL_N
    8082        || m_nalUnitType == NAL_UNIT_CODED_SLICE_TFD;
    8183  }
    8284};
  • source/Lib/TLibDecoder/TDecTop.cpp

     
    671671    case NAL_UNIT_CODED_SLICE_IDR:
    672672    case NAL_UNIT_CODED_SLICE_IDR_N_LP:
    673673    case NAL_UNIT_CODED_SLICE_CRA:
     674    case NAL_UNIT_CODED_SLICE_RADL_N:
    674675    case NAL_UNIT_CODED_SLICE_DLP:
     676    case NAL_UNIT_CODED_SLICE_RASL_N:
    675677    case NAL_UNIT_CODED_SLICE_TFD:
    676678      return xDecodeSlice(nalu, iSkipFrame, iPOCLastDisplay);
    677679      break;
     
    690692 */
    691693Bool TDecTop::isSkipPictureForBLA(Int& iPOCLastDisplay)
    692694{
    693   if (m_prevRAPisBLA && m_apcSlicePilot->getPOC() < m_pocCRA && m_apcSlicePilot->getNalUnitType() == NAL_UNIT_CODED_SLICE_TFD)
     695  if (m_prevRAPisBLA && m_apcSlicePilot->getPOC() < m_pocCRA && (m_apcSlicePilot->getNalUnitType() == NAL_UNIT_CODED_SLICE_TFD || m_apcSlicePilot->getNalUnitType() == NAL_UNIT_CODED_SLICE_RASL_N))
    694696  {
    695697    iPOCLastDisplay++;
    696698    return true;
     
    744746    }
    745747  }
    746748  // skip the reordered pictures, if necessary
    747   else if (m_apcSlicePilot->getPOC() < m_pocRandomAccess && m_apcSlicePilot->getNalUnitType() == NAL_UNIT_CODED_SLICE_TFD)
     749  else if (m_apcSlicePilot->getPOC() < m_pocRandomAccess && (m_apcSlicePilot->getNalUnitType() == NAL_UNIT_CODED_SLICE_TFD || m_apcSlicePilot->getNalUnitType() == NAL_UNIT_CODED_SLICE_RASL_N))
    748750  {
    749751    iPOCLastDisplay++;
    750752    return true;