From 5dc370ccfe5456e6868c03f2da0d4f881a6e857c Mon Sep 17 00:00:00 2001 From: Benny Prijono Date: Thu, 14 Feb 2008 09:57:05 +0000 Subject: Handle short files in WAV player git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@1791 74dad513-b988-da41-8d7b-12977e46ad98 --- pjmedia/src/pjmedia/wav_player.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'pjmedia/src') 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; -- cgit v1.2.3