Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- typedef std::chrono::high_resolution_clock Clock;
- typedef std::chrono::milliseconds milliseconds;
- Clock::time_point t0;
- Clock::time_point t2;
- bool first1 = true;
- bool first2 = true;
- void dump_incoming_frames(pjmedia_port * port, void * usr_data){
- milliseconds ms;
- if(first2){
- t0 = Clock::now();
- first = false;
- }
- else{
- Clock::time_point t1 = Clock::now();
- ms = std::chrono::duration_cast<milliseconds>(t1 - t0);
- std::cout << ms.count() << "ms\n";
- t0 = Clock::now();
- }
- }
- void send_incoming_frames(pjmedia_port * port, void * usr_data){
- milliseconds ms;
- if(first){
- t2 = Clock::now();
- first = false;
- }
- else{
- Clock::time_point t3 = Clock::now();
- ms = std::chrono::duration_cast<milliseconds>(t3 - t2);
- std::cout << ms.count() << "ms\n";
- t0 = Clock::now();
- }
- }
- void MyCall::onCallMediaState(OnCallMediaStateParam &prm){
- CallInfo ci = getInfo();
- pjsua_call_info ciUA;
- pjsua_call_get_info(ci.id, &ciUA);
- pjsua_conf_port_info cpi;
- pjsua_conf_get_port_info(ciUA.conf_slot, &cpi);
- uint buf_size = cpi.bits_per_sample*cpi.samples_per_frame/8;
- pj_pool_t *pool = pjsua_pool_create("POOLNAME", 2000, 2000);
- void *buffer0 = pj_pool_zalloc(pool, buf_size);
- void *buffer2 = pj_pool_zalloc(pool, buf_size);
- pjmedia_port *prtCap;
- pjmedia_port *prtPlay;
- pjmedia_mem_capture_create( pool,
- buffer0,
- buf_size,
- cpi.clock_rate,
- 1,
- cpi.samples_per_frame,
- cpi.bits_per_sample,
- 0,
- &prtCap);
- pjmedia_mem_capture_set_eof_cb2(prtCap, buffer0, dump_incoming_frames);
- pjmedia_mem_player_create( pool,
- buffer2,
- buf_size2,
- cpi.clock_rate,
- 1,
- cpi.samples_per_frame,
- cpi.bits_per_sample,
- 0,
- &prtPlay);
- pjmedia_mem_player_set_eof_cb2(prtPlay, buffer2, send_incoming_frames);
- pjsua_conf_port_id capPortId;
- pjsua_conf_add_port(pool, prtCap, &capPortId);
- pjsua_conf_connect(ciUA.conf_slot, capPortId); //connect conference with port
- pjsua_conf_port_id playPortId;
- pjsua_conf_add_port(pool, prtPlay, &playPortId);
- pjsua_conf_connect(playPortId, ciUA.conf_slot); //Connect port with conference
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement