diff options
Diffstat (limited to 'libmpdemux')
-rw-r--r-- | libmpdemux/demuxer.c | 15 |
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; } |