コード例 #1
0
void _register_videotoolbox_if_supported(MSFactory *factory) {
	if (VTCompressionSessionCreate != NULL
		&& VTDecompressionSessionCreate != NULL
		&& CMVideoFormatDescriptionCreateFromH264ParameterSets != NULL) {
		
		ms_factory_register_filter(factory, &ms_vt_h264_enc);
		ms_factory_register_filter(factory, &ms_vt_h264_dec);
	} else {
		ms_warning("Cannot register VideoToolbox filters. Those filters"
			" require iOS 8 or MacOSX 10.8");
	}
}
コード例 #2
0
ファイル: msvoip.c プロジェクト: william30101/linphonemedia
void ms_factory_init_voip(MSFactory *obj) {
    MSSndCardManager *cm;
    int i;

    /* register builtin VoIP MSFilter's */
    for (i=0; ms_voip_filter_descs[i]!=NULL; i++) {
        ms_factory_register_filter(obj,ms_voip_filter_descs[i]);
    }

    if (managers_ref==0) {
        managers_ref++;
        cm=ms_snd_card_manager_get();
        if (cm->descs==NULL) {
            ms_message("Registering all soundcard handlers");
            for (i=0; ms_snd_card_descs[i]!=NULL; i++) {
                ms_snd_card_manager_register_desc(cm,ms_snd_card_descs[i]);
            }
        }

#ifdef VIDEO_ENABLED
        {
            MSWebCamManager *wm;
            wm=ms_web_cam_manager_get();
            if (wm->descs==NULL) {
                ms_message("Registering all webcam handlers");
                for (i=0; ms_web_cam_descs[i]!=NULL; i++) {
                    ms_web_cam_manager_register_desc(wm,ms_web_cam_descs[i]);
                }
            }
        }
#endif
    }

#ifdef VIDEO_ENABLED
    {
        MSVideoPresetsManager *vpm = ms_video_presets_manager_new(obj);
        register_video_preset_high_fps(vpm);
    }
#endif

#if defined(VIDEO_ENABLED) && defined(MS2_FILTERS) && !defined(NO_FFMPEG) && defined(HAVE_LIBAVCODEC_AVCODEC_H)
    ms_ffmpeg_check_init();
    __register_ffmpeg_encoders_if_possible(obj);
#endif

#if defined(ANDROID) && defined (VIDEO_ENABLED)
    if (1) {
        libmsandroidopengldisplay_init(obj);
    } else {
        if (!libmsandroiddisplay_init(obj)) {
            libmsandroiddisplaybad_init(obj);
        }
    }
#endif
    obj->voip_initd=TRUE;
    ms_message("ms_factory_init_voip() done");
}
コード例 #3
0
ファイル: msamr.c プロジェクト: Distrotech/msamr
MS_PLUGIN_DECLARE(void) libmsamr_init(MSFactory *f) {
#ifdef HAVE_AMRNB
#ifdef USE_ANDROID_AMR
	const char *missing=NULL;
	if (opencore_amr_wrapper_init(&missing)==-1) {
		ms_error("Could not find AMR codec of android, no AMR support possible (missing symbol=%s)",missing);
		return;
	}
#endif
	ms_factory_register_filter(f, &amrnb_dec_desc);
	ms_factory_register_filter(f, &amrnb_enc_desc);
#endif
#ifdef HAVE_AMRWB
	ms_factory_register_filter(f, &amrwb_dec_desc);
	ms_factory_register_filter(f, &amrwb_enc_desc);
#endif
	
	ms_factory_register_offer_answer_provider(f, &amr_offer_answer_provider);

	ms_message("libmsamr " VERSION " plugin loaded");
}
コード例 #4
0
bool_t libmsandroiddisplay_init(MSFactory *factory){
	/*See if we can use AndroidBitmap_* symbols (only since android 2.2 normally)*/
	void *handle=NULL;
	handle=dlopen("libjnigraphics.so",RTLD_LAZY);
	if (handle!=NULL){
		sym_AndroidBitmap_getInfo=dlsym(handle,"AndroidBitmap_getInfo");
		sym_AndroidBitmap_lockPixels=dlsym(handle,"AndroidBitmap_lockPixels");
		sym_AndroidBitmap_unlockPixels=dlsym(handle,"AndroidBitmap_unlockPixels");

		if (sym_AndroidBitmap_getInfo==NULL || sym_AndroidBitmap_lockPixels==NULL
			|| sym_AndroidBitmap_unlockPixels==NULL){
			ms_warning("AndroidBitmap not available.");
		}else{
			ms_factory_register_filter(factory,&ms_android_display_desc);
			ms_message("MSAndroidDisplay registered.");
			return TRUE;
		}
	}else{
		ms_warning("libjnigraphics.so cannot be loaded.");
	}
	return FALSE;
}
コード例 #5
0
ファイル: msfactory.c プロジェクト: cuongitbk/mediastreamer2
void ms_factory_init(MSFactory *obj){
	int i;
	long num_cpu=1;
	char *debug_log_enabled = NULL;
	char *tags;
#ifdef _WIN32
	SYSTEM_INFO sysinfo;
#endif

#if defined(ENABLE_NLS)
	bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR);
#endif
#ifndef MS2_WINDOWS_UNIVERSAL
	debug_log_enabled=getenv("MEDIASTREAMER_DEBUG");
#endif
	if (debug_log_enabled!=NULL && (strcmp("1",debug_log_enabled)==0) ){
		ortp_set_log_level_mask(ORTP_MESSAGE|ORTP_WARNING|ORTP_ERROR|ORTP_FATAL);
	}

	ms_message("Mediastreamer2 factory " MEDIASTREAMER_VERSION " (git: " GIT_VERSION ") initialized.");
	/* register builtin MSFilter's */
	for (i=0;ms_base_filter_descs[i]!=NULL;i++){
		ms_factory_register_filter(obj,ms_base_filter_descs[i]);
	}

#ifdef _WIN32 /*fixme to be tested*/
	GetNativeSystemInfo( &sysinfo );

	num_cpu = sysinfo.dwNumberOfProcessors;
#elif __APPLE__ || __linux
	num_cpu = sysconf( _SC_NPROCESSORS_CONF); /*check the number of processors configured, not just the one that are currently active.*/
#elif __QNX__
	num_cpu = _syspage_ptr->num_cpu;
#else
#warning "There is no code that detects the number of CPU for this platform."
#endif
	ms_factory_set_cpu_count(obj,num_cpu);
	ms_factory_set_mtu(obj,MS_MTU_DEFAULT);
#ifdef _WIN32
	ms_factory_add_platform_tag(obj, "win32");
#ifdef MS2_WINDOWS_PHONE
	ms_factory_add_platform_tag(obj, "windowsphone");
#endif
#ifdef MS2_WINDOWS_UNIVERSAL
	ms_factory_add_platform_tag(obj, "windowsuniversal");
#endif
#endif
#ifdef __APPLE__
	ms_factory_add_platform_tag(obj, "apple");
#endif
#ifdef __linux
	ms_factory_add_platform_tag(obj, "linux");
#endif
#ifdef __QNX__
	ms_factory_add_platform_tag(obj, "qnx");
#endif
#ifdef ANDROID
	ms_factory_add_platform_tag(obj, "android");
#endif
#ifdef TARGET_OS_IPHONE
	ms_factory_add_platform_tag(obj, "ios");
#endif
#if defined(__arm__) || defined(_M_ARM)
	ms_factory_add_platform_tag(obj, "arm");
#else
	ms_factory_add_platform_tag(obj, "x86");
#endif
#if defined(ANDROID) || (TARGET_OS_IPHONE == 1) || defined(__arm__) || defined(_M_ARM)
	ms_factory_add_platform_tag(obj, "embedded");
#else
	ms_factory_add_platform_tag(obj, "desktop");
#endif
	tags = ms_factory_get_platform_tags_as_string(obj);
	ms_message("ms_factory_init() done: platform_tags=%s", tags);
	ms_free(tags);
}
コード例 #6
0
void libmsandroidopengldisplay_init(MSFactory *factory){
	ms_factory_register_filter(factory,&ms_android_opengl_display_desc);
	ms_message("MSAndroidDisplay (OpenGL ES2) registered (id=%d).", MS_ANDROID_DISPLAY_ID);
}
コード例 #7
0
ファイル: msfilter.c プロジェクト: fremaks/linphone_sdk
void ms_filter_register(MSFilterDesc *desc){
	ms_factory_register_filter(ms_factory_get_fallback(),desc);
}