[MPlayer-dev-eng] Segfault while accessing a DVD, try to acces an invalid pointer
Nico Sabbi
nicola_sabbi at fastwebnet.it
Wed May 16 23:34:03 CEST 2007
Guillaume LECERF wrote:
> Hi all,
>
> While playing with mplayer and the dvdnav patch,
you are using plain dvd:// here, so which dvdnav patch are you
referring to? Otvos' ?
If so try with a latest (and plain) svn checkout or I won't be able to
help you
> I made my tests with a snowboard dvd, that's crashed mplayer. I can't say that it's my dvd
> disc fault, because I don't have any other dvd to test with, but I
> investigated further :
> Here is the gdb dump :
>
> Reading disc structure, please wait...
> ID_DVD_TITLES=7
> ID_DVD_TITLE_1_CHAPTERS=1
> ID_DVD_TITLE_1_ANGLES=1
> ID_DVD_TITLE_2_CHAPTERS=1
> ID_DVD_TITLE_2_ANGLES=1
> ID_DVD_TITLE_3_CHAPTERS=1
> ID_DVD_TITLE_3_ANGLES=1
> ID_DVD_TITLE_4_CHAPTERS=1
> ID_DVD_TITLE_4_ANGLES=1
> ID_DVD_TITLE_5_CHAPTERS=1
> ID_DVD_TITLE_5_ANGLES=1
> ID_DVD_TITLE_6_CHAPTERS=1
> ID_DVD_TITLE_6_ANGLES=1
> ID_DVD_TITLE_7_CHAPTERS=1
> ID_DVD_TITLE_7_ANGLES=1
> ID_DVD_TITLE_1_LENGTH=100.120
> ID_DVD_TITLE_2_LENGTH=1097.720
> ID_DVD_TITLE_3_LENGTH=318.920
> ID_DVD_TITLE_4_LENGTH=243.880
> ID_DVD_TITLE_5_LENGTH=80.280
> ID_DVD_TITLE_6_LENGTH=109.240
> ID_DVD_TITLE_7_LENGTH=68.520
> ID_DVD_DISC_ID=4C823A26C883D6CCADAE03D1986FEAB0
> There are 7 titles on this DVD.
> ID_DVD_CURRENT_TITLE=1
> There are 1 chapters in this DVD title.
> There are 1 angles in this DVD title.
> DVD successfully opened.
> audio stream: 0 format: lpcm (stereo) language: aid: 160.
> ID_AUDIO_ID=160
> number of audio channels on disk: 1.
> number of subtitles on disk: 0
>
> Program received signal SIGSEGV, Segmentation fault.
> open_s (stream=0x885e9b8, mode=0, opts=0x885a868,
> file_format=0x866a748) at stream_dvd.c:1200
> 1200 d->cur_cell = d->cur_pgc->program_map[pgn-1] - 1; // start
> playback here
> (gdb) bt
> #0 open_s (stream=0x885e9b8, mode=0, opts=0x885a868,
> file_format=0x866a748) at stream_dvd.c:1200
> #1 0x0817e137 in open_stream_plugin (sinfo=0x86a0400,
> filename=0x881a680 "dvd://", mode=0, options=0x881a686,
> file_format=0x866a748, ret=0xbf9cc568) at stream.c:179
> #2 0x0817e3b6 in open_stream_full (filename=0x881a680 "dvd://",
> mode=0, options=0x0, file_format=0x866a748) at stream.c:236
> #3 0x0817dac2 in open_stream (filename=0x0, options=0x0,
> file_format=0x886514c) at open.c:46
> #4 0x0807d242 in main (argc=2, argv=0xbf9cd7b4) at mplayer.c:3322
> (gdb) l
> 1195 */
> 1196 pgc_id =
> vts_file->vts_ptt_srpt->title[ttn].ptt[dvd_chapter-1].pgcn; // local
> 1197 pgn =
> vts_file->vts_ptt_srpt->title[ttn].ptt[dvd_chapter-1].pgn; // local
> 1198 d->cur_pgc_idx = pgc_id-1;
> 1199 d->cur_pgc = vts_file->vts_pgcit->pgci_srp[pgc_id-1].pgc;
> 1200 d->cur_cell = d->cur_pgc->program_map[pgn-1] - 1; // start
> playback here
> 1201 d->packs_left=-1; // for Navi stuff
> 1202 d->angle_seek=0;
> 1203 /* XXX dvd_last_chapter is in the range 1..nr_of_ptts */
> 1204 if(dvd_last_chapter > 0 && dvd_last_chapter <
> tt_srpt->title[dvd_title].nr_of_ptts) {
>
>
> Actually pgn == 0, and then d->cur_pgc->program_map[pgn-1] is an
> invalid pointer.
>
> Can you please give me your advices on this one ?
>
[nico at xp mp7]$ wc -l stream/stream_dvd.c
1143 stream/stream_dvd.c
[nico at xp mp7]$
so you must be using a heavily modified stream_dvd.c
More information about the MPlayer-dev-eng
mailing list