Changeset 3664 for pjproject/trunk/pjmedia/src/pjmedia/sound_port.c
- Timestamp:
- Jul 19, 2011 3:42:28 AM (13 years ago)
- Location:
- pjproject/trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
pjproject/trunk
- Property svn:mergeinfo changed
-
pjproject/trunk/pjmedia/src/pjmedia/sound_port.c
r3553 r3664 45 45 pjmedia_port *port; 46 46 47 pjmedia_clock_src cap_clocksrc, 48 play_clocksrc; 49 47 50 unsigned clock_rate; 48 51 unsigned channel_count; … … 71 74 pj_status_t status; 72 75 76 pjmedia_clock_src_update(&snd_port->play_clocksrc, &frame->timestamp); 77 73 78 port = snd_port->port; 74 79 if (port == NULL) … … 128 133 pjmedia_port *port; 129 134 135 pjmedia_clock_src_update(&snd_port->cap_clocksrc, &frame->timestamp); 136 130 137 port = snd_port->port; 131 138 if (port == NULL) … … 138 145 139 146 pjmedia_port_put_frame(port, frame); 147 140 148 141 149 return PJ_SUCCESS; … … 424 432 pjmedia_snd_port *snd_port; 425 433 pj_status_t status; 434 unsigned ptime_usec; 426 435 427 436 PJ_ASSERT_RETURN(pool && prm && p_port, PJ_EINVAL); … … 440 449 pj_memcpy(&snd_port->aud_param, prm, sizeof(snd_port->aud_param)); 441 450 snd_port->options = prm->options; 451 452 ptime_usec = prm->base.samples_per_frame * 1000 / prm->base.channel_count / 453 prm->base.clock_rate * 1000; 454 pjmedia_clock_src_init(&snd_port->cap_clocksrc, PJMEDIA_TYPE_AUDIO, 455 snd_port->clock_rate, ptime_usec); 456 pjmedia_clock_src_init(&snd_port->play_clocksrc, PJMEDIA_TYPE_AUDIO, 457 snd_port->clock_rate, ptime_usec); 442 458 443 459 /* Start sound device immediately. … … 640 656 641 657 /* 658 * Get clock source. 659 */ 660 PJ_DEF(pjmedia_clock_src *) 661 pjmedia_snd_port_get_clock_src( pjmedia_snd_port *snd_port, 662 pjmedia_dir dir ) 663 { 664 return (dir == PJMEDIA_DIR_CAPTURE? &snd_port->cap_clocksrc: 665 &snd_port->play_clocksrc); 666 } 667 668 669 /* 642 670 * Connect a port. 643 671 */ … … 645 673 pjmedia_port *port) 646 674 { 647 pjmedia_ port_info *pinfo;675 pjmedia_audio_format_detail *afd; 648 676 649 677 PJ_ASSERT_RETURN(snd_port && port, PJ_EINVAL); 678 679 afd = pjmedia_format_get_audio_format_detail(&port->info.fmt, PJ_TRUE); 650 680 651 681 /* Check that port has the same configuration as the sound device 652 682 * port. 653 683 */ 654 pinfo = &port->info; 655 if (pinfo->clock_rate != snd_port->clock_rate) 684 if (afd->clock_rate != snd_port->clock_rate) 656 685 return PJMEDIA_ENCCLOCKRATE; 657 686 658 if ( pinfo->samples_per_frame!= snd_port->samples_per_frame)687 if (PJMEDIA_AFD_SPF(afd) != snd_port->samples_per_frame) 659 688 return PJMEDIA_ENCSAMPLESPFRAME; 660 689 661 if ( pinfo->channel_count != snd_port->channel_count)690 if (afd->channel_count != snd_port->channel_count) 662 691 return PJMEDIA_ENCCHANNEL; 663 692 664 if ( pinfo->bits_per_sample != snd_port->bits_per_sample)693 if (afd->bits_per_sample != snd_port->bits_per_sample) 665 694 return PJMEDIA_ENCBITS; 666 695
Note: See TracChangeset
for help on using the changeset viewer.