summaryrefslogtreecommitdiff
path: root/pjsip-apps/src/samples
diff options
context:
space:
mode:
authorLiong Sauw Ming <ming@teluu.com>2011-12-01 10:49:07 +0000
committerLiong Sauw Ming <ming@teluu.com>2011-12-01 10:49:07 +0000
commitc04000a192a00f047ea6d04e131e42f0b72bc11b (patch)
treea3f1a4ba2cd467087640c5cb2bd9509570c5acff /pjsip-apps/src/samples
parent5a41db1f3ba90b676e9485a15841e5fec656ed58 (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 'pjsip-apps/src/samples')
-rw-r--r--pjsip-apps/src/samples/aviplay.c20
1 files changed, 11 insertions, 9 deletions
diff --git a/pjsip-apps/src/samples/aviplay.c b/pjsip-apps/src/samples/aviplay.c
index 2ceb727e..bdeab3f9 100644
--- a/pjsip-apps/src/samples/aviplay.c
+++ b/pjsip-apps/src/samples/aviplay.c
@@ -105,10 +105,10 @@ typedef struct codec_port_data_t
pjmedia_converter *conv;
} codec_port_data_t;
-static pj_status_t avi_event_cb(pjmedia_event_subscription *esub,
- pjmedia_event *event)
+static pj_status_t avi_event_cb(pjmedia_event *event,
+ void *user_data)
{
- avi_port_t *ap = (avi_port_t *)esub->user_data;
+ avi_port_t *ap = (avi_port_t *)user_data;
switch (event->type) {
case PJMEDIA_EVENT_WND_CLOSED:
@@ -191,7 +191,6 @@ static int aviplay(pj_pool_t *pool, const char *fname)
pjmedia_avi_stream *vid_stream, *aud_stream;
pjmedia_port *vid_port = NULL, *aud_port = NULL;
pjmedia_vid_codec *codec=NULL;
- pjmedia_event_subscription esub;
avi_port_t avi_port;
pj_bzero(&avi_port, sizeof(avi_port));
@@ -402,10 +401,8 @@ static int aviplay(pj_pool_t *pool, const char *fname)
pjmedia_vid_port_set_cb(renderer, &cb, &avi_port);
/* subscribe events */
- pjmedia_event_subscription_init(&esub, &avi_event_cb, &avi_port);
- pjmedia_event_subscribe(
- pjmedia_vid_port_get_event_publisher(renderer),
- &esub);
+ pjmedia_event_subscribe(NULL, pool, &avi_event_cb, &avi_port,
+ renderer);
if (snd_port) {
/* Synchronize video rendering and audio playback */
@@ -436,8 +433,11 @@ on_return:
pj_thread_sleep(100);
pjmedia_snd_port_destroy(snd_port);
}
- if (renderer)
+ if (renderer) {
+ pjmedia_event_unsubscribe(NULL, &avi_event_cb, &avi_port,
+ renderer);
pjmedia_vid_port_destroy(renderer);
+ }
if (aud_port)
pjmedia_port_destroy(aud_port);
if (vid_port)
@@ -482,6 +482,7 @@ static int main_func(int argc, char *argv[])
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);
status = pjmedia_vid_dev_subsys_init(&cp.factory);
@@ -519,6 +520,7 @@ on_return:
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());
/* Release application pool */