diff options
author | Darren Salt <linux@youmustbejoking.demon.co.uk> | 2010-01-21 22:01:35 +0000 |
---|---|---|
committer | Darren Salt <linux@youmustbejoking.demon.co.uk> | 2010-01-21 22:01:35 +0000 |
commit | 50fa703235d9478efb37374ccf9d009e875cd2d1 (patch) | |
tree | 7dfca8b7ef2cbb4f60ef21389b8302c20002625d | |
parent | 64a1c261e9dbbe32372cd2d8970186e4b62a5d80 (diff) | |
download | xine-lib-50fa703235d9478efb37374ccf9d009e875cd2d1.tar.gz xine-lib-50fa703235d9478efb37374ccf9d009e875cd2d1.tar.bz2 |
Revert a038e9625e79 (breaks A/V sync).
-rw-r--r-- | src/demuxers/demux_ts.c | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/src/demuxers/demux_ts.c b/src/demuxers/demux_ts.c index 1a016fea9..1a19340f3 100644 --- a/src/demuxers/demux_ts.c +++ b/src/demuxers/demux_ts.c @@ -987,7 +987,6 @@ static void demux_ts_buffer_pes(demux_ts_t*this, unsigned char *ts, m->buf->decoder_flags |= BUF_FLAG_FRAME_END; } m->buf->pts = m->pts; - m->pts = 0; m->buf->decoder_info[0] = 1; if( this->input->get_length (this->input) ) @@ -996,12 +995,12 @@ static void demux_ts_buffer_pes(demux_ts_t*this, unsigned char *ts, if (this->rate) m->buf->extra_info->input_time = (int)((int64_t)this->input->get_current_pos (this->input) * 1000 / (this->rate * 50)); -#ifdef TS_LOG - printf ("demux_ts: produced buffer, pts=%lld\n", m->buf->pts); -#endif m->fifo->put(m->fifo, m->buf); m->buffered_bytes = 0; m->buf = NULL; /* forget about buf -- not our responsibility anymore */ +#ifdef TS_LOG + printf ("demux_ts: produced buffer, pts=%lld\n", m->pts); +#endif } /* allocate the buffer here, as pes_header needs a valid buf for dvbsubs */ m->buf = m->fifo->buffer_pool_alloc(m->fifo); @@ -1034,7 +1033,6 @@ static void demux_ts_buffer_pes(demux_ts_t*this, unsigned char *ts, m->buf->size = m->buffered_bytes; m->buf->type = m->type; m->buf->pts = m->pts; - m->pts = 0; m->buf->decoder_info[0] = 1; if( this->input->get_length (this->input) ) m->buf->extra_info->input_normpos = (int)( (double) this->input->get_current_pos (this->input) * @@ -1042,12 +1040,15 @@ static void demux_ts_buffer_pes(demux_ts_t*this, unsigned char *ts, if (this->rate) m->buf->extra_info->input_time = (int)((int64_t)this->input->get_current_pos (this->input) * 1000 / (this->rate * 50)); -#ifdef TS_LOG - printf ("demux_ts: produced buffer, pts=%lld\n", m->buf->pts); -#endif + m->fifo->put(m->fifo, m->buf); m->buffered_bytes = 0; m->buf = m->fifo->buffer_pool_alloc(m->fifo); + +#ifdef TS_LOG + printf ("demux_ts: produced buffer, pts=%lld\n", m->pts); +#endif + } memcpy(m->buf->mem + m->buffered_bytes, ts, len); m->buffered_bytes += len; |