diff options
author | Benny Prijono <bennylp@teluu.com> | 2008-01-12 15:30:15 +0000 |
---|---|---|
committer | Benny Prijono <bennylp@teluu.com> | 2008-01-12 15:30:15 +0000 |
commit | 754f91a4ebe3a3bd6b9516e1a9c87ed4e548cd9e (patch) | |
tree | 751c283c159ad32eebe34ef93f97ec1d3e08eac0 /pjmedia/src | |
parent | 9dafb305f70364ac05d9801beff77c772803d76c (diff) |
Another fix for ticket #447: WAV player cuts last data from the WAV file
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@1685 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjmedia/src')
-rw-r--r-- | pjmedia/src/pjmedia/wav_player.c | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/pjmedia/src/pjmedia/wav_player.c b/pjmedia/src/pjmedia/wav_player.c index 48b88943..2ec2ad2c 100644 --- a/pjmedia/src/pjmedia/wav_player.c +++ b/pjmedia/src/pjmedia/wav_player.c @@ -515,13 +515,6 @@ static pj_status_t file_get_frame(pjmedia_port *this_port, pj_assert(fport->base.info.signature == SIGNATURE); - /* Check EOF */ - if (fport->eof) { - frame->type = PJMEDIA_FRAME_TYPE_NONE; - frame->size = 0; - return PJ_EEOF; - } - //frame_size = fport->base.info.bytes_per_frame; //pj_assert(frame->size == frame_size); frame_size = frame->size; @@ -560,9 +553,16 @@ static pj_status_t file_get_frame(pjmedia_port *this_port, /* Second stage: fill up buffer, and read from the start of buffer. */ status = fill_buffer(fport); if (status != PJ_SUCCESS) { - pj_bzero(((char*)frame->buf)+endread, frame_size-endread); + /* If we don't get anything, return NONE frame. Otherwise + * return AUDIO frame since we have partial audio. + */ + if (endread == 0) { + frame->type = PJMEDIA_FRAME_TYPE_NONE; + } else { + pj_bzero(((char*)frame->buf)+endread, frame_size-endread); + } fport->readpos = fport->buf + fport->bufsize; - return status; + return PJ_SUCCESS; } pj_memcpy(((char*)frame->buf)+endread, fport->buf, frame_size-endread); |