2016年09月29日

SDL2のコンパイル&インストール

SDL(Simple DirectMedia Layer)は、ffplayをビルドするときに必要なライブラリです。
SDL version 2をSDL2と呼んでいるようです。

DirectX SDKが必要ですので、MinGW-w64必須です。

SDL2は、以下の場所にあります
http://www.libsdl.org/

左メニュー「Download」の「SDL 2.0」より、
https://www.libsdl.org/download-2.0.php

Source Code: の下にある、
SDL2-2.0.5.tar.gz
を、適当なディレクトリに保存します。

MSYSで、ファイルを保存したディレクトリに移動し、
$ tar xzf SDL2-2.0.5.tar.gz
$ cd SDL2-2.0.5
$ ./configure --prefix=/mingw --disable-shared --disable-assembly --disable-mmx --disable-3dnow --disable-pthreads
$ make
$ make install

以上で終了です。


【補足】
configureオプションに「--disable-render-d3d」を指定しないと、コンパイルエラーになります。
今のところ原因不明です。


ffplayの動作的には、特に問題ありませんでしたので、とりあえずこのままにしておきます。

2016/12/08 追記
上記の問題は、SDL2-2.0.5で修正されましたので、configureオプション「--disable-render-d3d」を削除しました。

2016/10/15 追記
Windows XPで、ffplayに不具合があるとの報告がありましたので、configureオプションに「--disable-assembly」を追加しました。

【更新履歴】を見る
posted by あべちん at 03:05 | Comment(6) | TrackBack(0) | FFmpeg追加ライブラリ
この記事へのコメント
成る程、どうしてもコンパイルエラーが出て諦めてましたが、あべちんさんのお陰で、SDL2に移行出来そうです
ありがとうございます
Posted by 裕己 at 2016年10月03日 08:46
裕己さん、こんにちは。管理人です。

コメントありがとうございます。

SDL2がリリースされてから、ずっとサポートされてなかったのに、急に切り替わってしまったので、困りますよね。

検索しても、情報が見つけられなかったので、試行錯誤してなんとかうまくいきました。

お役に立ててよかったです。
Posted by あべちん at 2016年10月11日 03:08
SDL2-2.0.4 の render-d3d のエラーは、
https://github.com/Alexpux/MINGW-packages/tree/master/mingw-w64-SDL2
下のパッチを当てると起きませんでした。
しかし、現在は、SDL2-2.0.5 がリリースされて、それらのパッチは削除されたようです。
私の環境下では、SDL2-2.0.5 は、--disable-render-d3d とせずともコンパイルエラーは起こりませんでした。
しかし、test 下の make で、atomic などのコンパイルエラーが起こり、test*.exe 群が作成されず気持ちが悪いので、うちでは、SDL2-2.0.4 + 上記パッチのもので止めています。
ご参考まで。
Posted by at 2016年11月03日 10:03
あ、↑のコメは、私が書きました。
Posted by 通りすがり at 2016年11月03日 10:08
ついでに、上記パッチは、変更履歴より、
https://github.com/Alexpux/MINGW-packages/tree/cdbc5f407d5670edd699d16818e2b4e2329a3615/mingw-w64-SDL2
にある次の2つのパッチと思われます。
SDL2-fix-gcc-compatibility.patch
SDL2-prevent-duplicate-d3d11-declarations.patch
うちの環境は、MSYS2, x86_64-w64-mingw32-gcc 6.2.0-2 です。
私は、その他のパッケージでも make が上手くいかなかったときなどに、上記サイトの PKGBUILD を参考にしています。
Posted by 通りすがり at 2016年11月03日 11:04
通りすがりさん、こんにちは。管理人です。

情報ありがとうございます。
返信が遅くなり、申し訳ありません。

SDL2-2.0.5をインストールしてffplayをビルドしてみました。
動画を再生しても、特に問題なさそうでしたので、次からSDL2-2.0.5を採用しようと思います。

今日気が付いたのですが、以前は、ffplayで再生中の画面をクリックすると、シークバー代わりにジャンプできたのですが、SDL2からなのか、できなくなってますね。

教えていただいたリンク先の情報も、参考にさせていただきます。

ありがとうございました。
Posted by あべちん at 2016年11月13日 22:26
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/177062768
※言及リンクのないトラックバックは受信されません。

この記事へのトラックバック