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

[要望] EPG処理時にはB25処理を無効に #24

Open
tkmsst opened this issue Nov 11, 2018 · 3 comments
Open

[要望] EPG処理時にはB25処理を無効に #24

tkmsst opened this issue Nov 11, 2018 · 3 comments

Comments

@tkmsst
Copy link

tkmsst commented Nov 11, 2018

EDCBのメンテナンスありがとうございます。

EDCBでは、EPGの処理を行う際に、受信したTSからEPG部分を分離した後、
B25Decoder.dllにデータを渡しているかと思います。
しかし、EPGはB25デコードが必要ないはずなので、この処理をスキップして
いただけないでしょうか。

現在、B25Decoder.dll互換のlibaribb25.dllのメンテナンスを行っておりまして、
put_arib_std_b25に不完全なTSデータを入力するとデータが滞ってしまうため、
迂回処理をいれているのですが副作用が生じるため思案しております。

ご考慮いただけましたら幸いです。

@xtne6f
Copy link
Owner

xtne6f commented Nov 14, 2018

// その部分、自分はノータッチなのでアレですが…
そのDLL、名前こそそれですが実際に内部でやることは(現実にも)限定されないように思います。なのでEPG取得時だけ特別扱いすると活用方法によっては問題が出るかもしれません。
また、そこはEDCB原作から仕様が動いていないはずなので、改変版のみ動作を変えると10.69以前を使い続ける人が恩恵を受けられません。可能ならそのままにしたいです。

@tkmsst
Copy link
Author

tkmsst commented Nov 25, 2018

ご検討ありがとうございます。
EDCBでのEPG取得時は、B25Decoder.dllに完全なPATが渡されないわけですが、
このときB25Decoder.dll側では完全なPATが来るまで待つべきか、それとも不完全なPATで
処理を行うべきかという問題が生じてしまいます。

オリジナルのarib_std_b25(libarib25)では、完全なPATを取得するまで処理を行わず、
データを溜め込んでしまうため、EPGの取得が完了しない問題がありました。
そこで、libaribb25.dllでは不完全なPATは手付かずでそのままアプリケーション(EDCB)に
渡すようにして問題を回避したのですが、これはこれで、何らかの要因でPATが分割されて
しまうとデコードに失敗してしまうという別の問題がありまして。。。

@xtne6f
Copy link
Owner

xtne6f commented Nov 25, 2018

オリジナルに手を加えてよいのであれば、「完全なPATを得るまで全入力データを溜め込む」か「個々入力された(こま切れの)データの中でPATを探す」か、の2択ではないように思うのですが、どうでしょうか。(的外れならすいません…)
必要なのがPAT(や、その他のPSI/SI)だけなのであれば、それだけバッファにコピーして、その時点で処理できない入力はそのままアプリケーションに渡せないでしょうか。

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

No branches or pull requests

2 participants