summaryrefslogtreecommitdiff
path: root/pjmedia/src/pjmedia/wav_player.c
diff options
context:
space:
mode:
authorBenny Prijono <bennylp@teluu.com>2014-03-14 04:09:50 +0000
committerBenny Prijono <bennylp@teluu.com>2014-03-14 04:09:50 +0000
commit1e47fd78f11dab4b2f6cffa766417f111434f734 (patch)
tree016d93a205659ea85c7d315412307e580911668e /pjmedia/src/pjmedia/wav_player.c
parent9ff22c2ff305ee03b10d1d611eab060e5097cbe5 (diff)
Closed #1748: enhancements to WAV player API
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@4793 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjmedia/src/pjmedia/wav_player.c')
-rw-r--r--pjmedia/src/pjmedia/wav_player.c40
1 files changed, 39 insertions, 1 deletions
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
@@ -425,6 +425,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.
*/
PJ_DEF(pj_ssize_t) pjmedia_wav_player_get_len(pjmedia_port *port)
@@ -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 )
{