2014-03-05 5 views
1

저는 ndk r9b 버전으로 안드로이드에 ffmpeg 2.1.3을 만들고 있습니다.pthread_cancel을 사용하는 Android? ffmpeg는 pthread_cancel에 따라 다릅니다.

아래의 명령을 사용했습니다. 명확하게 표시 config.log

main:ffconf.82qqjSTF.c(.text+0x4): error: undefined reference to '**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 

는 pthread_cancel는 사용할 수 없습니다.

기존 문제입니까 아니면 다른 해결책이 있습니까?

내가 '--enable-pthreads의'활성화

,

나는 통해 RTSP 스트림, 당신의 도움이 많이 감사합니다

UDP

를 스트리밍하는 것을 시도하고있다. 감사.

답변

0

기존 문제입니까? 이 일을하는 것은 아주 작은 이익을 위해 C 라이브러리는 상당히 큰 만드는 포함하기 때문

pthread_cancel()는, 슈퍼맨에서 지원되지 않습니다 :

공식 NDK 문서는 것을 말한다. [...]이 모든 것은 Bionic 디자인 목표에 위배됩니다. 코드가 스레드 취소에 의존하는 경우 대안을 고려하십시오.

는 슈퍼맨 개요 부분을 참조

는 FFmpeg의 구성 스크립트 자동이 감지 말했다되고 그 :

if enabled pthreads; then 
    check_func pthread_cancel 
fi 

그래서 내가 (pthread_cancel를 사용할 수없는 경우는 FFmpeg가 구현 측 폴백을 가지고 가정

#if HAVE_PTHREAD_CANCEL 섹션 참조).