Ignore:
Timestamp:
Dec 1, 2011 10:49:07 AM (13 years ago)
Author:
ming
Message:

Closed #1420: Add support for event manager

File:
1 edited

Legend:

Unmodified
Added
Removed
  • pjproject/trunk/pjsip/src/pjsua-lib/pjsua_vid.c

    r3891 r3893  
    5858    } 
    5959 
     60    status = pjmedia_event_mgr_create(pjsua_var.pool, 0, NULL); 
     61    if (status != PJ_SUCCESS) { 
     62        PJ_PERROR(1,(THIS_FILE, status, 
     63                     "Error creating PJMEDIA event manager")); 
     64        goto on_error; 
     65    } 
     66 
    6067    status = pjmedia_vid_codec_mgr_create(pjsua_var.pool, NULL); 
    6168    if (status != PJ_SUCCESS) { 
     
    130137    if (pjmedia_converter_mgr_instance()) 
    131138        pjmedia_converter_mgr_destroy(NULL); 
     139 
     140    if (pjmedia_event_mgr_instance()) 
     141        pjmedia_event_mgr_destroy(NULL); 
    132142 
    133143    if (pjmedia_video_format_mgr_instance()) 
     
    614624 
    615625    if (w->vp_cap) { 
     626        pjmedia_event_unsubscribe(NULL, &call_media_on_event, NULL, 
     627                                  w->vp_cap); 
    616628        pjmedia_vid_port_stop(w->vp_cap); 
    617629        pjmedia_vid_port_disconnect(w->vp_cap); 
     
    619631    } 
    620632    if (w->vp_rend) { 
     633        pjmedia_event_unsubscribe(NULL, &call_media_on_event, NULL, 
     634                                  w->vp_rend); 
    621635        pjmedia_vid_port_stop(w->vp_rend); 
    622636        pjmedia_vid_port_destroy(w->vp_rend); 
     
    816830#if ENABLE_EVENT 
    817831            /* Register to video events */ 
    818             pjmedia_event_subscribe( 
    819                     pjmedia_vid_port_get_event_publisher(w->vp_rend), 
    820                     &call_med->esub_rend); 
     832            pjmedia_event_subscribe(NULL, w->pool, &call_media_on_event, 
     833                                    call_med, w->vp_rend); 
    821834#endif 
    822835             
     
    887900            w = &pjsua_var.win[wid]; 
    888901#if ENABLE_EVENT 
    889             pjmedia_event_subscribe( 
    890                     pjmedia_vid_port_get_event_publisher(w->vp_cap), 
    891                     &call_med->esub_cap); 
     902            pjmedia_event_subscribe(NULL, w->pool, &call_media_on_event, 
     903                                    call_med, w->vp_cap); 
    892904#endif 
    893905             
     
    10071019 
    10081020        /* Unsubscribe event */ 
    1009         pjmedia_event_unsubscribe(&call_med->esub_cap); 
     1021        pjmedia_event_unsubscribe(NULL, &call_media_on_event, call_med, 
     1022                                  w->vp_cap); 
    10101023 
    10111024        /* Re-start capture again, if it is used by other stream */ 
     
    10221035        /* Stop the render before unsubscribing event */ 
    10231036        pjmedia_vid_port_stop(w->vp_rend); 
    1024         pjmedia_event_unsubscribe(&call_med->esub_rend); 
     1037        pjmedia_event_unsubscribe(NULL, &call_media_on_event, call_med, 
     1038                                  w->vp_rend); 
    10251039 
    10261040        dec_vid_win(call_med->strm.v.rdr_win_id); 
     
    18361850        return status; 
    18371851 
    1838     pjmedia_event_unsubscribe(&call_med->esub_cap); 
     1852    pjmedia_event_unsubscribe(NULL, &call_media_on_event, call_med, 
     1853                              w->vp_cap); 
    18391854     
    18401855    /* temporarily disconnect while we operate on the tee. */ 
     
    18941909 
    18951910#if ENABLE_EVENT 
    1896     pjmedia_event_subscribe( 
    1897             pjmedia_vid_port_get_event_publisher(new_w->vp_cap), 
    1898             &call_med->esub_cap); 
     1911    pjmedia_event_subscribe(NULL, new_w->pool, &call_media_on_event, 
     1912                            call_med, new_w->vp_cap); 
    18991913#endif 
    19001914 
     
    19201934    if (new_w) { 
    19211935        /* Unsubscribe, just in case */ 
    1922         pjmedia_event_unsubscribe(&call_med->esub_cap); 
     1936        pjmedia_event_unsubscribe(NULL, &call_media_on_event, call_med, 
     1937                                  new_w->vp_cap); 
    19231938        /* Disconnect media port from the new capturer */ 
    19241939        pjmedia_vid_tee_remove_dst_port(new_w->tee, media_port); 
     
    19361951#if ENABLE_EVENT 
    19371952    /* Resubscribe */ 
    1938     pjmedia_event_subscribe( 
    1939             pjmedia_vid_port_get_event_publisher(w->vp_cap), 
    1940             &call_med->esub_cap); 
     1953    pjmedia_event_subscribe(NULL, w->pool, &call_media_on_event, 
     1954                            call_med, w->vp_cap); 
    19411955#endif 
    19421956 
Note: See TracChangeset for help on using the changeset viewer.