Hello all. I get the following assertion playing the "Tangled" DVD with mplayer and an up to date libdvdnav, on windows: Assertion failed: (vm->state).pgc->cell_playback[(vm->state).cellN - 1].block_mode != 0, file libdvdnav/vm/vm.c, line 1141 The weird part about this is that in mac/linux, I get this error message, and no failed assertion, and playing continues: libdvdnav: Invalid angle block I'd be happy to send more information, or a (legal) DVD to keep, for any developer that would like to tackle it. It appears that it happens with a few other (Disney?) DVD's, as well: http://lists.mplayerhq.hu/pipermail/mplayer-users/2008-December/075458.html https://trac.handbrake.fr/ticket/125 https://forum.handbrake.fr/viewtopic.php?f=11&t=14189 So I'm guessing it's a libdvdnav bug. As a note, in VLC on windows, this causes playback to "loop" over - cellN=2 over and over, though it doesn't crash--I'm guessing it just swallows the assertion failure, or the failure isn't enabled with that build. Thanks. -roger-
I get the following assertion playing the "Tangled" DVD with mplayer and an up to date libdvdnav, on windows:
Assertion failed: (vm->state).pgc->cell_playback[(vm->state).cellN - 1].block_mode != 0, file libdvdnav/vm/vm.c, line 1141
The weird part about this is that in mac/linux, I get this error message, and no failed assertion, and playing continues: libdvdnav: Invalid angle block
I'd be happy to send more information, or a (legal) DVD to keep, for any developer that would like to tackle it.
See that STRICT cpp macro in vm.c? It is probably accidentally set on Windows because of a namespace clash. If that is the case, that is the first bug to fix. E -- Erik Hovland erik@hovland.org http://hovland.org/
On Wed, Nov 30, 2011 at 10:22 AM, Erik Hovland <erik@hovland.org> wrote:
I get the following assertion playing the "Tangled" DVD with mplayer and an up to date libdvdnav, on windows:
Assertion failed: (vm->state).pgc->cell_playback[(vm->state).cellN - 1].block_mode != 0, file libdvdnav/vm/vm.c, line 1141
The weird part about this is that in mac/linux, I get this error message, and no failed assertion, and playing continues: libdvdnav: Invalid angle block
I'd be happy to send more information, or a (legal) DVD to keep, for any developer that would like to tackle it.
See that STRICT cpp macro in vm.c? It is probably accidentally set on Windows because of a namespace clash. If that is the case, that is the first bug to fix.
Does the attached patch at least make it so that mplayer behaves the same on all platforms? Thanks E -- Erik Hovland erik@hovland.org http://hovland.org/
Does the attached patch at least make it so that mplayer behaves the same on all platforms?
It does. Now in windows it's also: libdvdnav: Invalid angle block Thanks! -r
On Wed, Nov 30, 2011 at 10:42 AM, Roger Pack <rogerdpack2@gmail.com> wrote:
Does the attached patch at least make it so that mplayer behaves the same on all platforms?
It does.
Now in windows it's also: libdvdnav: Invalid angle block
Does it report this error message for both mplayer and VLC (does VLC still loop)? E -- Erik Hovland erik@hovland.org http://hovland.org/
Does it report this error message for both mplayer and VLC (does VLC still loop)?
I'm unable to tell if VLC is fixed by it or not. My "guess" is that it would be fixed, however, since it fixed mplayer which seemed to be doing about the same behavior if I commented out the assertion line that failed. As a note, when I try to compile libdvdread (as a precursor to compiling libdvdnav), to then use it to compile VLC, I run into some snags in building under msys... $./configure2 ./configure2: line 95: cd: /usr/local/: No such file or directory # needs to be run in bash I believe Checking if we're big-endian... ./configure2: line 113: mktemp: command not found # this one might be my fault Done, type 'make install' to build and install bash-3.1$ make sh "/c/dev/ruby/downloads/libdvdread"/version.sh "/c/dev/ruby/downloads/libdvdread" "4.2.0" cd obj && gcc -fPIC -DPIC -MD -O3 -g -Wall -funsigned-char -I/c/dev/ruby/downloads/libdvdread -I"/c/dev/ruby/downloads/libdvdread"/src -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -DHAVE_CONFIG_H -DHAVE_DLFCN_H -I"/c/dev/ruby/downloads/libdvdread"/src -c -o dvd_input.so /c/dev/ruby/downloads/libdvdread/src/dvd_input.c c:/dev/ruby/downloads/libdvdread/src/dvd_input.c:1:0: warning: -fPIC ignored for target (all code is position independent) c:/dev/ruby/downloads/libdvdread/src/dvd_input.c:53:19: fatal error: dlfcn.h: No such file or directory compilation terminated. (appears to set HAVE_DLFCN_H in error) then HAVE_DLFCNH undefined manually, it then gives the following: cd obj && gcc -fPIC -DPIC -MD -O3 -g -Wall -funsigned-char -I/c/dev/ruby/downloads/libdvdread -I"/c/dev/ruby/downloads/libdvdread"/src -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -DHAVE_CONFIG_H -DHAVE_DLFCN_H -I"/c/dev/ruby/downloads/libdvdread"/src -c -o dvd_input.so /c/dev/ruby/downloads/libdvdread/src/dvd_input.c c:/dev/ruby/downloads/libdvdread/src/dvd_input.c:1:0: warning: -fPIC ignored for target (all code is position independent) c:/dev/ruby/downloads/libdvdread/src/dvd_input.c:56:38: fatal error: ../../msvc/contrib/dlfcn.c: No such file or directory Fixing the path, and tweaking some include paths, and it compiles. Then, at link time: /usr/lib/gcc/i586-mingw32msvc/4.4.4/../../../../i586-mingw32msvc/bin/ld: cannot find -ldl so I remove the link to -ldl (which I don't think is needed for mingw), then it links. Then $ make install'ing it subsequently fails $ make install install -d /lib ./install: line 1: syntax error near unexpected token `C' ./install: line 1: `Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002 Free Software' make: *** [install-shared] Error 2 (I think this is because there is a file named "INSTALL" and it's trying to execute that in windows. So anyway here is how I compiled it, if it helps anybody: https://gist.github.com/1413008 Turned out now tot help me much, as, when I cross compiled it, I think some of the #define's are maybe off as dvd:/// in VLC don't seem to work :) Also as a note when it runs strip and ranlib, if it's being cross compiled, it would be helpful to call their equivalent: $ ./configure2 --cc=i586-mingw32msvc-gcc should eventually call i586-mingw32msvc-ranlib maybe it could use a new configure option for a prefix or what not. I'd be happy to come up with a patch for it. Thanks. -roger-
Le Wed, 30 Nov 2011 20:54:25 -0700, Roger Pack <rogerdpack2@gmail.com> a écrit :
Does it report this error message for both mplayer and VLC (does VLC still loop)?
I'm unable to tell if VLC is fixed by it or not. My "guess" is that it would be fixed, however, since it fixed mplayer which seemed to be doing about the same behavior if I commented out the assertion line that failed.
As a note, when I try to compile libdvdread (as a precursor to compiling libdvdnav), to then use it to compile VLC, I run into some snags in building under msys...
$./configure2 ./configure2: line 95: cd: /usr/local/: No such file or directory # needs to be run in bash I believe
Nope, you need to set the install prefix with --prefix=blabla
Checking if we're big-endian... ./configure2: line 113: mktemp: command not found # this one might be my fault
Done, type 'make install' to build and install bash-3.1$ make sh "/c/dev/ruby/downloads/libdvdread"/version.sh "/c/dev/ruby/downloads/libdvdread" "4.2.0" cd obj && gcc -fPIC -DPIC -MD -O3 -g -Wall -funsigned-char -I/c/dev/ruby/downloads/libdvdread -I"/c/dev/ruby/downloads/libdvdread"/src -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -DHAVE_CONFIG_H -DHAVE_DLFCN_H -I"/c/dev/ruby/downloads/libdvdread"/src -c -o dvd_input.so /c/dev/ruby/downloads/libdvdread/src/dvd_input.c c:/dev/ruby/downloads/libdvdread/src/dvd_input.c:1:0: warning: -fPIC ignored for target (all code is position independent) c:/dev/ruby/downloads/libdvdread/src/dvd_input.c:53:19: fatal error: dlfcn.h: No such file or directory compilation terminated.
(appears to set HAVE_DLFCN_H in error)
Without using autotools, dlfcn.h presence is not detected ./msvc/config.h:#define HAVE_DLFCN_H 1 And it is assumed to exist (is this file made for Visual Studio?)
then HAVE_DLFCNH undefined manually, it then gives the following: cd obj && gcc -fPIC -DPIC -MD -O3 -g -Wall -funsigned-char -I/c/dev/ruby/downloads/libdvdread -I"/c/dev/ruby/downloads/libdvdread"/src -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -DHAVE_CONFIG_H -DHAVE_DLFCN_H -I"/c/dev/ruby/downloads/libdvdread"/src -c -o dvd_input.so /c/dev/ruby/downloads/libdvdread/src/dvd_input.c c:/dev/ruby/downloads/libdvdread/src/dvd_input.c:1:0: warning: -fPIC ignored for target (all code is position independent) c:/dev/ruby/downloads/libdvdread/src/dvd_input.c:56:38: fatal error: ../../msvc/contrib/dlfcn.c: No such file or directory
Fixing the path, and tweaking some include paths, and it compiles.
Then, at link time:
/usr/lib/gcc/i586-mingw32msvc/4.4.4/../../../../i586-mingw32msvc/bin/ld: cannot find -ldl
so I remove the link to -ldl (which I don't think is needed for mingw), then it links.
Then $ make install'ing it subsequently fails $ make install install -d /lib ./install: line 1: syntax error near unexpected token `C' ./install: line 1: `Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002 Free Software' make: *** [install-shared] Error 2
(I think this is because there is a file named "INSTALL" and it's trying to execute that in windows.
So anyway here is how I compiled it, if it helps anybody: https://gist.github.com/1413008
Turned out now tot help me much, as, when I cross compiled it, I think some of the #define's are maybe off as dvd:/// in VLC don't seem to work :)
Also as a note when it runs strip and ranlib, if it's being cross compiled, it would be helpful to call their equivalent: $ ./configure2 --cc=i586-mingw32msvc-gcc should eventually call i586-mingw32msvc-ranlib
maybe it could use a new configure option for a prefix or what not.
./configure --host=i586-mingw32-msvc should work
I'd be happy to come up with a patch for it.
Thanks. -roger- _______________________________________________ DVDnav-discuss mailing list DVDnav-discuss@mplayerhq.hu https://lists.mplayerhq.hu/mailman/listinfo/dvdnav-discuss
-- Rafaël Carré
Does it report this error message for both mplayer and VLC (does VLC still loop)?
Ok I finally got it working with a cross compile build, the looping in VLC is gone with the patch, and (an assertion failure occurs without it). Thanks. -r
On Saturday, 03 December 2011 at 02:48, Roger Pack wrote:
Does it report this error message for both mplayer and VLC (does VLC still loop)?
Ok I finally got it working with a cross compile build, the looping in VLC is gone with the patch, and (an assertion failure occurs without it).
Applied to SVN. Regards, Dominik -- Fedora http://fedoraproject.org/wiki/User:Rathann RPMFusion http://rpmfusion.org | MPlayer http://mplayerhq.hu "Faith manages." -- Delenn to Lennier in Babylon 5:"Confessions and Lamentations"
participants (4)
-
Dominik 'Rathann' Mierzejewski -
Erik Hovland -
Rafaël Carré -
Roger Pack