TVTest 0.8.1のビルド方法
2013/9/20に、TVTestの新バージョン0.8.1ソースプログラムが、デジタル放送汎用視聴プログラム実装研究資料として、https://github.com/DBCTRADO/TVTest のホームページに公開された(2013/9/25にわずかな修正有り)。
昨年9月に公開されたバージョン0.8.0は、不具合等が多数あったが、新バージョンになって動作も安定してきており、かつスカパープレミアムで使うと便利な新機能も搭載されているので、そろそろTVTest及びTVH264_SPHDのバージョンアップをお勧めする。
但し公開されているのはソースコードのみであり、実行形式のファイルは含まれていない。かつ実用的に用いるためには自分でソースコードを修正してからビルドしなおす必要がある。
従い、まずこのページにて、TVTest0.8.1の修正方法、ビルド方法を解説する。
引き続き、別のページにて、TVH264_SPHDの修正方法、ビルド方法を解説する。
(あわせて、Windows8への対応方法の記事も参照願います。)
なお、TVCAS_attachment、およびBonCasClient、双方にバグがあるため、TVTest0.8.1ではBonCasClientが使えなくなっている。TVTest0.8.1でBonCasClientを使用するためには両者のバグを修正する必要があるので、こちらについても追加で解説する。
[用意+インストールするもの]
・TVTest 0.8.1ソース。(デジタル放送汎用視聴プログラム実装研究資料のサイトから入手。ホームページのソースファイルを1個ずつダウンロードするのではなく、右側のカラムにある、「Download ZIP」のボタンをクリックしてZIPファイルを入手し、解凍する。)
・TVCAS_attachment ソース(複数のサイトからダウンロードできるようなので、頑張って探してみてください)。
・TVTest 0.8.0ソース(複数のサイトからダウンロードできるようなので、頑張って探してみてください)。一部のソースコードを旧バージョンのものと入れ替える必要があるため、旧バージョンのソースも必要となる。
・Windows SDK for Windows 7 (「DirectShow BaseClasses」のビルドのため。マイクロソフトの当該サイトから入手)
・faad2-2.7.zip (FAAD2 Source をAudioCoding.comから入手)
・Visual Studio 2010 (以下VS2010)
※VS2010は、Express EditionだとMFCに対応していないので、Professional Editionが必要。VS2010 Professional 無料版の入手方法等は、Visual Studio 2010(VS2010)の入手方法として別記事にまとめた。
[手順]
1. 【「FAAD2」(libfaad.lib)】をビルド
"faad2-2.7.zip"を展開、"frontend\faad.sln"をVS2010で開いて(途中、変換ウィザードが出る)ビルドする。
2. 【「DirectShow BaseClasses」(strmbasd.lib strmbase.lib)】をビルド。
デフォルトでは "Program Files\Microsoft SDKs\Windows\v7.1\Samples\multimedia\directshow\baseclasses" フォルダにある"baseclasses.sln"を開いてビルドする。
3. TVTest 0.8.1ソースが含まれた、"TVTest-master.zip"を展開する。
4. TVTest0.8.0のソースファイルから、
BonTsEngine\CasProcessor.cpp
BonTsEngine\CasProcessor.h
の2ファイルを抜き出し、TVTest 0.8.1ソースのBonTsEngineフォルダーにある同名のファイルに上書きコピーする。
またtvcas_attachmentのソースファイルから、
TVCAS\TVCAS.h
のファイルを抜き出し、TVTest 0.8.1ソースのBonTsEngineフォルダーにコピーする。
5. TVTest0.8.0のソースファイルの、 DtvEngine\DtvEngine.cpp に、 http://pastebin.com/Jw5FJrLE の修正を適用する。
6. VS2010で、TVTest.slnを開く。
7. TVTestプロジェクトのプロパティを開き、上記"baseclasses"フォルダを「追加のインクルードディレクトリ」に加える。また、同フォルダにある"Release" フォルダ、および"libfaad.lib"が生成されたフォルダを「追加のライブラリディレクトリ」に加える。
8. TVTestをビルド。
(注)
※ビルドの際、LNK2005エラーが解決できなかったら、VS2010設定のプロパティにある、「C/C++」の「コード生成」メニューにて、「ランタイムライブラリ」の項目が一致しているか再度確認。【faad.sln】、【baseclasses.sln】、【Test.sln】の設定を全て、「マルチスレッドDLL8/MD)」などで統一する。
※ビルドの際、VS2010はデフォルトだとDebugを実行する設定になっている。メニューが「Debug」になっていたら「Release」に変更した後、「ビルド」-「ソリューションのビルド」を選択、実行するとexeファイルやlibファイルが Release フォルダーに生成される。
以上でTVTest 0.8.1の修正完了。 TVCAS_B25.tvcas ファイルと併用することで視聴可能となる。
■TVCAS_attachment でBonCasClientを使う際の修正方法
[用意+インストールするもの]
・TVCAS_attachment ソース(複数のサイトからダウンロードできるようなので、頑張って探してみてください)。
[手順]
1. TVCAS\CardReader.cpp のソースファイルを、下記の通り修正
--- CardReader.cpp.orig
+++ CardReader.cpp
@@ -907,7 +907,7 @@
if (!GetLibraryFunc(m_hLib, pEstablishContext, "CasLinkEstablishContext")
|| !GetLibraryFunc(m_hLib, pListReaders, FUNC_NAME("CasLinkListReaders"))
|| !GetLibraryFunc(m_hLib, m_pCasLinkReleaseContext, "CasLinkReleaseContext")
- || !GetLibraryFunc(m_hLib, m_pCasLinkConnect, "CasLinkConnect")
+ || !GetLibraryFunc(m_hLib, m_pCasLinkConnect, FUNC_NAME("CasLinkConnect"))
|| !GetLibraryFunc(m_hLib, m_pCasLinkDisconnect, "CasLinkDisconnect")
|| !GetLibraryFunc(m_hLib, m_pCasLinkTransmit, "CasLinkTransmit")) {
::FreeLibrary(m_hLib);
2. TVCAS\Multi2Decoder.h の18行目にある、
#define MULTI2_SIMD_ICC
の行をコメントアウト
3. ICC\Multi2Decoder\Multi2DecoderSIMD.cpp の2行目にある、
"../../BonTsEngine/Multi2Decoder.h" を
"../../TVCAS/Multi2Decoder.h" など、各自のフォルダー構成に合わせて正しい場所に修正
4. TVCAS\CardReader.h の4行目に、以下の2行を追加する。
#define CARDREADER_SCARD_DYNAMIC_SUPPORT
#define CARDREADER_BONCASCLIENT_SUPPORT
5. TVCAS\TVCAS.sln を開いてTVCAS_B25をビルドすると、 TVCAS_B25.tvcas ファイルが生成される。
[用意+インストールするもの]
・BonCasClient ソース(複数のサイトからダウンロードできるようなので、頑張って探してみてください)。
[手順]
1. TVCAS\CardReader.cpp のソースファイルを、下記の通り修正
--- BonCasClient.cpp.orig
+++ BonCasClient.cpp
@@ -122,7 +122,7 @@
*((LPCSTR *)mszReaders) = szReaderName;
return SCARD_S_SUCCESS;
}else{
-*pcchReaders = sizeof(szReaderName);
+*pcchReaders = sizeof(szReaderName) / sizeof(szReaderName[0]);
}
}
@@ -140,7 +140,7 @@
*((LPCWSTR *)mszReaders) = szReaderName;
return SCARD_S_SUCCESS;
}else{
-*pcchReaders = sizeof(szReaderName);
+*pcchReaders = sizeof(szReaderName) / sizeof(szReaderName[0]);
}
}
2. BonCasClient.sln を開いてBonCasClientをビルドすると、 BonCasClient.dll ファイルが生成される。
質問/コメント等はこちらへ
2012年12月~2013年9月の質問/コメント
2012年7月~11月の質問/コメント
2012/6以前の質問/コメント
FAQ
スカパー!プレミアムサービス録画TIPS
« 2013年6-7月周波数変更への対応法 | トップページ | TVH264_SPHD 0.8.1のビルド方法 »
「パソコン・インターネット」カテゴリの記事
- 2012年9月放送波変更への対応法(2012.09.17)
- スカパー!プレミアムサービス(スカパーHD)をPCで録画・視聴する方法(2012.02.01)
- 2013年2,4,10月新規開局への対応法(2013.02.24)
- 2013年6-7月周波数変更への対応法(2013.07.14)
- TVH264_SPHD 0.8.1のビルド方法(2013.09.27)
トラックバック
この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/584297/58280542
この記事へのトラックバック一覧です: TVTest 0.8.1のビルド方法: