# HG changeset patch # User reimar # Date 1392416976 0 # Node ID d29468059da8ffa7d7ef566046e1d6b3788c3eb8 # Parent 690ca924c15a5e74d0c9e59d0be806c7463e8b78 Make sure that demuxer priv is allocated early enough. Fixes not being able to switch audio streams any more. diff -r 690ca924c15a -r d29468059da8 libmpdemux/demux_mpg.c --- a/libmpdemux/demux_mpg.c Fri Feb 14 22:29:35 2014 +0000 +++ b/libmpdemux/demux_mpg.c Fri Feb 14 22:29:36 2014 +0000 @@ -189,14 +189,13 @@ /// Open an mpg physical stream static demuxer_t* demux_mpg_open(demuxer_t* demuxer) { stream_t *s = demuxer->stream; - mpg_demuxer_t* mpg_d; + mpg_demuxer_t* mpg_d = calloc(1,sizeof(*mpg_d)); + if (!mpg_d) + return NULL; + demuxer->priv = mpg_d; while (demuxer->video->packs + demuxer->audio->packs < 2) if (!ds_fill_buffer(demuxer->video)) return 0; - mpg_d = calloc(1,sizeof(mpg_demuxer_t)); - if(mpg_d) - { - demuxer->priv = mpg_d; mpg_d->last_pts = -1.0; mpg_d->first_pts = -1.0; @@ -245,7 +244,6 @@ stream_seek(s,pos); ds_fill_buffer(demuxer->video); } // if ( demuxer->seekable ) - } // if ( mpg_d ) return demuxer; }