2ちゃんねる ■掲示板に戻る■ 全部 1- 最新50    

■ このスレッドは過去ログ倉庫に格納されています

【開発】 TS関連ソフトウェア総合スレ Part14

805 : ◆47o/marumo :2014/11/27(木) 07:56:37.64 ID:U0wj4YR5.net
>803
> resync()失敗でtailまで捨ててるのは、

resync() は TS パケット 8 個を要求するので、ARIB_STD_B25::put() に
供給するバッファサイズが 1024 バイトだったりすると一生同期できなくなる。

……とか思ったけど、オリジナルの select_unit_size() にもその手の
入力を ERROR_NON_TS_INPUT_STREAM に落とすバグがあるなぁ。
事前に (tail-head) の長さチェックをして 188*16 未満とかなら 0 を
返して /* need more data */ 側に処理を流す必要があるのだが。

td.c からしか使わないなら 64K 単位で ARIB_STD_B25::put() を
呼ぶので問題ないけど、ライブラリ的に使う場合は直した方が良い。

> ちなみにそのパッチの元々の意図は
むう。その手の状況は
http://maguro.2ch.net/test/read.cgi/linux/1388900589/608
のようにチャンネル変更時に reset() で回避することを想定していたのだが、
スレ読んでみると reset() が正常に動作してないみたいね……

テストしてないコードはダメだなやっぱり。

総レス数 1003
307 KB
新着レスの表示

掲示板に戻る 全部 前100 次100 最新50
read.cgi ver.24052200