Mercurial > mplayer.hg
comparison libmpdemux/demuxer.c @ 15576:82fe45e7ca77
setting sh_audio to NULL is nonsense, since it is only a local variable,
use d_audio->sh instead.
Fixes crash for incoming/VTS_01_1_orig.VOB, though it still doesn't select
the other audio stream automatically.
author | reimar |
---|---|
date | Fri, 27 May 2005 12:38:29 +0000 |
parents | 536e50589652 |
children | 081bee8052cf |
comparison
equal
deleted
inserted
replaced
15575:b8cdc8b98466 | 15576:82fe45e7ca77 |
---|---|
1289 } | 1289 } |
1290 case DEMUXER_TYPE_LMLM4: { | 1290 case DEMUXER_TYPE_LMLM4: { |
1291 demux_open_lmlm4(demuxer); | 1291 demux_open_lmlm4(demuxer); |
1292 if(!ds_fill_buffer(d_video)){ | 1292 if(!ds_fill_buffer(d_video)){ |
1293 mp_msg(MSGT_DEMUXER,MSGL_INFO,"LMLM4: " MSGTR_MissingVideoStream); | 1293 mp_msg(MSGT_DEMUXER,MSGL_INFO,"LMLM4: " MSGTR_MissingVideoStream); |
1294 sh_video=NULL; | 1294 d_video->sh=NULL; |
1295 } else { | 1295 } else { |
1296 sh_video=d_video->sh;sh_video->ds=d_video; | 1296 sh_video=d_video->sh;sh_video->ds=d_video; |
1297 } | 1297 } |
1298 if(audio_id!=-2) { | 1298 if(audio_id!=-2) { |
1299 if(!ds_fill_buffer(d_audio)){ | 1299 if(!ds_fill_buffer(d_audio)){ |
1300 mp_msg(MSGT_DEMUXER,MSGL_INFO,"LMLM4: " MSGTR_MissingAudioStream); | 1300 mp_msg(MSGT_DEMUXER,MSGL_INFO,"LMLM4: " MSGTR_MissingAudioStream); |
1301 sh_audio=NULL; | 1301 d_audio->sh=NULL; |
1302 } else { | 1302 } else { |
1303 sh_audio=d_audio->sh;sh_audio->ds=d_audio; | 1303 sh_audio=d_audio->sh;sh_audio->ds=d_audio; |
1304 } | 1304 } |
1305 } | 1305 } |
1306 break; | 1306 break; |
1317 // demuxer->idx_pos=0; | 1317 // demuxer->idx_pos=0; |
1318 // demuxer->endpos=avi_header.movi_end; | 1318 // demuxer->endpos=avi_header.movi_end; |
1319 if(d_video->id != -2) { | 1319 if(d_video->id != -2) { |
1320 if(!ds_fill_buffer(d_video)){ | 1320 if(!ds_fill_buffer(d_video)){ |
1321 mp_msg(MSGT_DEMUXER,MSGL_WARN,"ASF: " MSGTR_MissingVideoStream); | 1321 mp_msg(MSGT_DEMUXER,MSGL_WARN,"ASF: " MSGTR_MissingVideoStream); |
1322 sh_video=NULL; | 1322 d_video->sh=NULL; |
1323 //printf("ASF: missing video stream!? contact the author, it may be a bug :(\n"); | 1323 //printf("ASF: missing video stream!? contact the author, it may be a bug :(\n"); |
1324 } else { | 1324 } else { |
1325 sh_video=d_video->sh;sh_video->ds=d_video; | 1325 sh_video=d_video->sh;sh_video->ds=d_video; |
1326 sh_video->fps=1000.0f; sh_video->frametime=0.001f; // 1ms | 1326 sh_video->fps=1000.0f; sh_video->frametime=0.001f; // 1ms |
1327 // sh_video->i_bps=10*asf_packetsize; // FIXME! | 1327 // sh_video->i_bps=10*asf_packetsize; // FIXME! |
1329 } | 1329 } |
1330 if(d_audio->id!=-2){ | 1330 if(d_audio->id!=-2){ |
1331 mp_msg(MSGT_DEMUXER,MSGL_V,MSGTR_ASFSearchingForAudioStream,d_audio->id); | 1331 mp_msg(MSGT_DEMUXER,MSGL_V,MSGTR_ASFSearchingForAudioStream,d_audio->id); |
1332 if(!ds_fill_buffer(d_audio)){ | 1332 if(!ds_fill_buffer(d_audio)){ |
1333 mp_msg(MSGT_DEMUXER,MSGL_INFO,"ASF: " MSGTR_MissingAudioStream); | 1333 mp_msg(MSGT_DEMUXER,MSGL_INFO,"ASF: " MSGTR_MissingAudioStream); |
1334 sh_audio=NULL; | 1334 d_audio->sh=NULL; |
1335 } else { | 1335 } else { |
1336 sh_audio=d_audio->sh;sh_audio->ds=d_audio; | 1336 sh_audio=d_audio->sh;sh_audio->ds=d_audio; |
1337 sh_audio->format=sh_audio->wf->wFormatTag; | 1337 sh_audio->format=sh_audio->wf->wFormatTag; |
1338 } | 1338 } |
1339 } | 1339 } |
1340 break; | 1340 break; |
1341 } | 1341 } |
1342 case DEMUXER_TYPE_H264_ES: | 1342 case DEMUXER_TYPE_H264_ES: |
1343 case DEMUXER_TYPE_MPEG4_ES: | 1343 case DEMUXER_TYPE_MPEG4_ES: |
1344 case DEMUXER_TYPE_MPEG_ES: { | 1344 case DEMUXER_TYPE_MPEG_ES: { |
1345 sh_audio=NULL; // ES streams has no audio channel | 1345 d_audio->sh=NULL; // ES streams has no audio channel |
1346 d_video->sh=new_sh_video(demuxer,0); // create dummy video stream header, id=0 | 1346 d_video->sh=new_sh_video(demuxer,0); // create dummy video stream header, id=0 |
1347 sh_video=d_video->sh;sh_video->ds=d_video; | 1347 sh_video=d_video->sh;sh_video->ds=d_video; |
1348 break; | 1348 break; |
1349 } | 1349 } |
1350 | 1350 |
1354 // if(demuxer->stream->type!=STREAMTYPE_VCD) demuxer->movi_start=0; // for VCD | 1354 // if(demuxer->stream->type!=STREAMTYPE_VCD) demuxer->movi_start=0; // for VCD |
1355 | 1355 |
1356 if(audio_id!=-2) { | 1356 if(audio_id!=-2) { |
1357 if(!ds_fill_buffer(d_audio)){ | 1357 if(!ds_fill_buffer(d_audio)){ |
1358 mp_msg(MSGT_DEMUXER,MSGL_INFO,"MPEG: " MSGTR_MissingAudioStream); | 1358 mp_msg(MSGT_DEMUXER,MSGL_INFO,"MPEG: " MSGTR_MissingAudioStream); |
1359 sh_audio=NULL; | 1359 d_audio->sh=NULL; |
1360 } else { | 1360 } else { |
1361 sh_audio=d_audio->sh;sh_audio->ds=d_audio; | 1361 sh_audio=d_audio->sh;sh_audio->ds=d_audio; |
1362 } | 1362 } |
1363 } | 1363 } |
1364 break; | 1364 break; |