diff options
author | Liong Sauw Ming <ming@teluu.com> | 2011-12-01 10:49:07 +0000 |
---|---|---|
committer | Liong Sauw Ming <ming@teluu.com> | 2011-12-01 10:49:07 +0000 |
commit | c04000a192a00f047ea6d04e131e42f0b72bc11b (patch) | |
tree | a3f1a4ba2cd467087640c5cb2bd9509570c5acff /pjmedia/src/test | |
parent | 5a41db1f3ba90b676e9485a15841e5fec656ed58 (diff) |
Closed #1420: Add support for event manager
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@3893 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjmedia/src/test')
-rw-r--r-- | pjmedia/src/test/test.c | 2 | ||||
-rw-r--r-- | pjmedia/src/test/vid_codec_test.c | 16 | ||||
-rw-r--r-- | pjmedia/src/test/vid_dev_test.c | 16 | ||||
-rw-r--r-- | pjmedia/src/test/vid_port_test.c | 16 |
4 files changed, 23 insertions, 27 deletions
diff --git a/pjmedia/src/test/test.c b/pjmedia/src/test/test.c index 2b7c9ca5..275d2da0 100644 --- a/pjmedia/src/test/test.c +++ b/pjmedia/src/test/test.c @@ -72,6 +72,7 @@ int test_main(void) #if defined(PJMEDIA_HAS_VIDEO) && (PJMEDIA_HAS_VIDEO != 0) pjmedia_video_format_mgr_create(pool, 64, 0, NULL); pjmedia_converter_mgr_create(pool, NULL); + pjmedia_event_mgr_create(pool, 0, NULL); pjmedia_vid_codec_mgr_create(pool, NULL); #endif @@ -115,6 +116,7 @@ on_return: #if defined(PJMEDIA_HAS_VIDEO) && (PJMEDIA_HAS_VIDEO != 0) pjmedia_video_format_mgr_destroy(pjmedia_video_format_mgr_instance()); pjmedia_converter_mgr_destroy(pjmedia_converter_mgr_instance()); + pjmedia_event_mgr_destroy(pjmedia_event_mgr_instance()); pjmedia_vid_codec_mgr_destroy(pjmedia_vid_codec_mgr_instance()); #endif diff --git a/pjmedia/src/test/vid_codec_test.c b/pjmedia/src/test/vid_codec_test.c index a6c62469..11ef93ab 100644 --- a/pjmedia/src/test/vid_codec_test.c +++ b/pjmedia/src/test/vid_codec_test.c @@ -47,18 +47,16 @@ typedef struct codec_port_data_t pj_size_t pack_buf_size; } codec_port_data_t; -static pj_status_t codec_on_event(pjmedia_event_subscription *esub, - pjmedia_event *event) +static pj_status_t codec_on_event(pjmedia_event *event, + void *user_data) { - codec_port_data_t *port_data = (codec_port_data_t*)esub->user_data; + codec_port_data_t *port_data = (codec_port_data_t*)user_data; if (event->type == PJMEDIA_EVENT_FMT_CHANGED) { pjmedia_vid_codec *codec = port_data->codec; pjmedia_vid_codec_param codec_param; pj_status_t status; - ++event->proc_cnt; - status = pjmedia_vid_codec_get_param(codec, &codec_param); if (status != PJ_SUCCESS) return status; @@ -200,7 +198,6 @@ static int encode_decode_test(pj_pool_t *pool, const char *codec_id, pjmedia_vid_port *capture=NULL, *renderer=NULL; pjmedia_vid_port_param vport_param; pjmedia_video_format_detail *vfd; - pjmedia_event_subscription esub; char codec_name[5]; pj_status_t status; int rc = 0; @@ -323,9 +320,8 @@ static int encode_decode_test(pj_pool_t *pool, const char *codec_id, codec_param.dec_fmt.det = codec_param.enc_fmt.det; /* Subscribe to codec events */ - pjmedia_event_subscription_init(&esub, &codec_on_event, - &codec_port_data); - pjmedia_event_subscribe(&codec->epub, &esub); + pjmedia_event_subscribe(NULL, pool, &codec_on_event, &codec_port_data, + codec); } pjmedia_vid_port_param_default(&vport_param); @@ -430,6 +426,8 @@ on_return: pjmedia_vid_port_destroy(renderer); } if (codec) { + pjmedia_event_unsubscribe(NULL, &codec_on_event, &codec_port_data, + codec); pjmedia_vid_codec_close(codec); pjmedia_vid_codec_mgr_dealloc_codec(NULL, codec); } diff --git a/pjmedia/src/test/vid_dev_test.c b/pjmedia/src/test/vid_dev_test.c index 7425e49b..5782337b 100644 --- a/pjmedia/src/test/vid_dev_test.c +++ b/pjmedia/src/test/vid_dev_test.c @@ -76,10 +76,10 @@ static int enum_devs(void) return PJ_SUCCESS; } -static pj_status_t vid_event_cb(pjmedia_event_subscription *esub, - pjmedia_event *event) +static pj_status_t vid_event_cb(pjmedia_event *event, + void *user_data) { - PJ_UNUSED_ARG(esub); + PJ_UNUSED_ARG(user_data); if (event->type == PJMEDIA_EVENT_WND_CLOSED) is_quitting = PJ_TRUE; @@ -95,7 +95,6 @@ static int capture_render_loopback(int cap_dev_id, int rend_dev_id, pjmedia_vid_dev_info cdi, rdi; pjmedia_vid_port_param param; pjmedia_video_format_detail *vfd; - pjmedia_event_subscription esub; pj_status_t status; int rc = 0, i; @@ -161,10 +160,7 @@ static int capture_render_loopback(int cap_dev_id, int rend_dev_id, } /* Set event handler */ - pjmedia_event_subscription_init(&esub, &vid_event_cb, NULL); - pjmedia_event_subscribe( - pjmedia_vid_port_get_event_publisher(renderer), - &esub); + pjmedia_event_subscribe(NULL, pool, &vid_event_cb, NULL, renderer); /* Connect capture to renderer */ status = pjmedia_vid_port_connect( @@ -196,8 +192,10 @@ on_return: if (capture) pjmedia_vid_port_destroy(capture); - if (renderer) + if (renderer) { + pjmedia_event_unsubscribe(NULL, &vid_event_cb, NULL, renderer); pjmedia_vid_port_destroy(renderer); + } pj_pool_release(pool); return rc; diff --git a/pjmedia/src/test/vid_port_test.c b/pjmedia/src/test/vid_port_test.c index fed61bb1..dd3bf37e 100644 --- a/pjmedia/src/test/vid_port_test.c +++ b/pjmedia/src/test/vid_port_test.c @@ -32,10 +32,10 @@ static pj_bool_t is_quitting = PJ_FALSE; -static pj_status_t vid_event_cb(pjmedia_event_subscription *esub, - pjmedia_event *event) +static pj_status_t vid_event_cb(pjmedia_event *event, + void *user_data) { - PJ_UNUSED_ARG(esub); + PJ_UNUSED_ARG(user_data); if (event->type == PJMEDIA_EVENT_WND_CLOSED) is_quitting = PJ_TRUE; @@ -52,7 +52,6 @@ static int capture_render_loopback(pj_bool_t active, pjmedia_vid_dev_info cdi, rdi; pjmedia_vid_port_param param; pjmedia_video_format_detail *vfd; - pjmedia_event_subscription esub; pj_status_t status; int rc = 0, i; @@ -118,10 +117,7 @@ static int capture_render_loopback(pj_bool_t active, } /* Set event handler */ - pjmedia_event_subscription_init(&esub, &vid_event_cb, NULL); - pjmedia_event_subscribe( - pjmedia_vid_port_get_event_publisher(renderer), - &esub); + pjmedia_event_subscribe(NULL, pool, &vid_event_cb, NULL, renderer); /* Connect capture to renderer */ status = pjmedia_vid_port_connect( @@ -153,8 +149,10 @@ on_return: if (capture) pjmedia_vid_port_destroy(capture); - if (renderer) + if (renderer) { + pjmedia_event_unsubscribe(NULL, &vid_event_cb, NULL, renderer); pjmedia_vid_port_destroy(renderer); + } pj_pool_release(pool); return rc; |