Ignore:
Timestamp:
25 Jun 2013, 22:11:57 (11 years ago)
Author:
tech
Message:

Fixed several bugs and mismatches.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-DEV-0.3-dev0/source/App/TAppEncoder/TAppEncCfg.cpp

    r493 r495  
    228228    in>>entry.m_interViewRefPosL[1][i];
    229229  }
    230   in>>entry.m_collocatedRefLayerIdx;
     230  if (entry.m_numActiveRefLayerPics > 0 )
     231  {
     232    in>>entry.m_collocatedRefLayerIdx;
     233  }
    231234#endif
    232235  return in;
     
    13751378
    13761379  // Output layer sets
    1377   xConfirmPara( m_outputLayerSetIdx.size() < 0 || m_outputLayerSetIdx.size() > 1024, "The number of output layer set indices must be less than 1025") ;
     1380  xConfirmPara( m_outputLayerSetIdx.size() < 0 || m_outputLayerSetIdx.size() > 1024, "The number of output layer set indices must be less than 1025.") ;
    13781381  for (Int lsIdx = 0; lsIdx < m_outputLayerSetIdx.size(); lsIdx++)
    13791382  {   
    13801383    Int refLayerSetIdx = m_outputLayerSetIdx[ lsIdx ];
    1381     xConfirmPara(  refLayerSetIdx < 0 || refLayerSetIdx >= m_vpsNumLayerSets, "Output layer set idx must be greater or equal to 0 and less than the VpsNumLayerSets" );
     1384    xConfirmPara(  refLayerSetIdx < 0 || refLayerSetIdx >= m_vpsNumLayerSets, "Output layer set idx must be greater or equal to 0 and less than the VpsNumLayerSets." );
    13821385
    13831386    for (Int i = 0; i < m_layerIdsInAddOutputLayerSet[ lsIdx ].size(); i++)
     
    13901393          isAlsoInLayerSet = true;
    13911394          break;
    1392         }
    1393         xConfirmPara( !isAlsoInLayerSet, "All output layers must of a output layer set be included in corresponding layer set");
    1394       }
     1395        }       
     1396      }
     1397      xConfirmPara( !isAlsoInLayerSet, "All output layers of a output layer set be included in corresponding layer set.");
    13951398    }
    13961399  }
     
    14011404  {
    14021405    xConfirmPara( (i == 0)  && m_directRefLayers[0].size() != 0, "Layer 0 shall not have reference layers." );
    1403     xConfirmPara( m_directRefLayers[i].size() == m_dependencyTypes[ i ].size() != 0, "Each reference layer shall have a reference type" );
     1406    xConfirmPara( m_directRefLayers[i].size() != m_dependencyTypes[ i ].size(), "Each reference layer shall have a reference type." );
    14041407    for (Int j = 0; j < m_directRefLayers[i].size(); j++)
    14051408    {
     
    15731576  if( m_numberOfLayers > 1 )
    15741577  {
    1575     for( Int k = 1; k < m_numberOfLayers; k++ )
     1578    for( Int layer = 1; layer < m_numberOfLayers; layer++ )
    15761579    {
    15771580      for( Int i = 0; i < MAX_GOP+1; i++ )
    15781581      {
    1579         for( Int j = 0; j < m_GOPListMvc[k][i].m_numActiveRefLayerPics; j++ )
     1582        GOPEntry gopEntry = m_GOPListMvc[layer][i]; 
     1583        for( Int j = 0; j < gopEntry.m_numActiveRefLayerPics; j++ )
    15801584        {
    1581           Int ilPredLayerIdc = m_directRefLayers[k][m_GOPListMvc[k][i].m_interLayerPredLayerIdc[j]];
    1582           if( ilPredLayerIdc < 0 || ilPredLayerIdc >= m_directRefLayers[k].size() )
     1585          Int ilPredLayerIdc = gopEntry.m_interLayerPredLayerIdc[j];
     1586          if( ilPredLayerIdc < 0 || ilPredLayerIdc >= m_directRefLayers[layer].size() )
    15831587          {
    1584             printf( "\nError: inter-layer ref idc %d is not available for Frame%d_l%d\n", m_GOPListMvc[k][i].m_interLayerPredLayerIdc[j], i, k );
     1588            printf( "\nError: inter-layer ref idc %d is not available for Frame%d_l%d\n", gopEntry.m_interLayerPredLayerIdc[j], i, layer );
    15851589            bErrorIvpEnhV = true;
    15861590          }
    1587           if( m_GOPListMvc[k][i].m_interViewRefPosL[0][j] < -1 || m_GOPListMvc[k][i].m_interViewRefPosL[0][j] > m_GOPListMvc[k][i].m_numRefPicsActive )
     1591          if( gopEntry.m_interViewRefPosL[0][j] < -1 || gopEntry.m_interViewRefPosL[0][j] > gopEntry.m_numRefPicsActive )
    15881592          {
    1589             printf( "\nError: inter-layer ref pos %d on L0 is not available for Frame%d_l%d\n", m_GOPListMvc[k][i].m_interViewRefPosL[0][j], i, k );
     1593            printf( "\nError: inter-layer ref pos %d on L0 is not available for Frame%d_l%d\n", gopEntry.m_interViewRefPosL[0][j], i, layer );
    15901594            bErrorIvpEnhV = true;
    15911595          }
    1592           if( m_GOPListMvc[k][i].m_interViewRefPosL[1][j] < -1  || m_GOPListMvc[k][i].m_interViewRefPosL[1][j] > m_GOPListMvc[k][i].m_numRefPicsActive )
     1596          if( gopEntry.m_interViewRefPosL[1][j] < -1  || gopEntry.m_interViewRefPosL[1][j] > gopEntry.m_numRefPicsActive )
    15931597          {
    1594             printf( "\nError: inter-layer ref pos %d on L1 is not available for Frame%d_l%d\n", m_GOPListMvc[k][i].m_interViewRefPosL[1][j], i, k );
     1598            printf( "\nError: inter-layer ref pos %d on L1 is not available for Frame%d_l%d\n", gopEntry.m_interViewRefPosL[1][j], i, layer );
    15951599            bErrorIvpEnhV = true;
    15961600          }
     
    15981602        if( i == MAX_GOP ) // inter-view refs at I pic position in base view
    15991603        {
    1600           if( m_GOPListMvc[k][MAX_GOP].m_sliceType != 'B' && m_GOPListMvc[k][MAX_GOP].m_sliceType != 'P' && m_GOPListMvc[k][MAX_GOP].m_sliceType != 'I' )
     1604          if( gopEntry.m_sliceType != 'B' && gopEntry.m_sliceType != 'P' && gopEntry.m_sliceType != 'I' )
    16011605          {
    1602             printf( "\nError: slice type of FrameI_l%d must be equal to B or P or I\n", k );
     1606            printf( "\nError: slice type of FrameI_l%d must be equal to B or P or I\n", layer );
    16031607            bErrorIvpEnhV = true;
    16041608          }
    16051609
    1606           if( m_GOPListMvc[k][MAX_GOP].m_POC != 0 )
     1610          if( gopEntry.m_POC != 0 )
    16071611          {
    1608             printf( "\nError: POC %d not possible for FrameI_l%d, must be 0\n", m_GOPListMvc[k][MAX_GOP].m_POC, k );
     1612            printf( "\nError: POC %d not possible for FrameI_l%d, must be 0\n", gopEntry.m_POC, layer );
    16091613            bErrorIvpEnhV = true;
    16101614          }
    16111615
    1612           if( m_GOPListMvc[k][MAX_GOP].m_temporalId != 0 )
     1616          if( gopEntry.m_temporalId != 0 )
    16131617          {
    1614             printf( "\nWarning: Temporal id of FrameI_l%d must be 0 (cp. I-frame in base layer)\n", k );
    1615             m_GOPListMvc[k][MAX_GOP].m_temporalId = 0;
     1618            printf( "\nWarning: Temporal id of FrameI_l%d must be 0 (cp. I-frame in base layer)\n", layer );
     1619            gopEntry.m_temporalId = 0;
    16161620          }
    16171621
    1618           if( m_GOPListMvc[k][MAX_GOP].m_numRefPics != 0 )
     1622          if( gopEntry.m_numRefPics != 0 )
    16191623          {
    1620             printf( "\nWarning: temporal references not possible for FrameI_l%d\n", k );
    1621             for( Int j = 0; j < m_GOPListMvc[k][MAX_GOP].m_numRefPics; j++ )
     1624            printf( "\nWarning: temporal references not possible for FrameI_l%d\n", layer );
     1625            for( Int j = 0; j < m_GOPListMvc[layer][MAX_GOP].m_numRefPics; j++ )
    16221626            {
    1623               m_GOPListMvc[k][MAX_GOP].m_referencePics[j] = 0;
     1627              gopEntry.m_referencePics[j] = 0;
    16241628            }
    1625             m_GOPListMvc[k][MAX_GOP].m_numRefPics = 0;
     1629            gopEntry.m_numRefPics = 0;
    16261630          }
    16271631
    1628           if( m_GOPListMvc[k][MAX_GOP].m_interRPSPrediction )
     1632          if( gopEntry.m_interRPSPrediction )
    16291633          {
    1630             printf( "\nError: inter RPS prediction not possible for FrameI_l%d, must be 0\n", k );
     1634            printf( "\nError: inter RPS prediction not possible for FrameI_l%d, must be 0\n", layer );
    16311635            bErrorIvpEnhV = true;
    16321636          }
    16331637
    1634           if( m_GOPListMvc[k][MAX_GOP].m_sliceType == 'I' && m_GOPListMvc[k][MAX_GOP].m_numActiveRefLayerPics != 0 )
     1638          if( gopEntry.m_sliceType == 'I' && gopEntry.m_numActiveRefLayerPics != 0 )
    16351639          {
    1636             printf( "\nError: inter-layer prediction not possible for FrameI_l%d with slice type I, #IL_ref_pics must be 0\n", k );
     1640            printf( "\nError: inter-layer prediction not possible for FrameI_l%d with slice type I, #IL_ref_pics must be 0\n", layer );
    16371641            bErrorIvpEnhV = true;
    16381642          }
    16391643
    1640           if( m_GOPListMvc[k][MAX_GOP].m_numRefPicsActive > m_GOPListMvc[k][MAX_GOP].m_numActiveRefLayerPics )
     1644          if( gopEntry.m_numRefPicsActive > gopEntry.m_numActiveRefLayerPics )
    16411645          {
    1642             m_GOPListMvc[k][MAX_GOP].m_numRefPicsActive = m_GOPListMvc[k][MAX_GOP].m_numActiveRefLayerPics;
     1646            gopEntry.m_numRefPicsActive = gopEntry.m_numActiveRefLayerPics;
    16431647          }
    16441648
    1645           if( m_GOPListMvc[k][MAX_GOP].m_sliceType == 'P' )
     1649          if( gopEntry.m_sliceType == 'P' )
    16461650          {
    1647             if( m_GOPListMvc[k][MAX_GOP].m_numActiveRefLayerPics < 1 )
     1651            if( gopEntry.m_numActiveRefLayerPics < 1 )
    16481652            {
    1649               printf( "\nError: #IL_ref_pics must be at least one for FrameI_l%d with slice type P\n", k );
     1653              printf( "\nError: #IL_ref_pics must be at least one for FrameI_l%d with slice type P\n", layer );
    16501654              bErrorIvpEnhV = true;
    16511655            }
    16521656            else
    16531657            {
    1654               for( Int j = 0; j < m_GOPListMvc[k][MAX_GOP].m_numActiveRefLayerPics; j++ )
     1658              for( Int j = 0; j < gopEntry.m_numActiveRefLayerPics; j++ )
    16551659              {
    1656                 if( m_GOPListMvc[k][MAX_GOP].m_interViewRefPosL[1][j] != -1 )
     1660                if( gopEntry.m_interViewRefPosL[1][j] != -1 )
    16571661                {
    1658                   printf( "\nError: inter-layer ref pos %d on L1 not possible for FrameI_l%d with slice type P\n", m_GOPListMvc[k][MAX_GOP].m_interViewRefPosL[1][j], k );
     1662                  printf( "\nError: inter-layer ref pos %d on L1 not possible for FrameI_l%d with slice type P\n", gopEntry.m_interViewRefPosL[1][j], layer );
    16591663                  bErrorIvpEnhV = true;
    16601664                }
     
    16631667          }
    16641668
    1665           if( m_GOPListMvc[k][MAX_GOP].m_sliceType == 'B' && m_GOPListMvc[k][MAX_GOP].m_numActiveRefLayerPics < 1 )
     1669          if( gopEntry.m_sliceType == 'B' && gopEntry.m_numActiveRefLayerPics < 1 )
    16661670          {
    1667             printf( "\nError: #IL_ref_pics must be at least one for FrameI_l%d with slice type B\n", k );
     1671            printf( "\nError: #IL_ref_pics must be at least one for FrameI_l%d with slice type B\n", layer );
    16681672            bErrorIvpEnhV = true;
    16691673          }
Note: See TracChangeset for help on using the changeset viewer.