From 76699d67f0969485e6d1e0ed81f60c406a40a22a Mon Sep 17 00:00:00 2001 From: reimar Date: Tue, 1 Sep 2009 14:51:49 +0000 Subject: Hack demux_demuxers so that demux_demuxers_fill_buffer is actually called. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29610 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libmpdemux/demux_demuxers.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/libmpdemux/demux_demuxers.c b/libmpdemux/demux_demuxers.c index 8f48cf77c1..5294f3c4d8 100644 --- a/libmpdemux/demux_demuxers.c +++ b/libmpdemux/demux_demuxers.c @@ -54,6 +54,9 @@ demuxer_t* new_demuxers_demuxer(demuxer_t* vd, demuxer_t* ad, demuxer_t* sd) { 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(demuxer_t *demux,demux_stream_t *ds) { 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); -- cgit v1.2.3