2010年04月10日

wcmpg.dll

一通り機能を付けて公開しました。

仮想マシン上で10〜15%程度の負荷ですが、どのくらいのマシンで快適に動作するのかは謎。再生するファイルにもよるだろうけど。

[ドキュメントの補足]
setx,sety,setwidth,setheightで画面に表示する領域を指定します。setsrcx,setsrcy,setsrcwidth,setsrcheightでビデオ内から描画したい領域を指定します。これらを組み合わせてビデオの一部分を拡大して表示したりすることも出来ると思います。getvideowidth,getvideoheightの値はビデオのオリジナルサイズなので変動しません。
posted by wintercrows at 11:44| Comment(0) | TrackBack(0) | nscripter

2010年04月07日

プラグイン

mpg1b.dll

MPEG-1再生レイヤープラグイン。
とりあえず動くかどうかの確認程度でまだまともに使える状態じゃないです。単体ファイルかNSAファイルから再生可能です。NSAGetFileはns2には対応していないのかな?

DirectShowを使用しているのでMPEG-1以外も再生できるかもしれませんが、フィルタがあれば再生できるというものでもないです。例えばMPEG-2はフィルタが存在しても再生できません。
posted by wintercrows at 21:30| Comment(0) | TrackBack(0) | nscripter

PC強化

Opteron 170 -> PhenomII X4 955 BE
DDR400 2GB -> DDR2-800 8GB

あとOSもWindows XPから7へ。
Visual Studio 2005はXPModeで使用。
十分使える速度。
posted by wintercrows at 21:25| Comment(0) | TrackBack(0) | 日記

2009年11月10日

videoタグ

Firefoxでは既にサポートされていたのでちょっと試してみた。



※フルサイズはこちら

ffmpeg2theoraで580kbpsの2passでエンコード。

お手軽ビデオ配信!
たしかChromeもvideoタグをサポートしてた(?)気がする。
IEとかでもサポートされないかなぁ。

※画面中に再生されているファイルが元から画質がよくなく、さらにキャプチャ時も圧縮しながら撮ったのでかなり荒くなってます。あと録画が追いついてないのかちょっとコマ落ち気味かも。
posted by wintercrows at 00:20| Comment(0) | TrackBack(0) | 日記

2009年04月10日

プラグインのテスト

nslua用プラグインのテスト。

nslua側からプラグインを読み込んで呼び出してみた。
プラグイン自体の機能は文字列とBase64の変換だけ。

b64.zip

プラグイン側でluaのヘッダとかいるのかと思ったけど必要なかった。
それにしてもこれは楽しい!
nsswfやnptheoraもlua用に関数を用意すると、スクリプト側で利用するのもかなり楽になりそう。
posted by wintercrows at 23:00| Comment(0) | TrackBack(0) | nscripter

2009年04月09日

NScripterに大規模な更新

これは面白そうだ。
luaはさわったことないので、いろいろ試してみよう。


--

やはりVisual C++ 2008のコンパイラでは9x系で動かないのか。
2003に戻されるよう。
posted by wintercrows at 01:16| Comment(0) | TrackBack(0) | nscripter

2009年04月05日

コンパイラとスタック

これからNScripterはVisual C++ 2008でコンパイルされるよう。
基本的にVisual C++ 2008でコンパイルすると9xでは動かない(?)みたいなんだけど、大丈夫なんだろうか。
まあ9xはMicrosoftのサポートも終わってるし、OSの使用自体推奨されないか。

※関係ないけどミレニアムエディションは本当にひどかったなぁ(´ロ`;)
※ただ起動速度はめちゃくちゃ速かった。

---

最近NScripterのスクリプトばかり弄ってる。
それでNScripter関係のサイト見てたら、スクリプトでスタックを実装してた。
たしかに便利だなぁとこれを配列変数でやろうかと思ったが、
配列変数はどのくらいまで領域を確保していいのかわからない。
あまり大きな値(例えば30000)を確保するとNScripter内の他の領域を上書きしてる(?)のか挙動がおかしくなる。
ただエラーメッセージなどは出ない。
このエラーメッセージが出ないのが曲者で、例えば10000では挙動に変化は出ないけど、
見えないところで超えてる可能性があるんじゃないかと。

安全に使用できる領域はどのくらいなのか。
マニュアル読んで?0[199]が最大かと思ったけど、
そのサンプルで(2次元だけど)200は超えてるようだからやっぱり?0-199[n]?
うーん、どこか読み落としてるんだろうか。

って考えてたけど、そもそもそんなに深く潜ることもないから大丈夫か。
とりあえずdim ?0[500]くらいでやってみよう。
posted by wintercrows at 17:12| Comment(0) | TrackBack(0) | nscripter

2009年03月28日

nsswf.dllのサンプルスクリプト

サンプルスクリプトを組んでみました。

00.txt
01.txt
02.txt

動作確認もほとんどしてなくて上手く動くかあまり自信がないですが、
00.txtがdefine節、01.txtが実装部分、02.txtからstartという感じです。
あとは同じフォルダにnscr.exe、nsswf.dll、demo.swfを用意してください。

サブルーチン(defsubやら)を使用したのは初めてかもしれない。
実は今まであまりNScripter本体にふれてない(´・ω・`)
今回のサンプル作るだけでも分からないことが一杯だった。
NScripterを利用して作品を作ったことはあるのですが、
(もともとnptheoraもそれで使用するつもりだった)
そのときは時間もなくて場当たり的な突貫工事。
逆にそれで十分動くくらいNScripterは使いやすいってことですが。

で、やってて思ったのはSwfOpen(demo.swf)よりSwfOpen/demo.swfという書式の方がいいのかなと。
まあ今から変えるのもなんだし、とりあえずこのままでいいか。
posted by wintercrows at 21:25| Comment(0) | TrackBack(0) | nsswf

2009年02月03日

システムメニューの不具合修正

CoGetInterfaceAndReleaseStreamで取得したFlashのインターフェイスを使うのを限定的にした。このインターフェイスからFlashの関数なりを呼び出している間にシステムメニュー関係の処理が失敗しているようなので。
自分で同期処理っていうか、ただスレッドにメッセージ送って処理してくるの待つだけ(´・ω・`)
posted by wintercrows at 16:54| Comment(0) | TrackBack(0) | nsswf

2009年01月28日

nsswf.dllの不具合

systemmenu.PNG
画像のようなウインドウ(NScripter)のシステムメニューが効かなくなる。選択してもビープ音のみ。ウインドウ上の[X]ボタンやら[_]ボタンは問題なく動作しているけど、タスクバーやウインドウアイコンから呼び出したシステムメニューのみが動作しなくなる。

Flash用にスレッドを別にしたのが原因のよう。0.5.0.0以前では発生していない。新しいスレッドでホストウインドウやらFlashやらを作って、メインスレッドではCoGetInterfaceAndReleaseStreamで取得したインターフェイスで処理している。不味いんかなぁ(´・ω・`)

一応、0.5.0.0はここに置いてあります。

これはこれで別のバグがありますが(´・ω・`)
posted by wintercrows at 20:37| Comment(0) | TrackBack(0) | nsswf