Hi Javier,

Does ffmpeg in svn/trunk work OK for you now?

As for the audio tracks, I haven't personal done much work in this
direction.  Ideally we'd have a plugin an ability to render audio streams
to an audio channel as the means that the osgmovie example utilizes SDL is
way too crude for serious usage.

Robert.

On 8 January 2015 at 10:24, Javier Taibo <[email protected]> wrote:

>   Hi Robert,
>
>   My fault! This line should be
>
> #  define swr_free avresample_free
>
>   instead of
>
> #  define swr_free(ctx) avresample_free
>
>   Actually, I don't know why this code compiled in my box :)  I probably
> missed something when packing the code.
>
>   Anyway, nice to hear it is working now. I use this plug-in a lot, so I
> will probably send you further improvements.
>
>   One feature that I want to add is the selection of audio tracks. The OSG
> API seems to be ready for that, but it is not implemented in the plug-in,
> it always take the default audio track, with no option to select other one,
> select several tracks or none at all.
>
>
>   Regards,
>
>
> On Wed, Jan 7, 2015 at 3:17 PM, Robert Osfield <[email protected]>
> wrote:
>
>> 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
>>
>>
>
>
> --
> 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