試験運用中なLinux備忘録・旧記事

はてなダイアリーで公開していた2007年5月-2015年3月の記事を保存しています。

mplayer-1.0_rc2_p24929-r2.ebuildでCompizのVideo PlaybackプラグインとXvMCNVIDIAを使用するための修正

CompizのVideo PlaybackプラグインとMPlayer」で、MPlayerをVideo Playbackプラグインに対応させるためのebuildの修正を書いたが、mplayer-1.0_rc2_p24929のebuildが「r2」になり、中身も変わっているため、それに合わせて変更部分を修正した。
修正箇所は

  • 変数IUSE(USEフラグの一覧)に「compiz」を追加
  • lists.freedesktop.org/archives/compiz/attachments/20070711/37e301ac/attachment-0001.bin を「USE="xv compiz"」のときにSRC_URIへ追加
  • 「USE="xv compiz"」のときのRDEPEND指定(x11-wm/compiz)を追加
  • attachment-0001.binを元に、必要に応じて一部分を修正して新しくパッチファイルを作成し、適用する
  • 「USE="xv xvmc"」のときの処理の修正(XvMC関係の部分)

なので、今後のバージョン変更後も同様の要領で修正することになりそう。
(2008/5/14)mplayer-1.0_rc2_p26753向けのebuild
onedrive.live.com/?cid=3f9be5b1cd4a806c&id=3F9BE5B1CD4A806C!408
にアップロードした。
(2008/9/10)その後に関しては「MPlayerのebuild(XvMCライブラリとCompizのVideo Playback対応)についてのその後(2008/9/10現在)」を参照。XvMcライブラリに関する処理は不要になっていることも分かった。

--- /usr/portage/media-video/mplayer/mplayer-1.0_rc2_p24929-r2.ebuild.orig
+++ /usr/portage/media-video/mplayer/mplayer-1.0_rc2_p24929-r2.ebuild
@@ -9,9 +9,9 @@
 cddb cdio cdparanoia cpudetection custom-cflags debug dga doc dts dvb directfb
 dvd dv enca encode esd fbcon ftp gif ggi gtk iconv ipv6 jack joystick jpeg
 kernel_linux ladspa libcaca lirc live livecd lzo mad md5sum mmx mmxext mp2 mp3
-musepack nas nemesi unicode vorbis opengl openal oss png pnm pulseaudio quicktime radio rar real rtc samba sdl speex srt sse sse2 ssse3 svga teletext tga theora tivo truetype v4l v4l2 vidix win32codecs X x264 xanim xinerama xv xvid xvmc zoran"
+musepack nas nemesi unicode vorbis opengl openal oss png pnm pulseaudio quicktime radio rar real rtc samba sdl speex srt sse sse2 ssse3 svga teletext tga theora tivo truetype v4l v4l2 vidix win32codecs X x264 xanim xinerama xv xvid xvmc zoran compiz"
 
-VIDEO_CARDS="s3virge mga tdfx vesa"
+VIDEO_CARDS="i810 nvidia s3virge mga tdfx vesa"
 
 for x in ${VIDEO_CARDS}; do
 	IUSE="${IUSE} video_cards_${x}"
@@ -28,6 +28,7 @@
 			  mirror://mplayer/releases/fonts/font-arial-iso-8859-2.tar.bz2
 			  mirror://mplayer/releases/fonts/font-arial-cp1250.tar.bz2 )
 	gtk? ( mirror://mplayer/Skin/Blue-${BLUV}.tar.bz2 )
+	xv? ( compiz? ( http://lists.freedesktop.org/archives/compiz/attachments/20070711/37e301ac/attachment-0001.bin ) )
 	svga? ( http://mplayerhq.hu/~alex/svgalib_helper-${SVGV}-mplayer.tar.bz2 )"
 
 DESCRIPTION="Media Player for Linux"
@@ -103,6 +104,7 @@
 	xv? ( x11-libs/libXv
 		x11-libs/libXxf86vm
 		x11-libs/libXext
+		compiz? ( >=x11-wm/compiz-0.6.0 )
 		xvmc? ( x11-libs/libXvMC ) )
 	xvid? ( media-libs/xvid )
 	X? ( x11-libs/libXxf86vm
@@ -180,6 +182,26 @@
 
 	# Pulseaudio patch, bug 203430
 	epatch "${FILESDIR}/${P}-pulse.patch"
+
+	# Patch for Compiz/xv (Video Playback)
+	if use xv && use compiz; then
+		head -n 612 ${DISTDIR}/attachment-0001.bin > mplayer-xv-compiz.patch
+		cat <<EOF >> mplayer-xv-compiz.patch
+@@ -836,6 +1377,9 @@
+     fo = XvListImageFormats(mDisplay, xv_port, (int *) &formats);
+
+     mp_input_add_event_fd(ConnectionNumber(mDisplay), check_events);
++
++    vo_compiz_init ();
++
+     return 0;
+ }
+
+EOF
+		tail -n 14 ${DISTDIR}/attachment-0001.bin >> mplayer-xv-compiz.patch
+		epatch mplayer-xv-compiz.patch
+	fi
+
 }
 
 src_compile() {
@@ -326,7 +348,14 @@
 
 	if use xv; then
 		if use xvmc; then
-			myconf="${myconf} --enable-xvmc --with-xvmclib=XvMCW"
+			myconf="${myconf} --enable-xvmc"
+			if use video_cards_nvidia; then
+				myconf="${myconf} --with-xvmclib=XvMCNVIDIA"
+			elif use video_cards_i810; then
+				myconf="${myconf} --with-xvmclib=I810XvMC"
+			else
+				myconf="${myconf} --with-xvmclib=XvMCW"
+			fi
 		else
 			myconf="${myconf} --disable-xvmc"
 		fi

(2008/1/26)r3が出ているが、修正としては

--- /usr/portage/media-video/mplayer/mplayer-1.0_rc2_p24929-r2.ebuild	2008-01-05 14:47:28.000000000 +0900
+++ /usr/portage/media-video/mplayer/mplayer-1.0_rc2_p24929-r3.ebuild	2008-01-24 19:41:20.000000000 +0900
@@ -1,6 +1,6 @@
 # Copyright 1999-2008 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/media-video/mplayer/mplayer-1.0_rc2_p24929-r2.ebuild,v 1.1 2008/01/05 05:47:28 beandog Exp $
+# $Header: /var/cvsroot/gentoo-x86/media-video/mplayer/mplayer-1.0_rc2_p24929-r3.ebuild,v 1.1 2008/01/24 10:41:20 drac Exp $
 
 inherit eutils flag-o-matic multilib
 
@@ -66,7 +66,8 @@
 	esd? ( media-sound/esound )
 	enca? ( app-i18n/enca )
 	gif? ( media-libs/giflib )
-	ggi? ( media-libs/libggi )
+	ggi? ( media-libs/libggi
+		media-libs/libggiwmh )
 	gtk? ( media-libs/libpng
 		x11-libs/libXxf86vm
 		x11-libs/libXext
@@ -131,7 +132,7 @@
 
 SLOT="0"
 LICENSE="GPL-2"
-KEYWORDS="~alpha ~amd64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd"
+KEYWORDS="~alpha ~amd64 ~hppa ~ia64 ~ppc64 ~sparc ~x86 ~x86-fbsd"
 
 pkg_setup() {
 

という部分のみで、「USE=ggi」指定しなければ変化はない。