These pages are written by only Japanese.

Welcom to My Diary.com
最新の日記タイトル一覧カテゴリ別タイトル一覧トップへ戻る〜

こんばんわ♪ 現在は3月28日(木)20時34分。 8時を過ぎてしましました。


hns - 日記自動生成システム - Version 2.19.5 (色々 Fixed)

先月 2008年10月 来月
01 02 03 04
05 06 07 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Namazu for hns による簡易全文検索です。
詳細は 詳細指定/ヘルプをご参照下さい。
検索式:

2008年10月20日(月)

CentOS で swfdec の install に挑戦 (失敗) (2)

glib-2.15:

In file included from jpeg.c:10:
/usr/include/stdlib.h:589: error: conflicting types for 'g_malloc'
/usr/include/glib-2.0/glib/gmem.h:47: error: previous declaration of 'g_malloc' was here
glib-2.15 (2.16 は見つからず、かつ 2.2x はインターフェース変わってるので) を /usr/local に install してチャレンジ。
env \
GLIB_CFLAGS="-pthread -I/usr/local/include/glib-2.0 -I/usr/local/lib/glib-2.0/include" \
./configure --disable-gstreamer --disable-gtk
jpeg.c: In function 'jpeg_decoder_verify_header':
jpeg.c:68: error: 'G_STRFUNC' undeclared (first use in this function)
jpeg.c:68: error: (Each undeclared identifier is reported only once
jpeg.c:68: error: for each function it appears in.)
jpeg.c: In function 'jpeg_decoder_init_decoder':
jpeg.c:168: error: 'G_STRFUNC' undeclared (first use in this function)
G_STRFUNC の定義は 2.12 ではあったけど、2.15 では消えてました。 でもって、2.2 でもないです。最新の 2.9.6 で発見したのでこれで…

swfdec/jpeg.c:

In file included from jpeg.c:10:
/usr/include/stdlib.h:589: error: conflicting types for 'g_malloc'
/usr/local/include/glib-2.0/glib/gmem.h:47: error: previous declaration of 'g_malloc' was here
stdlib.h より先に glib の define 置換を読み込んで malloc の名前が 変わってしまってる不具合発見。

swfdec/jpeg/cogcompat.h:

stdlib.h より前に glib.h を include してる cogcompat.h を修正。
#include <swfdec_debug.h>
#include <stdlib.h> /* append by yoya */
#include <glib.h>

g_ascii_strtoll:

swfdec_as_context.c:1100: warning: implicit declaration of function 'g_ascii_strtoll'
swfdec_as_context.c:1100: warning: nested extern declaration of 'g_ascii_strtoll'
make[2]:
むー… g_ascii_strtoll の定義は 2.12 ではあったけど 2.96 では消えてますね…
glib の定義がふらふらしてるのは何とかならないものか…

2008年10月21日(火)

[swfed] make test に挑戦

折角なのでフレームワークにのっとって。 tests/getjpeg.phpt を作成。
--TEST--
SWF Editor getJpegData: SWF Editor support for DefineBitsJPEG
--SKIPIF--
<?php require_once('skipif.inc'); ?>
--FILE--
<?php
echo "ok\n";
?>
--EXPECT--
ok
とりあえず ok だけ出力させて実行。
% make test
=====================================================================
FAILED TEST SUMMARY
---------------------------------------------------------------------
SWF Editor getJpegData: SWF Editor support for DefineBitsJPEG [tests/getjpeg.phpt]
========
ダメらしい
tests/getjpeg.log を読むと、
---- EXPECTED OUTPUT
ok
---- ACTUAL OUTPUT
Warning: Module 'swfed' already loaded in Unknown on line 0
ok
---- FAILED
… install 済みの so と作ったばかりの so がぶつかってるんだろうけど、 一体どうすれば…

2008年10月22日(水)

[swfed] 0.14 release

あと、細々とした修正が沢山入っているので、デグレードが心配です。(ぉぃ
次回までにはユニットテストの自動化が出来ますように… (・人・)

2008年10月23日(木)

CentOS で swfdec の install に挑戦 (多分、成功)

ごり押しだとダメなので、真面目にインストールする事にしました。
方針としては、必要なパッケージを先に /usr/local/ に入れて、 それを参照させる事。当たり前だけど…
問題は configure が /usr/bin/pkg-config を
% pkg-config  --exists --print-errors "glib-2.0 >= 2.17.3 gobject-2.0 gmodule-no-export-2.0"
Requested 'glib-2.0 >= 2.17.3' but version of GLib is 2.12.3
って感じでチェックするので、/usr/local で頑張っても /usr に入ってる パッケージでバージョンチェックして跳ねられるんですよね。

pkg-config:

pkg-config のデータが何処にあるかというと、
% ls /usr/lib/pkgconfig/
ImageMagick.pc            gnome-mime-data-2.0.pc          pango.pc
Wand.pc                   gnome-python-2.0.pc             pangocairo.pc
alsa.pc                   gnome-python-desktop-2.0.pc     pangoft2.pc
	<略>
こんななってて、pc ファイルの中は
% cat /usr/lib/pkgconfig/ImageMagick.pc
prefix=/usr
exec_prefix=/usr
libdir=/usr/lib
includedir=/usr/include

Name: ImageMagick
Description: ImageMagick - Convert, Edit, and Compose Images
Version: 6.2.8
Libs: -L${libdir} -lWand -lMagick
Cflags: -I${includedir}
こんなです。
手動で入れたパッケージに対応するファイルは、 /usr/local/lib/pkgconfig/ にあるので、これを参照する pkg-config を /usr/local/bin に置けば解決っぽい。
0.21 が出てるっぽいけど http://pkg-config.freedesktop.org/releases/ にアクセスできないので、riken から 0.20 をゲットして、普通に configure & make install
% /usr/local/bin/pkg-config --libs glib-2.0
-L/usr/local/lib -lglib-2.0
これで、おk

対象バージョン:

swfdec-0.8.0 でコンパイルする事にします。

必要なパッケージ一覧:

% grep _VER= configure
GLIB_VER=2.16
PANGO_VER=1.16
GTK_VER=2.8.0
LIBOIL_VER=0.3.1
CAIRO_VER=1.6.0
2.19 は開発版らしいので、とりあえず 2.18。 どうでもいいけど、GNOME のトップからダウンロードページを 探すのが大変なのですが… プレイヤーを動かす気はないので GTK は要らないかな。 あと、gstreamer も面倒なので後回し。
env PKG_CONFIG=/usr/local/bin/pkg-config ./configure \
--disable-gtk --disable-gstreamer

cairo-1.8.0:

env PKG_CONFIG=/usr/local/bin/pkg-config ./configure
checking for cairo's image surface backend feature...
checking for pixman... no
no
checking whether cairo's image surface backend feature could be enabled...
no (requires pixman-1 >= 0.12.0 http://cairographics.org/releases/)
configure: error: mandatory image surface backend feature could not be enabled
怒られた…

pixman-0.12.0:

env PKG_CONFIG=/usr/local/bin/pkg-config ./configure
で make install

cairo-1.8.0 再び:

今度は おk

liboil-0.3.15:

env PKG_CONFIG=/usr/local/bin/pkg-config ./configure
問題なし。順調。

cairo-1.8.0:

env PKG_CONFIG=/usr/local/bin/pkg-config ./configure
	<略>
configure: WARNING: Could not find libpng in the pkg-config search path
checking whether cairo's PNG functions feature could be enabled... no
configure: error: recommended PNG functions feature could not be enabled
/usr/local にも入れるか…

libpng-1.2.32:

cairo-1.8.0 再び:

env PKG_CONFIG=/usr/local/bin/pkg-config ./configure
	<略>
configure: error: Cairo requires at least one native font backend.  Please install FreeType and fontconfig and try again.
ふーむw

FreeType-2.3.7:

fontconfig-2.5.93:

env PKG_CONFIG=/usr/local/bin/pkg-config ./configure

cairo-1.8.0 三度:

env PKG_CONFIG=/usr/local/bin/pkg-config ./configure
	<略>
cairo (version 1.8.0 [release]) will be compiled with:

The following surface backends:
  Image:         yes (always builtin)
  Xlib:          yes
  Xlib Xrender:  yes
  Quartz:        no (requires CoreGraphics framework)
  Quartz-image:  no (disabled, use --enable-quartz-image to enable)
  XCB:           no (disabled, use --enable-xcb to enable)
  Win32:         no (requires a Win32 platform)
  OS2:           no (disabled, use --enable-os2 to enable)
  PostScript:    yes
  PDF:           yes
  SVG:           yes
  glitz:         no (disabled, use --enable-glitz to enable)
  BeOS:          no (disabled, use --enable-beos to enable)
  DirectFB:      no (disabled, use --enable-directfb to enable)

The following font backends:
  User:          yes (always builtin)
  FreeType:      yes
  Win32:         no (requires a Win32 platform)
  Quartz:        no (requires CoreGraphics framework)

The following functions:
  PNG functions: yes

And the following internal features:
  gcov support:  no
  test surfaces: no (disabled, use --enable-test-surfaces to enable)
  ps testing:    yes
  pdf testing:   no (requires poppler-glib >= 0.9.2)
  svg testing:   no (requires librsvg-2.0 >= 2.15.0)
ふむ。

pango-1.22.1:

env PKG_CONFIG=/usr/local/bin/pkg-config ./configure

swfdec-0.8.0:

env PKG_CONFIG=/usr/local/bin/pkg-config ./configure \
--disable-gtk --disable-gstreamer
	<略>
checking for ALSA... configure: error: Package requirements (alsa >= 1.0) were not met:

No package 'alsa' found
面倒なので手抜き
# ln -s /usr/lib/pkgconfig/alsa.pc  /usr/local/lib/pkgconfig/.
これ、おk

動作確認:

tools 以下に生成された dump コマンドがそれっぽく動いてるので、成功してるっぽい。
% ./tools/dump  ~/flash/chara.swf
file:
  version: 6
  rate   : 30 fps
  size   : 800x545 pixels
objects:
1: SwfdecImage
  JPEG with global table 800 x 545
2: SwfdecShape
800x545 image 1 (no repeat, bilinear)
3: SwfdecFont
  _????
  11 characters
4: SwfdecTextField

マニュアル:

なるほど、なるほど…
freedesktop.org が不安定なので tar.gz から取り出した ドキュメントを以下の場所に設置。

追記 (2009/04/07):


2008年10月24日(金)

[swfed] make test に挑戦 (2)

Makefile:

$(PHP_EXECUTABLE) -d 'open_basedir=' -d 'safe_mode=0'
-d 'output_buffering=0' -d 'memory_limit=-1'
$(top_srcdir)/run-tests.php
-d 'extension_dir=modules/'
-d `( . $(PHP_MODULES) ; echo extension=$$dlname)` tests/;
なるほど。ここの extension 読み込みを削除しつつ、 so ファイルを install してから make test をすれば、OK と。
$ make test
	<略>
=====================================================================
Running selected tests.
PASS SWF Editor getJpegData: SWF Editor support for DefineBitsJPEG [tests/getjpeg.phpt]
=====================================================================
Number of tests :    1                 1
Tests skipped   :    0 (  0.0%) --------
Tests warned    :    0 (  0.0%) (  0.0%)
Tests failed    :    0 (  0.0%) (  0.0%)
Tests passed    :    1 (100.0%) (100.0%)
---------------------------------------------------------------------
Time taken      :    0 seconds
=====================================================================
おk。テストパターンを書きまくろう。

valgrind:

run-test.php を読むと
    -m          Test for memory leaks with Valgrind.
memory leak も見てくれるらしいので、install
# yum install valgrind
さて…

テストパターン:

とりあえず、以下のパターンを作ってみます。
  • getJpegData (JPEG, JPEG2, JPEG3 形式から抽出)
  • replaceJpegData (JPEG, PNG 形式で入れ替え、各々透明度付きで入れ替え)
  • getPNGData (Lossless, Lossless2 形式から抽出)
  • replacePNGData (PNG, JPEG 形式で入れ替え、各々透明度付きで入れ替え)
  • getEditString
  • replaceEditString
  • set|getHeaderInfo (compress, version)
素材 flash を作らねば…

2008年10月25日(土)

swfdec を使ってみました

CentOS へのインストールメモはこちら

swf movie header:

rate = swfdec_player_get_rate(player);
swfdec_player_get_default_size(player, &width, &height);
printf("rate=%1.1f\n", rate);
printf("width=%d height=%d\n", width, height);
% gcc swfdec_getheader.c `pkg-config --cflags --libs swfdec-0.8` \
                         -Wl,-rpath,/usr/local/lib
% a.out ~/flash/chara.swf
rate=30.0
width=800 height=545
あっさり、frame_rate と rect が取れました。

2008年10月26日(日)

giflib QuantizeBuffer

giflib には QuantizeBuffer という減色ルーチンが含まれています。 試しに使ってみました。


…問題外 (´Д`;)
ここまでひどいと使い方を間違えているような…

giflib/util/rgb2gif:

切り分けの為に、giflib 付属の rgb2gif (内部で QuantizeBuffer を使ってるコマンド)で変換しました。 rgb ファイルの生成プログラムを即興で作成。
% gcc png2rgb.c -lpng bitstream.c
% ./aout test0.png > test0.rgb
% rgb2gif -1 -s 512 382 test_0.rgb > test_0-2.gif
使用前 使用後
かなり良くなりましたが、それでも実用的な品質じゃないですね…
やはり減色ルーチンは探すか作るかしないとダメそう。

QuantizeBuffer 再び:

写真を良く見てたら、rgb の r と b が逆だという事に気づきました。
元データが BGRA だったので対応するようにコードを修正。


どのみち、QuantizeBuffer がダメな事には変わりないですが…

2008年10月29日(水)

Fantasy Earth Zero を試してみた

FFXI の毒がすっかり抜けたので、お次は FEZ かなと。
(オンラインゲームの毒は抜けないらしい) うちのメインマシンは、 Core Duo 2.4G に memory 3G で GeForce 7600GT なので spec 的には大丈夫なはず。

パッチダウンロード:

フレッツ光回線で30分近くかかったけど無事に完了。

遊ぶ以前の問題:

  • 起動はするが、start ボタンを押すと黙って終了する。
  • 2度目は start を押してキャラ選択ボタンを押せたが、押した瞬間終了。
  • 3度目も同じ。
  • 4度目はキャラ選択画面までいけたが、その直後に終了。
  • 5度目も同じ。
  • 6度目はキャラ選択画面でジョブを選択できたら、選択した瞬間終了。
  • フルスクリーンにしても同じ。
沢山、試したからもういいや…(・ω・)
FFXI の重たいコンテンツ *1 でも、さくさく動いてた PC なのに…

追記 (2009/04/07):

何故か swfdec の検索でこのページに辿りつく事があるので誘導。

*1: 裏世界、ビシージ、あとフルアラのプロミヴォン等々

これで、8 日分だよ〜。

タイトル一覧
カテゴリ分類
Database
JXTA
Java
XML
awm
bookmark
keyword
memo
news
research
Powered by hns-2.19.5, HyperNikkiSystem Project