When I try to use DVD::Rip to make an XviD from any DVD, the dvd will rip, but it will hang up when it goes to grab the image preview for a specific frame for crop / resize purposes. The DVD::Rip documentation suggests opening a shell and executing the commands manually to see what went wrong if you're having trouble, so here's what's happening: (DVD::Rip Info) Grab Preview Image Command: =========================== mkdir -m 0775 /tmp/dvdrip19912.ppm; cd /tmp/dvdrip19912.ppm; dr_exec transcode -H 10 -o snapshot -y ppm,null -x vob,null -i /home/tidus/dvd/Test1/vob/001 -c 7-8 -L 1152966 && dr_exec convert -size 720x480 /tmp/dvdrip19912.ppm/snapshot*.ppm /home/tidus/dvd/Test1/tmp/Test1-001-preview-orig.jpg && dr_exec convert -size 720x480 /tmp/dvdrip19912.ppm/snapshot*.ppm gray:/home/tidus/dvd/Test1/tmp/Test1-001-preview-orig.raw && rm -r /tmp/dvdrip19912.ppm && echo DVDRIP_SUCCESS Now here's the output from each command as typed at the shell: tidus@Tidus ~ $ mkdir -m 0775 /tmp/dvdrip19912.ppm; cd /tmp/dvdrip19912.ppm tidus@Tidus /tmp/dvdrip19912.ppm $ dr_exec transcode -H 10 -o snapshot -y ppm,null -x vob,null -i /home/tidus/dvd/Test1/vob/001 -c 7-8 -L 1152966 DVDRIP_JOB_PID=21314 transcode v0.6.14 (C) 2001-2003 Thomas Oestreich, 2003-2004 T. Bitterberg libdvdread: Using libdvdcss version 1.2.8 for DVD access libdvdread: Couldn't find device name. libdvdread: Can't open file VIDEO_TS.IFO. [transcode] (probe) suggested AV correction -D 2 (83 ms) | AV 87 ms | 4 ms [transcode] auto-probing source /home/tidus/dvd/Test1/vob/001 (ok) [transcode] V: import format | MPEG-2 (V=vob|A=null) [transcode] V: AV demux/sync | (2) initial MPEG sequence / enforce frame rate [transcode] V: import frame | 720x480 1.50:1 encoded @ 16:9 [transcode] V: bits/pixel | 0.217 [transcode] V: decoding fps,frc | 23.976,1 [transcode] V: Y'CbCr | YV12/I420 [transcode] A: import format | 0x2000 AC3 [48000,16,2] 448 kbps [transcode] A: export | disabled [transcode] V: encoding fps,frc | 23.976,1 [transcode] A: bytes per frame | 8008 (8008.000000) [transcode] A: adjustment | 0@1000 [transcode] V: IA32 accel mode | sse (sse mmxext mmx asm C) tc_memcpy: using mmxext for memcpy [transcode] V: video buffer | 10 @ 720x480 [import_null.so] v0.2.0 (2002-01-19) (video) null | (audio) null [import_vob.so] v0.6.0 (2003-10-02) (video) MPEG-2 | (audio) MPEG/AC3/PCM | (subtitle) [export_null.so] v0.1.2 (2001-08-17) (video) null | (audio) null [export_ppm.so] v0.1.1 (2002-02-14) (video) PPM/PGM | (audio) MPEG/AC3/PCM [import_vob.so] tccat -i "/home/tidus/dvd/Test1/vob/001" -t vob -d 0 -S 1152966 | tcdemux -s 0x80 -x mpeg2 -S 0 -M 2 -f 23.976024 -P /tmp/file1Oa40k -d 0 | tcextract -t vob -a 0 -x mpeg2 -d 0 | tcdecode -x mpeg2 -d 0 -y yv12 tc_memcpy: using mmxext for memcpy skipping frames [000000-000006], 19.66 fps, EMT: 0:00:00, ( 0| 0| 0) <it hangs here. I had to switch to another terminal and type "killall -9 transcode" as ctrl+c just throws a "[transcode] (sighandler) SIGINT received " and the program keeps trying.> As expected, the next two commands fail because they depend on the snapshot file generated by that run of transcode. Reproducible: Always Steps to Reproduce: 1. start dvdrip 2. rip a dvd (doesn't matter... does this on all dvds) 3. wait for it to try to grab image preview. Actual Results: transcode hangs and nothing gets done. Expected Results: transcode should have grabbed the preview and sent it over to imagemagick, then presented me with the preview images so i can crop/zoom the video. Portage 2.0.51.19 (default-linux/x86/2004.3, gcc-3.4.3-20050110, glibc-2.3.4.20050125-r1, 2.6.11-nitro0 i686) ================================================================= System uname: 2.6.11-nitro0 i686 Pentium III (Katmai) Gentoo Base System version 1.6.10 Python: dev-lang/python-2.3.5 [2.3.5 (#1, Feb 24 2005, 01:45:06)] ccache version 2.4 [enabled] dev-lang/python: 2.3.5 sys-devel/autoconf: 2.59-r6, 2.13 sys-devel/automake: 1.7.9-r1, 1.8.5-r3, 1.5, 1.4_p6, 1.6.3, 1.9.5 sys-devel/binutils: 2.15.92.0.2-r6 sys-devel/libtool: 1.5.14 virtual/os-headers: 2.6.8.1-r2 ACCEPT_KEYWORDS="x86 ~x86" AUTOCLEAN="yes" CFLAGS="-O3 -march=pentium3 -fforce-addr -momit-leaf-frame-pointer -fomit-frame-pointer -ftracer -pipe" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3.4/env /usr/kde/3.4/share/config /usr/kde/3.4/shutdown /usr/kde/3/share/config /usr/lib/X11/xkb /usr/lib/mozilla/defaults/pref /usr/share/config /usr/share/texmf/dvipdfm/config/ /usr/share/texmf/dvips/config/ /usr/share/texmf/tex/generic/config/ /usr/share/texmf/tex/platex/config/ /usr/share/texmf/xdvi/ /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d" CXXFLAGS="-O3 -march=pentium3 -fforce-addr -momit-leaf-frame-pointer -fomit-frame-pointer -ftracer -pipe -fvisibility-inlines-hidden" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs autoconfig ccache distlocks sandbox sfperms" GENTOO_MIRRORS="http://distfiles.gentoo.org http://distro.ibiblio.org/pub/Linux/distributions/gentoo" MAKEOPTS="-j4" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="x86 X aac acpi aim alsa apm arts audiofile avi bash-completion berkdb bitmap-fonts bonobo cdr crypt cscope ctype cups curl dga dio divx4linux dvd dvdr dvdread emboss encode esd exif fam flac font-server foomaticdb fortran gd gdbm gif gnome gpm gtk gtk2 gtkhtml imagemagick imlib ipv6 ithreads java joystick jpeg kde kdexdeltas kerberos krb4 ldap libg++ libwww mad maildir mcal mikmod mmx mng motif mozilla mp3 mpeg msn mysql ncurses nls nptl nvidia offensive ogg oggvorbis openal opengl oscar oss pam pdflib perl pic pie png posix ppds pthreads python qt quicktime readline recode samba sdl shared spell sse ssl svg svga symlink tcpd tetex theora tiff truetype truetype-fonts type1-fonts usb wmf wxwindows xine xinerama xml xml2 xmms xv xvid yahoo zlib" Unset: ASFLAGS, CBUILD, CTARGET, LANG, LC_ALL, LDFLAGS Also, transcode won't compile with CFLAGS="-O2 -march=pentium3 -pipe" in my computer's present condition.
Created attachment 55548 [details] system info I had the same issue with DVD::Rip - ripping a DVD works fine, but it hangs up trying to grab preview images. Furthermore, if you simply go on and try to transcode the video, it runs for hours (typical) and hangs up in the last 2 minutes. The VOBs are there and appear complete, they can be played directly with mplayer. This occurred with dvdrip versions 0.50.16-r1 and 0.50.18, and with transcode versions 0.6.10 and 0.6.11. Downgrading glibc from 2.3.4.20041102-r1 back to 2.3.4.20040808-r1 solved the problem. Preview images and transcoding work now. System info attached.
Seems that is a glibc issue, threading model maybe? if you rebuild transcode with the newer libc does it work?
I had the same issues as above (dvdrip 0.50.18 doesn't work with transcode 0.6.11 and glibc 2.3.4.20041102-r1). I just rebuilt transcode against the new glibc, to no avail- the problems are the same as before. I am *not* using nptl.
updated glibc to 2.3.5 and rebuilt transcode against it, but to no avail. problems are still as before. any way we can fix this? i hate using mencoder, as it gives me AV sync problems that transcode never did.
The bug is (apparently) due to transcode's NPTL threading bugs. The mailing list points to http://www.exit1.org/archive/dvdrip-users/2005-04/msg00017.html which says to go into the miscellaneous options, and enable the NPTL bug workaround. However, on my system (glibc 2.3.5, gcc-3.4.3-20050110) this causes dvdrip to fail to load /lib/libdl.so.2, which in turn causes transcode to fail to detect its dependencies. My guess as to a workaround "solution" is to recompile glibc without NPTL support, and recompile all applications that use NPTL threading, since it depends on glibc support for it... unless there is a way to force NPTL threading off for a certain program (like transcode) at compile-time.
I found a cheap workaround that both fixes the transcode hang problem with nptl and errors from enabling the NPTL workaround in DVDRip... In /usr/lib/perl5/vendor_perl/5.8.6/Video/DVDRip/Config.pm, I changed the value of LD_ASSUME_KERNEL from 2.2.5 to a more recent 2.4.20. Going into DVDRip, I re-enabled the NPTL workaround, and now the frame preview works as it should.
I wonder if the issue is valid upstream or just gentoo specific
I know that Fedora Core 1, and some Debian versions have a threading issue. FC was mentioned in the DVDRip FAQ, and references to Debian were scattered throughout mailing lists. As for the 2.4.20 trick, it was just a random guess since 2.2.5 is too old to work correctly with recent glibc/kernels, and 2.6.11 is new enough for NPTL to be enabled. Since glibc depends on kernel headers, and NPTL is (normally) 2.6 dependent, I wonder if it has something to do with the version of linux-headers package at the glibc compile-time. I've got linux-headers-2.6.11 glibc-2.3.5 vanilla-sources-2.6.11
Well, the Config.pm hack and the nptl workaround in the DVD::Rip GUI when combined DO work with glibc 2.3.5. I am running kernel 2.6.11-gentoo-r6 at the moment. I do believe this is an upstream issue, as references to Debian and Fedora are mentioned on the mailing list, as Geoffrey stated. Problem is... which way upstream: transcode or glibc ?
DVDRip I think
Is the workaround still needed? I've disabled it without having any troubles, but I can't test on a 2.4 kernel (no box).
Is this still an issue?