Changes between Version 4 and Version 6 of Ticket #1284


Ignore:
Timestamp:
Jul 12, 2011 3:10:28 AM (13 years ago)
Author:
bennylp
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #1284 – Description

    v4 v6  
    1 == Objective == 
     1Framework to publish and consume media events in a media flow. The event framework can be used by any media types (audio and video) and any objects. 
    22 
    3  Framework to publish and consume media events in a media flow. The event framework can be used by any media types (audio and video) and any objects. 
     3Overview of the framework: 
    44 
    5 == Event Types == 
     5{{{ 
     6typedef enum pjmedia_event_type 
     7{ 
     8    PJMEDIA_EVENT_NONE, 
     9    PJMEDIA_EVENT_FMT_CHANGED, 
     10    PJMEDIA_EVENT_WND_CLOSING, 
     11    PJMEDIA_EVENT_WND_CLOSED, 
     12    PJMEDIA_EVENT_WND_RESIZED, 
     13    PJMEDIA_EVENT_MOUSE_BTN_DOWN, 
     14    PJMEDIA_EVENT_KEY_FRAME_FOUND, 
     15    PJMEDIA_EVENT_KEY_FRAME_MISSING, 
     16    PJMEDIA_EVENT_USER = 100 
     17} pjmedia_event_type; 
    618 
    7 ''' Generic event''' 
     19typedef struct pjmedia_event 
     20{ 
     21    pjmedia_event_type                   type; 
     22    pj_timestamp                         timestamp; 
     23    unsigned                             proc_cnt; 
     24    const pjmedia_event_publisher       *epub; 
    825 
    9 All event types carry these information: 
    10  - source 
    11  - timestamp 
     26    union { 
     27        pjmedia_event_fmt_changed_data          fmt_changed; 
     28        pjmedia_event_wnd_resized_data          wnd_resized; 
     29        pjmedia_event_wnd_closing_data          wnd_closing; 
     30        pjmedia_event_wnd_closed_data           wnd_closed; 
     31        pjmedia_event_mouse_btn_down_data       mouse_btn_down; 
     32        pjmedia_event_key_frame_found_data      key_frm_found; 
     33        pjmedia_event_key_frame_missing_data    key_frm_missing; 
     34        pjmedia_event_user_data                 user; 
     35        void                                    *ptr; 
     36    } data; 
     37} pjmedia_event; 
    1238 
     39typedef pj_status_t pjmedia_event_cb(pjmedia_event_subscription *esub, 
     40                                     pjmedia_event *event); 
    1341 
    14 '''Key frame found''' 
     42struct pjmedia_event_subscription 
     43{ 
     44    PJ_DECL_LIST_MEMBER(pjmedia_event_subscription); 
     45    pjmedia_event_cb    *cb; 
     46    void                *user_data; 
     47}; 
    1548 
    16 ||Description: ||notify that a key frame is found|| 
    17 ||Producer(s): ||codec|| 
    18 ||Direction: ||decoding|| 
    19 ||Parameters:|| || 
     49struct pjmedia_event_publisher 
     50{ 
     51    pjmedia_event_subscription  subscription_list; 
     52}; 
    2053 
    21 '''Format change''' 
     54PJ_DECL(void) pjmedia_event_init(pjmedia_event *event, 
     55                                 pjmedia_event_type type, 
     56                                 const pj_timestamp *ts, 
     57                                 const pjmedia_event_publisher *epub); 
     58PJ_DECL(void) pjmedia_event_publisher_init(pjmedia_event_publisher *epub); 
     59PJ_DECL(void) pjmedia_event_subscription_init(pjmedia_event_subscription *esub, 
     60                                              pjmedia_event_cb *cb, 
     61                                              void *user_data); 
     62PJ_DECL(pj_status_t) pjmedia_event_subscribe(pjmedia_event_publisher *epub, 
     63                                             pjmedia_event_subscription *esub); 
     64PJ_DECL(pj_status_t) pjmedia_event_unsubscribe(pjmedia_event_publisher *epub, 
     65                                               pjmedia_event_subscription *esub); 
     66PJ_DECL(pj_status_t) pjmedia_event_publish(pjmedia_event_publisher *epub, 
     67                                           pjmedia_event *event); 
     68PJ_DECL(pj_status_t) pjmedia_event_republish(pjmedia_event_publisher *esrc, 
     69                                             pjmedia_event_publisher *epub, 
     70                                             pjmedia_event_subscription *esub); 
    2271 
    23 ||Description: ||notify that video format has changed. This includes change in video size. || 
    24 ||Producer(s): ||codec|| 
    25 ||Direction: ||decoding|| 
    26 ||Parameters:|| new format || 
    27  
    28 '''Missing key frame''' 
    29  
    30 ||Description: ||notify that key frame is needed|| 
    31 ||Producer(s): ||codec|| 
    32 ||Direction: ||decoding|| 
    33 ||Parameters:|| || 
    34  
    35 '''Video window closed''' 
    36  
    37 ||Description: ||notify that video window has been closed|| 
    38 ||Producer(s): ||renderer|| 
    39 ||Direction: ||decoding|| 
    40 ||Parameters:|| || 
    41  
    42 '''Mouse button down''' 
    43  
    44 ||Description: ||notify that mouse button has been pressed|| 
    45 ||Producer(s): ||renderer window|| 
    46 ||Direction: ||decoding|| 
    47 ||Parameters:|| || 
    48  
    49 == Source Types == 
    50  
    51  - codec 
    52  - video device 
    53  
     72}}}