-
Notifications
You must be signed in to change notification settings - Fork 10
/
Copy pathREADME
189 lines (170 loc) · 10.3 KB
/
README
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
【recfriio r5 + α(STZ版)】
Linux用Friio録画プログラム(黒凡/白凡共通)です。
こちらは亜流版ですのでご注意下さい。
make でビルドした後、
./recfriio 録画するチャンネル 録画秒数 出力先ファイル名
で録画されます。
チャンネル番号は以下の通りです。引数なしで実行すると同じリストが出力されます。
13 - 62 : UHF13 - UHF62
K13 - K63 : CATV13 - CATV63
B1 ,BS01_0: BS朝日 C1 ,CS2 : ND2 110CS
B2 ,BS01_1: BS-TBS C2 ,CS4 : ND4 110CS
B3 ,BS03_0: WOWOWプライム C3 ,CS6 : ND6 110CS
B4 ,BS03_1: BSジャパン C4 ,CS8 : ND8 110CS
B5 ,BS05_0: WOWOWライブ C5 ,CS10: ND10 110CS
B6 ,BS05_1: WOWOWシネマ C6 ,CS12: ND12 110CS
B7 ,BS07_0: スターチャンネル2/3 C7 ,CS14: ND14 110CS
B8 ,BS07_1: BSアニマックス C8 ,CS16: ND16 110CS
B9 ,BS07_2: ディズニーチャンネル C9 ,CS18: ND18 110CS
B10,BS09_0: BS11 C10,CS20: ND20 110CS
B11,BS09_1: スターチャンネル1 C11,CS22: ND22 110CS
B12,BS09_2: TwellV C12,CS24: ND24 110CS
B13,BS11_0: FOX bs238
B14,BS11_1: BSスカパー!
B15,BS11_2: 放送大学
B16,BS13_0: BS日テレ
B17,BS13_1: BSフジ
B18,BS15_0: NHK BS1
B19,BS15_1: NHK BSプレミアム
B20,BS17_0: 地デジ難視聴1(NHK/NHK-E/CX)
B21,BS17_1: 地デジ難視聴2(NTV/TBS/EX/TX)
B22,BS19_0: グリーンチャンネル
B23,BS19_1: J SPORTS 1
B24,BS19_2: J SPORTS 2
B25,BS21_0: IMAGICA BS
B26,BS21_1: J SPORTS 3
B27,BS21_2: J SPORTS 4
B28,BS23_0: BS釣りビジョン
B29,BS23_1: 日本映画専門チャンネル
B30,BS23_2: D-Life
録画秒数に'-'を指定すると^C等でinterruptされるまで録画します。
出力先ファイル名に'-'を指定すると標準出力にTSを出力します。その場合ログは標準エラー出力に出力されます。
Makefile中の
B25 = -DB25
をコメントアウトせずにビルドした場合
まるも氏のARIB STD-B25 仕様確認テストプログラムがリンクされ、B25デコード機能が使用可能になります。
オプション --b25 を指定すると、録画時にB25デコードを行います。
--round N --strip --EMM 等のオプションがあり、ARIB STD-B25 仕様確認テストプログラムと同じように動作します。
--b25オプションを使用しない場合、録画ファイルはMulti2で暗号化された状態で出力されるのでb25等でデコードして下さい。
Makefile中の
HDUS = -DHDUS
をコメントアウトせずにビルドした場合
MonsterTV HDUS/HDP対応版としてコンパイルされます。
Makefile中の
UDP = -DUDP
をコメントアウトせずにビルドした場合
UDP送信対応版としてコンパイルされます。
Makefile中の
HTTP = -DHTTP
をコメントアウトせずにビルドした場合
HTTPサーバ機能搭載版としてコンパイルされます。
recfriio r3 からFriioの初期化時に黒凡/白凡判定を行なうようになった為、flockでの排他の為にファイルを使用します。
デフォルトでは/var/lock/friiodetectが使用されますが、--lockfile ファイル名 で変更が可能です。
変更する場合、全てのrecfriioが同じロックファイルを使用するように注意して下さい。
排他用ファイルに書き込み権限が必要なので、例えばFriioを使用するユーザが全てvideoグループに属している場合、
-rwxrwxr-x 1 mythtv video 0 2008-09-19 06:33 /var/lock/friiodetect
のように事前にファイルを作成しておいて下さい。
インターフェースが適当ですが、問題がある場合はソースを修正して下さい。
/dev/bus/usb か、/proc/bus/usb に usbfs があることが必要です。
/dev/bus/usbの存在を確認し、なければ/proc/bus/usbを見に行きます。
Friioに対応するファイルに書き込み権限が必要です。
udevを使用している場合は、91-permissions.rulesが自分の使用している/etc/udev/rules.d/91-permissions.rulesなので
参考にしてudevの設定ファイルを修正して下さい。ディストリビューションによりファイル名等は変わると思います。
下記が追加した部分です。実行ユーザがvideoグループに属している事を前提に書いています。
====
# friio
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", \
ATTRS{idVendor}=="7a69", ATTRS{idProduct}=="0001", \
MODE="0664", GROUP="video"
====
必要な物:
g++でコンパイル出来る環境
boostライブラリ(http://www.boost.org/)
boost::threadとboost::filesystemを使用しています。
GLib2.0 GTK+のライブラリを入れれば入るはずです。
既知の問題:
signalの処理を全く入れていない。
LEDの色が変わったままになること以外は問題ないはず。
=> TS出力中に SIGTERM, SIGINT, SIGPIPE を受け取った場合録画を終了するようにしました。
USBの通信がタイムアウトした場合の処理を行っていない。
=> 多少リカバリーを行うようにしました。
初期化時にタイムアウトした場合は初期化を最初からやり直します。
バルク転送時のタイムアウトは無視します。実装方法に多少問題があり、
タイムアウトが大量に発生した場合対応できません。(バッファオーバーフローになります。)
終了時ににタイムアウトした場合無視して正常終了します。LEDの色が元に戻りません。
boost::threadのライブラリ名が-mt付きの場合と-mt無しの場合がある。
=> コンパイルエラーが起こった場合、Makefile内にある-lboost_thread-mtの-mtを外して下さい。
変更点:
r5:
ロックファイル作成時の権限を全ユーザが書き込み可能なように変更。
エラー防止の為読み込むヘッダファイルを追加。
FIFOバッファ長を10秒から20秒分に変更。
デバイスオープン時のエラーハンドリングの改善。
recfriio側でのsetinterface呼び出し(最近のカーネルでrecfriioが動かなくなっていた事への対処)
ライセンスの整理。
r4:
--b25を使用した録画中にB25でエラーが発生した場合に
B25なしで録画を継続するようにしました。
r3:
recfriio/recfriiobsの共通化を行いました。
黒凡白凡判定をカードリーダから凡初期化時に変更しました。
これにより boost::regexとboost::formatがいらなくなりました。
内部を整理し、クラス化しました。
b25デコード機能を追加しました。
recfriiobsのURB送信間隔/最大送信数を強化しました。
タイムアウト処理を強化し、Broken Pipe等の場合もリトライを行うようにしました。
白凡用初期化シーケンスをBonDriver Ver.1.30の物と入れ替えました。
r2以前:
適当すぎた名称を直しました。work -> recfriio
タイムアウト処理を入れました。詳細は既知の問題を参照。
録画秒数の計測開始位置を直しました。初期化に時間がかかった場合でも終了時刻が変わらなくなりました。
ライセンス:
このプログラムはBonDriver(Meru customize edition)
http://2sen.dip.jp:81/cgi-bin/friioup/source/up0239.zip
及び
BonDriver Ver.1.20m
http://2sen.dip.jp:81/cgi-bin/friioup/source/up0451.zip
BonDriver Ver.1.20m 黒チャンネル変更シーケンス修正差分2
http://2sen.dip.jp:81/cgi-bin/friioup/source/up0456.zip
BonDriver Ver.1.30
http://2sen.dip.jp/friio/files/BonDriver/BonDriver0130.zip
からの派生物になります。
よって上記ソースからの派生部分については大元のBonDriverのライセンスである、
>5.ライセンスについて
> ・特に著作権は主張しませんが、下記運用に従うようにお願いします。
>
> (1)「BonDriver.dll」をオリジナルのままアプリケーションに付属して配布する場合。
>
> アプリケーションのバージョン情報及びドキュメントに著作権表示は必要ありません。
> 「拡張ツール中の人」もしくは「http://2sen.dip.jp/friio/」の記載をしても構いませんが任意です。
>
> (2)ソースコードを流用しアプリケーションに組み込むもしくはライブラリとして再構成して配布する場合。
>
> 著作権表示については(1)に従いますが、必ず最低でも当該処理のソースコードを公開してください。
が適用されます。
上記以外の部分(おおむねUSBのコマンドに関わらない部分)については Public Domain として提供します。
また、ARIB STD-B25 仕様確認テストプログラムをリンクした場合(デフォルトでリンクします)、
BonDriverのライセンスに加えてARIB STD-B25 仕様確認テストプログラムのライセンスである
> ・ソースコードを利用したことによって、特許上のトラブルが発生しても
> 茂木 和洋は責任を負わない
> ・ソースコードを利用したことによって、プログラムに問題が発生しても
> 茂木 和洋は責任を負わない
>
> 上記 2 条件に同意して作成された二次的著作物に対して、茂木 和洋は
> 原著作者に与えられる諸権利を行使しない
が適用されます。
ソース中、.traceの付いたファイルを.trace無しのファイル名に変更してビルドする事により
エラー発生時のスタックトレース機能が有効になります。
このコードは http://0xcc.net/blog/archives/000073.html からの派生物となります。
ビルドにはlibbfd(binutils-dev)が必要になります。
その他:
このプログラムはAS-ISで提供されます。なにか問題が起こっても責任は持てません。
Special Thanks:
・拡張ツール中の人
・◆N/E9PqspSk / Clworld氏
・ARIB(資料の無料ダウンロードに対して)
・2chの「Linuxでfriio」スレッドの皆様
・2chの「Linuxでテレビ総合」スレッドの皆様
動作確認環境:
CentOS 6.3 GNU/Linux
Linux 2.6.32 SMP i686