[MPlayer-cvslog] r29812 - trunk/libmpdemux/demuxer.c

uau subversion at mplayerhq.hu
Mon Nov 2 02:40:10 CET 2009


Author: uau
Date: Mon Nov  2 02:40:09 2009
New Revision: 29812

Log:
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.

Modified:
   trunk/libmpdemux/demuxer.c

Modified: trunk/libmpdemux/demuxer.c
==============================================================================
--- trunk/libmpdemux/demuxer.c	Mon Nov  2 01:11:30 2009	(r29811)
+++ trunk/libmpdemux/demuxer.c	Mon Nov  2 02:40:09 2009	(r29812)
@@ -187,27 +187,11 @@ void free_demuxer_stream(demux_stream_t 
 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;
 }
 


More information about the MPlayer-cvslog mailing list