aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar uau <uau@b3059339-0415-0410-9bf9-f77b7e298cf2>2009-11-02 01:40:09 +0000
committerGravatar uau <uau@b3059339-0415-0410-9bf9-f77b7e298cf2>2009-11-02 01:40:09 +0000
commitce2300b4379664de39c5d526df948c5dd9ba1f7f (patch)
tree21968d79919a6ed2ae995294dff0e236e5a427a7
parentb0d6753723f4b5ada75d20793be0118d63dfea5c (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.c26
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;
}