Ignore:
Timestamp:
Feb 28, 2011 6:59:47 PM (13 years ago)
Author:
nanang
Message:

Re #1182:

  • Renamed vstreamutil.c to vid_steamutil.c just for filename format consistency reason.
  • Updated sample app simpleua.c and vid_streamutil.c to sync with updated API, e.g: strip session usage, two media ports exported video streams for each dir.
  • Added vid_streamutil.c capability to be able to stream video file (involving transcoding when video codec used in the file different to the video stream codec), also updated AVI player and ffmpeg codecs to be able to read and decode XVID/MPEG4 codec.
  • Fixed bug wrong media type check in stream.c and vid_stream.c in creating stream info from SDP.
  • Minor update: docs, logs, app samples makefiles.
File:
1 edited

Legend:

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

    r3420 r3425  
    6969 
    7070/* 
     71 * Duplicate video codec parameter. 
     72 */ 
     73PJ_DEF(pjmedia_vid_codec_param*) pjmedia_vid_codec_param_clone( 
     74                                        pj_pool_t *pool,  
     75                                        const pjmedia_vid_codec_param *src) 
     76{ 
     77    pjmedia_vid_codec_param *p; 
     78    unsigned i; 
     79 
     80    PJ_ASSERT_RETURN(pool && src, NULL); 
     81 
     82    p = PJ_POOL_ZALLOC_T(pool, pjmedia_vid_codec_param); 
     83 
     84    /* Update codec param */ 
     85    pj_memcpy(p, src, sizeof(pjmedia_vid_codec_param)); 
     86    for (i = 0; i < src->dec_fmtp.cnt; ++i) { 
     87        pj_strdup(pool, &p->dec_fmtp.param[i].name,  
     88                  &src->dec_fmtp.param[i].name); 
     89        pj_strdup(pool, &p->dec_fmtp.param[i].val,  
     90                  &src->dec_fmtp.param[i].val); 
     91    } 
     92    for (i = 0; i < src->enc_fmtp.cnt; ++i) { 
     93        pj_strdup(pool, &p->enc_fmtp.param[i].name,  
     94                  &src->enc_fmtp.param[i].name); 
     95        pj_strdup(pool, &p->enc_fmtp.param[i].val,  
     96                  &src->enc_fmtp.param[i].val); 
     97    } 
     98 
     99    return p; 
     100} 
     101 
     102/* 
    71103 * Initialize codec manager. 
    72104 */ 
     
    306338 
    307339 
     340PJ_DEF(pj_status_t) pjmedia_vid_codec_mgr_get_codec_info2( 
     341                                    pjmedia_vid_codec_mgr *mgr, 
     342                                    pjmedia_format_id fmt_id, 
     343                                    const pjmedia_vid_codec_info **p_info) 
     344{ 
     345    unsigned i; 
     346 
     347    PJ_ASSERT_RETURN(p_info, PJ_EINVAL); 
     348 
     349    if (!mgr) mgr = def_vid_codec_mgr; 
     350    PJ_ASSERT_RETURN(mgr, PJ_EINVAL); 
     351 
     352    pj_mutex_lock(mgr->mutex); 
     353 
     354    for (i=0; i<mgr->codec_cnt; ++i) { 
     355        if (mgr->codec_desc[i].info.fmt_id == fmt_id) { 
     356            *p_info = &mgr->codec_desc[i].info; 
     357 
     358            pj_mutex_unlock(mgr->mutex); 
     359            return PJ_SUCCESS; 
     360        } 
     361    } 
     362 
     363    pj_mutex_unlock(mgr->mutex); 
     364 
     365    return PJMEDIA_CODEC_EUNSUP; 
     366} 
     367 
     368 
    308369/* 
    309370 * Convert codec info struct into a unique codec identifier. 
     
    633694    } 
    634695 
    635     p = PJ_POOL_ZALLOC_T(pool, pjmedia_vid_codec_param); 
    636     p = codec_desc->def_param; 
    637  
    638     /* Update codec param */ 
    639     pj_memcpy(p, param, sizeof(pjmedia_vid_codec_param)); 
    640     for (i = 0; i < param->dec_fmtp.cnt; ++i) { 
    641         pj_strdup(pool, &p->dec_fmtp.param[i].name,  
    642                   &param->dec_fmtp.param[i].name); 
    643         pj_strdup(pool, &p->dec_fmtp.param[i].val,  
    644                   &param->dec_fmtp.param[i].val); 
    645     } 
    646     for (i = 0; i < param->enc_fmtp.cnt; ++i) { 
    647         pj_strdup(pool, &p->enc_fmtp.param[i].name,  
    648                   &param->enc_fmtp.param[i].name); 
    649         pj_strdup(pool, &p->enc_fmtp.param[i].val,  
    650                   &param->enc_fmtp.param[i].val); 
    651     } 
     696    /* Update codec default param */ 
     697    p = pjmedia_vid_codec_param_clone(pool, param); 
     698    if (!p) 
     699        return PJ_EINVAL; 
     700    codec_desc->def_param = p; 
    652701 
    653702    pj_mutex_unlock(mgr->mutex); 
Note: See TracChangeset for help on using the changeset viewer.