2012/08/29

32bitアプリから呼び出された場合の%PROCESSOR_ARCHITECTURE%

アプリケーションが64ビットで動いているか調べる、OSが64ビットか調べる: .NET Tips: C#, VB.NET
WOW64上の32ビットプロセスでは、PROCESSOR_ARCHITECTURE に"x86"が設定されます。この時、本来の PROCESSOR_ARCHITECTURE の値は、PROCESSOR_ARCHITEW6432 に設定されます。なお PROCESSOR_ARCHITEW6432 はWOW64でのみ使用されます。

ということで、32bitのアプリから呼び出されたcmdでは
IF %PROCESSOR_ARCHITECTURE%==AMD64 なんちゃら~
というbatを書いてもうまく働きません
というわけで
IF %PROCESSOR_ARCHITECTURE%==AMD64 (
64bitなかんじ
) ELSE (
IF "%PROCESSOR_ARCHITEW6432%"=="AMD64" (
64bitなかんじ
) ELSE (
32bitなかんじ
)
)

こんなのでどうでしょう。

2012/08/15

STDOUTの文字コードを途中で変える(perl)

Perlの文字コード変換の話 其の六 - It_lives_vainlyの日記

コンソール使用時はcp932で、同じスクリプトを使ってmp4boxへ渡す名前だけutf8にしたいと悩んで、use encodingとかも試したのですが、「途中から変更」という目的には合わず(use encodingは最後に宣言したものが有効になる)。
で、bimode STDOUT ':raw:encoding(utf8)'というのが正解のようです。
rawを指定すると前のエンコードを無効にしてくれるとのこと。
というわけで、途中で変えたい場合、こんなコードを入れておくと便利。
if ($flg_utf8){
binmode STDOUT, ":raw:encoding(utf8)";#utf8出力
}else{
binmode STDOUT, ":raw:encoding(cp932)";#cp932
}

それとは別にtsrenameをbatの中で使えないかと悩んで、こんなページを見つけました。
TsRenameのリネーム後のファイルでバッチ処理

ふむふむとか読んでいたのですが、EpgDataBonで録って.program.txtがある場合はそのファイルを読み込めばいいか、という結論に達し、自分でスクリプトを作ることに。
・・・あれ?お休みは今日までなのに、連休中にアニメを1本も見ていない・・・

2012/08/11

DGIndex 1.5.8 mod7をビルドしてみた

メモの跡地 DGIndexで正常なAAC音声ファイルが出力されない

基本的には↑に書いてある通り。
ただ、IDE上でコンパイルしたほうが楽な気がするので、上記ページの手順1~5をやった後、
6.DGIndex.slnをMicrosoft Visual C++ 2010 Express用に変換(といっても開くだけ)、
7.idctmmx.asmのプロパティからカスタムコンパイルコマンドのml.exeのパスを変更
C:\tool\asm\MASM6\ml.exe /c /coff /Cx /nologo %(Filename).asm
8.simle_idct_mmx.asm、skal_dct_sse.asmのプロパティを
C:\tool\asm\NASM\nasm.exe -f win32 -DPREFIX -DWIN32 -o $(IntDir)%(Filename).obj %(Filename).asm
というように変更(Fullpathを使わないのはスペースを含むパスを使ってるため)

んで、後はbuildするだけ
とりあえずメモ。

コンパイル環境:
・Microsoft Visual C++ 2010 Express
・NASM
・MASM 6.15?


新版 TSの音声(aac)についてメモ(跡地): リソースうめぇ!
んで、とりあえずDGIndexをmodバージョンにして、BS11の音声も正常に抜き出せるようになったのですが、
音声 : 1/0+1/0モード(デュアルモノ)
実況解説
会場音
とかいう場合、CMに入ったり出たりした際に2ch→0ch→2ch→というように音声チャンネル数が変わるため、正常に再生できないものが出来上がることが多いです。
というわけで、.ts.program.txtの中身を参照して、デュアルモノや5.1chの場合はデコードして再エンコードするようにスクリプトを変更中・・・

それにしても、僕は何でエンコードスクリプトをbatファイルで書いてしまったのでしょうか。
どうせbatでできないところはperlにやらせるので、そもそもperlで全部書けばよかったじゃないか、と思う今日この頃。
いや、勉強にはなったのですが、あれもやろうこれもやろうと思うと、結局perlで別スクリプトを書いてbat上で実行、出力を取り込んであれやこれやとやっているので・・・。
時間さえあれば書き直した方がいいかも。


130112追記
なんだかリンク先がなくなっていたためこっちを参考にすればいいんじゃない?的なメモ
DGIndexのバグを修正してみる
いや、意外とこのページの検索率が高いので・・・

2012/08/05

なくせる物なら

朝日新聞デジタル:「原発0%」7割支持 政府の意見聴取会終了 - 政治

原発をなくして、代わりに再生可能エネルギーですべて電力をまかなえるのであれば、なくしたいものですね。

2012/08/02

世の中は不思議と納得で満ちている

NHKスペシャル 100年の難問はなぜ解けたのか――天才数学者の光と影 [著]春日真人 - 大澤真幸(社会学者) - 本の達人 | BOOK.asahi.com:朝日新聞社の書評サイト

「おかしいとは思いませんか」
「私、気になります」

そう思ったらとことん追求するのがいいと思います。
途中であきらめてしまっては回答にたどり着けません。

疲れたらしばらく放っておけばいいんです。
またやる気になったら続きをやれば。
もうやる気にならないと思うかもしれませんが、未来のことは未定のままです。

そんなことを思いました。
キノコ狩りや魔力にとらわれた人々は結構面白かったですよ。