Changeset 887 in SHVCSoftware


Ignore:
Timestamp:
17 Sep 2014, 01:08:52 (10 years ago)
Author:
qualcomm
Message:

Fix for earlier implementation mistake that omit the signalling of cross_layer_bla_flag

MACRO: CROSS_LAYER_BLA_FLAG_FIX

Location:
branches/SHM-dev/source/Lib
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/SHM-dev/source/Lib/TLibCommon/TypeDef.h

    r886 r887  
    4444#define MAX_LAYERS                       8      ///< max number of layers the codec is supposed to handle
    4545
     46#define CROSS_LAYER_BLA_FLAG_FIX         1      ///< Fix for earlier implementation mistake that omit the signalling of cross_layer_bla_flag
    4647#define NON_REF_NAL_TYPE_DISCARDABLE     1      ///< JCTVC-P0041 -- If discardable picture is a non-IRAP, it must be a non-referenced sub-layer picture
    4748#define VPS_AVC_BL_FLAG_REMOVAL          1      ///< remove avc_base_layer_flag and direct the function its offer to vps_base_layer_internal_flag and vps_base_layer_available_flag
  • branches/SHM-dev/source/Lib/TLibDecoder/TDecCAVLC.cpp

    r886 r887  
    28072807    }
    28082808#else
     2809#if CROSS_LAYER_BLA_FLAG_FIX
     2810    Int iBits = 0;
     2811    if(rpcSlice->getPPS()->getNumExtraSliceHeaderBits() > iBits)
     2812#else
    28092813    if(rpcSlice->getPPS()->getNumExtraSliceHeaderBits()>0)
     2814#endif
    28102815    {
    28112816      READ_FLAG(uiCode, "discardable_flag"); // ignored
     
    28212826      }
    28222827#endif
    2823 
    2824     }
     2828#if CROSS_LAYER_BLA_FLAG_FIX
     2829      iBits++;
     2830#endif
     2831    }
     2832#if CROSS_LAYER_BLA_FLAG_FIX
     2833    if(rpcSlice->getPPS()->getNumExtraSliceHeaderBits() > iBits)
     2834    {
     2835      READ_FLAG(uiCode, "cross_layer_bla_flag");  rpcSlice->setCrossLayerBLAFlag( uiCode ? true : false );
     2836      iBits++;
     2837    }
     2838    for ( ; iBits < rpcSlice->getPPS()->getNumExtraSliceHeaderBits(); iBits++)
     2839#else
    28252840    for (Int i = 1; i < rpcSlice->getPPS()->getNumExtraSliceHeaderBits(); i++)
     2841#endif
    28262842    {
    28272843      READ_FLAG(uiCode, "slice_reserved_undetermined_flag[]"); // ignored
  • branches/SHM-dev/source/Lib/TLibEncoder/TEncCavlc.cpp

    r886 r887  
    19471947    }
    19481948#else
     1949#if CROSS_LAYER_BLA_FLAG_FIX
     1950    Int iBits = 0;
     1951    if(pcSlice->getPPS()->getNumExtraSliceHeaderBits() > iBits)
     1952#else
    19491953    if (pcSlice->getPPS()->getNumExtraSliceHeaderBits()>0)
     1954#endif
    19501955    {
    19511956      assert(!!"discardable_flag");
     
    19611966#endif
    19621967      WRITE_FLAG(pcSlice->getDiscardableFlag(), "discardable_flag");
    1963     }
     1968#if CROSS_LAYER_BLA_FLAG_FIX
     1969      iBits++;
     1970#endif
     1971    }
     1972#if CROSS_LAYER_BLA_FLAG_FIX
     1973    if( pcSlice->getPPS()->getNumExtraSliceHeaderBits() > iBits )
     1974    {
     1975      assert(!!"cross_layer_bla_flag");
     1976      WRITE_FLAG(pcSlice->getCrossLayerBLAFlag(), "cross_layer_bla_flag");
     1977      iBits++;
     1978    }
     1979    for (; iBits < pcSlice->getPPS()->getNumExtraSliceHeaderBits(); iBits++)
     1980#else
    19641981    for (Int i = 1; i < pcSlice->getPPS()->getNumExtraSliceHeaderBits(); i++)
     1982#endif
    19651983    {
    19661984      assert(!!"slice_reserved_undetermined_flag[]");
Note: See TracChangeset for help on using the changeset viewer.