# HG changeset patch # User reimar # Date 1211909593 0 # Node ID c276296cb6f8f376946442b8e9ae880fbab289a2 # Parent c73c138aad885a55b868bb3e562aef259c9eaef2 Simplify/make new_sh behaviour more consistent when a stream gets redefined. diff -r c73c138aad88 -r c276296cb6f8 libmpdemux/demuxer.c --- a/libmpdemux/demuxer.c Tue May 27 17:30:20 2008 +0000 +++ b/libmpdemux/demuxer.c Tue May 27 17:33:13 2008 +0000 @@ -268,6 +268,7 @@ sh_audio_t *sh = calloc(1, sizeof(sh_audio_t)); mp_msg(MSGT_DEMUXER,MSGL_V,MSGTR_FoundAudioStream,id); demuxer->a_streams[id] = sh; + sh->aid = aid; // set some defaults sh->samplesize=2; sh->sample_format=AF_FORMAT_S16_NE; @@ -275,7 +276,6 @@ sh->pts=MP_NOPTS_VALUE; mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_AUDIO_ID=%d\n", aid); } - ((sh_audio_t *)demuxer->a_streams[id])->aid = aid; return demuxer->a_streams[id]; } @@ -299,11 +299,12 @@ if(demuxer->v_streams[id]){ mp_msg(MSGT_DEMUXER,MSGL_WARN,MSGTR_VideoStreamRedefined,id); } else { + sh_video_t *sh = calloc(1, sizeof(sh_video_t)); mp_msg(MSGT_DEMUXER,MSGL_V,MSGTR_FoundVideoStream,id); - demuxer->v_streams[id]=calloc(1, sizeof(sh_video_t)); + demuxer->v_streams[id] = sh; + sh->vid = vid; mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_VIDEO_ID=%d\n", vid); } - ((sh_video_t *)demuxer->v_streams[id])->vid = vid; return demuxer->v_streams[id]; }