CompizのVideo PlaybackプラグインとMPlayer
(2014/9/26)このプラグインはその後のバージョンで無くなっている。
効果
どのような効果があるのかよく分からなかったが、以下のURLが参考になる。プレーヤー側にはパッチ当てが必要らしい。[引用]http://web.archive.org/web/20081225114153/http://forum.compiz-fusion.org/showthread.php?t=3424 より
With that patch, mplayer will offer fully composited video (transforming with all of compiz's effects) even with the OSS radeon and intel drivers.
ということらしいのだが
you can resize videos so they're extremely small (even few pixels) and then zoom and watch it at full resolution!
などの効果もあり、これは実験により確かめることができた。
上の画像はEnhanced Zoom Desktopプラグインで拡大したところ。ウィンドウ装飾・タイトルやアイコンはドットが見えるレベルだが、プレーヤーウィンドウの中は粗くない。
videos can now be smoothly resized, there are no glitches, no artifacts
これに関しては、「ウィンドウのサイズ変更」で「Default Resize Mode」を「通常」にしている場合にリサイズ時のちらつきが無くなっていることがはっきりと分かった。
MPlayerへのパッチ
http://lists.freedesktop.org/archives/compiz/2007-July/002494.htmlからパッチ(attachment-0001.bin)をダウンロードして、MPlayerのソースツリーに当てる。
$ tar jxf [MPlayerのソースの場所] $ cd [MPlayerのソースディレクトリ] $ patch -p0 < [ttachment-0001.binの場所]
20070824版ではパッチは正常に適用されたが、1.0_rc2に関しては
patching file libvo/vo_xv.c Hunk #1 succeeded at 93 with fuzz 1 (offset 1 line). Hunk #2 succeeded at 906 (offset -60 lines). Hunk #3 succeeded at 1003 (offset -60 lines). Hunk #4 succeeded at 1033 (offset -79 lines). Hunk #5 succeeded at 1041 (offset -79 lines). Hunk #6 succeeded at 1079 (offset -79 lines). Hunk #7 succeeded at 1121 (offset -79 lines). Hunk #8 succeeded at 1153 (offset -79 lines). Hunk #9 FAILED at 1375. Hunk #10 succeeded at 1406 (offset -77 lines). 1 out of 10 hunks FAILED -- saving rejects to file libvo/vo_xv.c.rej
となり、一ヶ所だけうまくいかなかった。
[引用]ファイル名: MPlayer-1.0rc2/libvo/vo_xv.c
if ( !vo_xv_init_colorkey() ) { return -1; // bail out, colorkey setup failed } vo_xv_enable_vsync(); vo_xv_get_max_img_dim( &max_width, &max_height ); fo = XvListImageFormats(mDisplay, xv_port, (int *) &formats); mp_input_add_event_fd(ConnectionNumber(mDisplay), check_events); return 0; } static int control(uint32_t request, void *data, ...) {
mp_input_add_event_fd()関数が追加されているのが原因。
http://lists.freedesktop.org/archives/compiz/2007-October/002807.html
を参考にすると、vo_compiz_init()関数はrerurn行のすぐ手前に入れる形で良さそう。
fo = XvListImageFormats(mDisplay, xv_port, (int *) &formats); mp_input_add_event_fd(ConnectionNumber(mDisplay), check_events); vo_compiz_init (); return 0; }
このようにすればOKのようだ。
最終的なパッチとしては、以下のようになる。
[base64][任意]ファイル名: mplayer-1.0_rc2-xv-compiz-video.patch.bz2.b64
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 8XckU4UJDS4oa4A=
(2008/9/10)RC2では
http://svnweb.mageia.org/packages/obsolete/mplayer-vaapi/pristine/SOURCES/mplayer-1.0rc2-compiz.patch?view=log
のパッチを使用すればそのまま使える。
(2014/9/26)URLを修正
ebuildの修正
(2008/9/10)ここで扱っているバージョンは古いため、「MPlayerのebuild(XvMCライブラリとCompizのVideo Playback対応)についてのその後(2008/9/10現在)」を参照。Gentoo Linuxでは、以下のebuildの修正により、「USE="xv compiz"」でビルドすることで上記作業を自動で行える。
1.0_rc1_p20070824
--- /usr/portage/media-video/mplayer/mplayer-1.0_rc1_p20070824.ebuild.orig +++ /usr/portage/media-video/mplayer/mplayer-1.0_rc1_p20070824.ebuild @@ -9,7 +9,7 @@ cddb cdio cdparanoia cpudetection custom-cflags dga doc dts dvb directfb dvd dv enca encode esd fbcon ftp gif ggi gtk iconv ipv6 ivtv jack joystick jpeg libcaca lirc live livecd lzo mad md5sum mmx mmxext mp2 mp3 musepack nas pvr unicode vorbis opengl openal oss png pnm 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" +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="i810 nvidia s3virge mga tdfx vesa" @@ -30,6 +30,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 @@ -194,6 +196,10 @@ # Fix XShape detection epatch ${FILESDIR}/${PN}-xshape.patch epatch ${FILESDIR}/${PN}-dpms.patch + + if use xv && use compiz; then + epatch ${DISTDIR}/attachment-0001.bin + fi } src_compile() {
1.0_rc2_p24929(libXvMCNVIDIAを使用できるようにするための修正を含む)
--- /usr/portage/media-video/mplayer/mplayer-1.0_rc2_p24929.ebuild.orig +++ /usr/portage/media-video/mplayer/mplayer-1.0_rc2_p24929.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 ivtv jack joystick jpeg kernel_linux ladspa libcaca lirc live livecd lzo mad md5sum mmx mmxext mp2 mp3 -musepack nas nemesi pvr 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 pvr 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 @@ -177,6 +179,24 @@ mv "${WORKDIR}/svgalib_helper" "${S}/libdha" fi + 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() { @@ -322,7 +342,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
関連URL:
- めも - Compiz FusionでのMplayerの全画面表示 - 手元の環境(NVIDIA GeForce 7300 LE / ドライバ100.14.23)では逆に「全画面ウィンドウのリダイレクト解除」にチェックを入れるとフルスクリーン再生が変になる