diff options
Diffstat (limited to 'pjmedia/src/test/vid_codec_test.c')
-rw-r--r-- | pjmedia/src/test/vid_codec_test.c | 16 |
1 files changed, 7 insertions, 9 deletions
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); } |