Comments (4)
15分間隔で EPGが更新される事は知りませんでした。
MirakurunでのEPG更新が15分間隔という意味でした(設定で変わりますが).放送局側での更新間隔については私も知りません.
https://github.com/Chinachu/Mirakurun/blob/master/src/Mirakurun/Channel.ts#L39
実装の意図は理解しましたので,特にこれ以上修正することはないと思います.クローズします.
from mirakurun.
期待する動作は古いバージョンを無視することです。
バージョン番号が1つ加算した時と、0になったときは reset fields します。
これにより、いつまで経っても epgReady が発火しない問題が解決します。
しばらく動かしてみましたがそのようになっているようです。
いかがでしょうか。
from mirakurun.
例えば以下のような状況が発生した場合,タイムアウトまでEITセクションを処理し続けてしまう可能性があります.
Section(00): version(13) // ここでtargetFlag.version_numberが13になる
Section(08): version(13)
Section(10): version(11) // verDiffが-2になり,reset fields
Section(18): version(11)
仕様上,バージョン番号は番組表が更新されるたびに1つづつ増えると思われます.EPG更新は15分間隔なので,その間に複数回更新される可能性が考えられます.この場合,バージョン番号間の差は1より大きくなります.
あり得る場合をすべて考慮すると,verDiff
は-15から15の間のあらゆる値を取る可能性があります.そのため,sub-tableを正しく処理しないような実装においては,バージョン番号を確認する意味がなくなります.
仕様上,EITセクションのバージョン番号はsub-tableの識別子の1つです.そのため,sub-table間のバージョン番号を比較することに意味はありません.なぜなら,バージョン番号はNID/TSID/SIDが同じsub-tableを区別するための識別子にすぎないからです(つまり,NID/TSID/SIDが同じsub-tableは16個までしか作れないという意味).
上記の帰結は,あくまでも私が仕様を読んで理解した内容に基づいています.私の理解が間違っている可能性は十分あります(専門家ではありませんので).その場合には,誰か私の間違いを指摘してくれるこを希望します.
sub-tableの定義については,以下を参照してください.
- http://www.arib.or.jp/english/html/overview/doc/6-STD-B10v4_6-E2.pdf P60 (PDF全体でのページ番号は 72/321)
from mirakurun.
仰っていることは理解しています。
epg.ts で厳密な処理をしていない以上は epgReady を発火するのも目安程度なものです。今回のアップデートでは合理的な範囲内で修正されることを狙っています。
EPG更新は15分間隔なので,その間に複数回更新される可能性が考えられます.この場合,バージョン番号間の差は1より大きくなります.
15分間隔で EPGが更新される事は知りませんでした。教えていただきありがとうございます。
TSFilter 内で epgReady を発火するためのステートは次回に保持されない認識ですが、もし保持されるようでしたら確かに差は1より大きくなる可能性が高くなってきますね。
しばらく海外に居るためまともに修正できませんので、気になるようでしたら合理的な範囲内で修正いただけますと幸いです。(いずれにしても厳密な対応は不要です。)
from mirakurun.
Related Issues (20)
- IPTV機能について HOT 1
- websocketのSSL対応 HOT 2
- 同じ番組が複数録画される [BUG] HOT 3
- several vulnerabilities CVE-2020-15168,CVE-2020-7598 are introduced in mirakurun HOT 2
- Web UIで外部(インターネット)からフォントを読み込んでしまっている HOT 2
- Web UIで外部(インターネット)から画像を読み込んでしまっている HOT 2
- 放送局が直前に停波していると録画のスクランブルが解除されない HOT 2
- unixドメインソケットからはRPCがつかえない [BUG] HOT 1
- 地上波の番組をChinachuで録画中に、同じ物理チャンネルの別サービスが /api/channels/GR/{channel}/stream で取得できない [BUG] HOT 3
- PX-MLT8PEで6ch全録を実施するとメモリ使用量が4.7GBになる。 HOT 2
- "docker-compose run --rm -e SETUP=true mirakurun"で「/usr/local/mirakurun/run/が存在しない」とのエラー [BUG] HOT 2
- 提案: コミュニティをDiscordから移行する
- TSDecoder unexpected dead [BUG] HOT 1
- Windows + Node.js 16 環境でローカルインストールに失敗する [BUG] HOT 3
- Open University Radio not found in channel scan [BUG] HOT 1
- rivarunからMirakurunにソケット接続できない
- 【要望】nodejs v18.xエンジンをサポート HOT 1
- Windows 環境で Mirakurun 3.9.0-rc.0 以降のバージョンをインストールすると起動に失敗する [BUG] HOT 3
- PT2からBSアンテナに給電されない
- Muninプラグインの機能不全 HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from mirakurun.