HDTVtoMPEG2の改変
(2011.11.07追記:HDTVtoMPEG2の改竄を参照)
症状
特定の番組で切り出しができないことがある。
原因
TSパケットサイズ188バイトを超えるセクション長が現れたときに不正アクセスする。
対策
VC2010評価版でソースコードを改変します。ついでに、日本語が表示されるようにします*1。
VC2010評価版コンパイルエラー
ProgressDialog.cpp 94〜100行をコメントアウトする。
94:// Note: we add support for IID_IProgressDialog to support typesafe binding 95:// from VBA. This IID must match the GUID that is attached to the 96:// dispinterface in the .ODL file. 97: 98:// {269D387C-75C8-40D4-B253-8D505A36FF8B} 99://static const IID IID_IProgressDialog = 100://{ 0x269d387c, 0x75c8, 0x40d4, { 0xb2, 0x53, 0x8d, 0x50, 0x5a, 0x36, 0xff, 0x8b } };
文字化け防止
リソースエディタで、IDD_HDTVTOMPEG2_DIALOGの[フォント][Use System Font]を"True"に変更。
不正アクセス防止
mpeg2stuff.cppの9867行のbuf2[188]をbuf2[1024]に変更する。
9867: unsigned char buf2[1024]; // temp buff for holding the "stream_type" data
補足
文字化け防止の変更は正当なものと判断できますが、不正アクセス防止の変更は本質的なものではありません。あくまでも対症療法です。いつかちゃんと直す?無理かな?無理っぽいな・・・
ついでに、Release、DLL版でビルドすれば、exeのサイズが300KBになります*2。
- オリジナル:Process中に異常終了。また出力ファイル名が文字化け
- 変更版:正常に処理される。また出力ファイル名の文字化けが修正されている*3
(7/14追記)
・・・だけど、まだフリーズする番組があるんだな、これが・・・
HDTVtoMPEG2(改).exe バイナリ ダウンロード