# HG changeset patch # User reimar # Date 1393178541 0 # Node ID 576724706b754ac8cbc8029d67ebd71910e23d42 # Parent 3f213bf6a8a297625530e60d46ea4b7008f4b678 Fix crashes with -novideo. Mostly caused by trying to set sh->ds, which is completely pointless since it's already set by the new_sh_* functions. diff -r 3f213bf6a8a2 -r 576724706b75 libmpdemux/demux_mpg.c --- a/libmpdemux/demux_mpg.c Sun Feb 23 17:42:01 2014 +0000 +++ b/libmpdemux/demux_mpg.c Sun Feb 23 18:02:21 2014 +0000 @@ -1082,12 +1082,9 @@ static demuxer_t* demux_mpg_es_open(demuxer_t* demuxer) { - sh_video_t *sh_video=NULL; - demuxer->audio->sh = NULL; // ES streams has no audio channel demuxer->video->sh = new_sh_video(demuxer,0); // create dummy video stream header, id=0 demuxer->video->id = 0; - sh_video=demuxer->video->sh;sh_video->ds=demuxer->video; return demuxer; } @@ -1096,28 +1093,22 @@ demuxer->audio->sh = NULL; demuxer->video->sh = new_sh_video(demuxer,0); demuxer->video->id = 0; - ((sh_video_t *)demuxer->video->sh)->ds = demuxer->video; demuxer->priv = (void *) 0xffffffff; return demuxer; } static demuxer_t* demux_mpg_ps_open(demuxer_t* demuxer) { - sh_audio_t *sh_audio=NULL; - sh_video_t *sh_video=NULL; - - sh_video=demuxer->video->sh;sh_video->ds=demuxer->video; + sh_video_t *sh_video = demuxer->video->sh; if(demuxer->audio->id!=-2) { if(!ds_fill_buffer(demuxer->audio)){ mp_msg(MSGT_DEMUXER,MSGL_INFO,"MPEG: " MSGTR_MissingAudioStream); demuxer->audio->sh=NULL; - } else { - sh_audio=demuxer->audio->sh;sh_audio->ds=demuxer->audio; } } - if(!sh_video->format && ps_probe > 0) { + if(sh_video && !sh_video->format && ps_probe > 0) { int head; off_t pos = stream_tell(demuxer->stream);