TVTESTのコンパイル

備忘録として詳細はここ

1.TVTEST ver.0.9.0

TVTest 2chのスレとかに情報があるようにBaseClassesをSDKからコピー。ただし最新の開発版TVTest/tree/developはBaseClassesがすでに含まれている。開発版TVTest.slnをVS2017でオープン&ビルド。ワーニングは色々出るがコンパイルできる

2.CasProcessor.tvtp

復号化するための処理を呼び出すTVTESTのプラグイン(と勝手に解釈)。TVTESTのPluginsに配置。.hの上書き、cpp2170行目の処理とrcの変更をしてビルド。とりあえず起動するとこんな感じ。

image

 

3.B25.tvcas

CasReaderプラグインでCAS処理呼び出すためのライブラリだそうです。コアな部分なので情報が少ないw。とりあえず、TvCasのプロジェクトを選択して(デフォルトではMulti2Decoderなので注)、defファイルの指定(下図参照。extern “C”の意味とかそーだったなで感じw)とMulti2Decoder.libが無いよエラー(ディレクトリの指定がx86だとおかしい、面倒なのでMulti2Decoder.libをコピーして対処)。TVTESTのディレクトリに配置。

image

上手くいけばこんな感じ。この絵が手に入らなかったので動いているのかわからずに苦戦したw。B25.tvcasの時の動作画面です

image

懐かしい。NTTCom、確定申告の時に使って以来だよw。多くは語れないのでこれくらいで。

カテゴリー: 20世紀プログラマ, コンピューターとインターネット | タグ: | コメントをどうぞ

AKB-PCR20Xブルドックチューナー導入備忘録

訳あってAKB-PCR20Xブルドックチューナーを導入。k-an FSUSB2とplex PX_S3U2は導入済み。とにかく2chにもスレがなく、情報が少ない。

1.Visual Studio2017でコンパイル(SDKはtvtestをコンパイルできる程度に入れた)

変更点

①リンカーオプション

    • 安全な例外ハンドラーを含むイメージ:いいえ (/SAFESEH:NO)
    • sprintfのリンクエラー

 追加の依存ファイルをCyAPI.lib;%(AdditionalDependencies)に;legacy_stdio_definitions.libを加える

    • 出力先が..\..\binなので適当に調整する

425KBのBonDriver_Bulldog.dllが生成される。

2.パッチを当てる

①参考サイト

AKB-PCR20XブルドックチューナーのBonDriverにパッチをあてる。消えたら困るのでパッチのありかを記憶

注意点

  • CDからオリジナルソースをコピーして0からやったほうがいい
  • patchは2.5.9のUAC対応版を使った
  • ANSIを忘れずに(ここではまったw)
  • 上手くパッチがいったばあいには参考サイト通りにすんなりメッセージになる

image

  • ビルドエラー対処

1)エラー    C3861    ‘inserter’: 識別子が見つかりませんでした    BonDriver

BonTuner.cppに#include <iterator>を追加

image

2)安全な例外ハンドラーを含むイメージ:いいえ (/SAFESEH:NO)

3)出力ファイル名の変更

libの追加は不要になったw

 

3.パッチ版のいいところ

  • ND24を見ることができる

image

  • チャンネルチューニング空間を操作できる(試していない)

場所的にはTVTESTのここ(0.9.0)。tvrockとの連携で必須になるがBSCSしか見ないのでTvRockOnTVTest.iniの設定でごまかした。パッチを当てるとBonDriver_Bulldog.iniが生成されるのでiniの中身を見て変更可能(未確認)

image

  • ドロップが無くなる

時々、映像が乱れることが無くなりました。

 

 

 

というわけで、TVROCKでの視聴環境を構築できました。TVTEST0.9.0でCAS動かすには苦労したのですが今はOkです。TVTESTについては次回に

<追記>最新版のコンパイル(2017/4/28)

参考にした386exさんのblogにその2があり、最新版がありましたw。コンパイル時の注意としては

  • BonDriver_Bulldogのみをビルドすること(他のBONドラはエラーが出る)
  • legacy_stdio_definitions.libをリンクすること(型名なんちゃらのエラーが出る)
  • C3861    ‘inserter’ 上記参照

で500kぐらいのdllができます。20141209版との違いは使ってる上ではわからんw

カテゴリー: 20世紀プログラマ | タグ: | コメントをどうぞ

話せば長くなる、時代はiWownでIOT

というわけで、忘備録で書きます。引っ越しとかで忙しかったんですよ。
時代は巡り、0円携帯がなくなるよという情報で今年初めにPHSを卒業しました。話せば長くなる話は自分のためになりますw。

504SHは勿論、プランSSでカケホーダイ・パケットなしの完全通話用です。iPhone4SにはDMMのSIMを差しています。その後、504shはSIMをkatana01に入れて使命を終えました。

で、引っ越して仕事が変わって、都知事選に小池さんに投票して、神奈川県民から都民になった優越感を味わっていたのです。しかし、特定の時刻にxxをするという仕事になりました(思いっきり底辺ですw)。そーゆー細かい作業はおじさんなのでとーぜん忘れてしまいます。そこで腕時計に通知すれば忘れないだろう。と思い、

iWOWN i5 Plus スマートブレスレット OLED Bluetooth4.0 スポーツバンド 活動量計 歩数計 睡眠計 カロリー消費記録 アラーム 遠隔カメラ 着信通知 長時間座るのを自動注意 IP65防水防塵 日本語対応 APP ブラック

iWown i5 plusを購入。しかし、こいつが微妙に使えない。通知とかはちゃんと振動してくれるんですがAndroidの4.3以降が手元にないのでw、iOSでの運用 となります。例えば、アプリであるZeronerのファーム更新画面では「アップグレッド」と語る大物です、中国製です。所々、大いに文字化けします。「ー」が「⊇」になりますw。腕時計の画面はスマホ側でビットマップを作って送信しています。

 IMG_0376

ならば、せっかくWindows10MobileであるKatana01を買ったのだから移植しようと強く誓ったあの日だった。

1.ノジマステラ、優勝おめでとう

 元相模原県民として言わせていただく、「ノジマステラ、優勝おめでとう!」。知る人ぞ知る去年の入替戦、ロスタイムで入れれば昇格、田中陽子はバーに当てて外しました。入替戦の1戦目の赤くてでかいマッチプレビューを今でも持っていますわ。閑話休題、

 まぁ細かいことはおいておいて、過程を全部省略するとZeroner以外で唯一?対応できそうなアプリ、iWown for Geekのソースコードがあったよ。という話なんです。こちら、httpsなリンクなのでNGな人はGoogleでiWownController-masterと検索ください。GitHubにあります。

2.大谷はメジャーで通用するのか?

 おじさんの世代としては165kmだの150kmのフォークだのと言われても、伊良部と重なるんですよね。重要なのは球速よりコントロール。松井以来、通用しなかった野手として海を渡ってほしいです。閑話休題、

 このiWown i5 Plus、カスタムファームも開発されていてとっても楽しめそうなハードです。ハードウェア的にも丸裸でRXとTXがあるという優れものw。ファームの入替で失敗したのが1台手元にあるので開腹したいw。

というわけで、「お客様の中にUWPに移植できる(した)方はいらっしゃいませんか?」当方は、BLEのサンプルを改造してWriteValueAsyncでアクセスディネイティッドエラーの状況で止まっています。よろしくお願いしますw。

#AndroidのWindowsXpは4.4ですね。最新は7.0ぐらいなのですが5.0以上必須のアプリとか見たことないです、というか手元の最新バージョンはsh504ですw。あと、コンパイルが面倒です、環境構築断念ですw

カテゴリー: 20世紀プログラマ, コンピューターとインターネット | タグ: | コメントをどうぞ

夜のヤッターマンがもったいない

 最初の数話と最後の数話しか見ていないが、50年に一度の素材をこーするとは、勿体ない。途中の話で上手に世界情勢を漏らしながら、説明不足の最終話を何とかしてくれよと。予想通りのラスボスで予想通りの展開なのに消化不良感が半端ない。水島監督にやらせろと!と思える。

いい話なのに、とにかくもったいない

カテゴリー: アニメ | コメントをどうぞ

流体モーションを全画面表示で(BlueskyFRC1.1.0編)

 BlueskyFRCが1.0.2から1.1.0にバージョンアップしたのに伴い前回前々回とは状況が異なってまいりました。鉄は熱いうちに打て、1.0.2の状況を忘れる前に1.1.0と比較してどーなったかを試してみます。日々進化を遂げるBlueskyFRC、素晴らしいです。

1.改良点

 Ver1.1.0での改良点をまとめると

  • DXVA2(native)に対応
  • 負荷の軽減、処理時間の短縮
  • セカンダリディスプレイへの対応

です。それぞれ見ていきましょう

1.1 DXVA2(native)に対応

Ver1.0.2ではMPC-HCでDXVA2のGPUデコードを有効にするためには、LAV Video Decoderの設定でcopy-backにするしかありませんでした。Ver1.1.0ではnativeに対応しました。いつもの動画を全画面再生しました。違いは一目瞭然

1)GPUデコード(copy-back)の使用率

image

MAX50%ぐらいで再生中はCPU使用率(青)が30~40%って感じ

 

2)GPUデコード(native)の使用率

image

MAX40%ぐらいで再生中の使用率が20~30%になります。

 

3)効果

 CPU使用率が10%ぐらい下がります。それにしても、レンダラーはVMR-7なのにnativeが効くという不思議w。Blueskyさんの開発日記では微々たる効果となっていますが、こちらの環境(前々回参照)はAPUのCPUが2コアでメモリもDDR3-1600なので転送が減るという影響がでかいのかもしれません。

 

1.2 負荷の軽減、処理時間の短縮

1) 旧バージョン場合

 旧バージョン(1.0.2)の時の音ずれの印象を以下に示します。

  レンダラー GPUデコード 音ずれ
1 VMR-7 なし なし
2 VMR-7 copy-back ワンテンポの遅れ
3 EVR なし 3秒くらいの遅れ
4 EVR-CP なし 論外

VMR-7のGPUデコードなしでしか全画面再生できませんでした。

 

2) Ver1.1.0の場合

 新バージョン(1.1.0)の時の音ずれの印象を以下に示します。GPUデコード(native)が加わっています。

1 レンダラー GPUデコード 音ずれ
2 VMR-7 なし なし
3 VMR-7 copy-back なしのように感じる
4 VMR-7 native なしのように感じる
5 EVR なし 3秒くらいの遅れ
6 EVR native 1秒強くらいの遅れ
7 EVR-CP なし 論外

3)効果

 新バージョンではVMR-7のGPUデコードが全画面表示できるようになりました。統計情報がそこそこ信頼できそうなcopy-backで比較してみると

image image

 同期オフセット(ずれ)が明らかに減少しています。旧バージョンでは同期オフセットがどんどん増加していくのに対し、新バージョンでは開始からある一定の時間は増加し(5秒程度)その後減少に転じます。ただし、同期オフセットが減少に転じる秒数は他の負荷とかに左右されます。

 GPU使用率5%低減は分かりませんが明らかに効果ありと見るべきでしょう。EVRで再生できるまでもう少しです、開発者さん、がんばってくださいw。

 

1.3 セカンダリディスプレイへの対応

1)旧バージョン場合

 APUをメインディスプレイにして、外付けHD6450をサブディスプレイにしないと流体モーションが効きませんでした。Windowsキー+Pで言うと以下の状態

image

 

2)新バージョン場合

 サブディスプレイのみの表示でも流体モーションが効くようになります。

image

3)効果

 サブディスプレイのみの表示で流体モーションが効くため、APUとdGPUを同一の液晶モニターに接続してAPUの描画負荷をdGPUに逃す場合、液晶モニターの切り替えが楽になります。APU側の出力がないので、どんな液晶モニターでも簡単に切り替えられるはずです。Display ChangerIIを使用しなくてもWindowsキー+Pで切り替えられます。

 

2.感想

 うちの環境では神アップデートでした。「流体モーション重すぎ!」という方は、ぜひ余っているRadeonを外付けして満喫してください。

 おじさんの「細けぇことはいいんだよ、動けば」というプログラム感覚からするに、今回のバージョンアップでのnative対応は、「LAVのデコーダーがDXVA2デコードするときにDirect3Dサーフェースなバッファを用意してレンダラーに通知しておら!」という暗号のような説明から、BlueskyFRCがレンダラーみたいにデータを受け取れるようになったのでしょ。一方、セカンダリディスプレイ対応は「DXVA2画像エフェクトはレンダラー関係なしにAPIで使えるようになった」らしいのでAPUを探して使ってくれるようになった。

と、知ったかぶりなプログラム評論家は納得しましたw。とにかく、BlueskyFRC1.1.0はちょーお薦めであります。

 

 

#VCEをアマレコで使いたくて今更ながらに何度目か(5年ぶり10回目くらいかw)のDirectShowを勉強しています。今回は挫折しないといいですがねぇ。SHIROBAKOを流体モーションで見たくなった、水島監督、凄いわ。

カテゴリー: 20世紀プログラマ, コンピューターとインターネット | タグ: | コメントをどうぞ

流体モーションを全画面表示で(HD6450編)

目的は一つ

「BD品質な1920×1080(以下FHD)の24fps約35Mbpsの映像ファイルを流体モーションで60fpsにして全画面表示で見たい!」

であります。そのためならどんな犠牲(金銭面を除く)をする覚悟です。現状をまとめましょう。

が今回のテーマであります。A6-7400Kのマザー(ASRockを買ってしまったw)に余っているHD-6450を差しました。

(BlueskyFRCの最新版1.1.0だと状況が少し変わります)

 

1.接続環境

 うちの環境ではモニターが一台だけ。今時の液晶モニターは複数の入力端子を持っていますのでAPUとHD6450の出力をモニターにぶち込みます(実際はケーブルが無いのでDVI-D-HDMI変換ケーブル経由)。HD6450側の出力映像で流体モーションを有効にする(映す)ためにWindows上でのメインとサブの関係は次のようになります。

注:BlueSky1.1.0からサブスクリーンのみの表示で流体モーションが効くようになりました。

imageimage 

  • A6-7400Kをメインディスプレイ
  • HD-6450をサブディスプレイ
  • MPC-HCの再生はHD-6450のディスプレイを選択して全画面再生
  • 液晶モニターは②のHD-6450の出力を映す

MPC-HCは全画面表示の時のディスプレイを選択できます。この機能が何気に効いているかも。また、キーボード操作で液晶モニターを切り替える方法は後述します。描画の負担をAPUから削除すると・・・・

2.GPU使用率はこうなる

2.1 EVR-CP(GPUデコードなし) 

image

「再生開始時にもたつく感はありますが、VMR-7でしか再生できなかったAPU単体の頃と比べると雲泥の差。感じられる音ずれはない」

緑がAPUの使用率、水色がCPU使用率。50%で頭打ちになっている紫がHD6450の使用率です。

ちなみにカチューシャと1話のオープニングのシーンはこうなります。数フレーム破棄される時もありました。

image

 

CTRL+Jで表示される統計情報はこーなります。image

レンダラーがHD6450でデコーダがBlueskyFRCなんですね、不思議だ、そーゆもんだとして納得しておこうw。

2.2 EVR-CP(GPUデコードあり) 

「CPU使用率も減るのでこれで決定かも。GPUデコードなしの時よりは若干重い気がするが、感じられるような音ずれはなし」

image

同じくカチューシャと1話のオープニングのシーン時は

 image

というわけで重いEVR-CPで動くなら他は余裕なので以下のテストは略!充分に実用範囲だと感じました。

 

3.液晶モニターの切り替え

3.1 Windowsキー+Pで試す

 液晶モニターによって動きは異なると思いますが、うちの環境では映したい画面をメインにした後にデュアルモニタに切り替えると希望のGPU側の映像がモニターに映ります。

1)モニタでAPUを映すには

image

のAPUオンリー状態からデュアルモニタにすると

image

APU側が映ります。

 

2)モニタでHD6450側を映すには

image

のHD6450オンリー状態からデュアルモニタにすると

image

HD6450側が映ります。

注:BlueSky1.1.0からサブスクリーン(セカンドスクリーン)のみの表示で流体モーションが効くようになりました。節電です。

 

3.2 モニター切り替えのバッチファイル化

Display ChangerIIを使用すればモニター切り替えのバッチファイルが簡単に作成できます。本来は解像度を保存するのがメインなソフトですが、”メインのみ”、”サブのみ”、”デュアル”の状態を保存し簡単に切り替えられます。具体的には

z:
cd Z:\download\Windows7\As\dc2
Z:\download\Windows7\As\dc2\dc2.exe -configure="sub.xml"
timeout 3
Z:\download\Windows7\As\dc2\dc2.exe -configure="dual.xml"
timeout 5
"C:\Program Files\MPC-HC\mpc-hc64.exe" "%*"
Z:\download\Windows7\As\dc2\dc2.exe -configure="normal.xml"

こんな感じのバッチファイルを右クリックで送るに入れておけば、自動的にHD6450側に切り替わって再生、終了後はもとに戻ります。BDMVなディレクトリだとBDチャプターが有効になるということだが、BDはリッピング出来ないので詳しくは知りません!!

 

4.こんなこともあろうかと

2月22日Bluesky Frame Rate Converter Version 1.1.0が出ましたw。今までの苦労が水の泡になりそうな感じw

  • DXVAデコードのサポートを追加
  • GPU使用率を低減
  • 処理時間を短縮

Bluesky氏、曰く?「こんなこともあろうかとV1.1.0を用意しておいたのさ!」・・・・さっそく試そうっとw。

 

#Athlon5350でもHD6450を付ければEVRで全画面できそうな気配ですね。でも再生時はもちろん、アイドル時にも消費電力が15wぐらい上がった感じなので省電力に反しますな。

カテゴリー: 20世紀プログラマ, コンピューターとインターネット | タグ: | コメントをどうぞ

流体モーションを全画面表示で(APU編)

目的は一つ

「BD品質な1920×1080(以下FHD)の24fps約35Mbpsの映像ファイルを流体モーションで60fpsにして全画面表示で見たい!」

であります。そのためならどんな犠牲(金銭面を除く)をする覚悟です。現状をまとめましょう。

ハードウェア系

APU AMD A6-7400K O.C.でMAX4.0G
メモリ 16G DDR3-1600(うち8Gは1333をO.C.)

ソフトウェア系

OS Window8.1 x64 pro
再生 MPC-HC x64 1.7.8
BlueskyFRC 1.0.2
ドライバー 14.501.1003.1001-141204m-178280E

(BlueskyFRCの最新版1.1.0だと状況が少し変わります)

1.検証

 検証というにはあまりにも感覚的なのですがご容赦を。条件は以下の通り。

  • BD品質な35秒の動画ファイル(戦車が水平パンするやつw)をMPC-HCで全画面再生
  • CCCのビデオ品質補正はいっさいなし
  • MPC-HCのレンダラー設定は既定

GPUへの負荷はMPC-HCのレンダラーの設定で大きく変化することが今更ながらにwわかってきました。MPC-HCのレンダラーの設定は[表示]-[オプション]-出力です。普段は全然気にしていなかったですわ。

image

そうそう、レンダラーに付いてはこんな理解のレベルです。

  • VMR-7 DirectDrawで描画される
  • VMR-9 Direct3Dで描画される
  • EVR WindowsVistaからの新しいレンダラー
  • EVRカスタムプレゼンタ(以下EVR-CP) さらに新しいレンダラー 
  • madVR Corei7にしか許されない夢の高性能レンダラー
  • Haali あれ?削除したつもりでもまだ残っていたのかレンダラー

もう一つGPUへの負荷を左右するのはDxVAでのデコードです。DxVAの画像補正とややこしいので以下GPUデコードとします。設定は[表示]-[オプション]-内部フィルタ-ビデオデコーダで表示されるLavの設定で指定します。

image

ちなみにBlueskyFRCを使うとDXVA2(native)を設定してもGPUデコードは行れません。GPUデコードを有効にするにはDXVA2(copy-back)を指定する必要があります。GPUデコードを行っているかはどうかは、これまたBlueskyさんのDXVA Checkerで確認できます。BlueskyFRC1.1.0からDXVA2(native)でGPUデコードが有効出来ます。

imageimage

 

というわけでMPC-HCでレンダラーを色々変えて再生状況をテストしてみました。

 

1.1 EVR-CP(MPC-HCのデフォルト設定) 

「音の再生が途中で何度も停止しぐだぐだな状態」

image

緑がGPU使用率、青がCPU使用率、どえらいことになっています(名古屋弁)。平均フレームレートは60fpsにほど遠く、同期オフセット(ずれ)は変な値です。

1.2 EVR 

「音声の再生が終わった後、3秒くらい遅れて映像が終わる」

image

いい感じなのですが3秒程度ずれているというのが実情です。

1.2 VMR-9 

「映像が途切れ途切れでしかも音が遅れる」

image

これも論外です。GPU使用率が時々落ちているのは描画をあきらめたところでしょうかw。

1.3 VMR-7(GPUデコード)

「音にワンテンポ遅れて映像が終わる」

image

惜しい。GPUデコードなのでCPU使用率は下がりますが、微妙に映像が遅れます。某戦車アニメでカチューシャの所を再生すると明らかですw。で、再生していると同期オフセットの値が少しずつ増加します。

1.4 VMR-7

「◎」

image

音ずれはありませんでした。再生開始時に負荷が高く、同期オフセットはそれなりの値なのですが、そこからどんどん減少していき最後は0になります。

 

2.総評

 結局、VMR-7のGPUデコードなし以外では全画面表示は無理でした。さらに悪いことにGPUの負荷がちょっとでも重くなるとVMR-7でも音ずれします、ギリギリです。現にBlueskyFRC1.0.0でGPUの負荷が重くなったときは映像が遅れるようになりました(1.0.1以降は大丈夫)。流体モーションではGPUがいっぱいいっぱいです。

3.こんなこともあろうかと

 iGPUを強化する秘密技に「AMD Dual Graphics Technology」(以下DG)があります。グラフィックカードを外付けしてGPUのパワーを引き上げます。しかし、KaveriでDGをするにはR7 240か250が必要なのです。最安値で6000円代かぁ・・・・年末にAM3+が壊れてFM2+に乗り換えたばかりなので予算が・・・・A8-7600にしておけば・・でも売り切れだったし・・・・ こんなこともあろうかとR7 240もついでに買っておけば良かったのですがw

というわけで、去年までAM3+で使用していて現在は引退中のHD6450を外付けして、何とかすることにしました(HD6450編に続く)

 

 

#ある日突然VMR-7の画面が真っ暗になりました。再生は進んでいるけど真っ暗。ドライバーを削除してもダメ。途方に暮れていたのですがCCCの色設定でAMD設定にしたら治りました。

image      

たぶんHD5450(5450も試した時w)差したあとになったので、これ(VMR7 black screenで検索)だと思いますが、いちおうTipsとして。

  それにしても普段遊んでいるGPUが汗をかいて働いている姿を見ると微笑ましいですなw。

カテゴリー: 20世紀プログラマ, コンピューターとインターネット | タグ: | コメントをどうぞ