Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Px4Receiver ISDB_T の Open順序によって Drop が発生することがある問題を修正 #2

Merged

Conversation

ankoski
Copy link

@ankoski ankoski commented Jul 8, 2023

概要

PLEX PX-W3/Q3など、受信時に Px4Receiver を使うデバイスにおいて ISDB-T Receiver の Open 順序が不定になっていました。
このため最初に開かれたチューナーが T1 の場合、 T1 -> T0 ドロップ対策が働かないようで、PX-W3PE5 では 30~40のドロップが発生していました。
必ず T0 から開くことでドロップしないように変更しています。

詳細

px4::ReceiverManager::SearchAndOpen() で、 std::unordered_map<px4::ReceiverBase*, ReceiverData> data_ をイテレートし、最初に見つかった ReceiverBase を Open しています。
Px4Device::Init() では S0, S1, T0, T1 の順に ReceiverManager::Register() していますが、unordered_map を使っているためイテレートの順序は不定でした。unordered_map ではなく map を使うことで必ず T0, T1 の順に Open されるようにしています。

テスト

DebugView を実行しながら TVTest を使ってキャプチャし、

[11012] [INFO] : BonDriver::Init()
[11012] [INFO] : BonDriver::OpenTuner()
[12624] [DBG] px4_winusb 1: px4::Px4Device::Px4Receiver::Open(2): init_: false, open_: false

のように Open(2) が最初に出力されることを確認しています。
変更前は Open(3) が最初に出力されることがあり、この状況でもう一つチューナーを開くと1つ目のチューナーにドロップが発生していました。
また、EDCB による多重録画も10回程度実行して影響がないことを確認しています。

手持ちのデバイスが PX-W3PE5 しかないので、MLT 系については確認できていません。
チューナーの使用順序が固定化されるだけで悪い影響はなさそうに思います。

@ankoski ankoski changed the title Px4Receiver の T Open順序によって Drop が発生することがある問題を修正 Px4Receiver ISDB_T の Open順序によって Drop が発生することがある問題を修正 Jul 8, 2023
@tsukumijima
Copy link
Owner

大変素晴らしいプルリクエストをありがとうございます…!!
しっかりテストされているようで問題ないように思います。
マージさせていただきます…!!

@tsukumijima tsukumijima merged commit 01caed9 into tsukumijima:develop Jul 8, 2023
@ankoski
Copy link
Author

ankoski commented Jul 8, 2023

早々にマージしていただきありがとうございます!もし怪しい挙動がありましたら revert していただければと思います。

PLEX を使ったのは初めてだったのですが、tsukumijima さんのブログの解説記事がとても参考になり、手早く環境構築できました。ありがとうございました 🙇

@tsukumijima
Copy link
Owner

いえいえ、お役に立てて何よりです(最近記事をあまりメンテできてないですが…)。
新規に入ったビギナーさんがこうしてソフトの挙動を改善していただけるのは、私のような長年 DTV やってる身としてもとても助かります。こちらこそありがとうございました!

tsukumijima pushed a commit that referenced this pull request Sep 30, 2023
PX-S1UR/M1URへの対応コードの整理
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants