Sirius -旧ブログ、更新されません-

<< 前のページ | 次のページ >>

2011年2月7日(月) 21:03

PowerDVD 10 Ultla

今まで BD ドライブに付属してきた PowerDVD 8 で BD の再生をしていましたが、最新にアップデートしても、LEON の再生がうまく行きません。途中で PowerDVD がハングアップしてしまいます。メディアに傷は無いのでメディアの所為ではないと思っていました。ほかの BD ディスクは再生できるので、そのまま使っていましたが、そろそろ PowerDVD をアップグレードしようと思い、PowerDVD 10 Ultla を購入しました。

早速、 LEON を再生したところ、最後まで無事に再生できました。やはりバージョンが古くて対応できなかったようです。

今回購入した PowerDVD は 3D 対応なので、モニタを対応したものに変えれば 3D 環境が出来上がります。まあ、今すぐは無理ですが。

written by sirius [その他] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

2011年2月6日(日) 12:05

KURO-RS 用 daemon その11

デバイス監視はデバイスファイルがあるかどうかで判断します。KURO-RS を接続するとキャラクタデバイスの /dev/ttyUSB0 が作成され、取り外すとデバイスファイルは削除されるので、監視スレッドを作成し、そのスレッドで stat システムコールを使い 1 秒ごとに監視するようにします。状態が変わったら KURO-RS に割り込むようにします。これで通常のデーモンとしてスタートアップ時に起動できるようになりました。デバイスの取り外し、取り付けをして動作確認しました。デバイスをはずした状態で起動しても大丈夫です。

次はソケットの実装ですが、データのやり取りをどうするかを考えています。

written by sirius [KURO-RS] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

2011年2月4日(金) 21:47

KURO-RS 用 daemon その10

4日ほど デーモンを動かし続けましたが特に問題も無く、メモリの使用量が増えることもありませんでした。大きな問題は無いようです。このあたりで公開してもよいのですが、USB デバイスなのでデバイスが取りはずされたりした場合の対応を盛り込みたくなりました。



1、デバイスが接続されない状態で起動されたときは、接続されるまで待つ。

2、デバイスが取り外されたときは、動作を停止しデバイスが接続されるのを待つ。



上記の動作をさせるには、デバイスの監視の必要があり、スレッドプログラミングしなければなりません。調べてみると pthread は POSIX 定義なので、pthread を使っても GPL にはならないようです。



どうせスレッドにするなら、外部からの送受信要求もシグナルではなく、ソケットを使ったサービスとして実装したくなりました。ソケットを実装できれば他のホストからの要求も受け付けられるので利用範囲が広がります。したがって公開はもう少し先になります。

written by sirius [KURO-RS] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

2011年2月3日(木) 21:46

Fedora12 は終わりかな。

yum でアップデートかけてももうアップデート対象となるパッケージはなくなってしまいました。この状態で外部につなぐのはちょっと心配です。

外部とつないでいるのは ssh だけなので、open-ssh の最新版を手動でコンパイルしてインストールすることにします。それ以外は外部と遮断するように iptables を設定しています。本当はメールサーバにもしたかったんですが・・・。

written by sirius [玄箱] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

2011年2月1日(火) 21:16

再配布の制限について

再配布を制限したいのはなぜかというコメントをいただいたきました。純粋な疑問だと思います。

そういった意見が欲しくて実は記事にしました。公開時にいきなり再配布を禁止してしまうとどのような反応があるのか分からないので試してみました。



理由は単純で、自分が作ったソフトウェアが自分の管理下になくなってしまうのが嫌だということです。ネット上で一度公開したものは、なかなかコントロールが難しいと思います。例えば何らかの事情があって公開を停止しようと思っても再配布されていては意味がなくなってしまいます。



自分自身も、オープンソースソフトウェアや、フリーウェア等さまざまな無料ソフトにお世話になっています。中には GPL なソフトウェアもあります。確かに、GPL にすることによってすばらしいソフトウェアが開発されることもあるでしょう。



しかし、個人的な意見として GPL については疑問を持っています。GPL は開発者(配布者)を制限するものであり、場合によっては私のように公開をためらう開発者も出るでしょう。そんな制限がつくなら公開しないよってことです。仕事でということであればいろいろなメリット/デメリットを考えて決めるでしょう。個人の趣味でということであればデメリットが強いように感じます。公開するメリットと、デメリット。個人の趣味で作ったものであれば公開する/しないはその個人の自由です。実際のところ、同じ理由で今まで作ったソフトウェアの中で GPL であるがために公開していないソフトウェアがあります。自分としては便利に使っています。同じようなことがしたい人もいるだろうなと思いますが、公開していません。(そのうちのいくつかは Windos プログラムなので GPL 部分を排除してバイナリのみ公開したいと考えています。)



今回は実験として GPL を回避するために工夫して公開してみる(ゼロからソースを作成しソースのみを公開する)ことにしました。(GPL であれば公開はしないでしょう)



実際問題として再配布を禁止したとしても、それを検証するすべは私にはありません。ソースが流用されたことを確認する手段も無いでしょう。しかし、場合によっては見つけてしまうかもしれません、そういったリスクを負ってまでやることではないでしょう。(その程度のソフトウェア/ソースです)



私もソフトウェアを作るものとして、利用にあわせてソースを改変したいと思います。だから改変を禁止することはしませんし、その改変部分をパッチとして公開することを制限しようとは思いません。



GPL はすばらしいとも思いつつ、同時に足かせになっているとも感じるため、いろいろな意見があるでしょうが、今回はこのようにしようと決めました。

written by sirius [KURO-RS] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

2011年1月31日(月) 20:19

Super C で音声のみを再エンコード

AVIファイルは音声が mp3 以外だと DTV-X900 で再生できないので、映像はそのままで音声のみを再エンコードして再生できるようにします。

VirtualDub がありますが今回は このあたりからダウンロードできる複数ファイル変換が簡単なSuper Cを使って、音声のみをエンコードしなおします。



設定は、

Output Container を AVI にします。

Output Audio Codec を mp3 にします。

Container設定



VIDEO はそのまま使うので Stream Copy にチェックを入れます。

VIDEO設定



AUDIO は好みの設定でいいと思います。

AUDIO設定



これで変換したいファイルをドラッグアンドドロップしてエンコードボタンを押せば変換開始です。音声のみ再エンコードなので短時間で終了します。デフォルトの設定では元のファイルと同じ場所に変換後のファイルが保存されます。あとは、FourCC を XVID に書き換えれば再生できるようになります。ところが Super C は FourCC の Description cede を DX50 にするため、CCOOO での書き換えは出来ませんでした。

代わりに コマンドライン版 を利用して強制的に書き換えました。このコマンドライン版では、間違ったファイルを指定してもチェックせずに書き換えてしまうので注意が必要ですが -f オプションを付けると強制的に書き換えてくれるようです。次のようなバッチファイルを CCC.exe と同じフォルダに作成して書き換えたいファイルをドラッグアンドドロップすると書き換えられます。


---------------------------ここから---------------------------

@echo off

set BASE=%~dp0

for %%i in (%*) do %BASE%\CCC.exe -d:XVID -f %%i

---------------------------ここまで---------------------------




解像度 1280x720 や 1440x810 の DivX ファイルも再生できました。

written by sirius [デジモノ] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

2011年1月30日(日) 19:40

KURO-RS 用 daemon その9

ほぼ完成しました。しばらく使って問題が無ければ公開する予定です。ただし、今回は再配布を制限したいので、 GPL での公開をしないつもりです。バイナリつきで公開すると、GPL 部分を含んでしまうのでソースのみ公開する予定です。ソースだけであれば全て資料をみて作成したので GPL は含んでいません。制限するのは再配布のみで、個人利用の場合、ソース改変は許可します。改変したものの配布は禁止しますが、改変したものの差分(パッチ)の公開まで制限するものではありません。

written by sirius [KURO-RS] [この記事のURL] [コメントを書く] [コメント(1)] [TB(0)]

この記事へのトラックバックPingURL

2011年1月30日(日) 11:01

CCOOO を使って FourCC を書き換える

やはり、DTV-X900 で再生できない DivX の avi ファイルは、FourCC を書き換えることで全てではありませんが再生できるようになりました。

書き換えて再生は出来ますが、場合によっては画質が荒く再生されたりすることもあるようです。ほぼ同じですが XVID = DivX では無いのでこれは仕方が無いでしょう。

CCOOO というソフトで書き換えてみました。

CCOOO

起動したら、右クリックで環境設定を行います。

CCOOOメニュー

CCOOO環境設定1

環境設定の右側の DivX ファイル設定の Description Codeを XVID にします。

CCOOO環境設定2

あとは書き換えたいファイルをドラッグアンドドロップするだけです。ただし、書き換えはバックアップをとってから行ったほうがよいと思います。

written by sirius [デジモノ] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

2011年1月29日(土) 17:20

Buffalo DTV-X900 を購入

Buffalo の DTV-X900 を購入しました。もともと、LT-H90WN を持っていて、LT-H90DTV を買い、アップグレードサービスで LT-H91DTV 相当にして、DTV をメインにして使っています。なかなか便利なのですが、アップグレードサービス利用者は特別価格で購入できたので買ってしまいました。つなげた USB HDD を簡易 NAS 機能で PC から読み書きできたり、録画した番組を DTCP-IP を利用して他のプレーヤで再生できるようです。最大の購入理由は、DiviX HD が再生できるということだったのですが、いくつか試したところ再生できないものもあるようです。それどころか、LT-H91DTV で再生できている DivX も映像が出なかったりします。たぶん、FourCC コードを書き換えれば再生できるんじゃないかと思います。まあ、DTV-X900 のファームウェアがきちんとしてくれればいいだけなんですが。

written by sirius [デジモノ] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

2011年1月28日(金) 23:18

KURO-RS 用 daemon その8

シグナルの受信がうまく出来ていません。udev から起動したものは、signal を受け付けてくれません。手動で起動した場合は大丈夫です。やはりきちんとしたプロセス間通信を実装しないとだめでしょうか。そうすると同時にスレッドにしないとだめなのです。よく調べてみると signal() より sigaction() の方が正式なシグナル処理らしいので、sigaction() を使ってみましたが、同じでした。どうも udev から起動するとだめな模様です。試しに rc.local から起動するようにしたら問題ありません。BonCasServer や pcscd も rc.local から起動するようにしたら問題無く動きます。常時つないで運用なのでこれでいいでしょう。

written by sirius [KURO-RS] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

2011年1月26日(水) 21:20

KURO-RS 用 daemon その7

ログ出力に初めて syslog を使ってみました。意外と簡単で便利です。

ただし、大量のログ出力があると、syslog はシステムを重くしてしまうようです。



syslog の使い方は、syslog.h をインクルードして、openlog() で準備して、syslog() でログの出力をします。最後に、closelog() で閉じますが、closelog() は必須では有りません。



openlog() は三つの引数があります。

void openlog(const char *ident, int option, int facility);

一つ目がプログラム名、二つ目がオプションで LOG_CONS, LOG_NDELAY, LOG_NOWAIT, LOG_ODELAY, LOG_PERROR, LOG_PID で必要なものを OR でまとめます。三つ目が記録されるプログラムのタイプの指定で、通常は LOG_DAEMON でいいと思います。



syslog() は printf() 形式のフォーマットが使える可変引数の関数です。

void syslog(int priority, const char *format, ...);

はじめの引数がプライオリティで、重要度の高い順から LOG_EMERG, LOG_ALERT, LOG_CRIT, LOG_ERR, LOG_WARNING, LOG_NOTICE, LOG_INFO, LOG_DEBUG のどれかを指定します。



プライオリティを使ってログの出力を抑制するには、setlogmask() を使います。

int setlogmask(int mask);

例えば、LOG_ERR 以上のプライオリティのログだけを出力する場合は、

setlogmask(LOG_UPTO(LOG_ERR));

という風にします。簡単でなかなか便利です。

written by sirius [KURO-RS] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

2011年1月25日(火) 21:51

PLEX PX-W3PE

地デジの録画環境として今は、SKNET の HDP2 を使っていますが、それ以外に HDUSF や アースソフトの PT2、PLEX の PX-S3U もあります。なのに、また、PLEX の PX-W3PE を買ってしまいました。



PX-W3PE については、次のサイトが詳しいです。

PLEX PX-W3PE 3波ダブルチューナーまとめ



おいおい使ってみたいと思います。



PT2 は再販されているようです。

written by sirius [アースソフト PT2] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

2011年1月24日(月) 21:05

赤外線信号の解析その4

必要なデータを考えます。

・リーダ部の on のビット数と off のビット数

・リピートのタイプ

・フレームサイズ

・データのビット数

有ったほうがいいデータ

・ストップビットのビット数

・データの on ビットのビット数

・データが 0 のときの off ビットのビット数

・データが 1 のときの off ビットのビット数

送るコード

・カスタムコード(ベンダーコード)

・データコード



これらを使ってデータを定義します。


typedef struct _param_t {

    int vender;        /* カスタムコード */

    int l_on;          /* Leader 部の on bit の数 */

    int l_off;         /* Leader 部の off bit の数 */

    int on;            /* on bit の数 */

    int off1;          /* 0 の時の off bit のビット数 */

    int off2;          /* 1 の時の off bit のビット数 */

    int s_on;          /* ストップビットのビット数 */

    int bit_length;    /* 送信データのビット数 */

    int frame_size;    /* Leader 部を除いたデータのビット数 */

    int repeat_type;   /* データの繰り返しタイプ */

} param_t;



param_t table[] = {

    { 0x50ef, 90, 45, 6, 6, 16, 6, 32, 1083, 1 }, /* HDUSF */

    { 0x30ce, 90, 45, 6, 6, 16, 6, 32, 1073, 1 }, /* LT-H91DTV */

    { 0xc4a2, 90, 44, 6, 6, 16, 6, 32, 1069, 1 }, /* SHDSW_4SV */

    { 0x06,   90, 45, 6, 6, 16, 6, 32, 1075, 1 }, /* PF720 */

    { 0xc5,   86, 42, 6, 6, 16, 6, 16, 465, 2 },  /* TH-BA1 */

    { 0xf5,   86, 42, 6, 6, 16, 6, 16, 465, 2 },  /* TH-BA1 */

    { 0x20,   23, 11, 5, 6, 17, 5, 16, 489, 3 },  /* DT-100HDMI */

    { 0,0,0,0,0,0,0,0,0,0 }

};




このテーブルを使い、データコード等をパラメータで受け取り、KURO-RS 用の送信データを作成するプログラムを作ろうと思います。

written by sirius [KURO-RS] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

2011年1月23日(日) 20:39

KURO-RS 用 daemon その6

細かい部分を除き、基本部分(信号を受信してコマンドを実行する)はほぼ実装できました。



残りの作業

・リピート信号にも反応するようにする。

・セクションの切り替え時にセクション番号分 LED を発光させる。

・データセクションの数、値の最大個数を動的に変更できるようにする。

・セクション切り替えをループさせるコマンド。

・設定ファイルチェックプログラムの作成。

・受信エラー時にデバイスを開き直す様に変更。

・ログ出力の実装。

・メモリリークが無いかソースをチェックする。

・エラー処理の強化、特に設定ファイルの読み込み部分。←設定ファイルチェックプログラムで対応。



まだ公開するまでは、先が長そうです。

written by sirius [KURO-RS] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

2011年1月22日(土) 11:57

KURO-RS 用 daemon その5

外部コマンドからの要求をどう受け取るかを考えました。プロセス間通信で行うのが正しい方法でしょうが、そこまで手間をかけたくありません。そこで、signal を使うことにしました。SIGUSR1 を送信要求、SIGUSR2 を受信要求にします。設定ファイルでやり取りする一時ファイルをきめて、そのファイルを通して赤外線信号データのやり取りをすることにしました。signal 処理部分を作成中です。

written by sirius [KURO-RS] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

<< 前のページ | 次のページ >>

Sirius -旧ブログ、更新されません-

MySketch 2.7.2 written by 夕雨