[libdvdnav-devel] Assert(0) failure with libdvdnav 5.0.3 and "Red Dragon" DVD

Chris Rankin rankincj at yahoo.com
Mon Jun 1 09:53:05 CEST 2015



Hi,


Playing the "Red Dragon" DVD with xine linked to the external libdvdnav-5.0.3 from Fedora 21. Clicking on a button on the main menu results in an assertion error:

xine: src/vm/vm.c:856: process_command: Assertion `0' failed.

Program received signal SIGABRT, Aborted.
[Switching to Thread 0x7fffa2fd9700 (LWP 13482)]
0x00007ffff58958d7 in __GI_raise (sig=sig at entry=6)
at ../sysdeps/unix/sysv/linux/raise.c:55
55    return INLINE_SYSCALL (tgkill, 3, pid, selftid, sig);

The line in question is:

case LinkPGCN:
    /* Link to Program Chain Number:data1 */
    if(!set_PGCN(vm, link_values.data1))
        assert(0);
    link_values = play_PGC(vm);
         break;

Full back-trace is:

#0  0x00007ffff58958d7 in __GI_raise (sig=sig at entry=6)
at ../sysdeps/unix/sysv/linux/raise.c:55
#1  0x00007ffff589753a in __GI_abort () at abort.c:89
#2  0x00007ffff588e47d in __assert_fail_base (fmt=0x7ffff59e7cb8 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=assertion at entry=0x7fffb31e7081 "0", file=file at entry=0x7fffb31e7aac "src/vm/vm.c", line=line at entry=856, function=function at entry=0x7fffb31e7b90 <__PRETTY_FUNCTION__.6581> "process_command")
at assert.c:92
#3  0x00007ffff588e532 in __GI___assert_fail (assertion=assertion at entry=0x7fffb31e7081 "0", file=file at entry=0x7fffb31e7aac "src/vm/vm.c", line=line at entry=856, function=function at entry=0x7fffb31e7b90 <__PRETTY_FUNCTION__.6581> "process_command") at assert.c:101
#4  0x00007fffb31e2963 in process_command (vm=vm at entry=0xfedcd0, link_values=...) at src/vm/vm.c:856
#5  0x00007fffb31e3b00 in vm_exec_cmd (vm=0xfedcd0, cmd=<optimized out>)
at src/vm/vm.c:676
#6  0x00007fffb31ddf18 in dvdnav_button_activate (this=0xfed320, pci=0x7fffa2fd89a0) at src/highlight.c:383
#7  0x00007fffb33f1310 in dvd_handle_events ()
at /usr/lib64/xine/plugins/2.5/xineplug_inp_dvd.so
#8  0x00007fffb33f1b06 in dvd_plugin_read_block ()
at /usr/lib64/xine/plugins/2.5/xineplug_inp_dvd.so
#9  0x00007ffff7b9e63a in cache_plugin_read_block () at /lib64/libxine.so.2
#10 0x00007fffa93287b1 in demux_mpeg_block_parse_pack ()
at /usr/lib64/xine/plugins/2.5/xineplug_dmx_mpeg_block.so
#11 0x00007fffa932957b in demux_mpeg_block_send_chunk ()
at /usr/lib64/xine/plugins/2.5/xineplug_dmx_mpeg_block.so
#12 0x00007ffff7b96ab8 in demux_loop () at /lib64/libxine.so.2
#13 0x00007ffff604452a in start_thread (arg=0x7fffa2fd9700)
at pthread_create.c:310
#14 0x00007ffff596122d in clone ()
at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Curiously, this DVD plays correctly when xine is linked against the (older) copy of libdvdnav that is contained within the xine-lib-1.2 sources. However, this copy is incompatible with libdvdcss 1.3. (I am investigating the history of xine's internal libdvdnav.)


Cheers,
Chris


More information about the libdvdnav-devel mailing list