Ignore:
Timestamp:
Mar 1, 2011 3:55:34 PM (13 years ago)
Author:
ming
Message:

Re #1182:

  • support for format modification after creating video port (currently for renderer with active role only).
  • support for format modification after opening SDL renderer.
File:
1 edited

Legend:

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

    r3402 r3431  
    143143                                          pjmedia_clock **p_clock) 
    144144{ 
    145     return pjmedia_clock_create2(pool, 
    146                                  (unsigned)(samples_per_frame * USEC_IN_SEC / 
    147                                             channel_count / clock_rate), 
    148                                  clock_rate, options, cb, user_data, p_clock); 
     145    pjmedia_clock_param param; 
     146 
     147    param.usec_interval = (unsigned)(samples_per_frame * USEC_IN_SEC / 
     148                                     channel_count / clock_rate); 
     149    param.clock_rate = clock_rate; 
     150    return pjmedia_clock_create2(pool, &param, options, cb, 
     151                                 user_data, p_clock); 
    149152} 
    150153 
    151154PJ_DEF(pj_status_t) pjmedia_clock_create2(pj_pool_t *pool, 
    152                                           unsigned usec_interval, 
    153                                           unsigned clock_rate, 
     155                                          const pjmedia_clock_param *param, 
    154156                                          unsigned options, 
    155157                                          pjmedia_clock_callback *cb, 
     
    160162    pj_status_t status; 
    161163 
    162     PJ_ASSERT_RETURN(pool && usec_interval && clock_rate && p_clock, 
    163                     PJ_EINVAL); 
     164    PJ_ASSERT_RETURN(pool && param->usec_interval && param->clock_rate && 
     165                     p_clock, PJ_EINVAL); 
    164166 
    165167    clock = PJ_POOL_ALLOC_T(pool, pjmedia_clock); 
     
    169171        return status; 
    170172 
    171     clock->interval.u64 = usec_interval * clock->freq.u64 / USEC_IN_SEC; 
     173    clock->interval.u64 = param->usec_interval * clock->freq.u64 / 
     174                          USEC_IN_SEC; 
    172175    clock->next_tick.u64 = 0; 
    173176    clock->timestamp.u64 = 0; 
    174177    clock->max_jump = MAX_JUMP_MSEC * clock->freq.u64 / 1000; 
    175     clock->timestamp_inc = (unsigned)(usec_interval * clock_rate / 
     178    clock->timestamp_inc = (unsigned)(param->usec_interval * 
     179                                      param->clock_rate / 
    176180                                      USEC_IN_SEC); 
    177181    clock->options = options; 
     
    203207 
    204208 
    205  
    206209/* 
    207210 * Start the clock.  
     
    238241 
    239242    clock->running = PJ_FALSE; 
     243 
     244    return PJ_SUCCESS; 
     245} 
     246 
     247 
     248/* 
     249 * Update the clock.  
     250 */ 
     251PJ_DEF(pj_status_t) pjmedia_clock_modify(pjmedia_clock *clock, 
     252                                         const pjmedia_clock_param *param) 
     253{ 
     254    clock->interval.u64 = param->usec_interval * clock->freq.u64 / 
     255                          USEC_IN_SEC; 
     256    clock->timestamp_inc = (unsigned)(param->usec_interval * 
     257                                      param->clock_rate / 
     258                                      USEC_IN_SEC); 
    240259 
    241260    return PJ_SUCCESS; 
Note: See TracChangeset for help on using the changeset viewer.