Ignore:
Timestamp:
13 Jan 2014, 08:05:57 (10 years ago)
Author:
tech
Message:

Further fixes.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-9.2-dev0/source/Lib/TLibDecoder/TDecTop.cpp

    r767 r769  
    725725#endif
    726726
     727#if H_MV
    727728    xCeckNoClrasOutput();
     729#endif
    728730    // Skip pictures due to random access
    729731    if (isRandomAccessSkipPicture(iSkipFrame, iPOCLastDisplay))
     
    731733    m_prevSliceSkipped = true;
    732734    m_skippedPOC = m_apcSlicePilot->getPOC();
    733       sliceSkippedFlag = true;
     735#if H_MV
     736    sliceSkippedFlag = true;
     737#endif
    734738      return false;
    735739    }
     
    739743    m_prevSliceSkipped = true;
    740744    m_skippedPOC = m_apcSlicePilot->getPOC();
    741       sliceSkippedFlag = true;
     745#if H_MV
     746    sliceSkippedFlag = true;
     747#endif
    742748      return false;
    743749    }
     
    12731279    return true;
    12741280  }
     1281#if H_MV
    12751282  else if ( !m_layerInitilizedFlag[ m_layerId ] ) // start of random access point, m_pocRandomAccess has not been set yet.
     1283#else
     1284  else if (m_pocRandomAccess == MAX_INT) // start of random access point, m_pocRandomAccess has not been set yet.
     1285#endif
    12761286  {
    12771287    if (   m_apcSlicePilot->getNalUnitType() == NAL_UNIT_CODED_SLICE_CRA
     
    12811291    {
    12821292
     1293#if H_MV
    12831294      if ( xAllRefLayersInitilized() )
    12841295      {
     
    12901301        return true;
    12911302      }
     1303#else
     1304      // set the POC random access since we need to skip the reordered pictures in the case of CRA/CRANT/BLA/BLANT.
     1305      m_pocRandomAccess = m_apcSlicePilot->getPOC();
     1306#endif
    12921307    }
    12931308    else if ( m_apcSlicePilot->getNalUnitType() == NAL_UNIT_CODED_SLICE_IDR_W_RADL || m_apcSlicePilot->getNalUnitType() == NAL_UNIT_CODED_SLICE_IDR_N_LP )
    12941309    {
     1310#if H_MV
    12951311      if ( xAllRefLayersInitilized() )
    12961312      {
    12971313        m_layerInitilizedFlag[ m_layerId ] = true;
     1314        m_pocRandomAccess = -MAX_INT; // no need to skip the reordered pictures in IDR, they are decodable.
     1315      }
     1316      else
     1317      {
     1318        return true;
     1319      }
     1320#else
    12981321      m_pocRandomAccess = -MAX_INT; // no need to skip the reordered pictures in IDR, they are decodable.
     1322#endif
    12991323    }
    13001324    else
    13011325    {
    1302         return true;
    1303       }
    1304     }
    1305     else
    1306     {
     1326#if H_MV_FIX_SKIP_PICTURES
    13071327      static Bool warningMessage[MAX_NUM_LAYERS];
    13081328      static Bool warningInitFlag = false;
     
    13221342        warningMessage[m_layerId] = false;
    13231343      }
     1344#else
     1345      static Bool warningMessage = false;
     1346      if(!warningMessage)
     1347      {
     1348        printf("\nWarning: this is not a valid random access point and the data is discarded until the first CRA picture");
     1349        warningMessage = true;
     1350      }
     1351#endif
    13241352      return true;
    13251353    }
     
    13311359    return true;
    13321360  }
     1361#if H_MV
    13331362  return !m_layerInitilizedFlag[ getLayerId() ];
     1363#else
     1364  // if we reach here, then the picture is not skipped.
     1365  return false;
     1366#endif
    13341367}
    13351368
     
    13731406}
    13741407
     1408#if H_MV
    13751409Void TDecTop::xCeckNoClrasOutput()
    13761410{
     
    14071441}
    14081442#endif
     1443#endif
    14091444//! \}
Note: See TracChangeset for help on using the changeset viewer.