Ignore:
Timestamp:
Feb 24, 2011 7:47:55 AM (13 years ago)
Author:
nanang
Message:

Re #1182:

  • Added video stream interface in vid_stream.h, the video stream will be able to handle different video formats in encoding and decoding direction.
  • Renamed video device stream class identifiers from 'pjmedia_vid_stream*' to 'pjmedia_vid_dev_stream*' as 'pjmedia_vid_stream' is used by video stream interface.
  • Added ffmpeg video capability to be able to parse SDP format param for H263 and also decide video format for encoding direction based on remote preference and local format-capability setting.
  • Added some new APIs in jitter buffer for handling video stream: pjmedia_jbuf_put_frame3(), pjmedia_jbuf_get_frame3(), pjmedia_jbuf_peek_frame(), and pjmedia_jbuf_remove_frame().
  • Moved pjmedia_stream_info_from_sdp() from session to stream
File:
1 edited

Legend:

Unmodified
Added
Removed
  • pjproject/branches/projects/2.0-dev/pjmedia/src/pjmedia-videodev/colorbar_dev.c

    r3401 r3420  
    8181struct cbar_stream 
    8282{ 
    83     pjmedia_vid_stream   base;              /**< Base stream           */ 
    84     pjmedia_vid_param    param;             /**< Settings              */ 
    85     pj_pool_t           *pool;              /**< Memory pool.          */ 
    86  
    87     pjmedia_vid_cb       vid_cb;            /**< Stream callback.      */ 
    88     void                *user_data;         /**< Application data.     */ 
     83    pjmedia_vid_dev_stream           base;          /**< Base stream        */ 
     84    pjmedia_vid_param                param;         /**< Settings           */ 
     85    pj_pool_t                       *pool;          /**< Memory pool.       */ 
     86 
     87    pjmedia_vid_cb                   vid_cb;        /**< Stream callback.   */ 
     88    void                            *user_data;     /**< Application data.  */ 
    8989 
    9090    const struct cbar_fmt_info      *cbfi; 
     
    106106                                              unsigned index, 
    107107                                              pjmedia_vid_param *param); 
    108 static pj_status_t cbar_factory_create_stream(pjmedia_vid_dev_factory *f, 
    109                                               const pjmedia_vid_param *param, 
    110                                               const pjmedia_vid_cb *cb, 
    111                                               void *user_data, 
    112                                               pjmedia_vid_stream **p_vid_strm); 
    113  
    114 static pj_status_t cbar_stream_get_param(pjmedia_vid_stream *strm, 
     108static pj_status_t cbar_factory_create_stream( 
     109                                        pjmedia_vid_dev_factory *f, 
     110                                        const pjmedia_vid_param *param, 
     111                                        const pjmedia_vid_cb *cb, 
     112                                        void *user_data, 
     113                                        pjmedia_vid_dev_stream **p_vid_strm); 
     114 
     115static pj_status_t cbar_stream_get_param(pjmedia_vid_dev_stream *strm, 
    115116                                         pjmedia_vid_param *param); 
    116 static pj_status_t cbar_stream_get_cap(pjmedia_vid_stream *strm, 
     117static pj_status_t cbar_stream_get_cap(pjmedia_vid_dev_stream *strm, 
    117118                                       pjmedia_vid_dev_cap cap, 
    118119                                       void *value); 
    119 static pj_status_t cbar_stream_set_cap(pjmedia_vid_stream *strm, 
     120static pj_status_t cbar_stream_set_cap(pjmedia_vid_dev_stream *strm, 
    120121                                       pjmedia_vid_dev_cap cap, 
    121122                                       const void *value); 
    122 static pj_status_t cbar_stream_get_frame(pjmedia_vid_stream *strm, 
     123static pj_status_t cbar_stream_get_frame(pjmedia_vid_dev_stream *strm, 
    123124                                         pjmedia_frame *frame); 
    124 static pj_status_t cbar_stream_start(pjmedia_vid_stream *strm); 
    125 static pj_status_t cbar_stream_stop(pjmedia_vid_stream *strm); 
    126 static pj_status_t cbar_stream_destroy(pjmedia_vid_stream *strm); 
     125static pj_status_t cbar_stream_start(pjmedia_vid_dev_stream *strm); 
     126static pj_status_t cbar_stream_stop(pjmedia_vid_dev_stream *strm); 
     127static pj_status_t cbar_stream_destroy(pjmedia_vid_dev_stream *strm); 
    127128 
    128129/* Operations */ 
     
    137138}; 
    138139 
    139 static pjmedia_vid_stream_op stream_op = 
     140static pjmedia_vid_dev_stream_op stream_op = 
    140141{ 
    141142    &cbar_stream_get_param, 
     
    355356 
    356357/* API: create stream */ 
    357 static pj_status_t cbar_factory_create_stream(pjmedia_vid_dev_factory *f, 
    358                                               const pjmedia_vid_param *param, 
    359                                               const pjmedia_vid_cb *cb, 
    360                                               void *user_data, 
    361                                               pjmedia_vid_stream **p_vid_strm) 
     358static pj_status_t cbar_factory_create_stream( 
     359                                        pjmedia_vid_dev_factory *f, 
     360                                        const pjmedia_vid_param *param, 
     361                                        const pjmedia_vid_cb *cb, 
     362                                        void *user_data, 
     363                                        pjmedia_vid_dev_stream **p_vid_strm) 
    362364{ 
    363365    struct cbar_factory *cf = (struct cbar_factory*)f; 
     
    420422 
    421423/* API: Get stream info. */ 
    422 static pj_status_t cbar_stream_get_param(pjmedia_vid_stream *s, 
     424static pj_status_t cbar_stream_get_param(pjmedia_vid_dev_stream *s, 
    423425                                         pjmedia_vid_param *pi) 
    424426{ 
     
    439441 
    440442/* API: get capability */ 
    441 static pj_status_t cbar_stream_get_cap(pjmedia_vid_stream *s, 
     443static pj_status_t cbar_stream_get_cap(pjmedia_vid_dev_stream *s, 
    442444                                       pjmedia_vid_dev_cap cap, 
    443445                                       void *pval) 
     
    459461 
    460462/* API: set capability */ 
    461 static pj_status_t cbar_stream_set_cap(pjmedia_vid_stream *s, 
     463static pj_status_t cbar_stream_set_cap(pjmedia_vid_dev_stream *s, 
    462464                                       pjmedia_vid_dev_cap cap, 
    463465                                       const void *pval) 
     
    553555 
    554556/* API: Get frame from stream */ 
    555 static pj_status_t cbar_stream_get_frame(pjmedia_vid_stream *strm, 
     557static pj_status_t cbar_stream_get_frame(pjmedia_vid_dev_stream *strm, 
    556558                                         pjmedia_frame *frame) 
    557559{ 
     
    562564 
    563565/* API: Start stream. */ 
    564 static pj_status_t cbar_stream_start(pjmedia_vid_stream *strm) 
     566static pj_status_t cbar_stream_start(pjmedia_vid_dev_stream *strm) 
    565567{ 
    566568    struct cbar_stream *stream = (struct cbar_stream*)strm; 
     
    574576 
    575577/* API: Stop stream. */ 
    576 static pj_status_t cbar_stream_stop(pjmedia_vid_stream *strm) 
     578static pj_status_t cbar_stream_stop(pjmedia_vid_dev_stream *strm) 
    577579{ 
    578580    struct cbar_stream *stream = (struct cbar_stream*)strm; 
     
    587589 
    588590/* API: Destroy stream. */ 
    589 static pj_status_t cbar_stream_destroy(pjmedia_vid_stream *strm) 
     591static pj_status_t cbar_stream_destroy(pjmedia_vid_dev_stream *strm) 
    590592{ 
    591593    struct cbar_stream *stream = (struct cbar_stream*)strm; 
Note: See TracChangeset for help on using the changeset viewer.