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; }
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; }