**:
一、動態改變引數:
查詢得到物件,直接設定引數。
1、filter引數
vout_thread_t *p_vout = getvout( p_mediaplayer, p_e );
if( p_vout )
} 2、subfilter引數
input_thread_t *p_input;
vlc_object_t *p_obj;
vlc_value_t val;
p_input = libvlc_get_input_thread( p_mi, p_e );
if( !p_input )
return;
p_obj = vlc_object_find_name( p_input, psz_filter_name, find_child );
if( p_obj )
3、media player引數
vout_thread_t *p_vout = getvout( p_mi, p_e );
if(p_vout)
4、instance引數(例項引數)
libvlc_instance_t *p_instance; // 輸入例項指標
libvlc_int_t *p_libvlc = p_instance->p_libvlc_int;
if (p_libvlc)
二、改變預設引數:
模組呼叫前(例如開啟**前),靜態設定。
(1) 可以通過vlc.exe的命令列傳入預設引數;
vlc.exe -vvv --extraintf=logger
(2) 也可以在呼叫libvlc_new函式建立例項時,傳入預設引數;
const char* vlc_args[32] = {};
int vlc_args_num =0;
vlc_args[vlc_args_num++] =
"-vvv"; // 日誌輸出的級別
vlc_args[vlc_args_num++] =
"--extraintf=logger"; // 日誌輸出
/* init vlc modules, should be done only once */
m_pinstance = libvlc_new (vlc_args_num , vlc_args, &ex);
(3) 也可以在開啟**前,傳入預設引數;
szoption =
":deinterlace-mode=blend"; // deinterlace濾鏡引數:反交錯引數
libvlc_media_add_option(m,szoption ,&ex);
/* create a media player playing environement */
m_pmediaplayer = libvlc_media_player_new_from_media (m, &ex);
(4) 也可以執行時程式改變;
預設引數儲存在模組樹中。用程式改變預設引數,可使用下列函式:
#define config_gettype(a,b) __config_gettype(vlc_object(a),b)
#define config_getint(a,b) __config_getint(vlc_object(a),b)
#define config_putint(a,b,c) __config_putint(vlc_object(a),b,c)
#define config_getfloat(a,b) __config_getfloat(vlc_object(a),b)
#define config_putfloat(a,b,c) __config_putfloat(vlc_object(a),b,c)
#define config_getpsz(a,b) __config_getpsz(vlc_object(a),b)
#define config_putpsz(a,b,c) __config_putpsz(vlc_object(a),b,c)
程式示例:
libvlc_instance_t *p_instance; // 輸入例項指標
vlc_value_t value; // 輸入值
libvlc_int_t *p_libvlc = p_instance->p_libvlc_int;
if (p_libvlc)
三、說明
1、如果要動態改變引數,vlc模組中最好建立為「例項引數」(vlc instance param)。
例如:demux模組中,建立"my-log-receive"模組引數:
bool b_log_receive = var_creategetbool( p_demux->p_libvlc,
"my-log-receive");
2、模組中建立引數的流程如下:
(1) 物件是否已建立該引數?有則返回。
(2) 訪問父物件或instance物件,如果有則引用,並返回。
(3) 訪問模組的預設引數,判斷是否是模組引數?是則建立。
VLC 模組動態載入邏輯
模組初始化 libvlc new libvlc internalinit module loadplugins allocateallplugins allocatepluginpath allocateplugindir allocatepluginfile 一 module initdynami...
linux file storage模組引數
下面是裝載驅動模組時的引數,即使你在載入模組的時候不傳入引數,也會有預設的引數。如果編譯時沒有指定config usb file storage test 則只能使用部分引數 module param array named file,mod data.file,charp,mod data.num...
核心模組引數
在 中,可以這樣寫 static int cfg value 3 module param cfg value,int,0764 然後,載入核心的時候,可以添上制定的引數值 不加的話,就是 的數值 insmod module name cfg value 100核心模組加進來之後,可以在 sys m...