summaryrefslogtreecommitdiffstats
path: root/demux/demux_raw.c
diff options
context:
space:
mode:
Diffstat (limited to 'demux/demux_raw.c')
-rw-r--r--demux/demux_raw.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/demux/demux_raw.c b/demux/demux_raw.c
index 63674cea0c..9d649c07a0 100644
--- a/demux/demux_raw.c
+++ b/demux/demux_raw.c
@@ -200,7 +200,7 @@ static int raw_fill_buffer(demuxer_t *demuxer)
return 0;
struct demux_packet *dp = new_demux_packet(p->frame_size * p->read_frames);
- dp->pos = stream_tell(demuxer->stream) - demuxer->stream->start_pos;
+ dp->pos = stream_tell(demuxer->stream);
dp->pts = (dp->pos / p->frame_size) / p->frame_rate;
int len = stream_read(demuxer->stream, dp->buffer, dp->len);
@@ -215,11 +215,10 @@ static void raw_seek(demuxer_t *demuxer, float rel_seek_secs, int flags)
struct priv *p = demuxer->priv;
stream_t *s = demuxer->stream;
stream_update_size(s);
- int64_t start = s->start_pos;
int64_t end = s->end_pos;
- int64_t pos = (flags & SEEK_ABSOLUTE) ? start : stream_tell(s);
+ int64_t pos = (flags & SEEK_ABSOLUTE) ? 0 : stream_tell(s);
if (flags & SEEK_FACTOR)
- pos += (end - start) * rel_seek_secs;
+ pos += end * rel_seek_secs;
else
pos += rel_seek_secs * p->frame_rate * p->frame_size;
if (pos < 0)
@@ -237,12 +236,11 @@ static int raw_control(demuxer_t *demuxer, int cmd, void *arg)
case DEMUXER_CTRL_GET_TIME_LENGTH: {
stream_t *s = demuxer->stream;
stream_update_size(s);
- int64_t start = s->start_pos;
int64_t end = s->end_pos;
if (!end)
return DEMUXER_CTRL_DONTKNOW;
- *((double *) arg) = ((end - start) / p->frame_size) / p->frame_rate;
+ *((double *) arg) = (end / p->frame_size) / p->frame_rate;
return DEMUXER_CTRL_OK;
}
default: