Exemple #1
0
int main( int argc, char** argv)
{
  Extractor*          pcExtractor = NULL;
  ExtractorParameter  cParameter;

  printf( "JSVM %s BitStream Extractor \n\n", _JSVM_VERSION_ );

  RNOKRS( cParameter.init       ( argc, argv ),   -2 );

  for( Int n = 0; n < 1; n++ )
  {
    RNOKR( Extractor::create    ( pcExtractor ),  -3 );

    RNOKR( pcExtractor->init    ( &cParameter ),  -4 );

    RNOKR( pcExtractor->go      (),               -5 );

    RNOKR( pcExtractor->destroy (),               -6 );
  }

  return 0;
}
int main( int argc, char** argv)
{
  Assembler*          pcAssembler = NULL;
  AssemblerParameter  cParameter;

  printf( "JMVM %s MVC BitStream Assembler \n\n", "1.0");

  RNOKRS( cParameter.init       ( argc, argv ),   -2 );

  
  for( Int n = 0; n < 1; n++ )
  {
    RNOKR( Assembler::create    ( pcAssembler ),  -3 );

    RNOKR( pcAssembler->init    ( &cParameter ),  -4 );

    RNOKR( pcAssembler->go      (),               -5 );

    RNOKR( pcAssembler->destroy (),               -6 );
  }

  return 0;
}
Exemple #3
0
ErrVal ReadYuvFile::xReadPlane( UChar *pucDest, UInt uiBufHeight, UInt uiBufWidth, UInt uiBufStride, UInt uiPicHeight, UInt uiPicWidth, UInt uiStartLine, UInt uiEndLine )
{
  UInt uiClearSize = uiBufWidth - uiPicWidth;

  UInt uiTotalBytes=0;
  ROT( 0 > (Int)uiClearSize );
  ROT( uiBufHeight < uiPicHeight );

  // clear skiped buffer above reading section and skip in file
  if( 0 != uiStartLine )
  {
    UInt uiLines = uiStartLine;
    ::memset( pucDest, 0, uiBufWidth * uiLines );
    pucDest += uiBufStride * uiLines;
    RNOKRS(m_cFile.seek( uiPicWidth * uiLines, SEEK_CUR), Err::m_nEndOfFile);
  }


  UInt uiEnd = min (uiPicHeight, uiEndLine);
  
  for( UInt yR = uiStartLine; yR < uiEnd; yR++ )
  {
    UInt uiBytesRead;
	  RNOKS( m_cFile.read( pucDest, uiPicWidth, uiBytesRead ) );
	 // printf("Bytes read = %d\n",uiBytesRead);
    ::memset( &pucDest[uiPicWidth], 0, uiClearSize );
    pucDest += uiBufStride;
	uiTotalBytes+=uiBytesRead;
  }
  //printf("Bytes read = %d\n",uiTotalBytes);

  // clear skiped buffer below reading section and skip in file
  if( uiEnd != uiPicHeight )
  {
    UInt uiLines = uiPicHeight - uiEnd;
    ::memset( pucDest, 0, uiBufWidth * uiLines );
    pucDest += uiBufStride * uiLines;
    RNOKRS(m_cFile.seek( uiPicWidth * uiLines, SEEK_CUR), Err::m_nEndOfFile);
  }

  // clear remaining buffer
  if( uiPicHeight != uiBufHeight )
  {
    if( uiEnd != uiPicHeight )
    {
      UInt uiLines = uiBufHeight - uiPicHeight;
      ::memset( pucDest, 0, uiBufWidth * uiLines);
    }
    else
    {
      switch( m_eFillMode )
      {
        case FILL_CLEAR:
        {
          UInt uiLines = uiBufHeight - uiPicHeight;
          ::memset( pucDest, 0, uiBufWidth * uiLines);
        }
        break;
        case FILL_FRAME:
        {
          for( UInt y = uiPicHeight; y < uiBufHeight; y++ )
          {
            memcpy( pucDest, pucDest - uiBufStride, uiBufStride );
            pucDest += uiBufStride;
          }
        }
        break;
        case FILL_FIELD:
        {
          ROT( (uiBufHeight - uiPicHeight) & 1 );
          for( UInt y = uiPicHeight; y < uiBufHeight; y+=2 )
          {
            memcpy( pucDest, pucDest - 2*uiBufStride, 2*uiBufStride );
            pucDest += 2*uiBufStride;
          }
        }
        break;
        default:
          AF()
        break;
      }
    }
  }
  
  return Err::m_nOK;
}