x86_64上で起きるTTA(The True Audio)のGStreamerプラグインのノイズ問題に対処するためのebuild修正と、メモリ使用量の問題について
TTA CLI encoder(「ttaenc」というパッケージ名のTTAエンコーダ/デコーダ)は、本家の(3.4系への)バージョンアップにより、x86_64でのみ起こる不具合が修正されているが、GStreamerプラグインで(x86_64上でのみ)再生がノイズになる不具合は、gst-plugins-bad-0.10.5の時点では修正されていない。
以下は、「x86_64上でのみ起きていた、TTAのGStreamerプラグインのノイズ問題に対処」の修正作業をebuild上で行うための修正。ebuildファイルを修正後には「sudo ebuild /usr/portage/media-libs/gst-plugins-bad/gst-plugins-bad-0.10.5.ebuild digest」をしてからインストールする。ローカルOverlayにコピーして入れてもよい。
--- /usr/portage/media-libs/gst-plugins-bad/gst-plugins-bad-0.10.5.ebuild.orig +++ /usr/portage/media-libs/gst-plugins-bad/gst-plugins-bad-0.10.5.ebuild @@ -19,6 +19,11 @@ src_unpack() { unpack ${A} + + # fix noise problem on x86_64 + local x + sed -i -e 's/unsigned long long/u_int64_t/g' "${S}"/gst/tta/ttadec.h + for x in "${S}"/gst/tta/*.[ch]; do sed -i -e 's/long/int/g' ${x}; done } src_compile() {
これにより、emergeによる通常のインストールの流れだけで、x86_64環境でもGStreamer対応のプレーヤーからTTAファイルを正常に再生できるようになる。しかし、このプラグインには「メモリを大量に消費してしまう」という問題があり、現状では、よほどメモリに余裕がなければ、使用を推奨することはできない。
放っておくと、いくらでもメモリを食っていく。上の画像はRhythmbox上でTTAファイルを再生し続けてメモリを食っている状態をGNOMEシステム・モニタで表示したもの。