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

Chris Rankin rankincj at yahoo.com
Wed Jun 3 00:10:37 CEST 2015

> Not sure it's the right one, tbh.

The "JumpVTS_PTT" and "JumpVTS_TT" commands are both documented as:

"Only allowed from the VTS Menu Domain(VTSM) or the Video Title Set Domain(VTS)"

with an assert to match:

    assert(vm->state.domain == DVD_DOMAIN_VTSMenu || vm->state.domain == DVD_DOMAIN_VTSTitle);

Both of these commands call set_VTS_PTT() - either directly or indirectly - which explicitly sets the domain to DVD_DOMAIN_VTSTitle:

src/vm/getset.c, line 63:

    (vm->state).domain = DVD_DOMAIN_VTSTitle;

I'm thinking that this is A Bad Thing when vm->state.domain is *legitimately* DVD_DOMAIN_VTSMenu. It would also imply that my fix (if correct) would need to be applied to both of these "JumpVTS_xxx" commands; and possibly to other commands too.

Either that, or the set_VTS_PTT() function is weird...


More information about the libdvdnav-devel mailing list