Changeset 530 in SHVCSoftware for branches/SHM-4.1-dev/source/Lib/TLibDecoder


Ignore:
Timestamp:
28 Dec 2013, 02:37:15 (11 years ago)
Author:
qualcomm
Message:

Related to Adoption of JCTVC_O0223 with macro (O0223_PICTURE_TYPES_ALIGN_FLAG)
Related to Adoption of JCTVC_O0226 with macros (VPS_VUI_TILES_NOT_IN_USEFLAG
and VPS_VUI_WPP_NOT_IN_USE
FLAG)

From Hendry -- hendry@…

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/SHM-4.1-dev/source/Lib/TLibDecoder/TDecCAVLC.cpp

    r529 r530  
    14791479  UInt i,j;
    14801480  UInt uiCode;
     1481#if O0223_PICTURE_TYPES_ALIGN_FLAG
     1482  READ_FLAG(uiCode, "cross_layer_pic_type_aligned_flag" );
     1483  vps->setCrossLayerPictureTypeAlignFlag(uiCode);
     1484  if (!uiCode)
     1485  {
     1486#endif
    14811487#if IRAP_ALIGN_FLAG_IN_VPS_VUI
    1482   READ_FLAG(uiCode, "cross_layer_irap_aligned_flag" );
    1483   vps->setCrossLayerIrapAlignFlag(uiCode);
     1488    READ_FLAG(uiCode, "cross_layer_irap_aligned_flag" );
     1489    vps->setCrossLayerIrapAlignFlag(uiCode);
     1490#endif
     1491#if O0223_PICTURE_TYPES_ALIGN_FLAG
     1492  }
     1493  else
     1494  {
     1495    vps->setCrossLayerIrapAlignFlag(true);
     1496  }
    14841497#endif
    14851498#if VPS_VUI_BITRATE_PICRATE
     
    15331546  }
    15341547#endif
     1548#if VPS_VUI_TILES_NOT_IN_USE__FLAG
     1549  UInt layerIdx;
     1550  READ_FLAG( uiCode, "tiles_not_in_use_flag" ); vps->setTilesNotInUseFlag(uiCode == 1);
     1551  if (!uiCode)
     1552  {
     1553    for(i = 0; i < vps->getMaxLayers(); i++)
     1554    {
     1555      READ_FLAG( uiCode, "tiles_in_use_flag[ i ]" ); vps->setTilesInUseFlag(i, (uiCode == 1));
     1556      if (uiCode)
     1557      {
     1558        READ_FLAG( uiCode, "loop_filter_not_across_tiles_flag[ i ]" ); vps->setLoopFilterNotAcrossTilesFlag(i, (uiCode == 1));
     1559      }
     1560      else
     1561      {
     1562        vps->setLoopFilterNotAcrossTilesFlag(i, false);
     1563      }
     1564    }
     1565#endif
    15351566#if TILE_BOUNDARY_ALIGNED_FLAG
    1536   for(i = 1; i < vps->getMaxLayers(); i++)
    1537   {
    1538     for(j = 0; j < vps->getNumDirectRefLayers(vps->getLayerIdInNuh(i)); j++)
    1539     {
    1540       READ_FLAG( uiCode, "tile_boundaries_aligned_flag[i][j]" ); vps->setTileBoundariesAlignedFlag(i,j,(uiCode == 1));
     1567    for(i = 1; i < vps->getMaxLayers(); i++)
     1568    {
     1569      for(j = 0; j < vps->getNumDirectRefLayers(vps->getLayerIdInNuh(i)); j++)
     1570      {
     1571#if VPS_VUI_TILES_NOT_IN_USE__FLAG
     1572        layerIdx = vps->getLayerIdInVps(vps->getRefLayerId(vps->getLayerIdInNuh(i), j));
     1573        if (vps->getTilesInUseFlag(i) && vps->getTilesInUseFlag(layerIdx)) {
     1574          READ_FLAG( uiCode, "tile_boundaries_aligned_flag[i][j]" ); vps->setTileBoundariesAlignedFlag(i,j,(uiCode == 1));
     1575        }
     1576#else
     1577        READ_FLAG( uiCode, "tile_boundaries_aligned_flag[i][j]" ); vps->setTileBoundariesAlignedFlag(i,j,(uiCode == 1));
     1578#endif
     1579      }
     1580    }
     1581#endif
     1582#if VPS_VUI_TILES_NOT_IN_USE__FLAG
     1583  }
     1584#endif
     1585#if VPS_VUI_WPP_NOT_IN_USE__FLAG
     1586  READ_FLAG( uiCode, "wpp_not_in_use_flag" ); vps->setWppNotInUseFlag(uiCode == 1);
     1587  if (!uiCode)
     1588  {
     1589    for(i = 0; i < vps->getMaxLayers(); i++)
     1590    {
     1591      READ_FLAG( uiCode, "wpp_in_use_flag[ i ]" ); vps->setWppInUseFlag(i, (uiCode == 1));
    15411592    }
    15421593  }
Note: See TracChangeset for help on using the changeset viewer.