diff libmpdemux/demux_demuxers.c @ 33237:a8619bfabf84

Add a alloc_demuxer function that ensures all the critical stuff is initialized and use it also in demux_demuxers.c. This fixes the OSD counter being stuck at 0.
author reimar
date Sun, 24 Apr 2011 23:06:38 +0000
parents 3ba59e647e58
children b09a5d9ff050
line wrap: on
line diff
--- a/libmpdemux/demux_demuxers.c	Sun Apr 24 21:32:36 2011 +0000
+++ b/libmpdemux/demux_demuxers.c	Sun Apr 24 23:06:38 2011 +0000
@@ -35,11 +35,10 @@
 extern const demuxer_desc_t demuxer_desc_demuxers;
 
 demuxer_t*  new_demuxers_demuxer(demuxer_t* vd, demuxer_t* ad, demuxer_t* sd) {
-  demuxer_t* ret;
+  // Video is the most important :-)
+  demuxer_t* ret = alloc_demuxer(vd->stream, DEMUXER_TYPE_DEMUXERS, vd->filename);
   dd_priv_t* priv;
 
-  ret = calloc(1,sizeof(demuxer_t));
-
   priv = malloc(sizeof(dd_priv_t));
   priv->vd = vd;
   priv->ad = ad;
@@ -47,8 +46,6 @@
   ret->priv = priv;
 
   ret->type = ret->file_format = DEMUXER_TYPE_DEMUXERS;
-  // Video is the most important :-)
-  ret->stream = vd->stream;
   ret->seekable = vd->seekable && ad->seekable && sd->seekable;
 
   ret->video = vd->video;