Hi Javier,

With these changes everything compiles fine on my system and audio now
works great on all the videos I have :-)

The only small tweak I had to make was FFmpegHeaders.hpp where my compiler
picked up a missing parameter in the swr_free(ctx) macro.  I've added this
and it compiled cleanly.

Many thanks ;-)
Robert.

On 7 January 2015 at 11:07, Javier Taibo <[email protected]> wrote:

>   Hi Robert,
>
>   Try this one... I have tested it with my custom ffmpeg compilation
> (using libswresample) and the libav included in Ubuntu 10.04 (using
> libavresample). CMake scripts detect which library is installed in your
> system and some definitions in FFmpegHeaders.hpp do the trick to bridge
> between libavresample and libswresample.
>
>   I am sending you the whole pack of modified files, but the only files
> that are different from my previous commit are
> CMakeModules/FindFFmpeg.cmake, CMakeLists.txt and FFmpegHeaders.hpp.
>
>   Hope that works!
>
>
>   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
>
>
_______________________________________________
osg-submissions mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegraph.org

Reply via email to