I believe the wrong field is being used for the subtitle "Content". Here's an example for a dvd with 9 subtitle streams:
$ shrip list --device=dvd/VIDEO_TS --title=1 --subtitles
Title: 01, Length: 02:11:55, Chapters: 16, Audio streams: 05, Subpictures: 09
Subtitle: 01, Language: en, Content: Undefined
Subtitle: 02, Language: en, Content: Undefined
Subtitle: 03, Language: zh, Content: Undefined
Subtitle: 04, Language: zh, Content: Undefined
Subtitle: 05, Language: fr, Content: Undefined
Subtitle: 06, Language: ko, Content: Undefined
Subtitle: 07, Language: es, Content: Undefined
Subtitle: 08, Language: th, Content: Undefined
Subtitle: 09, Language: fr, Content: Undefined
Notice the "Content" field is Undefined for all streams.
For comparison, here's similar output using lsdvd:
$ lsdvd -qst1 dvd/VIDEO_TS
Title: 01, Length: 02:11:55.066 Chapters: 16, Cells: 17, Audio streams: 05, Subpictures: 09
Subtitle: 01, Language: en - English, Content: Normal, Stream id: 0x20,
Subtitle: 02, Language: en - English, Content: Normal_CC, Stream id: 0x21,
Subtitle: 03, Language: zh - Chinese, Content: Normal, Stream id: 0x22,
Subtitle: 04, Language: zh - Chinese, Content: Normal, Stream id: 0x23,
Subtitle: 05, Language: fr - Francais, Content: Normal, Stream id: 0x24,
Subtitle: 06, Language: ko - Korean, Content: Normal, Stream id: 0x25,
Subtitle: 07, Language: es - Espanol, Content: Normal, Stream id: 0x26,
Subtitle: 08, Language: th - Thai, Content: Normal, Stream id: 0x27,
Subtitle: 09, Language: fr - Francais, Content: Undefined, Stream id: 0x28,
Notice all subtitles (except 9) contain some kind of "Content".
After poking around in the code for a bit I found ogmdvd-disc.c (line 341 - version 1.0.1) is using the "lang_extension" attribute and I think it should be using the "code_extension" attribute. I think that for 3 reason;
After a little code change, here's what I see:
$ LD_LIBRARY_PATH=ogmrip-1.0.1-subp/libogmdvd/.libs shrip list --device=dvd/VIDEO_TS --title=1 --subtitles
Title: 01, Length: 02:11:55, Chapters: 16, Audio streams: 05, Subpictures: 09
Subtitle: 01, Language: en, Content: Normal
Subtitle: 02, Language: en, Content: Normal_CC
Subtitle: 03, Language: zh, Content: Normal
Subtitle: 04, Language: zh, Content: Normal
Subtitle: 05, Language: fr, Content: Normal
Subtitle: 06, Language: ko, Content: Normal
Subtitle: 07, Language: es, Content: Normal
Subtitle: 08, Language: th, Content: Normal
Subtitle: 09, Language: fr, Content: Undefined
I haven't done much research on the difference between lang_extension and code_extension, so I don't know if that's always the case. I did check about a dozen dvds I have and in all cases when there was some kind of content, the modified version of ogmdvd-disc.c, displayed the same information as lsdvd, whereas the unmodified version ALWAYS showed "undefined".
Here's a couple links to some dvd info that might be useful in determining if one or the other should be used:
And looking in the libdvdread source (src/dvdread/ifo_types.h) I found this comment:
/*
* type: 0 not specified
* 1 language
* 2 other
* coding mode: 0 run length
* 1 extended
* 2 other
* language: indicates language if type == 1
* lang extension: if type == 1 contains the lang extension
*/
I don't know exactly what that means, but thought it MIGHT mean "lang_extension" should be used if type == 1 and code_extension should be used otherwise. But that's just a wild guess.
If the simple solution (just use code_extension) is the way to go, then the attached patch (subp.patch) should do the trick. It changes lang_extension to code_extension in the following 3 files: