Changeset 313 in 3DVCSoftware for trunk/source/Lib/TLibDecoder


Ignore:
Timestamp:
20 Mar 2013, 21:35:14 (11 years ago)
Author:
tech
Message:

Reintegrated branch 6.0-dev0 rev. 312.

Location:
trunk/source/Lib/TLibDecoder
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/Lib/TLibDecoder/TDecCAVLC.cpp

    r296 r313  
    15011501      if( uiCode )
    15021502      {
     1503#if FCO_FIX_SPS_CHANGE
     1504        UInt  uiViewId, uiCamParPrecision;
     1505        Int   iVOI;
     1506        Bool  bCamParSlice;
     1507        READ_UVLC( uiCode, "view_id" );
     1508        READ_SVLC( iCode, "view_order_idx" );
     1509        uiViewId = uiCode;
     1510        iVOI = iCode;
     1511
     1512        if ( uiViewId == 0 )
     1513        {
     1514          pcSPS->initMultiviewSPSDepth    ( uiViewId, iVOI );
     1515        }
     1516        else
     1517        {
     1518          READ_UVLC( uiCamParPrecision, "camera_parameter_precision" );
     1519          READ_FLAG( uiCode, "camera_parameter_in_slice_header" );    bCamParSlice = ( uiCode == 1 );
     1520          if( !bCamParSlice )
     1521          {
     1522            for( UInt uiBaseId = 0; uiBaseId < uiViewId; uiBaseId++ )
     1523            {
     1524              READ_SVLC( iCode, "coded_scale" );   m_aaiTempScale [ uiBaseId ][ uiViewId ] = iCode;
     1525              READ_SVLC( iCode, "coded_offset" );   m_aaiTempOffset[ uiBaseId ][ uiViewId ] = iCode;
     1526              READ_SVLC( iCode, "inverse_coded_scale_plus_coded_scale" );   m_aaiTempScale [ uiViewId ][ uiBaseId ] = iCode - m_aaiTempScale [ uiBaseId ][ uiViewId ];
     1527              READ_SVLC( iCode, "inverse_coded_offset_plus_coded_offset" );   m_aaiTempOffset[ uiViewId ][ uiBaseId ] = iCode - m_aaiTempOffset[ uiBaseId ][ uiViewId ];
     1528            }
     1529          }
     1530          pcSPS->initMultiviewSPSDepth( uiViewId, iVOI, uiCamParPrecision, bCamParSlice, m_aaiTempScale, m_aaiTempOffset );
     1531
     1532        }
     1533#else
    15031534        READ_UVLC( uiCode, "view_id" );
    15041535        READ_SVLC(  iCode, "view_order_idx" );
    15051536        pcSPS->initMultiviewSPSDepth    ( uiCode, iCode );
     1537#endif
    15061538#if DEPTH_MAP_GENERATION
     1539#if FCO_FIX_SPS_CHANGE
     1540        pcSPS->setPredDepthMapGeneration( uiViewId, true );
     1541#else
    15071542        pcSPS->setPredDepthMapGeneration( uiCode, true );
     1543#endif
    15081544#endif
    15091545#if H3D_IVRP
  • trunk/source/Lib/TLibDecoder/TDecTop.cpp

    r296 r313  
    193193
    194194  AOF( pcSlice->getSPS()->getViewId() < MAX_VIEW_NUM );
     195#if !FCO_FIX  // Under flexible coding order, depth may need the camera parameters
    195196  if ( pcSlice->getSPS()->isDepth  () )
    196197  {
    197198    return;
    198199  }
     200#endif
    199201  Bool  bFirstAU          = ( pcSlice->getPOC()               == 0 );
    200202  Bool  bFirstSliceInAU   = ( pcSlice->getPOC()               != Int ( m_iLastPOC ) );
    201203  Bool  bFirstSliceInView = ( pcSlice->getSPS()->getViewId()  != UInt( m_iLastViewId ) || bFirstSliceInAU );
    202204  AOT(  bFirstSliceInAU  &&   pcSlice->getSPS()->getViewId()  != 0 );
     205#if FCO_FIX
     206#else
    203207  AOT( !bFirstSliceInAU  &&   pcSlice->getSPS()->getViewId()   < UInt( m_iLastViewId ) );
     208#endif
    204209  AOT( !bFirstSliceInAU  &&   pcSlice->getSPS()->getViewId()   > UInt( m_iLastViewId + 1 ) );
    205210  AOT( !bFirstAU         &&   pcSlice->getSPS()->getViewId()   > m_uiMaxViewId );
     
    11231128    }
    11241129
     1130#if !FIX_LGE_WP_FOR_3D_C0223
    11251131    if( pcSlice->getRefPicListCombinationFlag() && pcSlice->getPPS()->getWPBiPredIdc()==1 && pcSlice->getSliceType()==B_SLICE )
    11261132    {
    11271133      pcSlice->setWpParamforLC();
    11281134    }
     1135#endif
    11291136    pcSlice->setNoBackPredFlag( false );
    11301137    if ( pcSlice->getSliceType() == B_SLICE && !pcSlice->getRefPicListCombinationFlag())
     
    11711178  }
    11721179#endif
     1180
     1181#if FCO_DVP_REFINE_C0132_C0170
     1182  if(m_bFirstSliceInPicture)
     1183  {
     1184    pcPic->setDepthCoded(false);
     1185
     1186    if(m_viewId != 0)
     1187    {
     1188      if( m_isDepth == 0)
     1189      {
     1190        TComPic * recDepthMapBuffer;
     1191        recDepthMapBuffer = m_tAppDecTop->getPicFromView( m_viewId, pcSlice->getPOC(), true );
     1192        pcPic->setRecDepthMap(recDepthMapBuffer);
     1193
     1194        if(recDepthMapBuffer != NULL)
     1195        {
     1196          pcPic->setDepthCoded(true);
     1197        }
     1198      }
     1199    }
     1200  }
     1201#endif
     1202
    11731203
    11741204#if MERL_VSP_C0152 // set BW LUT
Note: See TracChangeset for help on using the changeset viewer.