2014年6月3日火曜日

Chromecast

ちょっと脇道にそれますがChromecastを買ってみました。

私の持っている、TVチューナーと組み合わせると、
凄く良い感じです。

録画サーバーにしてあるUbuntu上では、TV番組を mp4(H.264)に
変換しつつ録画。それを apache + h264 streaming mod で配信。

Chromecast SDKのサンプルをちょっと改造しアプリを用意。

無事、Chromecastを接続したテレビで録画データが再生できました。


ビエラジャンプリンクとか目じゃない位、いい感じです。

というか、私はビエラジャンプリンク対応前のビエラなので、
そんな機能は使ったことありませんが...^^;


ただ、このソフトを真っ当な手段で公開するためには、
DRMの仕組みを勉強しないといけません。

widevineとか言う奴が使えるとか使えないとか...
まだ全然分かってません。

よって、お蔵入りというか私の趣味の範囲で
使用する事になるのだと思います...

2014年5月7日水曜日

avcodec_open2でエラー(-1)

ある日、こんな不思議なエラーが発生するようになって、なんでかなぁ~って
avcodecのソースを眺めてみました。

すると...以下のようなソースが

/* If there is a user-supplied mutex locking routine, call it. */
if (lockmgr_cb) {
if ((*lockmgr_cb)(&codec_mutex, AV_LOCK_OBTAIN))
return -1;
}

entangled_thread_counter++;
if (entangled_thread_counter != 1) {
av_log(avctx, AV_LOG_ERROR, "insufficient thread locking around avcodec_open/close()\n");
ret = -1;
goto end;
}

えっ、排他制御を勝手にやってくれないの?
av_lockmgr_registerで排他制御用の関数を登録したら解決しました。

pthread使って勝手にやってくれれば良いのに、何か拘りがあるのかなぁ?
不思議です。

2014年4月19日土曜日

sys_config.fex の ir_para で ir_addr_code を指定出来るようになった。


新しいCubieのSDKでは、今まで使えていたリモコンが使えなくなりました。
今更ビルドミスも無いだろうと思い、ドライバの違いを確認していたら、やっぱりありました。

if(SCIRPT_ITEM_VALUE_TYPE_INT != script_get_item("ir_para", "ir_addr_code", &ir_addr_code)){
pr_err("%s: ir_addr_code script_get_item error. \n",__func__ );
ir_addr_code = 0x9f00;
}

ふーん。今までの #define で値を指定する方式では無くなって、
sys_config.fex で変更できるようになったんだね。

折角、今更こんな機能をご丁寧に作りこんだと言うのなら、sys_config.fex には...

「オプション増えたぜー!、ひゃっほー!、俺最高ー!」

ってコメント書いといてよ。

一番新しいと思われるSDK


本職でテンパっていて、音楽再生アプリ開発はとん挫してますが...
cubieboard2は、地道に使ってます。

Cubieの公式サイトには、一番新しいSDKでビルドしたと思われるCubietruckの
イメージがアップされているようなのですが、ソースがアップされてません。

http://cubieboard.org/2014/01/13/upgrade-new-android-for-cubietruckv1-01

Allwinnerからの正規のルートで、これと同じと思われるSDKのソースは入手してはいるのですが、
やっぱりCubieboard用の正規の物も比較用に配布して欲しいなぁと思ってました。

とは言っても、無い物は無いので、諦めていたのですが、全然関係無い調べ物をしているときに見つけました。

Cubietechの中の人のブログっぽいとこにSDKがアップされてる。

https://plus.google.com/+HuangBenn/posts/h2Q1KhWyPdo

なんでこんな所???
ちゃんとリソースのサイトで公開すれば良いのに...

ただし、注意点として、これビルドしてもCubieboard2では起動しませんでした。
多分、カーネルのconfigがcubietruck用になっているようです。

とりあえず、cubietruckで追加されたようなH/W絡みの設定(BTとBroadcomのWIFIとGMAC)
を削除したら起動しました。

本当の所、何が原因だったかは、まだ追及してません。