Dies Aliquanti

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

S/P DIFの経由の録音の続き その3

auppauge HD-PVRのLinuxの問題だがやっと原因がわかりました。お恥ずかしい話だが、/dev/video0の読み出しパーミッションが無かった、というだけでした。わかってしまえばなんということも無いのだが、ハマった。(なにせlinuxあんまりわかんないのです。)
ターミナルから

sudo chmod +r /dev/video0

とかすればとりあえず解決するのだが、ホットプラグやブート時に毎回やるのはめんどくさいので、ユーザーアカウントの設定で、「TVやウェブカムに・・・」にチェックをつけておけばOK。ターミナルからはどうすれば、いいのだろう?要調査です。

実は別の問題も発覚してしまいました。
今までは、Windows XPのVMPlayerで走っているubuntu serverでHD PVRを使っていました。ディスクはlinux(ubuntu)には数Gbしか割り当てていないので、いかにH264とはいえ、録画にはそれなりにディスク容量が必要です。そこでXPのディスクを共有設定して、smbmountでマウントしてるようにしてました。
今回、動作不良の原因がまったくわからないためちょうど仮組みしたubuntu 8のデスクトップで試していたのですが、録画中に他のファイルを消したりすると、録画が途切れる症状がでました。
どうも、ディスクアクセス中にHD PVRからのデータの引取りが間に合わなくなるようです。推察するに、smbmountでネットワークドライブへ書き込む場合はディスクサーバーのキャッシュで救われていたのだと思います。
 いままでのプログラムはバッファを4KByteしか割り当てていないので、12Mbpsの設定とすると、0.6MByte/Secなので、4kB/0.6(MB/sec) = 0.0066・・・ 200分の1秒位しか余裕が無いことになります。これはムリがありますね・・・
reniceコマンドとかでnice値を-5とかにしてみましたが、この程度では効果はないようです。

 ん~、やっぱりHD PVRからデータを吸い上げる部分と、ディスク出力のthreadを分けて、FIFOみたいなもの間に用意しないとだめかなぁ・・・だいたいthreadとかmutex(排他制御)とかcでどうやってやるんだっけ?



コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://diesaliquanti.blog.fc2.com/tb.php/605-083e156d
この記事にトラックバックする(FC2ブログユーザー)

FC2Ad

まとめ

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。