diff options
author | Miguel Freitas <miguelfreitas@users.sourceforge.net> | 2002-12-08 21:43:50 +0000 |
---|---|---|
committer | Miguel Freitas <miguelfreitas@users.sourceforge.net> | 2002-12-08 21:43:50 +0000 |
commit | 180ace8c194d76ba780847ea5b4eb3e6adf5befb (patch) | |
tree | 0fb5c990783df8487b97fe0aada2ab709721c2e9 /src/demuxers/demux_asf.c | |
parent | 3c919d37ea15fa0d0b1d63203a8ce2f7129a6f55 (diff) | |
download | xine-lib-180ace8c194d76ba780847ea5b4eb3e6adf5befb.tar.gz xine-lib-180ace8c194d76ba780847ea5b4eb3e6adf5befb.tar.bz2 |
- get xine_demux_control_headers_done() out of the demuxers.
i want to make sure we have a 1:1 mapping of sending and waiting for BUF_CONTROL_HEADERS_DONE.)
- bring asf demuxer into a saner state when seeking. that fixes the problem
of wrong audio pts and hanging audio_out on huge sleeps (at least for asf).
CVS patchset: 3465
CVS date: 2002/12/08 21:43:50
Diffstat (limited to 'src/demuxers/demux_asf.c')
-rw-r--r-- | src/demuxers/demux_asf.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/src/demuxers/demux_asf.c b/src/demuxers/demux_asf.c index 135e93924..61fceabec 100644 --- a/src/demuxers/demux_asf.c +++ b/src/demuxers/demux_asf.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: demux_asf.c,v 1.86 2002/12/06 19:23:29 miguelfreitas Exp $ + * $Id: demux_asf.c,v 1.87 2002/12/08 21:43:50 miguelfreitas Exp $ * * demultiplexer for asf streams * @@ -1527,14 +1527,14 @@ static void demux_asf_send_headers (demux_plugin_t *this_gen) { this->frame = 0; this->nb_frames = 1; - xine_demux_control_headers_done (this->stream); } static int demux_asf_seek (demux_plugin_t *this_gen, off_t start_pos, int start_time) { demux_asf_t *this = (demux_asf_t *) this_gen; - + int i; + this->status = DEMUX_OK; xine_demux_flush_engine(this->stream); @@ -1549,6 +1549,12 @@ static int demux_asf_seek (demux_plugin_t *this_gen, this->packet_size_left = 0; this->keyframe_found = (this->num_video_streams==0); + for(i = 0; i < this->num_streams; i++) { + this->streams[i].frag_offset = 0; + this->streams[i].seq = 0; + this->streams[i].timestamp = 0; + } + if (this->input->get_capabilities(this->input) & INPUT_CAP_SEEKABLE) { if ( (!start_pos) && (start_time)) |