Changeset 3664 for pjproject/trunk/pjmedia/src/pjmedia/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/port.c
r3553 r3664 22 22 #include <pj/assert.h> 23 23 #include <pj/log.h> 24 #include <pj/pool.h> 24 25 25 26 #define THIS_FILE "port.c" … … 38 39 unsigned samples_per_frame) 39 40 { 41 #define USEC_IN_SEC (pj_uint64_t)1000000 42 unsigned frame_time_usec, avg_bps; 43 40 44 pj_bzero(info, sizeof(*info)); 41 45 46 info->signature = signature; 47 info->dir = PJMEDIA_DIR_ENCODING_DECODING; 42 48 info->name = *name; 43 info->signature = signature; 44 info->type = PJMEDIA_TYPE_AUDIO; 45 info->has_info = PJ_TRUE; 46 info->need_info = PJ_FALSE; 47 info->pt = 0xFF; 48 info->encoding_name = pj_str("pcm"); 49 info->clock_rate = clock_rate; 50 info->channel_count = channel_count; 51 info->bits_per_sample = bits_per_sample; 52 info->samples_per_frame = samples_per_frame; 53 info->bytes_per_frame = samples_per_frame * bits_per_sample / 8; 49 50 frame_time_usec = (unsigned)(samples_per_frame * USEC_IN_SEC / 51 channel_count / clock_rate); 52 avg_bps = clock_rate * channel_count * bits_per_sample; 53 54 pjmedia_format_init_audio(&info->fmt, PJMEDIA_FORMAT_L16, clock_rate, 55 channel_count, bits_per_sample, frame_time_usec, 56 avg_bps, avg_bps); 54 57 55 58 return PJ_SUCCESS; 56 59 } 57 60 61 PJ_DEF(pj_status_t) pjmedia_port_info_init2( pjmedia_port_info *info, 62 const pj_str_t *name, 63 unsigned signature, 64 pjmedia_dir dir, 65 const pjmedia_format *fmt) 66 { 67 pj_bzero(info, sizeof(*info)); 68 info->signature = signature; 69 info->dir = dir; 70 info->name = *name; 71 72 pjmedia_format_copy(&info->fmt, fmt); 73 74 return PJ_SUCCESS; 75 } 76 77 /** 78 * Get a clock source from the port. 79 */ 80 PJ_DEF(pjmedia_clock_src *) pjmedia_port_get_clock_src( pjmedia_port *port, 81 pjmedia_dir dir ) 82 { 83 if (port && port->get_clock_src) 84 return port->get_clock_src(port, dir); 85 else 86 return NULL; 87 } 58 88 59 89 /** … … 78 108 */ 79 109 PJ_DEF(pj_status_t) pjmedia_port_put_frame( pjmedia_port *port, 80 constpjmedia_frame *frame )110 pjmedia_frame *frame ) 81 111 { 82 112 PJ_ASSERT_RETURN(port && frame, PJ_EINVAL); … … 88 118 } 89 119 120 /* 121 * Get event publisher 122 */ 123 PJ_DEF(pjmedia_event_publisher*) 124 pjmedia_port_get_event_publisher(pjmedia_port *port) 125 { 126 PJ_ASSERT_RETURN(port, NULL); 127 128 if (port->get_event_pub) 129 return (*port->get_event_pub)(port); 130 131 return NULL; 132 } 90 133 91 134 /**
Note: See TracChangeset
for help on using the changeset viewer.