Re: Scene index does not work on a DVD

Mikhail Ramendik <[email protected]> Sat, 1 Oct 2005 05:29:58 +0400
Newsgroups gmane.comp.video.ogle.user
Message-ID <[email protected]>
=F7 =D3=CF=CF=C2=DD=C5=CE=C9=C9 =CF=D4 1 =CF=CB=D4=D1=C2=D2=D1 2005 04:28=
 Bj|rn Englund =CE=C1=D0=C9=D3=C1=CC(a):

> > (gdb) bt
> > #0  0x420746f0 in mallopt () from /lib/tls/libc.so.6
> > #1  0x4207389d in malloc () from /lib/tls/libc.so.6
> > (gdb)
>
> Could you try using the 'up' command (one or more times) and then 'bt',
> to see what is calling malloc?

Unfortunately this did not help.

Program received signal SIGSEGV, Segmentation fault.
0x420746f0 in mallopt () from /lib/tls/libc.so.6
(gdb) up
#1  0x4207389d in malloc () from /lib/tls/libc.so.6
(gdb) up
Initial frame selected; you cannot go up.
(gdb) bt
#0  0x420746f0 in mallopt () from /lib/tls/libc.so.6
#1  0x4207389d in malloc () from /lib/tls/libc.so.6

I have dome ny own investigation. The tail of ogle's output:

libdvdread: Get key for /VIDEO_TS/VIDEO_TS.VOB at 0x00000128
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_01_0.VOB at 0x000081a3
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_01_1.VOB at 0x0000c298
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_02_0.VOB at 0x0022d4fe
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_02_1.VOB at 0x0022d502
libdvdread: Elapsed time 0
libdvdread: Found 2 VTS's
libdvdread: Elapsed time 0
Debug[ogle_ctrl]: Started /usr/local/lib/ogle/ogle_mpeg_vs_debug with pid=
 7716
Debug[ogle_ctrl]: Getting 3125920 bytes sysv shm
Debug[ogle_ctrl]: got capability video_out
Xscreensaver not running.

This last line brings us to a call in mpeg2_video_output.c. I added some =
debug=20
output after that, and found the line of code in mpeg2_video_output.c whe=
re=20
this happens. It was:

q_elem_id =3D get_next_picture_q_elem_id(cur_data_q);

Then I went into get_next_picture_q_elem_id and started adding debug outp=
ut=20
there. The culprit seems to be the *second* call (in the same loop) to=20
MsgNextEventInterruptible. That, in turn, simply calls MsgNextEvent_inter=
nal.

This, however, is where I got lost. I tried adding debug output to=20
MsgNextEvent_internal, but the problem is, the output continues when the =
gdb=20
window appears, and I can not track the exact moment when it appears -=20
therefore can not track the culprit.=20

--=20
Yours, Mikhail Ramendik