2005年04月08日
libming
Flashを作るためのライブラリでlibmingという物があるようだ。
そして、これはもともとPHPでSWFファイルを扱うために作られたもので、ライセンスはLGPLとなっている。
なんか楽しそうなので、これをいじってみることにした。
で、ソースを落とすと、ビルドにはbisonとflexが必要なよう。
前にもセットアップしたが、マシンを変えたので、再度セットアップすることにした。
投稿者 Takenori : 23:17 | コメント (0) | トラックバック
bisonとflexのセットアップ
GnuWin32 から bison と flex のWin32バイナリを拾ってきて、展開し、任意のフォルダへコピーしパスを通す。
コマンドラインで bison と入力するが、libintl3.dll がないので実行できないと言われる。
libintl-0.11.5-2-lib.zip をとってきて libintl-2.dll を bison と同じフォルダへ入れ、libintl3.dll にリネーム。
libiconv-1.8-1-bin.zip をとってきて、libiconv-2.dll と libcharset-1.dll を bison と同じフォルダへ入れる。
これで動くかと思ったが、実行時にエラーが出る。
そこで、bison の shareフォルダをC:\へコピー。
これで、flex と bison が動くようになった。
GNU utilities for Win32 という、GNU のツールをまとめたものがあるみたい。
これを使うと言う手もある。
bison は少しバージョンが古いようだが、問題ないと思われる。
libming のVCプロジェクトでは、これを使っているようだ。
投稿者 Takenori : 23:31 | コメント (0) | トラックバック
libmingテストプログラムのビルド
libming のビルドが出来たので、c++_ext/test.cpp をビルドしてみることにした。
VCで新たにプロジェクトを作り、libming.lib libz.lib libpng.lib libjpeg.libを加える。
インクルードディレクトリには../srcを入れる。
ビルドすると mingpp.h 内でコンパイルエラーがいろいろと出たが、全部キャストをかまして黙らせる。
多分大丈夫だろう。
これでビルドが出来たので実行してみると、SWFMovie_output内でアクセス違反が発生する。
追ってみると、SWFMovie::outputでstdoutへ書き出させているのが原因のよう。
そこで、test.cpp の movie->output(); を movie->save("test.swf"); と書き換えて実行。
test.swf ファイルが出来た。
ブラウザへドロップすると、四角が描画された。
どうやらうまくいった様子。
投稿者 Takenori : 23:40 | コメント (0) | トラックバック
libmingのビルド
SourceForge GnuWin32 File Listからzlibとlibpng、jpegのライブラリをとってくる。
zlibとlibpngのインクルードパスを加える。
bisonとyaccのカスタムビルドで、bisonとyaccが環境依存のパス付きで設定されているので、パスをはずす。
zconf.hでコンパイルエラー unistd.h がないと言われる
コメントを見ると、さして必要そうではないので、unistd.h のインクルードをコメントアウト。
これで、ビルドは通るが、このlibmingを使うとリンクエラーが発生する。
そこで、次のようにする。
まずは、GIFは使わないつもりなので、
ming_config.h の #define USE_GIF 1 を #define USE_GIF 0 とした。
そして、pngdbl.c と imports.c/.h 、 videostream.c/.h をプロジェクトに追加。
これで、libmingを使ったプログラムのビルドが通るようになった。
でも、他にも抜けている物があるかもしれない。
その時は、またライブラリにソースを追加したりして対応することにする。
投稿者 Takenori : 23:40 | コメント (0) | トラックバック
2005年04月09日
Mingの関連ページ
PHP / Flash 用 Ming 関数
PHP/ming Examples MENU
PHPだぜ(Ming) and ActionScript:
投稿者 Takenori : 00:09 | コメント (0) | トラックバック
2006年02月07日
Gnash オープンソース Flashプレーヤー
Gnashというものがあることを知った。(開発中?)
ただ、ライセンスはGPL。
GPLなアプリにFlashを組み込むのにはいいかもしれないが……
まあ、Windowsなら素直にFlashのを使えばいいんだけど。
投稿者 Takenori : 18:01 | コメント (0) | トラックバック
2007年02月25日
swfファイルフォーマット仕様書のライセンス
Flashを表示するものを作るべくswfファイルフォーマット仕様書のダウンロードページを見ると、swfファイルフォーマット仕様書ライセンスと言うものがあったので読むことに。
Flashを読んだり、表示したりするアプリケーションなどは作れません。。。
そうだったのか。
でも、Gnashは? と思って、自分の解釈がおかしいのかもしれないと思い、調べるとウィキペディアにも再生するソフトは作れないと書いてあり、Gnashはウェブ上に存在する Flash を解析して作っているとか。
Gnashのソースを見て、そこからswfファイルフォーマットを推測し、表示するものを作るという手もなくはないけど、それはどうかとも思う。
再生するのは無理でも、コンバーターなら作れそう。
ライセンスの"reads or renders .swf files"の部分は、ファイルを読み込むという意味ではないとすればだけど。
そもそも読み込みが出来なければ、Flashを編集するアプリは作れないので、読み込みはOKだろう。
SWF2XAMLと言うswfファイルからXAMLを作るコンバーターがあるようだし。(参考)
ただ、そうなると何らかのアニメーション用ファイルフォーマットが必要になる。
2008/05/17
少し前に Adobe Open Screen Project にて、swf のファイルフォーマットが制限なしで一般公開されました。
これで swf を扱うアプリなど自由に作ることが出来るように。