BlackBerry 10 向けにffmpegをコンパイルする際のメモ

環境

  • ffmpeg-2.7.2
  • BlackBerry API Level – BlackBerry 10 Native SDK 10.3.1.995
  • Momentics IDE Version: 2.1.1
  • MacOS X Lion 10.7.5
  • コンパイル

    BlackBerry Support Community Forumsに投稿されていたオプションを参考にconfigureするも、下記エラーが出る。

    Unknown open() mode ':encoding(utf-8-strict)' at /usr/bin/texi2html line 11111.
    

    MacOS X 10.7.5特有のエラーのようで、How to compile ffmpeg/mplayer for MacOSX | Simple Thingsのコメント欄を参考に、–disable-doc オプションを追加して、configure成功。

    ビルド

    ビルド時に下記のエラーが大量に出る。

    ../Momentics.app/target_10_3_1_995/qnx6/usr/include/math.h:xxx:x: error: template with C linkage
    

    このエラーは、C++にCのコードを持ち込む時、QNXの標準ヘッダが問題で出るエラーのようです。QNX Knowledge Base |
    Trouble #including C headers into C++ code
    を参考に、下記のようにincludeを変更したところ、エラーが出なくなった。

    #include <math.h>
    extern "C"
    {
    #include <libavcodec/avcodec.h>
    #include <libavformat/avformat.h>
    #include <libavutil/avutil.h>
    #include <libavutil/opt.h>
    #include <libswresample/swresample.h>
    };
    

    さらに下記エラーが出る

    error: 'UINT64_C' was not declared in this scope
    

    ffmpeg compilation problem – BlackBerry Support Community Forumsを参考に、下記のように変更したところ、とりあえずエラーは出なくなった。

    #include <math.h>
    extern "C"
    {
    #define UINT64_C uint64_t
    #define INT64_C int64_t
    #include <libavcodec/avcodec.h>
    #include <libavformat/avformat.h>
    #include <libavutil/avutil.h>
    #include <libavutil/opt.h>
    #include <libswresample/swresample.h>
    };
    

    LD_LIBRARY_PATHの設定方法

    How to use a third party shared or static library … – BlackBerry Support Community Forumsを参考に、 bar-descriptor.xmlの下記内容を変更する。

    <env var="LD_LIBRARY_PATH" value="app/native/lib:/usr/lib/qt4/lib"/>
    

    以上

    広告