diff options
author | uau <uau@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2009-11-02 01:40:09 +0000 |
---|---|---|
committer | uau <uau@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2009-11-02 01:40:09 +0000 |
commit | ce2300b4379664de39c5d526df948c5dd9ba1f7f (patch) | |
tree | 21968d79919a6ed2ae995294dff0e236e5a427a7 | |
parent | b0d6753723f4b5ada75d20793be0118d63dfea5c (diff) |
demuxer.c: Add initialization missing from previous commit
Reimar's previous commit ("Unbreak the demuxer-specific code in
video.c with e.g.") added the new field "non_interleaved" in
demux_stream structs, but this field was not initialized anywhere.
Under suitable circumstances this could cause a "Too many
video/audio packets in the buffer" error and failing playback. Fix
the problem by cleaning up the code that creates new instances of the
struct. Now fields will be initialized to 0 by default.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29812 b3059339-0415-0410-9bf9-f77b7e298cf2
-rw-r--r-- | libmpdemux/demuxer.c | 26 |
1 files changed, 5 insertions, 21 deletions
diff --git a/libmpdemux/demuxer.c b/libmpdemux/demuxer.c index bb40596dd5..ffcbd93e44 100644 --- a/libmpdemux/demuxer.c +++ b/libmpdemux/demuxer.c @@ -187,27 +187,11 @@ void free_demuxer_stream(demux_stream_t *ds) demux_stream_t *new_demuxer_stream(struct demuxer_st *demuxer, int id) { demux_stream_t *ds = malloc(sizeof(demux_stream_t)); - ds->buffer_pos = ds->buffer_size = 0; - ds->buffer = NULL; - ds->pts = 0; - ds->pts_bytes = 0; - ds->eof = 0; - ds->pos = 0; - ds->dpos = 0; - ds->pack_no = 0; - - ds->packs = 0; - ds->bytes = 0; - ds->first = ds->last = ds->current = NULL; - ds->id = id; - ds->demuxer = demuxer; - - ds->asf_seq = -1; - ds->asf_packet = NULL; - - ds->ss_mul = ds->ss_div = 0; - - ds->sh = NULL; + *ds = (demux_stream_t){ + .id = id, + .demuxer = demuxer, + .asf_seq = -1, + }; return ds; } |