x264 main函式走讀

2021-10-09 19:35:05 字數 1849 閱讀 2189

可以看到,x264的main函式較為簡單,主要由x264_param_default、parse、encode和x264_param_cleanup三個函式。首先x264_param_default函式對引數進行預設設定,通過parse解析命令列,然後呼叫encode進行編碼,編碼結束後,呼叫x264_param_cleanup對引數進行cleanup。

**走讀:

realign_stack int main( int argc, char **ar** )

; int ret = 0;

fail_if_error( x264_threading_init(), "unable to initialize threading\n" );

#ifdef _win32

fail_if_error( !get_ar**_utf8( &argc, &ar** ), "unable to convert command line to utf-8\n" );

getconsoletitlew( org_console_title, console_title_size );

_setmode( _fileno( stdin ), _o_binary );

_setmode( _fileno( stdout ), _o_binary );

_setmode( _fileno( stderr ), _o_binary );

#endif

// 設定預設引數值

x264_param_default( ¶m );

/* parse command line */

if( parse( argc, ar**, ¶m, &opt ) < 0 )

ret = -1;

#ifdef _win32

/* restore title; it can be changed by input modules */

setconsoletitlew( org_console_title );

#endif

/* control-c handler */

signal( sigint, sigint_handler );

if( !ret )

ret = encode( ¶m, &opt ); // 編碼

/* clean up handles */

if( filter.free )

filter.free( opt.hin );

else if( opt.hin )

cli_input.close_file( opt.hin );

if( opt.hout )

cli_output.close_file( opt.hout, 0, 0 );

if( opt.tcfile_out )

fclose( opt.tcfile_out );

if( opt.qpfile )

fclose( opt.qpfile );

x264_param_cleanup( ¶m );

#ifdef _win32

setconsoletitlew( org_console_title );

free( ar** );

#endif

return ret;

}

x264_param_default函式走讀:

realign_stack void x264_param_default( x264_param_t *param )

x264使用示例

note x264的編碼示例.使用x264的版本為libx264 115 1.示例是個死迴圈,會源源不斷的編碼,然後將資料寫檔案.2.示例的行為是 編碼1000幀後,取空編碼緩衝區,然後迴圈執行這兩步.author 戈 include include include include stdint.h...

編譯安裝x264

網上也有相應的教程,之所以在這裡重申一遍,是因為我試了網上很多的編譯方法,都出現了問題,為此將此編譯安裝方法記錄下來。首先是 獲取x264 的 git clone git linux 下最簡單編譯步驟 1.切換至源 目錄 2.輸入 configure enable shared enable sta...

x264 param t引數註解

原始 不詳 typedef struct x264 param t cpu 標誌位 unsigned int cpu int i threads 並行編碼多幀 int b deterministic 是否允許非確定性時執行緒優化 int i sync lookahead 執行緒超前緩衝 int i ...