[MPlayer-cvslog] r29610 - trunk/libmpdemux/demux_demuxers.c

reimar subversion at mplayerhq.hu
Tue Sep 1 16:51:49 CEST 2009


Author: reimar
Date: Tue Sep  1 16:51:49 2009
New Revision: 29610

Log:
Hack demux_demuxers so that demux_demuxers_fill_buffer is actually called.

Modified:
   trunk/libmpdemux/demux_demuxers.c

Modified: trunk/libmpdemux/demux_demuxers.c
==============================================================================
--- trunk/libmpdemux/demux_demuxers.c	Tue Sep  1 14:12:45 2009	(r29609)
+++ trunk/libmpdemux/demux_demuxers.c	Tue Sep  1 16:51:49 2009	(r29610)
@@ -54,6 +54,9 @@ demuxer_t*  new_demuxers_demuxer(demuxer
   ret->video = vd->video;
   ret->audio = ad->audio;
   ret->sub = sd->sub;
+  if (vd) vd->video->demuxer = ret;
+  if (ad) ad->audio->demuxer = ret;
+  if (sd) sd->sub->demuxer = ret;
 
   // HACK?, necessary for subtitle (and audio and video when implemented) switching
   memcpy(ret->v_streams, vd->v_streams, sizeof(ret->v_streams));
@@ -70,11 +73,11 @@ static int demux_demuxers_fill_buffer(de
 
   priv=demux->priv;
 
-  if(ds->demuxer == priv->vd)
+  if(priv->vd && priv->vd->video == ds)
     return demux_fill_buffer(priv->vd,ds);
-  else if(ds->demuxer == priv->ad)
+  else if(priv->ad && priv->ad->audio == ds)
     return demux_fill_buffer(priv->ad,ds);
-  else if(ds->demuxer == priv->sd)
+  else if(priv->sd && priv->sd->sub == ds)
     return demux_fill_buffer(priv->sd,ds);
 
   mp_msg(MSGT_DEMUX,MSGL_WARN,MSGTR_MPDEMUX_DEMUXERS_FillBufferError);


More information about the MPlayer-cvslog mailing list