-
Notifications
You must be signed in to change notification settings - Fork 1
/
todo.txt
212 lines (209 loc) · 12.2 KB
/
todo.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
[todo list]
--------------------------------------------------------------------
pmt,emm,ecmの処理
--------------------------------------------------------------------
ts_parser_test main.cpp に TsParser_test.cppを統合
--------------------------------------------------------------------
adaptation_fieldの処理
pcrのチェック
--------------------------------------------------------------------
psisi structs のclear関数 必要かどうか
--------------------------------------------------------------------
requestOptionで重複キューチェック
--------------------------------------------------------------------
psisi mgrの m_tunerIsTunedはpsisi stateと同等になった m_tunerIsTunedの名前変えた方がいい
--------------------------------------------------------------------
channel scanで放送休止中のchannelがあると失敗する問題
そもそも放送休止中だと選局できない
--------------------------------------------------------------------
選局時のpat cacheが前のstreamの分が残ってしまう
選局完了から200ms待ちがたりない?
*pmt cacheも最新patから見た方がいい
--------------------------------------------------------------------
EIT_H_pfにおいてcomp_flag 1つでは通用しない p/fで別テーブル serviceでも別テーブルに分かれる
通常は複数の parser_notice 通知があると考えたいけど
それが1つのtsパケットに入る場合もあるから 通知の数が合わない場合もある
--------------------------------------------------------------------
CTunerControlIf::ITsReceiveHandler onPreTsReceive で
createExternalCpは意味ない
setRequestOptionが重複してる
--------------------------------------------------------------------
externalCpで notify対応
--------------------------------------------------------------------
予約にはcreate_at も付けたい
--------------------------------------------------------------------
cereal serialize時にCEtime#updateStringsしたほうがいい
--------------------------------------------------------------------
eventScheduleManager でも tsパケット自体(188bytes)をリクエストメッセージで送りつけるやりかた
それかshared_ptrで対応
--------------------------------------------------------------------
cpprestsdk RESTful API対応
--------------------------------------------------------------------
recfsusb2n 対応
--------------------------------------------------------------------
CEvent に service_name入れたい
--------------------------------------------------------------------
録画開始時のpresent eventのチェックいらない
今は開始丁度で選局しているが 1分前選局とかにしたら必ずエラー扱いになる 結局意味ない
録画中はpresent eventチェックしているのでそれだけでいいはず
--------------------------------------------------------------------
readmeにcommand tableのせる
--------------------------------------------------------------------
psisi_mgrにts packet request をバッファをもたせるかで余裕をもたせたい
-> parserNoticeで vectorにいれて 別seqで取り出しsection perseする
--------------------------------------------------------------------
logo管理クラス を追加したい
--------------------------------------------------------------------
aribb24 を使って字幕関係で何か実装してみる
--------------------------------------------------------------------
CEtime をchronoを使う
--------------------------------------------------------------------
そろそろ のtodolistをgithub issueに移行したい
--------------------------------------------------------------------
eventのduration項目を復活した方がいい
--------------------------------------------------------------------
command server は純粋なスレッドにした方がいい
[solved, closed list]
--------------------------------------------------------------------
psisiMgrで各psisiのtable instanceポインタのvectorを持つほうがいい
各psisiのtableクラスでdumpTable
psisiMgrでdumpTables
--------------------------------------------------------------------
event chenge notify
cacheEventPfInfos -> checkEventPfInfosで印付け -> followsが空だったら follow eventをcopy
followsをloopcheck -> start_timeで notify -> follows clear
選局で follows clear
--------------------------------------------------------------------
thread dumpにいろいろ追加する
--------------------------------------------------------------------
threadmgr lock機構 (lockしたまま同threadの別seqをrequestした時どうするか)
--------------------------------------------------------------------
loglevel Debug追加
--------------------------------------------------------------------
event rec
--------------------------------------------------------------------
log エスケープシーケンス 色つけ方
--------------------------------------------------------------------
command serverのstack テンプレートクラス化
--------------------------------------------------------------------
chennel scan
--------------------------------------------------------------------
version_numberのチェックはpsisiManagerでやるか考える
-> 各parser側でやる
--------------------------------------------------------------------
notify clientのdump threadmgr
--------------------------------------------------------------------
EPG on/offのスイッチ
--------------------------------------------------------------------
eit scheduleはsectionのリスト管理しないで 派生クラスでテーブル管理する
p/f はsectionリスト管理して重複はチェックする
-> バッファサイズとfifo数はそんなに必要ないはず
--------------------------------------------------------------------
onSectionStarted がfalse return だったらそのsectionは無視する 次のsection開始まで
-> eit p/f とscheduleは別クラスで onSectionStartedでtable_idチェックして切りわけ
--------------------------------------------------------------------
scan 結果重複チェック
--------------------------------------------------------------------
rec終了時 tune stopしとく
--------------------------------------------------------------------
log ファイル出力どうする
-> syslogに出す
--------------------------------------------------------------------
cereal json対応
--------------------------------------------------------------------
rec reserveにnetwork_nameいれるか
-> service_nameで対応
--------------------------------------------------------------------
選局失敗したらリトライする ラップ選局ほしい at channel mgr
-> rec中にPAT途絶したら再選局したい retryx3
--------------------------------------------------------------------
get_ts_name get_service_name等がほしいかも
-> rec reserveにservice_name をいれた
--------------------------------------------------------------------
commoand_serverのログ出力
--------------------------------------------------------------------
sched map dumpを対話モード
--------------------------------------------------------------------
前の番組が伸びて イベント追従した時 check_loopで予約を確認したとき scheduleが古いままなので戻ってしまう
schedule cacheし直し or scheduleは見ないようにする
前の番組が伸びた直後の番組でなく後続につづく番組に対して対応できてない...
-> schedule cacheし直し
--------------------------------------------------------------------
tsパケット自体(188bytes)をリクエストメッセージで送りつけるやりかた
--------------------------------------------------------------------
EPG 予約
--------------------------------------------------------------------
EPG retry
--------------------------------------------------------------------
録画とEPGの排他
--------------------------------------------------------------------
event searchは過ぎていたeventは予約しない
-> event search側でチェックする
--------------------------------------------------------------------
daemon化
-> systemdを使用 プロセスの実装自体はフォアグラウンドプロセス
--------------------------------------------------------------------
command serverのログも保存したい
--------------------------------------------------------------------
imguiつかってみたい
-> OpenGL環境を作らないといけない 一旦やめにした
--------------------------------------------------------------------
rec reserve のend time と次のstart timeは同じでもかぶっているとみなさない
--------------------------------------------------------------------
threadmgr ST_SRC_INFOに thread_idx, seq_idxをいれる リクエストしてきた人だれだか分かるように
--------------------------------------------------------------------
EIT p/f のpが たまにcacheできてない問題 結果選局失敗
-> refreshSubTablesByVersionNumberでサブテーブル識別にsection_numberが入れた
section_numberでも切り分けしないと p/fの2つが同じサブテーブルと認識してしまう
versionが1fのとき次が0にもどるので p/fの2つのセクションで先に来たものが (大概pの方)
refreshSubTablesByVersionNumberで削除対象になって消してしまっていた
--------------------------------------------------------------------
EPG 結果をjsonにほぞんしたい
--------------------------------------------------------------------
EPG 定時予約すぎたら次のintervalまでやらない
--------------------------------------------------------------------
rec reserveにreasonがほしい
-> eventSearchに履歴を残すようにした
後からログから探すより確認しやすい
--------------------------------------------------------------------
cereal update
--------------------------------------------------------------------
tuner producer by kafka
-> kafkaは規模がでかすぎなのでいったん却下
--------------------------------------------------------------------
recMgrのcreate_TSParserの部分を自前のものでリファクタしたい
--------------------------------------------------------------------
recfsusb2i を別repoで
-> submoduleにしてみた
--------------------------------------------------------------------
マルチチューナー対応
tunerctl psisi 及びrec実行部はチューナーごとにインスタンスを作る
tunerの系統をセットでgroup化する -> tuner service
--------------------------------------------------------------------
rec manager とrec reserveを切り離す
-> マルチチューナー対応でこの案はなくなった
--------------------------------------------------------------------
やっぱり service_idで選局する仕組みが必要
-> tuner_serviceで実施するようにした
--------------------------------------------------------------------
コマンド cm -> ti のときにquit対応したい
--------------------------------------------------------------------
thread_mgr queue をlink list にしてみる
-> バイト方向インデックス方向ともに大して大きくない場合単純配列の方が高速だった
--------------------------------------------------------------------
thread_mgr setSeqs はstd::functionで受けとりたい
--------------------------------------------------------------------
CGroup::GROUP_MAX を4とかにする ソフト的なチューナー数制約
--------------------------------------------------------------------
リファクタ
生pointer使わない shred_ptr unique_ptrで
イテレータループは auto, const autoで
typo系
クラス名はキャメル型 関数名 変数名はスネーク型で
enum はemun classで 基底型つけれたら付ける
typedef したら xxx_t みないに 小文字_t で
--------------------------------------------------------------------
mkdir -p 対応
--------------------------------------------------------------------
settings.h のgetterは参照返しがいい
--------------------------------------------------------------------