summaryrefslogtreecommitdiffstats
path: root/libmpdemux/demuxer.c
diff options
context:
space:
mode:
Diffstat (limited to 'libmpdemux/demuxer.c')
-rw-r--r--libmpdemux/demuxer.c15
1 files changed, 4 insertions, 11 deletions
diff --git a/libmpdemux/demuxer.c b/libmpdemux/demuxer.c
index 25c66f92ed..bb7c3568f1 100644
--- a/libmpdemux/demuxer.c
+++ b/libmpdemux/demuxer.c
@@ -646,19 +646,12 @@ int ds_get_packet_pts(demux_stream_t *ds, unsigned char **start, double *pts)
{
int len;
*pts = MP_NOPTS_VALUE;
- if (ds->buffer_pos >= ds->buffer_size) {
- if (!ds_fill_buffer(ds)) {
- // EOF
- *start = NULL;
- return -1;
- }
- }
+ len = ds_get_packet(ds, start);
+ if (len < 0)
+ return len;
// Return pts unless this read starts from the middle of a packet
- if (!ds->buffer_pos)
+ if (len == ds->buffer_pos)
*pts = ds->current->pts;
- len = ds->buffer_size - ds->buffer_pos;
- *start = &ds->buffer[ds->buffer_pos];
- ds->buffer_pos += len;
return len;
}