Changeset 38 in SHVCSoftware for branches/SHM-1.1-dev/source/Lib/TLibDecoder


Ignore:
Timestamp:
20 Feb 2013, 21:24:20 (12 years ago)
Author:
seregin
Message:

AVC_SYNTAX: initial porting of the AVC metadata file reading

Location:
branches/SHM-1.1-dev/source/Lib/TLibDecoder
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/SHM-1.1-dev/source/Lib/TLibDecoder/TDecTop.cpp

    r30 r38  
    8181  memset(m_cIlpPic, 0, sizeof(m_cIlpPic));
    8282#endif
     83#if AVC_SYNTAX || SYNTAX_OUTPUT
     84  m_pBLSyntaxFile = NULL;
     85#endif
    8386
    8487}
     
    335338
    336339  m_cGopDecoder.filterPicture(pcPic);
     340
     341#if SYNTAX_OUTPUT
     342  pcPic->wrireBLSyntax( getBLSyntaxFile(), SYNTAX_BYTES );
     343#endif
    337344
    338345  TComSlice::sortPicList( m_cListPic ); // sorting for application output
     
    559566  {
    560567    TComPic* pBLPic = (*m_ppcTDecTop[0]->getListPic()->begin());
    561     FILE* pFile = m_ppcTDecTop[0]->getBLReconFile();
    562     UInt uiWidth = pBLPic->getPicYuvRec()->getWidth();
    563     UInt uiHeight = pBLPic->getPicYuvRec()->getHeight();
     568    fstream* pFile = m_ppcTDecTop[0]->getBLReconFile();
     569    UInt uiWidth    = pBLPic->getPicYuvRec()->getWidth() - pBLPic->getPicYuvRec()->getPicCropLeftOffset() - pBLPic->getPicYuvRec()->getPicCropRightOffset();;
     570    UInt uiHeight   = pBLPic->getPicYuvRec()->getHeight() - pBLPic->getPicYuvRec()->getPicCropTopOffset() - pBLPic->getPicYuvRec()->getPicCropBottomOffset();
    564571       
    565     if( pFile )
    566     {
    567       fseek( pFile, m_apcSlicePilot->getPOC() * uiWidth * uiHeight * 3 / 2, SEEK_SET );
     572    if( pFile->good() )
     573    {
     574      UInt64 uiPos = (UInt64) m_apcSlicePilot->getPOC() * uiWidth * uiHeight * 3 / 2;
     575
     576      pFile->seekg((UInt)uiPos, ios::beg );
    568577
    569578      Pel* pPel = pBLPic->getPicYuvRec()->getLumaAddr();
     
    573582        for( Int j = 0; j < uiWidth; j++ )
    574583        {
    575           pPel[j] = fgetc( pFile );
     584          pPel[j] = pFile->get();
    576585        }
    577586        pPel += uiStride;
     
    584593        for( Int j = 0; j < uiWidth/2; j++ )
    585594        {
    586           pPel[j] = fgetc( pFile );
     595          pPel[j] = pFile->get();
    587596        }
    588597        pPel += uiStride;
     
    595604        for( Int j = 0; j < uiWidth/2; j++ )
    596605        {
    597           pPel[j] = fgetc( pFile );
     606          pPel[j] = pFile->get();
    598607        }
    599608        pPel += uiStride;
    600609      }
    601610    }
     611#if AVC_SYNTAX
     612    if( m_apcSlicePilot->getPOC() == 0 )
     613    {
     614      // initialize partition order.
     615      UInt* piTmp = &g_auiZscanToRaster[0];
     616      initZscanToRaster( pBLPic->getPicSym()->getMaxDepth() + 1, 1, 0, piTmp );
     617      initRasterToZscan( pBLPic->getPicSym()->getMaxCUWidth(), pBLPic->getPicSym()->getMaxCUHeight(), pBLPic->getPicSym()->getMaxDepth() + 1 );
     618    }
     619    pBLPic->getSlice( 0 )->setPOC( m_apcSlicePilot->getPOC() );
     620    pBLPic->getSlice( 0 )->setSliceType( m_apcSlicePilot->getSliceType() );
     621    pBLPic->readBLSyntax( m_ppcTDecTop[0]->getBLSyntaxFile(), SYNTAX_BYTES );
     622#endif
    602623  }
    603624#endif
     
    9791000        {
    9801001#if SVC_UPSAMPLING
     1002#if AVC_SYNTAX
     1003          TComSPS* sps = new TComSPS();
     1004          pBLPic->create( m_ppcTDecTop[0]->getBLWidth(), m_ppcTDecTop[0]->getBLHeight(), g_uiMaxCUWidth, g_uiMaxCUHeight, g_uiMaxCUDepth, sps, true);
     1005#else
    9811006          pBLPic->create( m_ppcTDecTop[0]->getBLWidth(), m_ppcTDecTop[0]->getBLHeight(), g_uiMaxCUWidth, g_uiMaxCUHeight, g_uiMaxCUDepth, NULL, true);
     1007#endif
    9821008#else
    9831009          pBLPic->create( m_ppcTDecTop[0]->getBLWidth(), m_ppcTDecTop[0]->getBLHeight(), g_uiMaxCUWidth, g_uiMaxCUHeight, g_uiMaxCUDepth, true);
  • branches/SHM-1.1-dev/source/Lib/TLibDecoder/TDecTop.h

    r28 r38  
    127127  TDecTop**               m_ppcTDecTop;
    128128#if AVC_BASE
    129   FILE*                   m_pBLReconFile;
     129  fstream*                m_pBLReconFile;
    130130  Int                     m_iBLSourceWidth;
    131131  Int                     m_iBLSourceHeight;
    132132#endif
    133133#endif
     134#if AVC_SYNTAX || SYNTAX_OUTPUT
     135  fstream*               m_pBLSyntaxFile;
     136#endif
    134137#if REF_IDX_FRAMEWORK
    135138  TComPic*                m_cIlpPic[MAX_NUM_REF];                    ///<  Inter layer Prediction picture =  upsampled picture
     
    165168  TDecTop*            getLayerDec(UInt layer)   { return m_ppcTDecTop[layer]; }
    166169#if AVC_BASE
    167   Void      setBLReconFile( FILE* pFile ) { m_pBLReconFile = pFile; }
    168   FILE*     getBLReconFile() { return m_pBLReconFile; }
     170  Void      setBLReconFile( fstream* pFile ) { m_pBLReconFile = pFile; }
     171  fstream*  getBLReconFile() { return m_pBLReconFile; }
    169172  Void      setBLsize( Int iWidth, Int iHeight ) { m_iBLSourceWidth = iWidth; m_iBLSourceHeight = iHeight; }
    170173  Int       getBLWidth() { return  m_iBLSourceWidth; }
    171174  Int       getBLHeight() { return  m_iBLSourceHeight; }
    172175#endif
     176#endif
     177#if AVC_SYNTAX || SYNTAX_OUTPUT
     178  Void      setBLSyntaxFile( fstream* pFile ) { m_pBLSyntaxFile = pFile; }
     179  fstream* getBLSyntaxFile() { return m_pBLSyntaxFile; }
    173180#endif
    174181#if REF_IDX_FRAMEWORK
Note: See TracChangeset for help on using the changeset viewer.