Bug 70062 - [PATCH] Kino using ffmpeg optionally instead of libdv
Bug#: 70062 Product:  Gentoo Linux Version: unspecified Platform: AMD64
OS/Version: Linux Status: RESOLVED Severity: enhancement Priority: P2
Resolution: FIXED Assigned To: media-video@gentoo.org Reported By: neil@digimed.co.uk
Component: Applications
URL: 
Summary: [PATCH] Kino using ffmpeg optionally instead of libdv
Keywords:  
Status Whiteboard: 
Opened: 2004-11-04 08:54 0000
Description:   Opened: 2004-11-04 08:54 0000
libdv doesn't work consistently well on amd64. This manifests itself as
extremely slow playback rates in Kino. The recommended fix is to compile Kino
with --with-avcodec to use the ffmpeg avcodec instead of libdv. This patch to
the ebuild adds an avcodev USE flag to compile with --with-avcodec.

Reproducible: Always
Steps to Reproduce:
1. Load any DV file into Kino
2. Try to play it.
3.

Actual Results:  
Video plays at <5fps with 100% CPU usage. 

Expected Results:  
Played normally. 

Portage 2.0.51-r2 (default-linux/amd64/2004.3, gcc-3.4.2, 
glibc-2.3.4.20041021-r0, 2.6.9-gentoo-r2 x86_64) 
================================================================= 
System uname: 2.6.9-gentoo-r2 x86_64 AMD Athlon(tm) 64 Processor 3200+ 
Gentoo Base System version 1.6.5 
distcc 2.18 x86_64-pc-linux-gnu (protocols 1 and 2) (default port 3632) 
[disabled] 
ccache version 2.3 [enabled] 
Autoconf: sys-devel/autoconf-2.59-r5 
Automake: sys-devel/automake-1.8.5-r1 
Binutils: sys-devel/binutils-2.15.92.0.2-r1 
Headers:  sys-kernel/linux26-headers-2.6.8.1-r1 
Libtools: sys-devel/libtool-1.5.2-r5 
ACCEPT_KEYWORDS="amd64 ~amd64" 
AUTOCLEAN="yes" 
CFLAGS="-march=athlon64 -O2 -pipe -fomit-frame-pointer -funit-at-a-time" 
CHOST="x86_64-pc-linux-gnu" 
COMPILER="" 
CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config
/usr/kde/3.3/env /usr/kde/3.3/share/config /usr/kde/3.3/shutdown
/usr/kde/3/share/config /usr/lib/mozilla/defaults/pref /usr/share/config
/var/qmail/control" 
CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d" 
CXXFLAGS="-march=athlon64 -O2 -pipe -fomit-frame-pointer -funit-at-a-time" 
DISTDIR="/mnt/portage/distfiles" 
FEATURES="autoaddcvs buildpkg ccache distlocks sandbox" 
GENTOO_MIRRORS="ftp://ftp.tu-clausthal.de/pub/linux/gentoo/ 
ftp://ftp.heanet.ie/pub/gentoo/ 
ftp://ftp.belnet.be/mirror/rsync.gentoo.org/gentoo/ 
ftp://ftp.uni-erlangen.de/pub/mirrors/gentoo/ 
ftp://ftp.easynet.nl/mirror/gentoo/" 
MAKEOPTS="-j2" 
PKGDIR="/mnt/portage/packages/hactar" 
PORTAGE_TMPDIR="/mnt/scratch" 
PORTDIR="/usr/portage" 
PORTDIR_OVERLAY="/mnt/portage/local /mnt/portage/bmg-main" 
SYNC="rsync://desatio/gentoo" 
USE="amd64 X aalib acpi alsa apache2 arts artswrappersuid berkdb bitmap-fonts 
bonobo cdr crypt cups directfb dv dvd dvdr encode esd f77 fam flac foomaticdb 
gdbm gif gimpprint gphoto2 gpm gstreamer gtk gtkhtml guile imagemagick imlib 
ipv6 jabber java jbig jp2 jpeg junit kde ldap lesstif libwww lzw lzw-tiff mad 
mailwrapper mikmod mozilla mpeg multilib mysql ncurses nls nptl oggvorbis 
opengl oss pam perl png ppds python qt readline samba scanner sdl slang slp ssl 
tcltk tcpd tiff truetype usb userlocales xml xml2 xmms xpm xprint xrandr xv 
xvid zlib video_cards_nvidia linguas_en_GB"

------- Comment #1 From Neil Bothwick 2004-11-04 08:55:49 0000 -------
Created an attachment (id=43290) [details]
Patches kino.0.7.5.ebuild to handle avcode USE flag

------- Comment #2 From Neil Bothwick 2004-11-04 08:57:11 0000 -------
Sorry, the USE flag is avcodec.

------- Comment #3 From Adrian Lambeck 2004-12-31 04:22:42 0000 -------
This ebuild works very well for me but the real enhancment is not obvius to me.
Maybe you can explain this a little clearer.

Adrian

------- Comment #4 From Neil Bothwick 2005-01-01 08:43:10 0000 -------
As i the original report, using libdv instead of avcodec results in extremely
slow performance on amd64. The ebuild modification simply changes the
compilation options to use avcodec instead of the default libdv. From some of
the posts I've seen, it would appear that this does not affect everyone.

------- Comment #5 From Danny van Dyk (RETIRED) 2005-01-02 09:56:47 0000 -------
Reassigning to video herd... This is no amd64 business.

Guys, this patch works nicely. The only change I propose is to use "ffmpeg" USE-Flag instead avcodec.

------- Comment #6 From Danny van Dyk (RETIRED) 2005-01-02 10:00:50 0000 -------
Created an attachment (id=47388) [details]
New patch against kino-0.7.5.ebuild

Here a cleaned version of above patch using ffmpeg USE-Flag and correct
dependencies.

------- Comment #7 From Malcolm Lashley (RETIRED) 2005-01-10 18:49:46 0000 -------
Concerned parties... I just committed libdv-0.104 to the tree - it contains
x86_64 asm which should solve all your slow Kino playback problems. I'm leaving
this bug open for now as the option to use ffmpeg is still useful... 

Neil, Please test libdv-0.104 and see if it resolves the issue on your system.

------- Comment #8 From Neil Bothwick 2005-01-11 07:14:22 0000 -------
Yes thanks, that's done the trick. Kino now plays back at normal speed, with
the same CPU load whether it is compiled with libdv or ffmpeg.

------- Comment #9 From Danny van Dyk (RETIRED) 2005-01-25 14:21:30 0000 -------
Ping? ;-) Zypher, would you commit and close plz ? TIA

------- Comment #10 From Marc Hildebrand (RETIRED) 2005-01-26 02:36:42 0000 -------
I changed the optional libdv back to a normal dep because otherwise kino won't
build.
Apart from that the changes are in cvs. 
Please test.
Marc.