summaryrefslogtreecommitdiff
path: root/pjmedia/src
diff options
context:
space:
mode:
authorBenny Prijono <bennylp@teluu.com>2008-02-14 09:57:05 +0000
committerBenny Prijono <bennylp@teluu.com>2008-02-14 09:57:05 +0000
commit5dc370ccfe5456e6868c03f2da0d4f881a6e857c (patch)
tree1a03954e04bd114a6e479fad3eec6d5a8ceb5ec9 /pjmedia/src
parent338642be62d4d376dd7e866e482b7d55aec0d775 (diff)
Handle short files in WAV player
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@1791 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjmedia/src')
-rw-r--r--pjmedia/src/pjmedia/wav_player.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/pjmedia/src/pjmedia/wav_player.c b/pjmedia/src/pjmedia/wav_player.c
index 64b81e38..048acfd3 100644
--- a/pjmedia/src/pjmedia/wav_player.c
+++ b/pjmedia/src/pjmedia/wav_player.c
@@ -328,7 +328,7 @@ PJ_DEF(pj_status_t) pjmedia_wav_player_port_create( pj_pool_t *pool,
pj_file_close(fport->fd);
return PJMEDIA_EWAVEUNSUPP;
}
- if (wave_hdr.data_hdr.len < 400) {
+ if (wave_hdr.data_hdr.len < 200) {
pj_file_close(fport->fd);
return PJMEDIA_EWAVETOOSHORT;
}
@@ -351,6 +351,13 @@ PJ_DEF(pj_status_t) pjmedia_wav_player_port_create( pj_pool_t *pool,
pj_strdup2(pool, &fport->base.info.name, filename);
+ /* If file is shorter than buffer size, adjust buffer size to file
+ * size. Otherwise EOF callback will be called multiple times when
+ * fill_buffer() is called.
+ */
+ if (wave_hdr.data_hdr.len < (unsigned)buff_size)
+ buff_size = wave_hdr.data_hdr.len;
+
/* Create file buffer.
*/
fport->bufsize = buff_size;