[MPlayer-users] Compiling current SVN with dvdnav support (and some other issues)

Alexander Roalter alex at roalter.it
Sat Jun 16 17:08:47 CEST 2007


In order to play the Sony's Arccos-Protected DVD I need dvdnav://, which 
plays these DVDs rather well, but I don't seem to be able to compile it 
again with current SVN.

My last working copy is SNV 22963, with current 23561 it is not possible 
to compile it as I did before. I have installed libdvdcss 1.2.9 in my 
system externally (as was suggested on this list time ago) to make it 
work with libdvdnav, which version is 0.1.10.

When doing configure in mplayer, dvdnav is not detected, as the test for 
dvdnav-config --version --minilibs is not understood by dvdnav-config, 
and so this check does not go through. Removing the --minilibs there, 
dvdnav is detected, but compile fails at the last stage (when linking 
mplayer)


stream/stream.a(stream_dvdnav.o): In function `seek':
stream_dvdnav.c:(.text+0x3d): undefined reference to `dvdnav_sector_search'
stream_dvdnav.c:(.text+0x4a): undefined reference to `dvdnav_err_to_string'
stream/stream.a(stream_dvdnav.o): In function `stream_dvdnav_close':
stream_dvdnav.c:(.text+0xa9): undefined reference to `dvdnav_close'
stream/stream.a(stream_dvdnav.o): In function `control':
stream_dvdnav.c:(.text+0x14b): undefined reference to 
`dvdnav_current_title_info'
stream_dvdnav.c:(.text+0x15d): undefined reference to `dvdnav_part_play'
stream_dvdnav.c:(.text+0x181): undefined reference to 
`dvdnav_current_title_info'
stream_dvdnav.c:(.text+0x198): undefined reference to 
`dvdnav_get_number_of_parts'
stream_dvdnav.c:(.text+0x1c3): undefined reference to 
`dvdnav_current_title_info'
stream/stream.a(stream_dvdnav.o): In function `open_s':
stream_dvdnav.c:(.text+0x25a): undefined reference to `dvdnav_open'
stream_dvdnav.c:(.text+0x2f3): undefined reference to 
`dvdnav_get_next_block'
stream_dvdnav.c:(.text+0x300): undefined reference to `dvdnav_sector_search'
stream_dvdnav.c:(.text+0x30b): undefined reference to 
`dvdnav_set_readahead_flag'
stream_dvdnav.c:(.text+0x319): undefined reference to 
`dvdnav_set_PGC_positioning_flag'
stream_dvdnav.c:(.text+0x344): undefined reference to 
`dvdnav_get_title_string'
stream_dvdnav.c:(.text+0x384): undefined reference to `dvdnav_title_play'
stream_dvdnav.c:(.text+0x3a3): undefined reference to `dvdnav_part_play'
stream_dvdnav.c:(.text+0x3b7): undefined reference to `dvdnav_angle_change'
stream_dvdnav.c:(.text+0x426): undefined reference to `dvdnav_get_position'
stream_dvdnav.c:(.text+0x485): undefined reference to `dvdnav_err_to_string'
stream_dvdnav.c:(.text+0x4f2): undefined reference to `dvdnav_menu_call'
stream_dvdnav.c:(.text+0x505): undefined reference to `dvdnav_menu_call'
stream_dvdnav.c:(.text+0x558): undefined reference to `dvdnav_err_to_string'
stream/stream.a(stream_dvdnav.o): In function `mp_dvdnav_handle_input':
stream_dvdnav.c:(.text+0x5a9): undefined reference to 
`dvdnav_get_current_nav_pci'
stream_dvdnav.c:(.text+0x627): undefined reference to 
`dvdnav_current_title_info'
stream_dvdnav.c:(.text+0x63c): undefined reference to `dvdnav_menu_call'
stream_dvdnav.c:(.text+0x651): undefined reference to `dvdnav_menu_call'
stream_dvdnav.c:(.text+0x666): undefined reference to `dvdnav_menu_call'
stream_dvdnav.c:(.text+0x695): undefined reference to 
`dvdnav_upper_button_select'
stream_dvdnav.c:(.text+0x6af): undefined reference to 
`dvdnav_get_current_highlight'
stream_dvdnav.c:(.text+0x6da): undefined reference to 
`dvdnav_mouse_activate'
stream_dvdnav.c:(.text+0x6e9): undefined reference to 
`dvdnav_button_activate'
stream_dvdnav.c:(.text+0x707): undefined reference to `dvdnav_menu_call'
stream_dvdnav.c:(.text+0x713): undefined reference to 
`dvdnav_right_button_select'
stream_dvdnav.c:(.text+0x71f): undefined reference to 
`dvdnav_left_button_select'
stream_dvdnav.c:(.text+0x72e): undefined reference to 
`dvdnav_lower_button_select'
stream/stream.a(stream_dvdnav.o): In function `mp_dvdnav_update_mouse_pos':
stream_dvdnav.c:(.text+0x782): undefined reference to 
`dvdnav_get_current_nav_pci'
stream_dvdnav.c:(.text+0x798): undefined reference to `dvdnav_mouse_select'
stream_dvdnav.c:(.text+0x7d7): undefined reference to 
`dvdnav_get_current_highlight'
stream/stream.a(stream_dvdnav.o): In function `dvdnav_lang_from_aid':
stream_dvdnav.c:(.text+0x809): undefined reference to 
`dvdnav_get_audio_logical_stream'
stream_dvdnav.c:(.text+0x819): undefined reference to 
`dvdnav_audio_stream_to_lang'
stream/stream.a(stream_dvdnav.o): In function `dvdnav_sid_from_lang':
stream_dvdnav.c:(.text+0x8be): undefined reference to 
`dvdnav_get_spu_logical_stream'
stream_dvdnav.c:(.text+0x8ce): undefined reference to 
`dvdnav_spu_stream_to_lang'
stream/stream.a(stream_dvdnav.o): In function `dvdnav_lang_from_sid':
stream_dvdnav.c:(.text+0x90a): undefined reference to 
`dvdnav_get_spu_logical_stream'
stream_dvdnav.c:(.text+0x916): undefined reference to 
`dvdnav_spu_stream_to_lang'
stream/stream.a(stream_dvdnav.o): In function `dvdnav_number_of_subs':
stream_dvdnav.c:(.text+0x967): undefined reference to 
`dvdnav_get_spu_logical_stream'
stream/stream.a(stream_dvdnav.o): In function `fill_buffer':
stream_dvdnav.c:(.text+0xa61): undefined reference to 
`dvdnav_get_next_block'
stream_dvdnav.c:(.text+0xa72): undefined reference to `dvdnav_err_to_string'
stream_dvdnav.c:(.text+0xb1e): undefined reference to `dvdnav_get_position'
stream_dvdnav.c:(.text+0xb47): undefined reference to 
`dvdnav_current_title_info'
stream_dvdnav.c:(.text+0xb7b): undefined reference to 
`dvdnav_get_current_nav_pci'
stream_dvdnav.c:(.text+0xb90): undefined reference to 
`dvdnav_get_current_highlight'
stream_dvdnav.c:(.text+0xc19): undefined reference to 
`dvdnav_current_title_info'
stream_dvdnav.c:(.text+0xd8c): undefined reference to `dvdnav_get_position'
stream_dvdnav.c:(.text+0xe21): undefined reference to `dvdnav_wait_skip'
stream_dvdnav.c:(.text+0xe75): undefined reference to `dvdnav_still_skip'
stream_dvdnav.c:(.text+0xeef): undefined reference to 
`dvdnav_get_current_nav_pci'
stream_dvdnav.c:(.text+0xf0b): undefined reference to 
`dvdnav_get_current_highlight'
collect2: ld returned 1 exit status
make: *** [mplayer] Error 1


Is there something I'm doing wrong?

Which version of dvdnav resp. dvdcss should be installed globally and 
which have to be left internally in mplayer (as with libdvdread?)
Is there a recipe of some sort to make this working?

On the other hand, I know subtitle support for DVDs is still lacking at 
a great deal, but is there some possibility to get these improved:
* Subtitle colors are somewhat off with DVDNAV (but not only). Is there 
a way to correctly refer to a palette (either externally or 
automatically in the appropriate IFO)?
* And there are still some issues with multi-angle and subtitles, as 
they appear altogether within one angle, which makes it ATM impossible 
to watch star wars with the correct subtitles (those foreign speeches) 
as everything is mixed up.
* within DVDnav mode, the lenght of the video is always 0 seconds 
(displayed in the OSD)
* with or withouth DVDnav, is there a possibility to switch between the 
current mpeg timestamp (which is sometimes restarted when at the layer 
break) and the real timestamp, i.e. when the timestamp goes to 0 after 
being somewhat other then zero, simply add these two???
* with -af xxxx, *any* filter applied thereafter breaks mplayer when the 
# key is pressed, thus making it impossible to switch audio channels 
during playback.
* I'm using dvdnav not for the menus, but for the working playback on 
the copy-protected discs. Is there any way this behavior could be 
implemented in the normal dvd playback mode, as I like its debug output 
much better (esp. the audio tracks/formats and subtitle listing).
* why cannot the audio track listing above tell on a AC3-2.0 soundtrack 
immediately if it is stereo or surround (I have to play it with -v to 
get this information. And
* is there a way to automatically turn on surround decoding (on 2.0 
surround material) and having it off all the other times

... just a few questions, simply answer to any one of them you have some 
insight into (or have some valid point for declaring it rubbish).



More information about the MPlayer-users mailing list