/* * Unregister VPX factory from pjmedia endpoint. */ PJ_DEF(pj_status_t) pjmedia_codec_vpx_deinit(void) { pj_status_t status = PJ_SUCCESS; TRACE_((THIS_FILE, "Deinit vpx codec")); if (vpx_factory.pool == NULL ) { /* Already deinitialized */ return PJ_SUCCESS; } pj_mutex_lock(vpx_factory.mutex); /* Unregister VPX codecs factory. */ status = pjmedia_vid_codec_mgr_unregister_factory(vpx_factory.mgr, &vpx_factory.base); /* Destroy mutex. */ pj_mutex_destroy(vpx_factory.mutex); /* Destroy pool. */ pj_pool_release(vpx_factory.pool); vpx_factory.pool = NULL; return status; }
/* * Unregister openh264 codecs factory from pjmedia endpoint. */ PJ_DEF(pj_status_t) pjmedia_codec_openh264_vid_deinit(void) { pj_status_t status = PJ_SUCCESS; if (openh264_factory.pool == NULL) { /* Already deinitialized */ return PJ_SUCCESS; } pj_mutex_lock(openh264_factory.mutex); /* Unregister openh264 codecs factory. */ status = pjmedia_vid_codec_mgr_unregister_factory(openh264_factory.mgr, &openh264_factory.base); /* Destroy mutex. */ pj_mutex_destroy(openh264_factory.mutex); /* Destroy pool. */ pj_pool_release(openh264_factory.pool); openh264_factory.pool = NULL; return status; }