Skip to content
fukumen edited this page Apr 7, 2011 · 11 revisions

mythtv(番組表のISDB対応版)

fuse_b25でISDBからDVBへの変換する機能がありますが、これを使わずにmythtv側で行うためのパッチです。fuse_b25と併せてお使いください(変換機能はOFFで)

これはなに?

番組表のISDB対応版は、現在fixes/0.24ブランチをベースに作成し、以下の機能を追加しています。 基本的にボードがISDBの場合に機能がONとなるようになっています。

  • 8単位文字符号への対応(詳細後述)
  • 時刻の扱いの違いを対応(UTCからローカル時間に)
  • カテゴリの違いを対応(B24仕様書の英語版の大ジャンル名に)
  • 日本の地上波の周波数テーブルを追加
  • 番組内容に拡張イベント記述子のItemを使うように変更

使い方

リポジトリをクローンして普通にコンパイルとインストールしてください。 configureなどへのオプションの追加はしていません。

git clone git://github.com/fukumen/mythtv.git mythtv
cd mythtv/mythtv
./configure --prefix=/usr/local --enable-libfftw3 --enable-nonfree --enable-pic --enable-xvmc --enable-xvmc-vld --enable-xvmc-pro --enable-opengl-video
make -j3
sudo make install

mythtvの設定などについては102氏のwiki(http://www43.atwiki.jp/mythtv-dvb/)がとても参考になります。

fuse_b25の起動オプション例

v0.4.4で確認しています。変換のオプションは指定しないでください。

/usr/local/sbin/b25dir 9
/usr/local/bin/fuse_b25 --target /dev/dvb/adapter1 /dev/dvb/adapter9 -o allow_other

8単位文字符号について

当初、ARIB外字のうちUnicodeにない文字以外は全て正規のUnicodeへマッピングするつもりでした。 ところがmythtvが使っているmysqlがUTF-8の4バイト文字に対応していませんでした。 よって、mysql側で文字落ちが起きるため、8単位文字符号の追加記号文字集合の中で UTF-8で4バイト文字になるもの(BMP以外の文字)は適当な文字置き換えをすることにしました。 (fuse_b25などでやっているように[N]などの文字を使うことです)

これでもBMP以外の文字は残りましたので、以下の文字はmysql側で文字落ちします。

  • 追加記号文字集合でもどうにも置き換え用のない文字
  • 追加漢字でBMP以外の文字(数文字)
  • JISX0213でBMP以外の文字(300文字程度らしい)

なお、ARIB外字のうちUnicodeにない文字はB24の表7-19「追加記号集合の符号値」に従ってPUAの領域に割り当てています。

おまけでABNTへのなんちゃって対応も実装してあります(もちろん未確認)。 ARIBとABNTの切り分けはタイムゾーンでやるようにしました。GMT+9でISDBの国は日本だけだろうし。。。

将来mysqlが4バイトのUTF-8を通すようになった場合は、mythtv/libs/libmythtv/mpeg/isdb_decode_text.cのコメントアウトされているUSE_UNICODE_SQUAREDCJKを有効にすれば当初予定していたUnicode準拠の変換になります。

###フォントについて ARIB外字に対応したフォントとして和田研細丸ゴシック(http://sourceforge.jp/projects/jis2004/wiki/FrontPage)があります (とりあえず上記の問題があるので入れても殆ど使われることなさそうですが)。 PUA(外字)の領域は他のフォント(OpenSymbolなど)とぶつかるようなので注意が必要です。