[MPlayer-users] DVD languages show as unknow aid: 128

Gonzalo Diethelm gonzalo.diethelm at diethelm.org
Wed May 18 06:15:11 CEST 2005


Hello, this is my first post. Thanks for a great piece of software.

I have been working (and learning) about adding subtitles to a DVD. I
own a copy of Fellowship of the Ring, Extended Edition, and it doesn't
have Spanish subtitles. So, I have done the following:

* Demultiplex the movie into video, audio and subtitles.
* Use OCR-like software to get an SRT file with the English subtitles.
* Download, correct and improve an SRT file with the Spanish subtitles.
* Reauthor a DVD (using IfoEdit on WinXP) with just the movie, English
sound track, English and Spanish subtitles. I did NOT forget to
correctly specify the language names for the audio and subtitles.

Everything works Ok; when I play the movie with PowerDVD on WinXP, the
menus show "English" as the only choice for audio, and "English" and
"Spanish" as choices for subtitles.

I transferred the files to my linux box (the AUDIO_TS and VIDEO_TS
directories are located under the .../FOTR1 directory), and launched
gmplayer like this:

   gmplayer -v -dvd-device .../FOTR1/ dvd://

I can watch the movie just fine, and I can switch between English and
Spanish subtitles. The thing that puzzles me is that gmplayer shows the
one audio language as "(null)", and the two subtitle languages as
"(null)". The verbose log shows the following:

Reading disc structure, please wait...
There are 1 titles on this DVD.
There are 28 chapters in this DVD title.
There are 1 angles in this DVD title.
DVD successfully opened.
[open] audio stream: 0 audio format: ac3 (5.1) language: unknown aid:
128
[open] number of audio channels on disk: 1.
[open] subtitle ( sid ): 0 language: unknown
[open] subtitle ( sid ): 1 language: unknown
[open] number of subtitles on disk: 2

I did take a look at the source code for mplayer, and the only way this
could happen is in libmpdemux/open.c, around line 300:

  audio_attr_t * audio = &vts_file->vtsi_mat->vts_audio_attr[i];
  int language = 0;
  char tmp[] = "unknown";

  if ( audio->lang_type == 1 )
   {
    language=audio->lang_code;
    tmp[0]=language>>8;
    tmp[1]=language&0xff;
    tmp[2]=0;
   }

I have no idea where audio->lang_type comes from, but it probably is not
1 and therefore tmp never gets assigned a proper value.

The case seems to be the same for subtitles, except that the check is
around line 375 and is against (subtitle->type == 1).

Anybody has any suggestions? Is this an mplayer issue (likely, since
PowerDVD works Ok when showing the language names) or is it an IfoEdit
issue?

Thanks and best regards,

-- 
Gonzalo Diethelm
gonzalo.diethelm at aditiva.com




More information about the MPlayer-users mailing list