コード例 #1
0
ファイル: tdav.c プロジェクト: Zhe-Zhu/Qianli
int tdav_codec_set_priority(tdav_codec_id_t codec_id, int priority)
{
	static int count = sizeof(__codecs)/sizeof(tdav_codec_decl_t);
	int i;
	
	if(priority < 0){
		TSK_DEBUG_ERROR("Invalid parameter");
		return -1;
	}
	for(i = 0; i<count; ++i){
		if(__codecs[i].id == codec_id){
			tdav_codec_decl_t codec_decl_1, codec_decl_2;
			priority = TSK_MIN(priority, count-1);
			codec_decl_1 = __codecs[priority];
			codec_decl_2 = __codecs[i];
			
			__codecs[i] = codec_decl_1;
			__codecs[priority] = codec_decl_2;

			// change priority if already registered and supported
			if(_tdav_codec_is_supported(codec_decl_2.id, *codec_decl_2.plugin) && tmedia_codec_plugin_is_registered(*codec_decl_2.plugin)){
				return tmedia_codec_plugin_register_2(*codec_decl_2.plugin, priority);
			}
			return 0;
		}
	}
	
	TSK_DEBUG_ERROR("cannot find codec with id=%d", codec_id);
	return -2;
}
コード例 #2
0
ファイル: tdav.c プロジェクト: shanlq/doubango
int tdav_codec_set_priority(tdav_codec_id_t codec_id, int priority)
{
    tsk_size_t i;

    if(priority < 0) {
        TSK_DEBUG_ERROR("Invalid parameter");
        return -1;
    }
    for(i = 0; i < __codec_plugins_all_count && __codec_plugins_all[i]; ++i) {
        if(__codec_plugins_all[i]->codec_id == codec_id) {
            const struct tmedia_codec_plugin_def_s *codec_decl_1, *codec_decl_2;
            priority = TSK_MIN(priority, (int)__codec_plugins_all_count-1);
            codec_decl_1 = __codec_plugins_all[priority];
            codec_decl_2 = __codec_plugins_all[i];

            __codec_plugins_all[i] = codec_decl_1;
            __codec_plugins_all[priority] = codec_decl_2;

            // change priority if already registered and supported
            if(_tdav_codec_is_supported((tdav_codec_id_t)codec_decl_2->codec_id, codec_decl_2) && tmedia_codec_plugin_is_registered(codec_decl_2)) {
                return tmedia_codec_plugin_register_2(codec_decl_2, priority);
            }
            return 0;
        }
    }

    TSK_DEBUG_INFO("Cannot find codec with id=%d for priority setting", codec_id);
    return 0;
}