dev:maemo:gstreamer      

gstreamer を利用して MP3 ファイルを再生しようとしたがうまくいかないので調査中。このページはその作業記録

ファイル構成

~/work/qt4-x11-4.4.0/src/plugins/phonon

phonon のバックエンドのプロジェクトファイルがあるところ。ソース本体は

~/work/qt4-x11-4.4.0/src/3rdparty/kdebase/runtime/phonon/gstreamer

現在 mediaobject.cpp に qDebug を仕込んで調査中。MediaObject に MP3 ファイルを渡すと cb_unknown_type が返ってくる。これは decodebin からのシグナル。

ということで

~/work/gst-plugins-base0.10-0.10.13/gst/playback

にある gstdecodebin.c に g_print を仕込んで調査開始。find_compatibles の中で null を返している。なぜ?

その後、調べた結果、audio/mpeg (MP3)の再生は gst-ffmpeg のモジュールが担当。maemo の場合 gstreamer0.10-ffmpeg-osso-1.11.3 というパッケージになっていて、ChangeLog によると MPEG1 video 以外のコーデックが削除されてる。パテントがらみなのかもしれない。ということで最新のgst-ffmpeg-0.10.6 を scratchbox 上でビルド。x86 版はいくつか define されてないものがあった程度で簡単な修正でビルドできたが、ARM 版はいくつかアセンブラのソースファイルがなかったりでそのままではビルドできなかった。maemo 用のフォルダにそれらしきソースがあったので、それをコピーして使用したところ、なんとか置き換えに必要な libgstffmpeg.so が作成できた。これを N810 にコピーしたところ、無事 MP3 のデコーダが見つかったようだが、キューというノイズが乗っている。さらに修正が必要そう。

ちなみに qt4 maemo のメインな開発者によると phonon の中で decodebin ではなく dspmp3sink を使うように変更して対応するとのこと。ちょっと前にもいろいろいじっていたが中断してたみたいで数日内にもう一度みてみる、と言ってたけど直るといいなぁ。

Kimitake 2009/01/20 10:40

 
dev/maemo/gstreamer.txt · 最終更新: 2010/05/07 12:05 (外部編集)
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki
visitor stats