GNOME Bugzilla – Bug 601631
[regression] DVD forced subtitles no longer displayed
Last modified: 2018-05-04 09:17:39 UTC
When watching a DVD with totem 2.28.2 and gstreamer0.10-plugins-bad 0.10.14 in Ubuntu karmic, DVD forced subtitles don't display anymore. This worked fine in gst-plugins-bad 0.10.11. Steps to reproduce: - Open Star Wars DVD Ep IV DVD in totem. - Notice that Jabba doesn't get subtitled Regular subtitles work fine, it's the forced kind that don't.
I'll test with current git. Fairly sure that I've seen a forced subtitle recently. Also, I don't have Stars Wars Ep IV DVD - feel free to send me one ;)
I can't reproduce the problem using any of totem GIT, 2.28.2 from Karmic in any combination with either stock GStreamer on Karmic or GStreamer git - testing with 1 disc that has forced subtitles (Die Another Day, chapter 4-5) Could you attach some debug logs? GST_DEBUG=rsndvdsrc:5,dvdspu:5 /usr/bin/totem dvd:// > gst.log 2>&1 Then please gzip and send the gst.log file. Does it make any difference if you jump into the chapter directly vs letting the entire movie play?
Curiously, my DVD of Die Another Day has burned in subtitles. Here is a log file of Star Wars, selecting Chapter 24 from the chapter select menu at around 0:00:44 in the log file. I didn't try letting the entire movie play...I'll try that tomorrow, although selecting from the chapter menu works with 0.10.11.
Created attachment 147630 [details] Log file from star wars
You made me go back and check my Die Another Day. Definitely forced subpics. Sorry, the dvdspu info didn't make it into that log - I forgot that the SPU debug category changed name to 'gstspu', so it didn't get picked up. Also, the demuxer and selector logs might be useful, but at a lower level: GST_DEBUG=rsndvdsrc:5,gstspu:5,*demux:3,*selector:4 /usr/bin/totem dvd:// > gst.log 2>&1
Created attachment 147660 [details] new log Here is a new log. I click on chapter select around 0:00:51.
Created attachment 147705 [details] Debug excerpts After spending some time debugging, I can't see anything wrong. Compare the two snippets of debug log attached. In the Star Wars IV log, there is no Forced Display command in the subpicture packets, so they don't get rendered - the correct behaviour afaics. Could you make a log of the 0.10.11 behaviour?
Created attachment 147708 [details] log with 0.10.11 Here's the log with 0.10.11 from Ubuntu Jaunty
Created attachment 147709 [details] relevant part of log Here is the relevant part of the log. Looks like the "Forced Display" gets parsed as "Display On" in 0.10.14.
Created attachment 147712 [details] new debug snippet The problem is happening because it is getting different values for the subpicture streams to use from libdvdnav - and it ends up activating a different (and incorrect) subpicture stream. Is your Karmic libdvdnav the stock 4.1.3-3 from ubuntu?
Yes, it's the stock 4.1.3-3.
I just installed a clean Karmic on a test laptop, and get the same results.
Very strange... Testing a few more discs, all the subpicture events from libdvdnav seem correct for me. Are any other discs working incorrectly for you - perhaps displaying a different subpicture language than the one you select? I'm not sure what to look at next.
Thanks for spending time on this. I'm heading out to UDS in a few hours, but I'll try some different disks in a week when I get back.
Did you have a chance to test any other discs?
Not yet, I will soon. Sorry about the delay.
I finally found another DVD with player-generated forced subtitles. Most region 1 DVDs have burned-in subtitles. It's "This is Spinal Tap", and it worked ok with totem and gstreamer0.10-plugins-bad 0.10.14. Looks like there's something weird with the Star Wars DVD.
My interpretation of the Star Wars DVD behaviour is that it isn't supposed to show the forced subtitles by default. Do they show by default in any other DVD player?
They show by default in Xine, in my PS3, and my standalone DVD player.
Aha - yes, strong indications that there is something going wrong :)
Is this still a problem?
Yes, I have just tried the same Star Wars DVD on Ubuntu Natty, with totem 2.32.0 and gstreamer0.10-plugins-bad 0.10.21, and am still having the same issue. Forced subtitles for Jabba's lines aren't being displayed.
reopening...
Jan, others: has anyone tested this with recent 1.x ?
Things are still the same in 1.x, and I still don't know why the Star Wars EP IV disc behaves that way. It still seems like some subpicture streams on the disc have forced display commands for Jabba's speech, and others don't. In Jaunty, libdvdnav used to tell us to activate stream 2 - without setting the 'forced-only' flag, so we should have been displaying *all* subs. In more recent libdvdnav, it tells us to play stream 0, with the 'forced-only' flag set... but there's no forced subs in the stream. I'd suspect something changed in the dvdspu as well that broke forced-display command handling but I can't see anything like that in the code, and I'd expect anything that could break that would show up in other ways, since it'd imply we're walking the subs command chain wrong.
I finally found someone that has a Star Wars Ep IV DVD I can borrow, btw. With this disc, I don't have any forced sub-title events in the Jabba scene. What it seems to do on a real DVD player is select MPEG stream 0x2f, which has a version of the subtitles with only Jabba's speech - not forced subs, just enabling that track. libdvdnav tells us to use that track, but sets the 'forced-only' flag, so none of the subs get shown - they're not forced subs. The only part that doesn't make sense is the original trace from Marc from 6 (!) years ago showing forced subtitle commands in the subs stream. The only stream I have those on this disc is in menus.
Oh dear. I just worked out why this is broken, and what broke it. In order to try and skip annoying sequences at the start of the disc - trailers and warnings - and jump straight to the menu, I implemented a DVD fast-start feature like VLC has, which immediately jumps into the movie and then back out to the menu. It turns out that jumping like that skips some important one-time DVD VM setup stuff on this disc, that makes it enable the sub-title track by default. Without them, it ends up in forced-subs-only mode, and there's no forced subs. If you run with the env var DVDFASTSTART=no, the disc starts up and shows subs correctly, after you wait through the warnings and intro sequence :-/
I don't think there's a clean way to fix this, short of removing the very-useful fast-start function. We could expose fast-start in the UI of the players, but the link between that and this behaviour is unlikely to be clear to anyone.