アニメのエンコに賭ける青春って幸せ!at AVI
アニメのエンコに賭ける青春って幸せ! - 暇つぶし2ch379: ◆MakKi3ZtD.
08/05/28 02:27:30 7GRGNHFw
>>374
ただ問題は、UtlのYC48は正確には12bitじゃないんですよね。符号なし4096と符号付き2048のために。
微々たる差でしかないですが。

>>378
ニーズと言えるか微妙だけど、ModのYC48対応のテストに重宝する予定ですよ

作りたいから、作れそうだから作った、でいいんじゃないかな。楽しめればそれで。
ユーザとしても選択肢が増えるのは悪くないですし。

380:ぽむ ◆0POoRnBOR.
08/05/30 21:13:43 K4HwHt+1
掲示板のカキコでVC++2008で作ったバイナリはWin9xでは動かないことに気づいた。
Win9x使ってる人も居たんだな…。

381: ◆MakKi3ZtD.
08/06/05 02:49:31 TZiG2zFb
PC壊れた。どうも母板が逝ってたみたい・・・
おかげで一式新調する羽目に・・・
さよならAthlonXP

>380
DLL足りないってわけでもないですかね。LoadLibrary failedってどの段階でしょう?
さすがに9x系をメインで使ってる人は稀でしょうね。
//自分のMeノートも今やxubuntu機。そして現役w

382:ぽむ ◆0POoRnBOR.
08/06/05 03:24:23 BH4h87Hy
メインPCは少し前にVista 32bitにした。
サブPCはMonXキャプチャ専用機になってる。サブPCじゃないとPCI Expressないからー。
HDDは別HDDにファイル同期してるけどバックアップがこれで十分かどうか微妙かな。

>>381
VisualStudioは公式にサポートやめてるので、これで作ると自動的にWin9xでは動かなくなりますー。

URLリンク(msdn.microsoft.com)
> Windows 95、Windows 98、Windows ME、および Windows NT の各プラットフォームはサポートされなくなりました。
>これらのオペレーティング システムは対象プラットフォームの一覧から削除されました。

>LoadLibrary failedってどの段階でしょう?
STDAPI DllRegisterServer() { return AMovieDllRegisterServer2( TRUE ); }
このコードが動かないのですがAMovieDllRegisterServer2が入っているライブラリも自分でコンパイルするので
DirectShowのライブラリ内で失敗かな。

383:ぽむ ◆0POoRnBOR.
08/06/05 03:30:11 BH4h87Hy
本当はフィルタ登録なしで動かしたかったけどよくわからなかったので
登録作業の簡略化で妥協。UACのボタンを押すだけで済むならいいかなと。

384: ◆MakKi3ZtD.
08/06/09 02:15:52 nGWdxWM3
ドライバ導入ミスってひどいことになったりしたけど、やっとまともに動くようになりました。
久々のOS安装でWindowsって面倒だと痛感。ちなみに2kのまま。

>382
出てきたバイナリにも互換なくなってくるんですね。時代の流れなんでしょうけど。
2kはいつまでもつかなぁ。。

>383
お疲れ様。Vista普及でその手の質問激増してましたしね。
茂木さんの日記見る限りではそんなに難しくなさそうなんだけど・・・試してみよかな。

あ、その前にSDK入れなきゃ。

385:ぽむ ◆0POoRnBOR.
08/06/10 11:54:52 2MtY7wXn
regsvr32でds_input.auiを登録してもデスクトップにおいた場合はレジストリに
C:\Documents and Settings\Administrator\デスクトップ\
というふうにファイル名にならずにパスの途中までしか記録されない。
コードは>>382なんだが。犯人はVC2008かSDKかどちらかかなぁ。('A`)

386:名無しさん@編集中
08/06/10 22:08:18 PoYXaeGE
ダブルクォート使っても?

387:ぽむ ◆0POoRnBOR.
08/06/11 08:34:45 48D85Jdv
プラグイン内のコードは>>382の一行だけ。文字列は扱ってない。
トレースしてみるとコンパイラが怪しいかなぁ
strsafe.h: iRet = _vsnprintf(pszDest, cchMax, pszFormat, argList);
#pszFormat = "%ls"
#argList = unicodeのファイル名
ここで出力のpszDestに日本語だと壊れたファイル名が出力される。('A`)

388:ぽむ ◆0POoRnBOR.
08/06/11 11:54:20 jxmzOVi+
バグ回避コード
C:\Program Files\Microsoft SDKs\Windows\v6.1\Samples\Multimedia\DirectShow\BaseClasses\dllsetup.cpp
175行目あたり
// (void)StringCchPrintf( achTemp, NUMELMS(achTemp), TEXT("%ls"), szFileName );
char str[1024];
WideCharToMultiByte(CP_ACP, 0, szFileName, wcslen(szFileName)+1, str, 1024, NULL, NULL );
(void)StringCchPrintf( achTemp, NUMELMS(achTemp), TEXT("%s"), str );

389: ◆MakKi3ZtD.
08/06/14 01:44:33 aFQaQxL5
するってーと、StringCchPrintf()がUnicodeをまともに扱えてないってことですか

390:ぽむ ◆0POoRnBOR.
08/06/16 16:36:53 a4gyCrsZ
もしかするとsetlocale(LC_CTYPE, "japanese")が必要なのかも。
プロジェクトはMBCSなのだが。
だとするとコンパイラじゃなくてSDK側がだめなのか。

391: ◆MakKi3ZtD.
08/06/23 03:02:49 dZku6hLv
String~はstrsafe.libの中だそうで。SDK側かな?

話し変わって、どうやらVDがVBR-MP3に対応したそうですね。
nBlockAlignが1152のままなのは微妙に納得できないけど。

妖精さんの記事がとても興味深かった。いくつか気付いたので個人的めも。
MSのドキュメントでMPEG1WAVEFORMATのVBRへの言及をVBRサポートの根拠の一つにしてるけど、
AVIだとnBlockAlignは1じゃなくて大きい値にしないといけないのでドキュメントには従えないんだよね。
まぁMP3ならMPEGLAYER3WAVEFORMAT使うから別にいいんだとは思うけど。(こっちにはVBRについて何も書いてない)
オーバーヘッドが大きいって話も出てたけど、別に1frame/chunkにしなくてもいいので(Alexも書いてたはず)、
3frame/chunkくらいにすればビデオ1フレーム毎のインターリーブよりむしろ省オーバーヘッド。
もちろんこの方法はAVIMux-GUIのlow overhead modeとは違うから、互換性の問題もなし。
nBlockSizeに最大サイズでPADDING_ONは素直なのか微妙な気がする。
少なくとも、最大サイズになるchunkではフラグの"Always insert padding."に反するわけだし。
nBlockSize+=1すればいいかもw
最後に、MP3のフレームに含まれるサンプル数ってMPEG2/2.5だと1152じゃなくて576なんだよね。
パディング付きフレームが連続してるとフレームサイズを間違うのでちょっとまずい。

なんか長くなっちゃった。
さて、mp3input.auiのバグ直さなきゃ。(nAvgBytesPerSecの計算で1152固定になってやがるw)

392:ぽむ ◆0POoRnBOR.
08/06/23 11:14:35 YP+pm67M
ちょっと補足。

問題があるのはDirectShowのBaseClasses(stmrbase.lib)みたいです。
strmbase.libはマルチバイト(MBCS)版とUnicode版があります。(自分でコンパイルします)

関数にUnicode処理をさせるにはロケールの設定が必要らしいです。
マルチバイトしか使ったことがなかったのでUnicodeビルドのお約束を知らなかったのですが。
BaseClassesの中のdllsetup.cppの中では以下のようにファイル名を処理しています。

1. GetModuleFilenameAでdllのファイル名を取得。
2. MultibyteToWideCharでUnicodeに変換。
3 StringCchPrintfでUnicodeを処理。

マルチバイト版での問題は3では通常、ロケールが設定がされていないのでUnicode処理をさせてはいけないこと。
事前にWideCharToMultibyteでマルチバイトに変換する必要があります。
Unicode版での問題は条件コンパイルされていないためGetMuduleFilenameWを使ってくれないこと。
Unicode依存文字がファイル名に含まれているとフィルタ登録ができません。(マルチバイトも同じみたいですが…)

393: ◆MakKi3ZtD.
08/06/23 23:47:41 dZku6hLv
あー、そういうことか。
やっと事態が飲み込めました。ボケててすみません。
ロケールが不明なためString~はコード変換できずにコケると。
勉強になりました。

にしても、この不完全なSDKでも他の人はうまく使いこなしてるんですかね・・・

394: ◆MakKi3ZtD.
08/06/29 00:17:04 evesWaf1
warpsharpMT化に対抗して更新(嘘

いや、バグ見つけてくれたようだったのでこっちも修正のつもりだったんだ。
なんでだろ、見つけてもらったバグだけど、手元のソース見たらなんかもう直ってたんだ。
更新履歴みると2004年に手を加えてるっぽいんだ。

・・・公開するの忘れてました。ほんとごめん。


あとdepthとbumpの最大値だけど、見る限りオーバーフローし得ないので256のままです。一応書いとく。

395:名無しさん@編集中
08/06/29 01:02:08 gtXI6Tvv
なんというドジっ子。乙

396:名無しさん@編集中
08/06/29 05:53:39 Ijg/6/hS
>>394
元の処理ならオーバーフローしないです。
それで悩まされたんですけどw
SSE2化したコードの中で16ビットを一時的に超えることがあるのでそこですね。
メモリ使用は抑えられるはずなんですが、面倒だったのと速度優先でああなりましたw

397: ◆MakKi3ZtD.
08/09/02 02:15:40 4hOd6kuV
そろそろホシュ。なんか忙しくてコードに触れてすらいなかった。ぷろぐらみんぐぶんがふそくしている

厄年だからか、今度はノートPCが壊れました。まあ7年半使ったから相当持ったほうかな。
思えば最初に手にした「自分のPC」だったわけで、感慨深いものも・・・あれ?あんまりないな。

Modの話。
ソースを適当にディレクトリ分けして、全体的にコード整理、
32bitRGBとYC48の入力(デコード)に対応、あと入力のキャッシュを作り中。公開はまだ。

実家に顔出してる間進めたかったんだけど、その初日でノート壊れたから全然すすまなかった。

398:名無しさん@編集中
08/09/02 08:07:07 Yn+LC2pB
おつ

399:ぽむ ◆0POoRnBOR.
08/11/14 08:09:22 Ek2pkQWi
拡張編集で気付いたけどSDKにこんなの追加されてたんだな。
2008/7/29(0.99e2)
 [auf]SYS_INFOにbuildの項目を追加。
 [auf]1つのaufファイルで複数のフィルタを登録できるようにした。

バージョンチェックが今まで出来なかったのはまあ注意書きだけで何とかしてたけど。
複数フィルタは画像と音声の両方を扱えるフィルタが作れるということか。


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch