Opened 18 years ago

Closed 18 years ago

Last modified 18 years ago

#409 closed defect (fixed)

subtitles persist between movies, may crash

Reported by: lorenm@… Owned by: alex@…
Priority: normal Component: vo
Version: HEAD Severity: normal
Keywords: Cc:
Blocked By: Blocking:
Reproduced by developer: no Analyzed by developer: no

Description

If I play multiple files with one invocation of MPlayer, and the 1st file has
subtitles, and the 2nd file doesn't, and I have viewed enough of the 1st file to
have seen at least one subtitle line, then MPlayer crashes when it reaches the
2nd file.
If the 2nd file does have subtitles, and a subtitle line was still on screen
when the 1st file finished (either due to EOF or because I pressed 'enter'),
then the same line is still displayed at the start of the 2nd file, and remains
on screen until some other subtitle line replaces it.

It looks to me like the cause is storing state in global variables, which are
not being reinitialized at a new file. (e.g. vo_sub at libvo/sub.c:329)

(gdb) r movie_with_subs.mkv movie_without_subs.avi
Starting program: /usr/local/bin/mplayer movie_with_subs.mkv movie_without_subs.avi
[Thread debugging using libthread_db enabled]
[New Thread 1079918464 (LWP 27216)]
Using GNU internationalization
Original domain: messages
Original dirname: /usr/share/locale
Current domain: mplayer
Current dirname: /usr/local/share/locale

MPlayer dev-CVS-051120-02:48-3.4.1 (C) 2000-2005 MPlayer Team
CPU: Advanced Micro Devices Sempron/Athlon MP/XP/XP-M Barton,Thorton (Family: 6,
Stepping: 0)
CPUflags: MMX: 1 MMX2: 1 3DNow: 1 3DNow2: 1 SSE: 1 SSE2: 0
Compiled for x86 CPU with extensions: MMX MMX2 3DNow 3DNowEx SSE

Playing movie_with_subs.mkv.
[mkv] Track ID 1: video (V_MPEG4/ISO/AVC), -vid 0
[mkv] Track ID 2: audio (A_VORBIS), -aid 0, -alang jpn
[mkv] Track ID 3: subtitles (S_TEXT/ASS), -sid 0, -slang eng
[mkv] Track ID 4: subtitles (S_TEXT/UTF8), -sid 1, -slang eng
[mkv] Will play video track 1
[mkv] Will play audio track 2
[mkv] Will display subtitle track 3
Matroska file format detected.
VIDEO: [avc1] 704x400 24bpp 23.976 fps 0.0 kbps ( 0.0 kbyte/s)
==========================================================================
Opening audio decoder: [libvorbis] Ogg/Vorbis audio decoder
AUDIO: 48000 Hz, 2 ch, s16le, 112.0 kbit/7.29% (ratio: 14000->192000)
Selected audio codec: [vorbis] afm: libvorbis (OggVorbis Audio Decoder)
==========================================================================
==========================================================================
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
Selected video codec: [ffh264] vfm: ffmpeg (FFmpeg H.264)
==========================================================================
Building audio filter chain for 48000Hz/2ch/s16le -> 0Hz/0ch/??...
AO: [oss] 48000Hz 2ch s16le (2 bytes per sample)
Building audio filter chain for 48000Hz/2ch/s16le -> 48000Hz/2ch/s16le...
Starting playback...
VDec: vo config request - 704 x 400 (preferred colorspace: Planar YV12)
VDec: using Planar YV12 as output csp (no 0)
Movie-Aspect is 1.76:1 - prescaling to correct movie aspect.
VO: [xmga] 704x400 => 704x400 Planar YV12
[mga] Using 3 buffers.
A: 2.2 V: 2.2 A-V: 0.032 ct: -0.054 54/ 54 26% 9% 1.8% 0 0 87%
Playing movie_without_subs.avi.
AVI file format detected.
VIDEO: [XVID] 704x400 24bpp 23.976 fps 948.2 kbps (115.7 kbyte/s)
==========================================================================
Opening audio decoder: [mp3lib] MPEG layer-2, layer-3
AUDIO: 48000 Hz, 2 ch, s16le, 128.0 kbit/8.33% (ratio: 16000->192000)
Selected audio codec: [mp3] afm: mp3lib (mp3lib MPEG layer-2, layer-3)
==========================================================================
==========================================================================
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
Selected video codec: [ffodivx] vfm: ffmpeg (FFmpeg MPEG-4)
==========================================================================
Building audio filter chain for 48000Hz/2ch/s16le -> 0Hz/0ch/??...
AO: [oss] 48000Hz 2ch s16le (2 bytes per sample)
Building audio filter chain for 48000Hz/2ch/s16le -> 48000Hz/2ch/s16le...
Starting playback...
VDec: vo config request - 704 x 400 (preferred colorspace: Planar YV12)
VDec: using Planar YV12 as output csp (no 0)
Movie-Aspect is 1.76:1 - prescaling to correct movie aspect.
VO: [xmga] 704x400 => 704x400 Planar YV12
[mga] Using 3 buffers.
A: 0.1 V: 0.0 A-V: 0.054 ct: -0.050 1/ 1 ??% ??% ??,?% 0 0 97%
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 1079918464 (LWP 27216)]
0x4107f9cb in strlen () from /lib/tls/libc.so.6
(gdb) bt
#0 0x4107f9cb in strlen () from /lib/tls/libc.so.6
#1 0x080c9568 in vo_update_osd (dxs=704, dys=400) at sub.c:370
#2 0x080ca883 in vo_draw_text (dxs=1717986918, dys=1717986918,
draw_alpha=0x80dd0e0 <draw_alpha>)

at sub.c:898

#3 0x080dd294 in draw_osd () at mga_common.c:51
#4 0x0812cf32 in control (vf=0x66666666, request=1717986918, data=0x2) at
vf_vo.c:61
#5 0x080f7f60 in decode_video (sh_video=0x87bd850,

start=0x66666666 <Address 0x66666666 out of bounds>, in_size=1717986918,

drop_frame=0)

at dec_video.c:340

#6 0x080a3c57 in main (argc=3, argv=0xbffff2f4) at mplayer.c:2650
(gdb)

Change History (4)

comment:1 by reimar, 18 years ago

I think this was fixed, please check

comment:2 by lorenm@…, 18 years ago

The bug still occurs as of dev-CVS-060511-16:34.

comment:3 by reimar, 18 years ago

Resolution: fixed
Status: newclosed

The critical point was that this only happened with embedded subtitles, not
external ones give with -sub.
Should now _really_ be fixed, if not reopen.

comment:4 by reimar, 18 years ago

Where "now" means SVN r20347

Note: See TracTickets for help on using tickets.