From 1e47fd78f11dab4b2f6cffa766417f111434f734 Mon Sep 17 00:00:00 2001 From: Benny Prijono Date: Fri, 14 Mar 2014 04:09:50 +0000 Subject: Closed #1748: enhancements to WAV player API git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@4793 74dad513-b988-da41-8d7b-12977e46ad98 --- pjmedia/src/pjmedia/wav_player.c | 40 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) (limited to 'pjmedia/src') diff --git a/pjmedia/src/pjmedia/wav_player.c b/pjmedia/src/pjmedia/wav_player.c index 78a02e04..1e9a92ca 100644 --- a/pjmedia/src/pjmedia/wav_player.c +++ b/pjmedia/src/pjmedia/wav_player.c @@ -424,6 +424,44 @@ PJ_DEF(pj_status_t) pjmedia_wav_player_port_create( pj_pool_t *pool, } +/* + * Get additional info about the file player. + */ +PJ_DEF(pj_status_t) pjmedia_wav_player_get_info( + pjmedia_port *port, + pjmedia_wav_player_info *info) +{ + struct file_reader_port *fport; + PJ_ASSERT_RETURN(port && info, PJ_EINVAL); + + pj_bzero(info, sizeof(*info)); + + /* Check that this is really a player port */ + PJ_ASSERT_RETURN(port->info.signature == SIGNATURE, PJ_EINVALIDOP); + + fport = (struct file_reader_port*) port; + + if (fport->fmt_tag == PJMEDIA_WAVE_FMT_TAG_PCM) { + info->fmt_id = PJMEDIA_FORMAT_PCM; + info->payload_bits_per_sample = 16; + } else if (fport->fmt_tag == PJMEDIA_WAVE_FMT_TAG_ULAW) { + info->fmt_id = PJMEDIA_FORMAT_ULAW; + info->payload_bits_per_sample = 8; + } else if (fport->fmt_tag == PJMEDIA_WAVE_FMT_TAG_ALAW) { + info->fmt_id = PJMEDIA_FORMAT_ALAW; + info->payload_bits_per_sample = 8; + } else { + pj_assert(!"Unsupported format"); + return PJ_ENOTSUP; + } + + info->size_bytes = pjmedia_wav_player_get_len(port); + info->size_samples = info->size_bytes / + (info->payload_bits_per_sample / 8); + + return PJ_SUCCESS; +} + /* * Get the data length, in bytes. */ @@ -484,7 +522,7 @@ PJ_DEF(pj_status_t) pjmedia_wav_player_port_set_pos(pjmedia_port *port, /* - * Get the file play position of WAV player. + * Get the file play position of WAV player (in bytes). */ PJ_DEF(pj_ssize_t) pjmedia_wav_player_port_get_pos( pjmedia_port *port ) { -- cgit v1.2.3