Changeset 55 in SHVCSoftware for trunk/source/App/TAppDecoder/TAppDecTop.cpp


Ignore:
Timestamp:
4 Mar 2013, 22:43:28 (12 years ago)
Author:
seregin
Message:

Reintegrate SHM-1.1-dev branch into the trunk

Location:
trunk/source
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/source

  • trunk/source/App/TAppDecoder/TAppDecTop.cpp

    r6 r55  
    102102  }
    103103#endif
     104#if AVC_SYNTAX || SYNTAX_OUTPUT
     105  if( m_pchBLSyntaxFile )
     106  {
     107    free ( m_pchBLSyntaxFile );
     108    m_pchBLSyntaxFile = NULL;
     109  }
     110#endif
    104111}
    105112
     
    147154#if AVC_BASE
    148155  TComPic pcBLPic;
    149   FILE* pFile = fopen( m_pchBLReconFile, "rb" );
    150   if( !pFile )
    151   {
    152     printf( "BL input reading error\n" );
    153     exit(0);
     156  if( !m_pchBLReconFile )
     157  {
     158    printf( "Wrong base layer YUV input file\n" );
     159    exit(EXIT_FAILURE);
     160  }
     161  fstream streamYUV( m_pchBLReconFile, fstream::in | fstream::binary );
     162  if( !streamYUV.good() )
     163  {
     164    printf( "Base layer YUV input reading error\n" );
     165    exit(EXIT_FAILURE);
    154166  }
    155167  TComList<TComPic*> *cListPic = m_acTDecTop[0].getListPic();
    156168  m_acTDecTop[0].setBLsize( m_iBLSourceWidth, m_iBLSourceHeight );
    157   m_acTDecTop[0].setBLReconFile( pFile );
     169  m_acTDecTop[0].setBLReconFile( &streamYUV );
    158170  pcBLPic.setLayerId( 0 );
    159171  cListPic->pushBack( &pcBLPic );
     172#if AVC_SYNTAX
     173  if( !m_pchBLSyntaxFile )
     174  {
     175    printf( "Wrong base layer syntax file\n" );
     176    exit(EXIT_FAILURE);
     177  }
     178  fstream streamSyntaxFile( m_pchBLSyntaxFile, fstream::in | fstream::binary );
     179  if( !streamSyntaxFile.good() )
     180  {
     181    printf( "Base layer syntax input reading error\n" );
     182    exit(EXIT_FAILURE);
     183  }
     184  m_acTDecTop[0].setBLSyntaxFile( &streamSyntaxFile );
     185#endif
    160186#endif
    161187
     
    254280  // delete buffers
    255281#if AVC_BASE
    256   if( pFile )
    257   {
    258     fclose( pFile );
    259   }
     282  if( streamYUV.is_open() )
     283  {
     284    streamYUV.close();
     285  }
     286#if AVC_SYNTAX
     287  if( streamSyntaxFile.is_open() )
     288  {
     289    streamSyntaxFile.close();
     290  }
     291#endif
    260292  pcBLPic.destroy();
    261293
     
    293325  // main decoder loop
    294326  bool recon_opened = false; // reconstruction file not yet opened. (must be performed after SPS is seen)
     327
     328#if SYNTAX_OUTPUT
     329  if( !m_pchBLSyntaxFile )
     330  {
     331    printf( "Wrong base layer syntax file\n" );
     332    exit(EXIT_FAILURE);
     333  }
     334  fstream streamSyntaxFile( m_pchBLSyntaxFile, fstream::out | fstream::binary );
     335  if( !streamSyntaxFile.good() )
     336  {
     337    printf( "Base layer syntax input reading error\n" );
     338    exit(EXIT_FAILURE);
     339  }
     340  m_cTDecTop.setBLSyntaxFile( &streamSyntaxFile );
     341
     342  for( Int i = m_iBLFrames * m_iBLSourceWidth * m_iBLSourceHeight * SYNTAX_BYTES / 16; i >= 0; i-- )
     343  {
     344    streamSyntaxFile.put( 0 );
     345  }
     346  streamSyntaxFile.seekp( 0 );
     347#endif
    295348
    296349  while (!!bitstreamFile)
     
    389442    }
    390443  }
     444
     445#if SYNTAX_OUTPUT
     446  if( streamSyntaxFile.is_open() )
     447  {
     448    streamSyntaxFile.close();
     449  }
     450#endif
    391451 
    392452  xFlushOutput( pcListPic );
Note: See TracChangeset for help on using the changeset viewer.