Hi Jordi Torres, 

I build ffmpeg1.0 with OSG3.0.1 for Android (for armv7-a) device. When build 
example I am getting the errors  like "undefined reference to 
`av_log_set_callback".

I Added "USE_OSGPLUGIN(ffmpeg)" to .h file and added ldflag as "-losgdb_ffmpeg" 
to Android.mk file.

 Here are the full error log


Code:
Install        : libQCAR.so => libs/armeabi/libQCAR.so
Compile++ arm    : TrikonaQCAREdu <= Tracker.cpp
In file included from jni/osgModel.hpp:80:0,
                 from jni/Tracker.cpp:3:
/home/ttpl/Android/android-ndk-r8b/platforms/android-5/arch-arm/usr/include/jni.h:592:13:
 note: the mangling of 'va_list' has changed in GCC 4.4
Compile++ arm    : TrikonaQCAREdu <= osgModel.cpp
In file included from jni/osgModel.hpp:80:0,
                 from jni/osgModel.cpp:1:
/home/ttpl/Android/android-ndk-r8b/platforms/android-5/arch-arm/usr/include/jni.h:592:13:
 note: the mangling of 'va_list' has changed in GCC 4.4
Compile++ arm    : TrikonaQCAREdu <= SampleUtils.cpp
SharedLibrary  : libTrikonaQCAREdu.so
/home/ttpl/Android/OpenSceneGraph-3.0.1_GL1/osginstall/obj/local/armeabi/libosgdb_ffmpeg.a(ReaderWriterFFmpeg.o):
 In function `ReaderWriterFFmpeg':
/home/ttpl/Android/OSG/ffmpeg_Plugin/OpenSceneGraph-3.0.1/src/osgPlugins/ffmpeg/ReaderWriterFFmpeg.cpp:107:
 undefined reference to `av_log_set_callback'
/home/ttpl/Android/OSG/ffmpeg_Plugin/OpenSceneGraph-3.0.1/src/osgPlugins/ffmpeg/ReaderWriterFFmpeg.cpp:111:
 undefined reference to `av_lockmgr_register'
/home/ttpl/Android/OSG/ffmpeg_Plugin/OpenSceneGraph-3.0.1/src/osgPlugins/ffmpeg/ReaderWriterFFmpeg.cpp:114:
 undefined reference to `av_register_all'
/home/ttpl/Android/OSG/ffmpeg_Plugin/OpenSceneGraph-3.0.1/src/osgPlugins/ffmpeg/ReaderWriterFFmpeg.cpp:116:
 undefined reference to `avformat_network_init'
/home/ttpl/Android/OpenSceneGraph-3.0.1_GL1/osginstall/obj/local/armeabi/libosgdb_ffmpeg.a(FFmpegParameters.o):
 In function `~FFmpegParameters':
/home/ttpl/Android/OSG/ffmpeg_Plugin/OpenSceneGraph-3.0.1/src/osgPlugins/ffmpeg/FFmpegParameters.cpp:40:
 undefined reference to `av_dict_free'
/home/ttpl/Android/OpenSceneGraph-3.0.1_GL1/osginstall/obj/local/armeabi/libosgdb_ffmpeg.a(FFmpegParameters.o):
 In function `FFmpegParameters':
/home/ttpl/Android/OSG/ffmpeg_Plugin/OpenSceneGraph-3.0.1/src/osgPlugins/ffmpeg/FFmpegParameters.cpp:35:
 undefined reference to `av_dict_set'
/home/ttpl/Android/OpenSceneGraph-3.0.1_GL1/osginstall/obj/local/armeabi/libosgdb_ffmpeg.a(FFmpegParameters.o):
 In function `osgFFmpeg::FFmpegParameters::parse(std::basic_string<char, 
std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, 
std::char_traits<char>, std::allocator<char> > const&)':
/home/ttpl/Android/OSG/ffmpeg_Plugin/OpenSceneGraph-3.0.1/src/osgPlugins/ffmpeg/FFmpegParameters.cpp:62:
 undefined reference to `av_dict_set'
/home/ttpl/Android/OSG/ffmpeg_Plugin/OpenSceneGraph-3.0.1/src/osgPlugins/ffmpeg/FFmpegParameters.cpp:55:
 undefined reference to `av_find_input_format'
/home/ttpl/Android/OSG/ffmpeg_Plugin/OpenSceneGraph-3.0.1/src/osgPlugins/ffmpeg/FFmpegParameters.cpp:60:
 undefined reference to `av_dict_set'
/home/ttpl/Android/OpenSceneGraph-3.0.1_GL1/osginstall/obj/local/armeabi/libosgdb_ffmpeg.a(FFmpegDecoderAudio.o):
 In function `osgFFmpeg::FFmpegDecoderAudio::open(AVStream*)':
/home/ttpl/Android/OSG/ffmpeg_Plugin/OpenSceneGraph-3.0.1/src/osgPlugins/ffmpeg/FFmpegDecoderAudio.cpp:82:
 undefined reference to `avcodec_find_decoder'
/home/ttpl/Android/OSG/ffmpeg_Plugin/OpenSceneGraph-3.0.1/src/osgPlugins/ffmpeg/FFmpegDecoderAudio.cpp:92:
 undefined reference to `avcodec_open'
/home/ttpl/Android/OpenSceneGraph-3.0.1_GL1/osginstall/obj/local/armeabi/libosgdb_ffmpeg.a(FFmpegDecoderAudio.o):
 In function `decode_audio':
/home/ttpl/Android/OSG/ffmpeg_Plugin/OpenSceneGraph-3.0.1/src/osgPlugins/ffmpeg/FFmpegDecoderAudio.cpp:24:
 undefined reference to `av_init_packet'
/home/ttpl/Android/OSG/ffmpeg_Plugin/OpenSceneGraph-3.0.1/src/osgPlugins/ffmpeg/FFmpegDecoderAudio.cpp:28:
 undefined reference to `avcodec_decode_audio3'
/home/ttpl/Android/OpenSceneGraph-3.0.1_GL1/osginstall/obj/local/armeabi/libosgdb_ffmpeg.a(FFmpegDecoderAudio.o):
 In function `osgFFmpeg::FFmpegPacket::clear()':
/home/ttpl/Android/OSG/ffmpeg_Plugin/OpenSceneGraph-3.0.1/src/osgPlugins/ffmpeg/FFmpegPacket.hpp:45:
 undefined reference to `av_free_packet'
/home/ttpl/Android/OpenSceneGraph-3.0.1_GL1/osginstall/obj/local/armeabi/libosgdb_ffmpeg.a(FFmpegDecoderAudio.o):
 In function `osgFFmpeg::FFmpegDecoderAudio::decodeFrame(void*, unsigned int)':
/home/ttpl/Android/OSG/ffmpeg_Plugin/OpenSceneGraph-3.0.1/src/osgPlugins/ffmpeg/FFmpegDecoderAudio.cpp:356:
 undefined reference to `avcodec_flush_buffers'
/home/ttpl/Android/OpenSceneGraph-3.0.1_GL1/osginstall/obj/local/armeabi/libosgdb_ffmpeg.a(FFmpegDecoderAudio.o):
 In function `osgFFmpeg::FFmpegPacket::clear()':
/home/ttpl/Android/OSG/ffmpeg_Plugin/OpenSceneGraph-3.0.1/src/osgPlugins/ffmpeg/FFmpegPacket.hpp:45:
 undefined reference to `av_free_packet'
/home/ttpl/Android/OpenSceneGraph-3.0.1_GL1/osginstall/obj/local/armeabi/libosgdb_ffmpeg.a(FFmpegDecoder.o):
 In function `AvStrError':
/home/ttpl/Android/OSG/ffmpeg_Plugin/OpenSceneGraph-3.0.1/src/osgPlugins/ffmpeg/FFmpegDecoder.cpp:34:
 undefined reference to `av_strerror'
/home/ttpl/Android/OpenSceneGraph-3.0.1_GL1/osginstall/obj/local/armeabi/libosgdb_ffmpeg.a(FFmpegDecoder.o):
 In function `osgFFmpeg::FormatContextPtr::cleanup()':
/home/ttpl/Android/OSG/ffmpeg_Plugin/OpenSceneGraph-3.0.1/src/osgPlugins/ffmpeg/FFmpegDecoder.hpp:51:
 undefined reference to `avformat_close_input'
/home/ttpl/Android/OpenSceneGraph-3.0.1_GL1/osginstall/obj/local/armeabi/libosgdb_ffmpeg.a(FFmpegDecoder.o):
 In function `osgFFmpeg::FFmpegDecoder::open(std::basic_string<char, 
std::char_traits<char>, std::allocator<char> > const&, 
osgFFmpeg::FFmpegParameters*)':
/home/ttpl/Android/OSG/ffmpeg_Plugin/OpenSceneGraph-3.0.1/src/osgPlugins/ffmpeg/FFmpegDecoder.cpp:123:
 undefined reference to `avformat_alloc_context'
/home/ttpl/Android/OSG/ffmpeg_Plugin/OpenSceneGraph-3.0.1/src/osgPlugins/ffmpeg/FFmpegDecoder.cpp:126:
 undefined reference to `avformat_open_input'
/home/ttpl/Android/OSG/ffmpeg_Plugin/OpenSceneGraph-3.0.1/src/osgPlugins/ffmpeg/FFmpegDecoder.cpp:135:
 undefined reference to `avformat_find_stream_info'
/home/ttpl/Android/OSG/ffmpeg_Plugin/OpenSceneGraph-3.0.1/src/osgPlugins/ffmpeg/FFmpegDecoder.cpp:148:
 undefined reference to `av_dump_format'
/home/ttpl/Android/OSG/ffmpeg_Plugin/OpenSceneGraph-3.0.1/src/osgPlugins/ffmpeg/FFmpegDecoder.cpp:151:
 undefined reference to `av_find_best_stream'
/home/ttpl/Android/OSG/ffmpeg_Plugin/OpenSceneGraph-3.0.1/src/osgPlugins/ffmpeg/FFmpegDecoder.cpp:155:
 undefined reference to `av_find_best_stream'
/home/ttpl/Android/OpenSceneGraph-3.0.1_GL1/osginstall/obj/local/armeabi/libosgdb_ffmpeg.a(FFmpegDecoder.o):
 In function `osgFFmpeg::FFmpegDecoder::rewindButDontFlushQueues()':
/home/ttpl/Android/OSG/ffmpeg_Plugin/OpenSceneGraph-3.0.1/src/osgPlugins/ffmpeg/FFmpegDecoder.cpp:373:
 undefined reference to `av_rescale_q'
/home/ttpl/Android/OSG/ffmpeg_Plugin/OpenSceneGraph-3.0.1/src/osgPlugins/ffmpeg/FFmpegDecoder.cpp:376:
 undefined reference to `av_seek_frame'
/home/ttpl/Android/OpenSceneGraph-3.0.1_GL1/osginstall/obj/local/armeabi/libosgdb_ffmpeg.a(FFmpegDecoder.o):
 In function `osgFFmpeg::FFmpegDecoder::seekButDontFlushQueues(double)':
/home/ttpl/Android/OSG/ffmpeg_Plugin/OpenSceneGraph-3.0.1/src/osgPlugins/ffmpeg/FFmpegDecoder.cpp:400:
 undefined reference to `av_rescale_q'
/home/ttpl/Android/OSG/ffmpeg_Plugin/OpenSceneGraph-3.0.1/src/osgPlugins/ffmpeg/FFmpegDecoder.cpp:405:
 undefined reference to `av_seek_frame'
/home/ttpl/Android/OpenSceneGraph-3.0.1_GL1/osginstall/obj/local/armeabi/libosgdb_ffmpeg.a(FFmpegDecoder.o):
 In function `osgFFmpeg::FFmpegPacket::clear()':
/home/ttpl/Android/OSG/ffmpeg_Plugin/OpenSceneGraph-3.0.1/src/osgPlugins/ffmpeg/FFmpegPacket.hpp:45:
 undefined reference to `av_free_packet'
/home/ttpl/Android/OpenSceneGraph-3.0.1_GL1/osginstall/obj/local/armeabi/libosgdb_ffmpeg.a(FFmpegDecoder.o):
 In function `osgFFmpeg::FFmpegDecoder::readNextPacketNormal()':
/home/ttpl/Android/OSG/ffmpeg_Plugin/OpenSceneGraph-3.0.1/src/osgPlugins/ffmpeg/FFmpegDecoder.cpp:279:
 undefined reference to `av_read_frame'
/home/ttpl/Android/OSG/ffmpeg_Plugin/OpenSceneGraph-3.0.1/src/osgPlugins/ffmpeg/FFmpegDecoder.cpp:306:
 undefined reference to `av_dup_packet'
/home/ttpl/Android/OSG/ffmpeg_Plugin/OpenSceneGraph-3.0.1/src/osgPlugins/ffmpeg/FFmpegDecoder.cpp:282:
 undefined reference to `url_feof'
/home/ttpl/Android/OpenSceneGraph-3.0.1_GL1/osginstall/obj/local/armeabi/libosgdb_ffmpeg.a(FFmpegDecoder.o):
 In function `osgFFmpeg::FFmpegPacket::clear()':
/home/ttpl/Android/OSG/ffmpeg_Plugin/OpenSceneGraph-3.0.1/src/osgPlugins/ffmpeg/FFmpegPacket.hpp:45:
 undefined reference to `av_free_packet'
/home/ttpl/Android/OSG/ffmpeg_Plugin/OpenSceneGraph-3.0.1/src/osgPlugins/ffmpeg/FFmpegPacket.hpp:45:
 undefined reference to `av_free_packet'
/home/ttpl/Android/OSG/ffmpeg_Plugin/OpenSceneGraph-3.0.1/src/osgPlugins/ffmpeg/FFmpegPacket.hpp:45:
 undefined reference to `av_free_packet'
/home/ttpl/Android/OSG/ffmpeg_Plugin/OpenSceneGraph-3.0.1/src/osgPlugins/ffmpeg/FFmpegPacket.hpp:45:
 undefined reference to `av_free_packet'
/home/ttpl/Android/OpenSceneGraph-3.0.1_GL1/osginstall/obj/local/armeabi/libosgdb_ffmpeg.a(FFmpegDecoderVideo.o):
 In function `osgFFmpeg::FFmpegDecoderVideo::releaseBuffer(AVCodecContext*, 
AVFrame*)':
/home/ttpl/Android/OSG/ffmpeg_Plugin/OpenSceneGraph-3.0.1/src/osgPlugins/ffmpeg/FFmpegDecoderVideo.cpp:383:
 undefined reference to `av_freep'
/home/ttpl/Android/OSG/ffmpeg_Plugin/OpenSceneGraph-3.0.1/src/osgPlugins/ffmpeg/FFmpegDecoderVideo.cpp:385:
 undefined reference to `avcodec_default_release_buffer'
/home/ttpl/Android/OpenSceneGraph-3.0.1_GL1/osginstall/obj/local/armeabi/libosgdb_ffmpeg.a(FFmpegDecoderVideo.o):
 In function `osgFFmpeg::FFmpegDecoderVideo::getBuffer(AVCodecContext*, 
AVFrame*)':
/home/ttpl/Android/OSG/ffmpeg_Plugin/OpenSceneGraph-3.0.1/src/osgPlugins/ffmpeg/FFmpegDecoderVideo.cpp:369:
 undefined reference to `avcodec_default_get_buffer'
/home/ttpl/Android/OSG/ffmpeg_Plugin/OpenSceneGraph-3.0.1/src/osgPlugins/ffmpeg/FFmpegDecoderVideo.cpp:370:
 undefined reference to `av_malloc'
/home/ttpl/Android/OpenSceneGraph-3.0.1_GL1/osginstall/obj/local/armeabi/libosgdb_ffmpeg.a(FFmpegDecoderVideo.o):
 In function `~FFmpegDecoderVideo':
/home/ttpl/Android/OSG/ffmpeg_Plugin/OpenSceneGraph-3.0.1/src/osgPlugins/ffmpeg/FFmpegDecoderVideo.cpp:44:
 undefined reference to `sws_freeContext'
/home/ttpl/Android/OSG/ffmpeg_Plugin/OpenSceneGraph-3.0.1/src/osgPlugins/ffmpeg/FFmpegDecoderVideo.cpp:51:
 undefined reference to `avcodec_close'
/home/ttpl/Android/OpenSceneGraph-3.0.1_GL1/osginstall/obj/local/armeabi/libosgdb_ffmpeg.a(FFmpegDecoderVideo.o):
 In function `osgFFmpeg::FramePtr::cleanup()':
/home/ttpl/Android/OSG/ffmpeg_Plugin/OpenSceneGraph-3.0.1/src/osgPlugins/ffmpeg/FFmpegDecoderVideo.hpp:46:
 undefined reference to `av_free'
/home/ttpl/Android/OSG/ffmpeg_Plugin/OpenSceneGraph-3.0.1/src/osgPlugins/ffmpeg/FFmpegDecoderVideo.hpp:46:
 undefined reference to `av_free'
/home/ttpl/Android/OSG/ffmpeg_Plugin/OpenSceneGraph-3.0.1/src/osgPlugins/ffmpeg/FFmpegDecoderVideo.hpp:46:
 undefined reference to `av_free'
/home/ttpl/Android/OSG/ffmpeg_Plugin/OpenSceneGraph-3.0.1/src/osgPlugins/ffmpeg/FFmpegDecoderVideo.hpp:46:
 undefined reference to `av_free'
/home/ttpl/Android/OpenSceneGraph-3.0.1_GL1/osginstall/obj/local/armeabi/libosgdb_ffmpeg.a(FFmpegDecoderVideo.o):
 In function `osgFFmpeg::FFmpegDecoderVideo::convert(AVPicture*, int, 
AVPicture*, int, int, int)':
/home/ttpl/Android/OSG/ffmpeg_Plugin/OpenSceneGraph-3.0.1/src/osgPlugins/ffmpeg/FFmpegDecoderVideo.cpp:273:
 undefined reference to `sws_scale'
/home/ttpl/Android/OSG/ffmpeg_Plugin/OpenSceneGraph-3.0.1/src/osgPlugins/ffmpeg/FFmpegDecoderVideo.cpp:265:
 undefined reference to `sws_getContext'
/home/ttpl/Android/OpenSceneGraph-3.0.1_GL1/osginstall/obj/local/armeabi/libosgdb_ffmpeg.a(FFmpegDecoderVideo.o):
 In function `osgFFmpeg::FFmpegDecoderVideo::publishFrame(double, bool)':
/home/ttpl/Android/OSG/ffmpeg_Plugin/OpenSceneGraph-3.0.1/src/osgPlugins/ffmpeg/FFmpegDecoderVideo.cpp:311:
 undefined reference to `avpicture_fill'
/home/ttpl/Android/OpenSceneGraph-3.0.1_GL1/osginstall/obj/local/armeabi/libosgdb_ffmpeg.a(FFmpegDecoderVideo.o):
 In function `osgFFmpeg::FFmpegDecoderVideo::decodeLoop()':
/home/ttpl/Android/OSG/ffmpeg_Plugin/OpenSceneGraph-3.0.1/src/osgPlugins/ffmpeg/FFmpegDecoderVideo.cpp:166:
 undefined reference to `avcodec_decode_video2'
/home/ttpl/Android/OpenSceneGraph-3.0.1_GL1/osginstall/obj/local/armeabi/libosgdb_ffmpeg.a(FFmpegDecoderVideo.o):
 In function `osgFFmpeg::FFmpegPacket::clear()':
/home/ttpl/Android/OSG/ffmpeg_Plugin/OpenSceneGraph-3.0.1/src/osgPlugins/ffmpeg/FFmpegPacket.hpp:45:
 undefined reference to `av_free_packet'
/home/ttpl/Android/OpenSceneGraph-3.0.1_GL1/osginstall/obj/local/armeabi/libosgdb_ffmpeg.a(FFmpegDecoderVideo.o):
 In function `osgFFmpeg::FFmpegDecoderVideo::decodeLoop()':
/home/ttpl/Android/OSG/ffmpeg_Plugin/OpenSceneGraph-3.0.1/src/osgPlugins/ffmpeg/FFmpegDecoderVideo.cpp:235:
 undefined reference to `avcodec_flush_buffers'
/home/ttpl/Android/OpenSceneGraph-3.0.1_GL1/osginstall/obj/local/armeabi/libosgdb_ffmpeg.a(FFmpegDecoderVideo.o):
 In function `osgFFmpeg::FFmpegDecoderVideo::open(AVStream*)':
/home/ttpl/Android/OSG/ffmpeg_Plugin/OpenSceneGraph-3.0.1/src/osgPlugins/ffmpeg/FFmpegDecoderVideo.cpp:77:
 undefined reference to `avcodec_find_decoder'
/home/ttpl/Android/OSG/ffmpeg_Plugin/OpenSceneGraph-3.0.1/src/osgPlugins/ffmpeg/FFmpegDecoderVideo.cpp:87:
 undefined reference to `avcodec_open2'
/home/ttpl/Android/OSG/ffmpeg_Plugin/OpenSceneGraph-3.0.1/src/osgPlugins/ffmpeg/FFmpegDecoderVideo.cpp:91:
 undefined reference to `avcodec_alloc_frame'
/home/ttpl/Android/OpenSceneGraph-3.0.1_GL1/osginstall/obj/local/armeabi/libosgdb_ffmpeg.a(FFmpegDecoderVideo.o):
 In function `osgFFmpeg::FramePtr::cleanup()':
/home/ttpl/Android/OSG/ffmpeg_Plugin/OpenSceneGraph-3.0.1/src/osgPlugins/ffmpeg/FFmpegDecoderVideo.hpp:46:
 undefined reference to `av_free'
/home/ttpl/Android/OpenSceneGraph-3.0.1_GL1/osginstall/obj/local/armeabi/libosgdb_ffmpeg.a(FFmpegDecoderVideo.o):
 In function `osgFFmpeg::FFmpegDecoderVideo::open(AVStream*)':
/home/ttpl/Android/OSG/ffmpeg_Plugin/OpenSceneGraph-3.0.1/src/osgPlugins/ffmpeg/FFmpegDecoderVideo.cpp:94:
 undefined reference to `avcodec_alloc_frame'
/home/ttpl/Android/OpenSceneGraph-3.0.1_GL1/osginstall/obj/local/armeabi/libosgdb_ffmpeg.a(FFmpegDecoderVideo.o):
 In function `osgFFmpeg::FramePtr::cleanup()':
/home/ttpl/Android/OSG/ffmpeg_Plugin/OpenSceneGraph-3.0.1/src/osgPlugins/ffmpeg/FFmpegDecoderVideo.hpp:46:
 undefined reference to `av_free'
/home/ttpl/Android/OpenSceneGraph-3.0.1_GL1/osginstall/obj/local/armeabi/libosgdb_ffmpeg.a(FFmpegDecoderVideo.o):
 In function `osgFFmpeg::FFmpegDecoderVideo::open(AVStream*)':
/home/ttpl/Android/OSG/ffmpeg_Plugin/OpenSceneGraph-3.0.1/src/osgPlugins/ffmpeg/FFmpegDecoderVideo.cpp:95:
 undefined reference to `avpicture_get_size'
/home/ttpl/Android/OSG/ffmpeg_Plugin/OpenSceneGraph-3.0.1/src/osgPlugins/ffmpeg/FFmpegDecoderVideo.cpp:99:
 undefined reference to `avpicture_fill'
collect2: ld returned 1 exit status
make: *** [obj/local/armeabi/lib] Error 1



If I added "-lffmpeg" to "LOCAL_LDLIBS" in Android.mk file then I am getting 
the following error.


Code:
cannot find -lffmpeg



Can you please help how to link ffmpeg plugin for Andorid.

... 


Thank you!

Cheers,
Koduri

------------------
Read this topic online here:
http://forum.openscenegraph.org/viewtopic.php?p=52314#52314




_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to