ErrVal DecoderParameter::init(int argc, char** argv) { // Char* pcCom; if (argc <4 || argc>5) RNOKS ( xPrintUsage(argv) ); cBitstreamFile = argv[1]; // input bitstream cYuvFile = argv[2]; // decoded output file uiNumOfViews = atoi (argv[3]); if (argc==5) { uiMaxPocDiff = (unsigned int) atoi( argv[4] ); if (uiMaxPocDiff<=0) uiMaxPocDiff= 1000; //MSYS_UINT_MAX; } else uiMaxPocDiff= 1000; //MSYS_UINT_MAX; return Err::m_nOK; }
ErrVal PreProcessorParameter::init( Int argc, Char** argv ) { Bool bError = false; for( Int iArg = 1; iArg < argc; iArg++ ) { if( !strcmp( argv[iArg], "-i" ) ) { if( !(iArg+1<argc) || ! m_cInputFileName.empty() ) { bError = true; break; } m_cInputFileName = argv[++iArg]; } else if( !strcmp( argv[iArg], "-o" ) ) { if( !(iArg+1<argc) || ! m_cOutputFileName.empty() ) { bError = true; break; } m_cOutputFileName = argv[++iArg]; } else if( !strcmp( argv[iArg], "-w" ) ) { if( !(iArg+1<argc) || m_uiFrameWidth ) { bError = true; break; } m_uiFrameWidth = atoi( argv[++iArg] ); } else if( !strcmp( argv[iArg], "-h" ) ) { if( !(iArg+1<argc) || m_uiFrameHeight ) { bError = true; break; } m_uiFrameHeight = atoi( argv[++iArg] ); } else if( !strcmp( argv[iArg], "-f" ) ) { if( !(iArg+1<argc) || m_uiNumFrames ) { bError = true; break; } m_uiNumFrames = atoi( argv[++iArg] ); } else if( !strcmp( argv[iArg], "-gop" ) ) { if( !(iArg+1<argc) ) { bError = true; break; } m_uiGOPSize = atoi( argv[++iArg] ); } else if( !strcmp( argv[iArg], "-qp" ) ) { if( !(iArg+1<argc) ) { bError = true; break; } m_dQP = atof( argv[++iArg] ); } else { bError = true; } } //===== consistency check ===== if( !bError ) { bError = ( m_cInputFileName.empty() ); } if( !bError ) { bError = ( m_cOutputFileName.empty() ); } if( !bError ) { bError = ( m_uiNumFrames < 1 ); } if( !bError ) { bError = ( m_uiFrameWidth == 0 || m_uiFrameWidth % 16 ); } if( !bError ) { bError = ( m_uiFrameHeight == 0 || m_uiFrameHeight % 16 ); } if( !bError ) { bError = ( m_dQP <= 0.0 ); } if( !bError ) { bError = ( m_uiGOPSize != 2 && m_uiGOPSize != 4 && m_uiGOPSize != 8 && m_uiGOPSize != 16 && m_uiGOPSize != 32 && m_uiGOPSize != 64 ); } //==== output when error ==== if( bError ) { RNOKS( xPrintUsage( argv ) ); } return Err::m_nOK; }
ErrVal QualityLevelParameter::init( Int argc, Char** argv ) { Bool bError = false; for( Int iArg = 1; iArg < argc; iArg++ ) { if( !strcmp( argv[iArg], "-in" ) ) { if( !(iArg+1<argc) || ! m_cInputBitStreamName.empty() ) { bError = true; break; } m_cInputBitStreamName = argv[++iArg]; } else if( !strcmp( argv[iArg], "-out" ) ) { if( !(iArg+1<argc) || ! m_cOutputBitStreamName.empty() ) { bError = true; break; } m_cOutputBitStreamName = argv[++iArg]; } else if( !strcmp( argv[iArg], "-org" ) ) { if( !(iArg+2<argc) ) { bError = true; break; } UInt uiLayer = atoi( argv[++iArg] ); if( !(uiLayer<MAX_LAYERS) || ! m_acOriginalFileName[uiLayer].empty() ) { bError = true; break; } m_acOriginalFileName[uiLayer] = argv[++iArg]; } else if( !strcmp( argv[iArg], "-wp" ) ) { if( !(iArg+1<argc) || m_uiDataFileMode ) { bError = true; break; } m_uiDataFileMode = 2; m_cDataFileName = argv[++iArg]; } else if( !strcmp( argv[iArg], "-rp" ) ) { if( !(iArg+1<argc) || m_uiDataFileMode ) { bError = true; break; } m_uiDataFileMode = 1; m_cDataFileName = argv[++iArg]; } else if( !strcmp( argv[iArg], "-ind" ) ) { if( m_uiDistortionEstimationMode != 3 ) { bError = true; break; } m_uiDistortionEstimationMode = 1; } else if( !strcmp( argv[iArg], "-dep" ) ) { if( m_uiDistortionEstimationMode != 3 ) { bError = true; break; } m_uiDistortionEstimationMode = 2; } else if( !strcmp( argv[iArg], "-sei" ) ) { //m_bQualityLayerSEI = true;//SEI changes update m_bPriorityLevelSEI = true;//SEI changes update } //JVT-S043 else if( !strcmp( argv[iArg], "-mlql" ) ) { m_eQLAssignerMode = QLASSIGNERMODE_MLQL; } else { bError = true; } } //===== consistency check ===== if( !bError ) { bError = ( m_cInputBitStreamName.empty() ); } if( !bError ) { bError = ( m_acOriginalFileName[0].empty() && m_cOutputBitStreamName.empty() ); } if( !bError ) { if( !m_cOutputBitStreamName.empty() ) { bError = ( m_acOriginalFileName[0].empty() && m_uiDataFileMode != 1 ); } else { bError = ( m_acOriginalFileName[0].empty() || m_uiDataFileMode != 2 ); } } //==== output when error ==== if( bError ) { RNOKS( xPrintUsage( argv ) ); } return Err::m_nOK; }