summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--pjmedia/src/pjmedia/wav_player.c18
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);