[MPlayer-users] libdvdnav 4.1.3 dvd angle problem

axlear axlear at gmail.com
Thu Dec 25 03:59:51 CET 2008


Hi All,

I have compiled libdvdnav 4.1.3 success and make it run. When test with DVD with only one angle, it work well. But when test with a DVD named 'Star Wars - Return of the Jedi' which have three angles, it seems have some problem. 

When run on debug version, I get an assert in file vm.c in line 1106. If I ignore the assert, dvdnav will loop on the angle and will play forward, if I skip to other position, it will play forward.
I copy the vm.c code following.

----------------vm.c------------line 1096-------------------------------------
   case 1: /*  Angle block */
      /* Loop and check each cell instead? So we don't get outside the block? */
      (vm->state).cellN += (vm->state).AGL_REG - 1;
#ifdef STRICT
      assert((vm->state).cellN <= (vm->state).pgc->nr_of_cells);
      assert((vm->state).pgc->cell_playback[(vm->state).cellN - 1].block_mode != 0); 
      assert((vm->state).pgc->cell_playback[(vm->state).cellN - 1].block_type == 1);
#else
      if (!((vm->state).cellN <= (vm->state).pgc->nr_of_cells) ||
          !((vm->state).pgc->cell_playback[(vm->state).cellN - 1].block_mode != 0) ||
   !((vm->state).pgc->cell_playback[(vm->state).cellN - 1].block_type == 1)) {
 fprintf(MSG_OUT, "libdvdnav: Invalid angle block\n");
 (vm->state).cellN -= (vm->state).AGL_REG - 1;
      }
#endif

------------------part code of vm.c ------------------------------------


Can anyone give me suggestions?



Best Regards
Lear


More information about the MPlayer-users mailing list