summaryrefslogtreecommitdiff
path: root/pjmedia/src/pjmedia/wav_player.c
diff options
context:
space:
mode:
Diffstat (limited to 'pjmedia/src/pjmedia/wav_player.c')
-rw-r--r--pjmedia/src/pjmedia/wav_player.c33
1 files changed, 16 insertions, 17 deletions
diff --git a/pjmedia/src/pjmedia/wav_player.c b/pjmedia/src/pjmedia/wav_player.c
index e4ad3b48..3bccd527 100644
--- a/pjmedia/src/pjmedia/wav_player.c
+++ b/pjmedia/src/pjmedia/wav_player.c
@@ -32,7 +32,7 @@
#define THIS_FILE "wav_player.c"
-#define SIGNATURE PJMEDIA_PORT_SIGNATURE('F', 'P', 'l', 'y')
+#define SIGNATURE PJMEDIA_SIG_PORT_WAV_PLAYER
#define BITS_PER_SAMPLE 16
#if 1
@@ -187,7 +187,10 @@ PJ_DEF(pj_status_t) pjmedia_wav_player_port_create( pj_pool_t *pool,
pjmedia_wave_hdr wave_hdr;
pj_ssize_t size_to_read, size_read;
struct file_reader_port *fport;
+ pjmedia_audio_format_detail *ad;
pj_off_t pos;
+ pj_str_t name;
+ unsigned samples_per_frame;
pj_status_t status = PJ_SUCCESS;
@@ -352,17 +355,15 @@ PJ_DEF(pj_status_t) pjmedia_wav_player_port_create( pj_pool_t *pool,
fport->options = options;
/* Update port info. */
- fport->base.info.channel_count = wave_hdr.fmt_hdr.nchan;
- fport->base.info.clock_rate = wave_hdr.fmt_hdr.sample_rate;
- fport->base.info.bits_per_sample = BITS_PER_SAMPLE;
- fport->base.info.samples_per_frame = fport->base.info.clock_rate *
- wave_hdr.fmt_hdr.nchan *
- ptime / 1000;
- fport->base.info.bytes_per_frame =
- fport->base.info.samples_per_frame *
- fport->base.info.bits_per_sample / 8;
-
- pj_strdup2(pool, &fport->base.info.name, filename);
+ ad = pjmedia_format_get_audio_format_detail(&fport->base.info.fmt, 1);
+ pj_strdup2(pool, &name, filename);
+ samples_per_frame = ptime * wave_hdr.fmt_hdr.sample_rate *
+ wave_hdr.fmt_hdr.nchan / 1000;
+ pjmedia_port_info_init(&fport->base.info, &name, SIGNATURE,
+ wave_hdr.fmt_hdr.sample_rate,
+ wave_hdr.fmt_hdr.nchan,
+ BITS_PER_SAMPLE,
+ samples_per_frame);
/* If file is shorter than buffer size, adjust buffer size to file
* size. Otherwise EOF callback will be called multiple times when
@@ -379,9 +380,7 @@ PJ_DEF(pj_status_t) pjmedia_wav_player_port_create( pj_pool_t *pool,
/* samples_per_frame must be smaller than bufsize (because get_frame()
* doesn't handle this case).
*/
- if (fport->base.info.samples_per_frame * fport->bytes_per_sample >=
- fport->bufsize)
- {
+ if (samples_per_frame * fport->bytes_per_sample >= fport->bufsize) {
pj_file_close(fport->fd);
return PJ_EINVAL;
}
@@ -415,8 +414,8 @@ PJ_DEF(pj_status_t) pjmedia_wav_player_port_create( pj_pool_t *pool,
"filesize=%luKB",
(int)fport->base.info.name.slen,
fport->base.info.name.ptr,
- fport->base.info.clock_rate,
- fport->base.info.channel_count,
+ ad->clock_rate,
+ ad->channel_count,
fport->bufsize / 1000,
(unsigned long)(fport->fsize / 1000)));