Closed #1275: Change pjmedia_vid_subsys_xx() to pjmedia_vid_dev_subsys_xx()



git-svn-id: https://svn.pjsip.org/repos/pjproject/branches/projects/2.0-dev@3579 74dad513-b988-da41-8d7b-12977e46ad98
diff --git a/pjmedia/src/pjmedia-videodev/videodev.c b/pjmedia/src/pjmedia-videodev/videodev.c
index af298ae..4741a40 100644
--- a/pjmedia/src/pjmedia-videodev/videodev.c
+++ b/pjmedia/src/pjmedia-videodev/videodev.c
@@ -104,7 +104,7 @@
     int			     rend_dev_idx;  /* Default render device	    */
 };
 
-/* The video subsystem */
+/* The video device subsystem */
 static struct vid_subsys
 {
     unsigned	     init_count;	/* How many times init() is called  */
@@ -308,8 +308,8 @@
     drv->rend_dev_idx = drv->cap_dev_idx = -1;
 }
 
-/* API: Initialize the video subsystem. */
-PJ_DEF(pj_status_t) pjmedia_vid_subsys_init(pj_pool_factory *pf)
+/* API: Initialize the video device subsystem. */
+PJ_DEF(pj_status_t) pjmedia_vid_dev_subsys_init(pj_pool_factory *pf)
 {
     unsigned i;
     pj_status_t status = PJ_SUCCESS;
@@ -366,7 +366,7 @@
     return vid_subsys.dev_cnt ? PJ_SUCCESS : status;
 }
 
-/* API: register an video device factory to the video subsystem. */
+/* API: register a video device factory to the video device subsystem. */
 PJ_DEF(pj_status_t)
 pjmedia_vid_register_factory(pjmedia_vid_dev_factory_create_func_ptr adf)
 {
@@ -386,7 +386,7 @@
     return status;
 }
 
-/* API: unregister an video device factory from the video subsystem. */
+/* API: unregister a video device factory from the video device subsystem. */
 PJ_DEF(pj_status_t)
 pjmedia_vid_unregister_factory(pjmedia_vid_dev_factory_create_func_ptr adf)
 {
@@ -413,14 +413,14 @@
     return PJMEDIA_EVID_ERR;
 }
 
-/* API: get the pool factory registered to the video subsystem. */
-PJ_DEF(pj_pool_factory*) pjmedia_vid_subsys_get_pool_factory(void)
+/* API: get the pool factory registered to the video device subsystem. */
+PJ_DEF(pj_pool_factory*) pjmedia_vid_dev_subsys_get_pool_factory(void)
 {
     return vid_subsys.pf;
 }
 
-/* API: Shutdown the video subsystem. */
-PJ_DEF(pj_status_t) pjmedia_vid_subsys_shutdown(void)
+/* API: Shutdown the video device subsystem. */
+PJ_DEF(pj_status_t) pjmedia_vid_dev_subsys_shutdown(void)
 {
     unsigned i;
 
@@ -432,11 +432,13 @@
     }
     --vid_subsys.init_count;
 
-    for (i=0; i<vid_subsys.drv_cnt; ++i) {
-	deinit_driver(i);
-    }
+    if (vid_subsys.init_count == 0) {
+        for (i=0; i<vid_subsys.drv_cnt; ++i) {
+	    deinit_driver(i);
+        }
 
-    vid_subsys.pf = NULL;
+        vid_subsys.pf = NULL;
+    }
     return PJ_SUCCESS;
 }
 
diff --git a/pjmedia/src/test/vid_codec_test.c b/pjmedia/src/test/vid_codec_test.c
index a7a4ce8..8f5a467 100644
--- a/pjmedia/src/test/vid_codec_test.c
+++ b/pjmedia/src/test/vid_codec_test.c
@@ -417,7 +417,7 @@
 
     pool = pj_pool_create(mem, "Vid codec test", 256, 256, 0);
 
-    status = pjmedia_vid_subsys_init(mem);
+    status = pjmedia_vid_dev_subsys_init(mem);
     if (status != PJ_SUCCESS)
         return -10;
 
@@ -435,7 +435,7 @@
 
 on_return:
     pjmedia_codec_ffmpeg_deinit();
-    pjmedia_vid_subsys_shutdown();
+    pjmedia_vid_dev_subsys_shutdown();
     pj_pool_release(pool);
     pj_log_set_level(orig_log_level);
 
diff --git a/pjmedia/src/test/vid_dev_test.c b/pjmedia/src/test/vid_dev_test.c
index 77d63a2..7d484a8 100644
--- a/pjmedia/src/test/vid_dev_test.c
+++ b/pjmedia/src/test/vid_dev_test.c
@@ -276,7 +276,7 @@
     int rc = 0;
     pj_status_t status;
     
-    status = pjmedia_vid_subsys_init(mem);
+    status = pjmedia_vid_dev_subsys_init(mem);
     if (status != PJ_SUCCESS)
         return -10;
 
@@ -289,7 +289,7 @@
 	goto on_return;
 
 on_return:
-    pjmedia_vid_subsys_shutdown();
+    pjmedia_vid_dev_subsys_shutdown();
     
     return rc;
 }