2009年04月30日

libavcodec消化の道 三口目 若干妥協して前進

SDL_Mixerのmusicコールバックで周波数の差分も拾おうと思ったが
これを現時点で始めてしまうと22.5khzや11.25kHzならまだしも
48kHzとか24kHzまで考慮するとaudioイフェクト全般に手が広がってしまうので
一旦断念して今回は
とりあえずSDL_Mixerの初期化時の引数でどうにかすることにした。
それでどうした!......
ラベル:ffmpeg SDL_Mixer
posted by Xo_ox at 16:45| Comment(0) | クロスプラットフォーム | このブログの読者になる | 更新情報をチェックする

2009年04月27日

libavcodec消化の道 二口目 SDL_Mixerに移植で微妙なはまりをみせる。

ffplayのコードのオープン化(非GPL)という事で模索したところ
ようするにキューの実装を入れ換えれば良さそうだと気づいた。
有限のストリームバッファなら事前に配列を作っておけばいいし
SDL_CondとSDL_Mutexの組み合わせでは無くて
glibの非同期キューGAsyncQueueを使えばアプリケーションコードからはGPL,LGPLのコードを排除できるし
サンプルとしても見やすくなりそうだと思った。
が、その前にMixer的部分をSDL_Mixerを使う方向で工夫してみることにした。(前回好まないとか言ったくせに)
とりあえずサンプリング周波数限定ではちゃんと動く様になった。


それでどうした!......
ラベル:ffmpeg SDL_Mixer SDL
posted by Xo_ox at 23:59| Comment(0) | クロスプラットフォーム | このブログの読者になる | 更新情報をチェックする

2009年04月25日

libavcodec消化の道 一口目 未だ模索中

前出のチュートリアル
そもそもffplayをベースにしている様だ。
実行環境にもよるのかもしれないがtutorial3以降動画が終了すると
アプリを終了できない状況に陥った。
調べるとSDL_Audioとオーディオデコードのやりとりに問題があったので
読み取りと再生する度にプラスマイナスカウンタをつけてなんとかしのいだ。
それでどうした!......
ラベル:ffmpeg
posted by Xo_ox at 22:36| Comment(0) | クロスプラットフォーム | このブログの読者になる | 更新情報をチェックする

2009年04月22日

smpegをsmpegとして使って惨敗

そもそもsmpegとはSDL mpegライブラリーなのである。
うまいこと単独で複数鳴らせるかと思ったがうまくいかなかった。
wavに変換するツールとして使えるかとも思ったが仕様がよくわからず
ffmpegを使うか自前でMP3ライブラリー書いた方が速いと言う結論に至った。
まぁだからSDL_Mixerでも音楽としてだけサポートされているのだろう。
それでどうした!......
ラベル:smpeg SDL
posted by Xo_ox at 12:11| Comment(0) | クロスプラットフォーム | このブログの読者になる | 更新情報をチェックする

2009年04月20日

SDL_Mixerを使ってみたけどしっくりこない。

libavcodecを使ったFLVやmp4の再生は多分使用頻度の高いアプリになるのだろうが
glibもgtk2もなしでデフォルトでメモリーを20Mbyteも食うのが楽しくない。
動画を使わないで音声だけの場合を考えると、
やはりSDL_Mixerを選ばない理由は特にないと思ったが
ちょちょっと音を出すには便利だがFlashの再生ということになると微妙な部分を多々感じた。
それでどうした!......
ラベル:SDL SDL_Mixer
posted by Xo_ox at 23:39| Comment(0) | クロスプラットフォーム | このブログの読者になる | 更新情報をチェックする

2009年04月19日

避けては通れない動画処理(flvやmp4再生)

UNIXにはMCIもDirectShowもない。現時点ではコマンド渡しでプレーヤーを起動するくらいしか出来ない。
これは避けては通れない道なので取り敢えず動画再生の道筋をつけた。
動画処理には二つのアプローチがあると思う。
素材としていろいといじるというアプローチと
ソフトとハードと最大効率でいかにスムーズに再生するかと
adobeのFlash playerの場合、明かに前者「のみ」なのだが
youtube鑑賞などは後者の方が好ましい。
道筋としてffmpegかgstreamerかの二択なのだが
今回はなんとかffmpegのライブラリーを使ったサンプルコードをビルドすることが出来た。

それでどうした!......
ラベル:動画
posted by Xo_ox at 19:32| Comment(0) | FreeBSDアプリ | このブログの読者になる | 更新情報をチェックする

2009年04月18日

表示部分のコアを考える。(xlibでOpenGL)

クリエーターが使いやすいゲーム実行環境(Flash player)を作り
自分もそれにのっかってシナリオベースでゲームを作るということが今の作業なのだが
コアのWindowシステムをどうするか描画システムをどうするかということについて
どうも決めかねている。
今回はSDLとglut以外の選択肢として
あえて一般的でもクロスプラットフォームでもないxlibでOpenGLを使ってみた。
それでどうした!......
ラベル:opengl xlib
posted by Xo_ox at 23:45| Comment(0) | FreeBSDアプリ | このブログの読者になる | 更新情報をチェックする

2009年04月17日

各種ファイルフォーマット読み書きの手抜きの手

UNIX系OSの場合ImageMagickを取り敢えず入れておいて損はないので勧められる。
その前提であればテンポラリーに「convert」で書き出してそれを読み込む
あるいは書き出してconvertで変換という方法を「sytem」命令経由で使える。
pipe使ったりMagickWand使ったりするまでもないだろう。
ただし速度は遅い。そうでなければMagickWandで全てすんでいるはずだ。
それでどうした!......
ラベル:画像
posted by Xo_ox at 16:51| Comment(0) | FreeBSDアプリ | このブログの読者になる | 更新情報をチェックする

2009年04月16日

pango使ってみた。

ちょっと目先を変えてpangoを使ってみた。
GTKの基幹ライブラリーだがGTK依存ではなくてglib2だけに依存している。
同時に入るライブラリーでpangocairoというのがあるのでcairoをターゲットにpangoを使ってみた。
cairoはSDL_Surfaceをターゲットに出来る。
今回はめんどいのでイメージに直接出力したがSDLへのテキストレンダリングに使えるということだ。
それでどうした!......
ラベル:pango cairo
posted by Xo_ox at 17:13| Comment(0) | クロスプラットフォーム | このブログの読者になる | 更新情報をチェックする

2009年04月15日

cairoをjpegで書き出す

cairo_surface_write_to_pngに対応した
cairo_surface_write_to_jpgを作ってみ。
imagesurfaceにしか対応していないし荒っぽいが
アルファチャンネルを白方向に合成するようにしたので悪くない感じになった。
あと今回は表記が三項演算子だったり動的配列を使ったり微妙に実験的でもある。
それでどうした!......
ラベル:cairo 画像処理
posted by Xo_ox at 23:27| Comment(0) | クロスプラットフォーム | このブログの読者になる | 更新情報をチェックする

2009年04月14日

cairoにjpegを読み込む

cairoはpngの読み書きができるのだがやはりjpegを読めた方が良い。
SDLやメモリに読み込むよりとりあえずテクスチャーをcairoで考慮して問題はないだろうと考えたので
libjpegによる読み込みを使いやすくしてみた。
それでどうした!......
ラベル:cairo libjpeg
posted by Xo_ox at 23:48| Comment(0) | クロスプラットフォーム | このブログの読者になる | 更新情報をチェックする

2009年04月11日

cairo用の構造体とマスクとクリップ

今回はcairoの描画部分をコンテキスト非依存にして
アプリの中核となる部分や型をまとめてみた。
描画部分については重なり合いを扱うcairo_set_operator
描画部分で切り取るcairo_clip、そしてcairo_set_source等
ありがちなサンプルでやってみた。
メモリを確保する関数とかマクロもいくつか作ったが今回はcairo_image_surface_createに頼った。
それでどうした!......
ラベル:cairo
posted by Xo_ox at 23:40| Comment(0) | クロスプラットフォーム | このブログの読者になる | 更新情報をチェックする

2009年04月08日

rsvg2とcairoでsvgをSDLに描画したり保存したり

cairoで一般的なビットマップを扱う場合は代替手段も多いだろうが
同一描画命令でps2,pdf,svgもサポートしている点が大きい。
今回はrsvg2も使い、svgファイルをimageとsvgそれぞれに取り込み
文字を描画してimageをsvgに描画し、それをsvgとpngに出力をしつつ画面をだすということをやってみた。
それでどうした!......
ラベル:cairo SVG SDL
posted by Xo_ox at 15:51| Comment(0) | クロスプラットフォーム | このブログの読者になる | 更新情報をチェックする

2009年04月07日

cairoでの画像のやりとりと透明度

メモリコンテキストにcairo_surface_tを割り当てることにより
cairo以外の手段で透明度も含めて操作した内容が反映されたpngを保存できるようになった。
注意点はBGRAになる点とデータがアルファをもつ点で
libjpegを使って読み込んだ画像も表示・png保存できた。
それでどうした!......
ラベル:cairo
posted by Xo_ox at 22:42| Comment(0) | クロスプラットフォーム | このブログの読者になる | 更新情報をチェックする

2009年04月06日

cairo_surfaceの通常時とpng使用時の開放の不思議

どうもcairoのサンプルはあまり無いようだし興味のある人も少ないようだが
それなりのパフォーマンスと結果が期待できるので本格的に使っていこうと思う。
昨日、とりあえずjpegをcairoで扱うことが出来たのだが
pngを読む場合と割り当てる場合で同様の開放方法であり正しかったのかどうか
メモリーの確保と開放がどうにも不明瞭だったので再確認し元データの反映のタイミングを確認した。
それでどうした!......
ラベル:cairo
posted by Xo_ox at 23:59| Comment(0) | クロスプラットフォーム | このブログの読者になる | 更新情報をチェックする

2009年04月04日

cairoへのjpegload、思わぬ落とし穴。

WindowフレームワークとしてのxlibかSDL
描画フレームワークとしてのcairoそしてSDLとOpenGL
簡便な画像ライブラリーとしてのlibjpeg
だんだんツールもみえてきたところでcairoでjpeg画像の加工をしてみようと思った。
しかし今回思わぬ落とし穴があった。cairoはビッグエンディアンだったのだ。
ブロック転送はできない。
それでどうした!......
ラベル:cairo
posted by Xo_ox at 23:20| Comment(0) | クロスプラットフォーム | このブログの読者になる | 更新情報をチェックする

2009年04月03日

jpegtranで遊ぶ

libjpegをインストールする。つまりFreeBSDのデスクトップのデフォルトでは
libjpegのコマンドラインツールがインストールされる。
djpeg、cjpeg、jpegtran、exifautotran、jpegexiforient、
wrjpgcom、rdjpgcomの7つ
jpegコメントは興味ないので今回はロスレス変換系の3つのコマンドを試した。
前回のexifタグのstripなどはわざわざコードを組まなくてもjpegtranだけで十分なわけだ。
それでどうした!......
ラベル:libjpeg
posted by Xo_ox at 23:51| Comment(0) | FreeBSDアプリ | このブログの読者になる | 更新情報をチェックする

2009年04月02日

exifタグのstrip

前回はココログにアップすることを前提にexifをキープして再編集したが
逆に単にexifを取りたいこともある。ファイルのパースをすればいいだけなのだが
libjpegを使ってできるのでやってみた。
参考になるのはやはりjpegtran.cだ。

jpegtran.cをみるとロスレス変形はライブラリーでなくてtransupp.cというローカルモジュールに依存している様だ。
特にGPLとかでもないようなのでIJGベースだとライセンスをつければ公開などは無難で
transupp.cの部分コピーを使えなくもないがロスレス回転とか微妙に半端で長いコードなので
jpeglibだけで後日自前で組むとして今回はexifタグのstripだけやってみた。
それでどうした!......
ラベル:libjpeg 画像
posted by Xo_ox at 19:59| Comment(0) | クロスプラットフォーム | このブログの読者になる | 更新情報をチェックする

2009年04月01日

libjpegでデジカメの写真を編集した後にexifを戻すの基本。

jpegtranが独自のコーディングでなくlibjpeg依存であれば
exifタグを残したままロスレス変換できるわけで編集後のファイルにも
元のデータのexifタグをつけられるのではないかと思いやってみた。
何気に脱MagickWandな内容になってきた。
それでどうした!......
ラベル:libjpeg 画像
posted by Xo_ox at 23:26| Comment(0) | クロスプラットフォーム | このブログの読者になる | 更新情報をチェックする
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。