diff options
author | Petri Hintukainen <phintuka@users.sourceforge.net> | 2011-10-29 20:58:00 +0300 |
---|---|---|
committer | Petri Hintukainen <phintuka@users.sourceforge.net> | 2011-10-29 20:58:00 +0300 |
commit | a5316c7a71762e559597b5804924f872c317443f (patch) | |
tree | 86eabb184af4681da9a6f9fad790128fa3b74934 /src | |
parent | 333a24be88d97f28712be0f899d33540c9b1b903 (diff) | |
download | xine-lib-a5316c7a71762e559597b5804924f872c317443f.tar.gz xine-lib-a5316c7a71762e559597b5804924f872c317443f.tar.bz2 |
demux_ts: splitted update_extra_info()
Diffstat (limited to 'src')
-rw-r--r-- | src/demuxers/demux_ts.c | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/src/demuxers/demux_ts.c b/src/demuxers/demux_ts.c index f2276b93e..0ced0878a 100644 --- a/src/demuxers/demux_ts.c +++ b/src/demuxers/demux_ts.c @@ -1079,6 +1079,20 @@ static int demux_ts_parse_pes_header (xine_t *xine, demux_ts_media *m, return 0 ; } +static void update_extra_info(demux_ts_t *this, demux_ts_media *m) +{ + off_t length = this->input->get_length (this->input); + + /* cache frame position */ + + if (length > 0) { + m->input_normpos = (double)this->frame_pos * 65535.0 / length; + } + if (this->rate) { + m->input_time = this->frame_pos * 1000 / this->rate; + } +} + /* * buffer arriving pes data */ @@ -1128,14 +1142,7 @@ static void demux_ts_buffer_pes(demux_ts_t*this, unsigned char *ts, memcpy(m->buf->mem, ts+len-m->size, m->size); m->buf->size = m->size; - /* cache frame position */ - off_t length = this->input->get_length (this->input); - if (length > 0) { - m->input_normpos = (double)this->frame_pos * 65535.0 / length; - } - if (this->rate) { - m->input_time = this->frame_pos * 1000 / this->rate; - } + update_extra_info(this, m); /* rate estimation */ if ((this->tbre_pid == INVALID_PID) && (this->audio_fifo == m->fifo)) |