ブログ

gst-plugins-badをビルドする

at_takuya.sasaki
2015年5月5日 19時03分

過去にフォーラムで投稿されていた gst-plugins-bad をビルドする方法を、実際に試してみた際のメモです。

1. Debianブートディスクの作成

以下を参照して、SDカードに Debian環境を構築してArmadillo-840をDebianで起動してください。
https://manual.atmark-techno.com/armadillo-840/armadillo-840_product_manual_ja-1.1.0/ch15.html

2. パッケージのアップデート/アップグレード

インターネットに接続できる状態にした後、まずは時刻合わせをします。

root@debian:~# date --set="2015/05/05 18:57"
Tue May  5 18:57:00 JST 2015

apt-getでパッケージのアップデート/アップグレードを実施してください。

root@debian:~# apt-get update
root@debian:~# apt-get upgrade

私の環境だけかもしれませんが、アップデートの際に以下のログが出ました。

W: There is no public key available for the following key IDs:
9D6D8F6BC857C906
W: There is no public key available for the following key IDs:
7638D0442B90D010
W: There is no public key available for the following key IDs:
7638D0442B90D010

Web検索してみると、以下のパッケージを入れることで解消できるようです。

root@debian:~# apt-get install debian-archive-keyring

3. dbkg-devのインストール

root@debian:~# apt-get install dpkg-dev

4. パッケージのダウンロードと、解凍

まずはオリジナルのソースコードをダウンロードします。

root@debian:~# wget http://snapshot.debian.org/archive/debian/20130713T214042Z/pool/main/g/gst-plugins-bad1.0/gst-plugins-bad1.0_1.0.8.orig.tar.xz

次にアットマークテクノサイトからパッチを含んだDebianディレクトリをダウンロードします。 他のパッケージなどは以下からダウンロード可能です。
http://download.atmark-techno.com/armadillo-840/cross-dev/source/

root@debian:~# wget http://download.atmark-techno.com/armadillo-840/cross-dev/source/gst-plugins-bad1.0_1.0.8-1atmark1.debian.tar.gz

それぞれ、解凍します。

root@debian:~# tar Jxf gst-plugins-bad1.0_1.0.8.orig.tar.xz
root@debian:~# tar zxf gst-plugins-bad1.0_1.0.8-1atmark1.debian.tar.gz -C gst-plugins-bad-1.0.8/

5. 依存関係のチェックと、必要なパッケージのインストール

まずは以下のコマンドで、ビルドに必要なパッケージを調べます。

root@debian:~# cd gst-plugins-bad-1.0.8/
root@debian:~/gst-plugins-bad-1.0.8#  dpkg-checkbuilddeps
dpkg-checkbuilddeps: Unmet build dependencies: autoconf (>= 2.62) automake (>= 1.11) autopoint (>= 0.17) autotools-dev cdbs (>= 0.4.93) debhelper (>= 9) dh-autoreconf flite-dev libasound2-dev (>= 0.9.1) libcdaudio-dev libdc1394-22-dev (>= 2.0.0) libgudev-1.0-dev (>= 143) libusb-1.0-0-dev libgstreamer1.0-dev (>= 1.0.0) gstreamer1.0-doc gstreamer1.0-plugins-base (>= 1.0.0) gstreamer1.0-plugins-base-doc gtk-doc-tools (>= 1.12) ladspa-sdk libass-dev (>= 0.9.4) libbz2-dev libcairo2-dev libcurl4-gnutls-dev (>= 7.21.0) libdca-dev libdirac-dev (>= 0.10) libdirectfb-dev (>= 0.9.25) libdvdnav-dev (>= 4.1.2) libexempi-dev libexif-dev (>= 0.6.16) libfaad-dev libglib2.0-dev (>= 2.32) libgme-dev libgsm1-dev libgstreamer-plugins-base1.0-dev (>= 1.0.8) libgtk2.0-dev (>= 2.14.0) libiptcdata0-dev (>= 1.0.2) libjasper-dev libkate-dev (>= 0.1.7) libmimic-dev (>= 1.0) libmms-dev (>= 0.4) libmodplug-dev libmpcdec-dev libmpg123-dev (>= 1.13) libofa0-dev (>= 0.9.3) libopenal-dev libopus-dev (>= 0.9.4) liborc-0.4-dev (>= 1:0.4.16) libpng-dev librsvg2-dev (>= 2.14.0) librtmp-dev libschroedinger-dev (>= 1.0.7) libslv2-dev (>= 0.6.6) libsndfile1-dev (>= 1.0.16) libsoundtouch-dev (>= 1.5.0) libspandsp-dev libssl-dev libtool (>= 2.2.6) libvo-aacenc-dev libvo-amrwbenc-dev libwildmidi-dev (>= 0.2.3) libxvidcore-dev libzbar-dev (>= 0.9) libzvbi-dev pkg-config (>= 0.11.0)

地道にパッケージをインストールしていきます。(複数パッケージを指定可能です)

root@debian:~/gst-plugins-bad-1.0.8#  apt-get install autoconf  automake 

ただしgstreamer1.0-plugins-base-docはwheezyパッケージから引っ張ってこれないので、手動でインストールします。

root@debian:~/gst-plugins-bad-1.0.8#  cd
root@debian:~#  wget http://snapshot.debian.org/archive/debian/20130814T154240Z/pool/main/g/gst-plugins-base1.0/gstreamer1.0-plugins-base-doc_1.0.8-1%7Ebpo70%2B1_all.deb
root@debian:~# dpkg -i gstreamer1.0-plugins-base-doc_1.0.8-1~bpo70+1_all.deb

5. ビルドの実行

root@debian:~/gst-plugins-bad-1.0.8# dpkg-buildpackage -us -uc -rfakeroot

それぞれのプラグインのライブラリは、.libs配下に作成されています。

root@debian:~/gst-plugins-bad-1.0.8# ls gst/videoparsers/.libs/
libgstvideoparsersbad.exp
libgstvideoparsersbad.la
libgstvideoparsersbad.lai
libgstvideoparsersbad.so
libgstvideoparsersbad.ver
libgstvideoparsersbad_la-dirac_parse.o
libgstvideoparsersbad_la-gstdiracparse.o
libgstvideoparsersbad_la-gsth263parse.o
libgstvideoparsersbad_la-gsth264parse.o
libgstvideoparsersbad_la-gstmpeg4videoparse.o
libgstvideoparsersbad_la-gstmpegvideoparse.o
libgstvideoparsersbad_la-h263parse.o
libgstvideoparsersbad_la-plugin.o

以上