2014-03-05 84 views
1

我在用ndk r9b版本的android中構建ffmpeg 2.1.3。啓用了pthread_cancel的Android? ffmpeg取決於pthread_cancel

我已經使用了下面的命令。

./configure --enable-shared --prefix=/home/fbuild 
      --cross-prefix=arm-linux-androideabi- 
      --enable-cross-compile 
      --target-os=linux --arch=arm --enable-gpl 
      --enable-libx264 --extra-cflags=-I/home/fbuild/include 
      --extra-ldflags=-L/home/fbuild/lib --disable-doc 
      --disable-ffmpeg --enable-network --disable-ffplay 
      --disable-ffprobe --disable-ffserver --enable-avresample 
      --enable-decoders 
      --enable-encoders 
      --enable-muxers 
      --enable-demuxers 
      --enable-parsers --enable-protocols --enable-filters 
      --enable-avresample --disable-indevs --enable-indev=lavfi 
      --disable-outdevs --enable-hwaccels --enable-libx264 
      --enable-zlib --enable-muxer=md5 --enable-runtime-cpudetect 
      --cpu=cortex-a8 
      --enable-pthreads --enable-static 

中的config.log

main:ffconf.82qqjSTF.c(.text+0x4): error: undefined reference to '**pthread_cancel** 

這清楚地表明,pthread_cancel可以是不可用的。

這是一個存在的問題,還是我們有相同的任何其他解決方案?

我已經啓用了 '--enable-pthreads' 的,

我想流RTSP流通過,UDP

你的幫助是非常讚賞。謝謝。

回答

0

這是一個存在的問題嗎?

官方NDK文檔指出:

pthread_cancel()不會仿生得到支持,因爲這樣做會涉及使C庫顯著爲大收效甚微。 [...]所有這些都與仿生設計目標相悖。如果您的代碼取決於線程取消,請考慮替代方案。

看到仿生概述部分

話雖這麼說ffmpeg的配置腳本自動檢測此:

if enabled pthreads; then 
    check_func pthread_cancel 
fi 

所以我假設的ffmpeg對實施方回退,如果pthread_cancel不可用(請參閱#if HAVE_PTHREAD_CANCEL部分)。

相關問題