summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--pjsip/src/pjsua-lib/pjsua_vid.c23
1 files changed, 16 insertions, 7 deletions
diff --git a/pjsip/src/pjsua-lib/pjsua_vid.c b/pjsip/src/pjsua-lib/pjsua_vid.c
index d231b079..38b77f22 100644
--- a/pjsip/src/pjsua-lib/pjsua_vid.c
+++ b/pjsip/src/pjsua-lib/pjsua_vid.c
@@ -64,21 +64,21 @@ pj_status_t pjsua_vid_subsys_init(void)
goto on_error;
}
- status = pjmedia_vid_dev_subsys_init(&pjsua_var.cp.factory);
+#if PJMEDIA_HAS_VIDEO && PJMEDIA_HAS_FFMPEG_CODEC
+ status = pjmedia_codec_ffmpeg_init(NULL, &pjsua_var.cp.factory);
if (status != PJ_SUCCESS) {
PJ_PERROR(1,(THIS_FILE, status,
- "Error creating PJMEDIA video subsystem"));
+ "Error initializing ffmpeg library"));
goto on_error;
}
+#endif
-#if PJMEDIA_HAS_VIDEO && PJMEDIA_HAS_FFMPEG_CODEC
- status = pjmedia_codec_ffmpeg_init(NULL, &pjsua_var.cp.factory);
+ status = pjmedia_vid_dev_subsys_init(&pjsua_var.cp.factory);
if (status != PJ_SUCCESS) {
PJ_PERROR(1,(THIS_FILE, status,
- "Error initializing ffmpeg library"));
+ "Error creating PJMEDIA video subsystem"));
goto on_error;
}
-#endif
for (i=0; i<PJSUA_MAX_VID_WINS; ++i) {
if (pjsua_var.win[i].pool == NULL) {
@@ -121,9 +121,18 @@ pj_status_t pjsua_vid_subsys_destroy(void)
pjmedia_vid_dev_subsys_shutdown();
#if PJMEDIA_HAS_FFMPEG_CODEC
- pjmedia_codec_ffmpeg_deinit();
+ pjmedia_codec_ffmpeg_deinit();
#endif
+ if (pjmedia_vid_codec_mgr_instance())
+ pjmedia_vid_codec_mgr_destroy(NULL);
+
+ if (pjmedia_converter_mgr_instance())
+ pjmedia_converter_mgr_destroy(NULL);
+
+ if (pjmedia_video_format_mgr_instance())
+ pjmedia_video_format_mgr_destroy(NULL);
+
pj_log_pop_indent();
return PJ_SUCCESS;
}