Ok. I was using my own ffmpeg compilation. I'll test it with the one included in my distro.
ffmpeg hell is not only the API, but also the forks because of ego wars :DD In a recent Debian distro I even found that it was lacking some of the libraries (due to an error, I think). That's the reason I usually end compiling it myself. Also to tune it because of GPL/LGPL issues and to easily switch among different versions. I'll take a look at it tomorrow and let you know. Regards, On Tue, Jan 6, 2015 at 7:52 PM, Robert Osfield <[email protected]> wrote: > Hi Javier, > > I have just had a bash at using avresample headers in place of the > swresample ones in FFmpegHeaders.hpp : > > #if 1 > #include <libavresample/avresample.h> > #else > #include <libswresample/swresample.h> > #endif > > But now I get the error: > > > [ 93%] Building CXX object > src/osgPlugins/ffmpeg/CMakeFiles/osgdb_ffmpeg.dir/FFmpegDecoderAudio.o > In file included from > /home/robert/OpenSceneGraph/src/osgPlugins/ffmpeg/FFmpegDecoderAudio.cpp:1:0: > /home/robert/OpenSceneGraph/src/osgPlugins/ffmpeg/FFmpegDecoderAudio.hpp:86:5: > error: ‘SwrContext’ does not name a type > SwrContext * m_swr_context; // Sw resampling > context > ^ > /home/robert/OpenSceneGraph/src/osgPlugins/ffmpeg/FFmpegDecoderAudio.cpp:30:26: > error: ‘SwrContext’ has not been declared > SwrContext *swr_context, > ^ > /home/robert/OpenSceneGraph/src/osgPlugins/ffmpeg/FFmpegDecoderAudio.cpp: > In function ‘int osgFFmpeg::decode_audio(AVCodecContext*, int16_t*, int*, > const uint8_t*, int, int*, int, int, AVSampleFormat)’: > /home/robert/OpenSceneGraph/src/osgPlugins/ffmpeg/FFmpegDecoderAudio.cpp:80:82: > error: ‘swr_convert’ was not declared in this scope > (const uint8_t **)frame->extended_data, > frame->nb_samples); > > ^ > /home/robert/OpenSceneGraph/src/osgPlugins/ffmpeg/FFmpegDecoderAudio.cpp: > In constructor > ‘osgFFmpeg::FFmpegDecoderAudio::FFmpegDecoderAudio(osgFFmpeg::FFmpegDecoderAudio::PacketQueue&, > osgFFmpeg::FFmpegClocks&)’: > /home/robert/OpenSceneGraph/src/osgPlugins/ffmpeg/FFmpegDecoderAudio.cpp:128:5: > error: class ‘osgFFmpeg::FFmpegDecoderAudio’ does not have any field named > ‘m_swr_context’ > m_swr_context(NULL) > ^ > /home/robert/OpenSceneGraph/src/osgPlugins/ffmpeg/FFmpegDecoderAudio.cpp: > In member function ‘void osgFFmpeg::FFmpegDecoderAudio::open(AVStream*, > osgFFmpeg::FFmpegParameters*)’: > /home/robert/OpenSceneGraph/src/osgPlugins/ffmpeg/FFmpegDecoderAudio.cpp:188:13: > error: ‘m_swr_context’ was not declared in this scope > m_swr_context = swr_alloc_set_opts(NULL, > ^ > /home/robert/OpenSceneGraph/src/osgPlugins/ffmpeg/FFmpegDecoderAudio.cpp:195:29: > error: ‘swr_alloc_set_opts’ was not declared in this scope > 0, NULL ); > ^ > /home/robert/OpenSceneGraph/src/osgPlugins/ffmpeg/FFmpegDecoderAudio.cpp:197:45: > error: ‘swr_init’ was not declared in this scope > int err = swr_init(m_swr_context); > ^ > /home/robert/OpenSceneGraph/src/osgPlugins/ffmpeg/FFmpegDecoderAudio.cpp:203:40: > error: ‘swr_free’ was not declared in this scope > swr_free(&m_swr_context); > ^ > /home/robert/OpenSceneGraph/src/osgPlugins/ffmpeg/FFmpegDecoderAudio.cpp: > In member function ‘void osgFFmpeg::FFmpegDecoderAudio::close(bool)’: > /home/robert/OpenSceneGraph/src/osgPlugins/ffmpeg/FFmpegDecoderAudio.cpp:259:15: > error: ‘m_swr_context’ was not declared in this scope > swr_free(&m_swr_context); > ^ > /home/robert/OpenSceneGraph/src/osgPlugins/ffmpeg/FFmpegDecoderAudio.cpp:259:28: > error: ‘swr_free’ was not declared in this scope > swr_free(&m_swr_context); > ^ > /home/robert/OpenSceneGraph/src/osgPlugins/ffmpeg/FFmpegDecoderAudio.cpp: > In member function ‘size_t > osgFFmpeg::FFmpegDecoderAudio::decodeFrame(void*, size_t)’: > /home/robert/OpenSceneGraph/src/osgPlugins/ffmpeg/FFmpegDecoderAudio.cpp:443:145: > error: ‘m_swr_context’ was not declared in this scope > const int bytes_decoded = decode_audio(m_context, > reinterpret_cast<int16_t*>(buffer), &data_size, m_packet_data, > m_bytes_remaining, m_swr_context, m_out_sample_rate, m_out_nb_channels, > m_out_sample_format); > > ^ > src/osgPlugins/ffmpeg/CMakeFiles/osgdb_ffmpeg.dir/build.make:80: recipe > for target > 'src/osgPlugins/ffmpeg/CMakeFiles/osgdb_ffmpeg.dir/FFmpegDecoderAudio.o' > failed > make[2]: *** > [src/osgPlugins/ffmpeg/CMakeFiles/osgdb_ffmpeg.dir/FFmpegDecoderAudio.o] > Error 1 > CMakeFiles/Makefile2:7070: recipe for target > 'src/osgPlugins/ffmpeg/CMakeFiles/osgdb_ffmpeg.dir/all' failed > make[1]: *** [src/osgPlugins/ffmpeg/CMakeFiles/osgdb_ffmpeg.dir/all] Error > 2 > Makefile:106: recipe for target 'all' failed > make: *** [all] Error 2 > > > It's end of day here in Scotland so I'm going to revert back to svn/trunk > without any of your submitted changes and wait for feedback from yourself. > FYI, I'm using Kubuntu 14.10. > > Robert. > > _______________________________________________ > osg-submissions mailing list > [email protected] > > http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegraph.org > > -- Javier Taibo
_______________________________________________ osg-submissions mailing list [email protected] http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegraph.org
