Hi Robert,

On Fri, Feb 19, 2010 at 9:33 AM, Robert Osfield
<[email protected]> wrote:
> Hi Rafa,
>
> I really is starting to look like the static
> osg::Observer::getGlobalObserverMutex() is being destructed before the
> scene graph which is a bit bizzare.
>
> Is this only happening in your app?  Could you try the OSG examples?

Ok, osg examples I've tested are working ok.

>
> Is there anything specific you do about clean up in your app?

I have a plugin that reads some specific xml file (I'm waiting for the
new serializer to change it), it works fine with osgviewer, but crash
in my application I think the problem is with ffmpeg imagestream. It
has a problem but I didn't have time to deep in ffmpeg code and upload
a correction. The problem is when you pause the movie, and you try to
exit application, then it hangs, and don't finish.

It's easy to test it: osgmovie movie.avi.ffmpeg, then press 'p' and
then exit the application.

To avoid that, I added an ugly hack in my code, so in one of the
singletons I get all ImageStream resources (they are ref_ptr in a
manager) and play them before quit. I know is really ugly but two days
ago was working! :).

I will try to remove now that code.. and test if all is cleaning up ok.

Rafa.

>
> Robert.
>
> On Fri, Feb 19, 2010 at 8:28 AM, Rafa Gaitan <[email protected]> wrote:
>> Hi Robert,
>>
>>
>> Well.. the crash has moved to other place, I think you are right about
>> destructing order, I have a couple of Singletons on my app, and I
>> think that things are messing up order destruction :(. Here's the new
>> stack trace
>>
>> Thread 0 Crashed:
>> 0   libosg.63.dylib                     0x0051a618
>> osg::Referenced::signalObserversAndDelete(bool, bool, bool) const + 72
>> 1   libosg.63.dylib                     0x00510823 osg::Program::~Program() 
>> + 483
>> 2   libosg.63.dylib                     0x00552040
>> std::_Rb_tree<std::pair<osg::StateAttribute::Type, unsigned int>,
>> std::pair<std::pair<osg::StateAttribute::Type, unsigned int> const,
>> std::pair<osg::ref_ptr<osg::StateAttribute>, unsigned int> >,
>> std::_Select1st<std::pair<std::pair<osg::StateAttribute::Type,
>> unsigned int> const, std::pair<osg::ref_ptr<osg::StateAttribute>,
>> unsigned int> > >, std::less<std::pair<osg::StateAttribute::Type,
>> unsigned int> >,
>> std::allocator<std::pair<std::pair<osg::StateAttribute::Type, unsigned
>> int> const, std::pair<osg::ref_ptr<osg::StateAttribute>, unsigned int>
>>> > >::_M_erase(std::_Rb_tree_node<std::pair<std::pair<osg::StateAttribute::Type,
>> unsigned int> const, std::pair<osg::ref_ptr<osg::StateAttribute>,
>> unsigned int> > >*) + 160
>> 3   libosg.63.dylib                     0x0054da0f osg::StateSet::clear() + 
>> 207
>> 4   libosg.63.dylib                     0x0054e572 
>> osg::StateSet::~StateSet() + 34
>> 5   libosg.63.dylib                     0x004f3a23
>> osg::Node::setStateSet(osg::StateSet*) + 387
>> 6   libosg.63.dylib                     0x004f3f9a osg::Node::~Node() + 42
>> 7   libosg.63.dylib                     0x0048033c osg::Geode::~Geode() + 268
>> 8   libosg.63.dylib                     0x004c0613 osg::Group::~Group() + 211
>> 9   libcrsFX.dylib                      0x00063069
>> crsFX::CameraHUD::~CameraHUD() + 57
>> 10  libosg.63.dylib                     0x004c0613 osg::Group::~Group() + 211
>> 11  libcrsFX.dylib                      0x0006ab4f
>> crsFX::HUDEffect::~HUDEffect() + 95
>> 12  libcrsFX.dylib                      0x000657e0
>> std::_Rb_tree<std::basic_string<char, std::char_traits<char>,
>> std::allocator<char> >, std::pair<std::basic_string<char,
>> std::char_traits<char>, std::allocator<char> > const,
>> osg::ref_ptr<osg::Object> >,
>> std::_Select1st<std::pair<std::basic_string<char,
>> std::char_traits<char>, std::allocator<char> > const,
>> osg::ref_ptr<osg::Object> > >, std::less<std::basic_string<char,
>> std::char_traits<char>, std::allocator<char> > >,
>> std::allocator<std::pair<std::basic_string<char,
>> std::char_traits<char>, std::allocator<char> > const,
>> osg::ref_ptr<osg::Object> > >
>>>::_M_erase(std::_Rb_tree_node<std::pair<std::basic_string<char,
>> std::char_traits<char>, std::allocator<char> > const,
>> osg::ref_ptr<osg::Object> > >*) + 176
>> 13  libcrsFXDB.dylib                    0x00f1341c
>> crsFXDB::xml::XMLRegistry::~XMLRegistry() + 44
>> 14  osgdb_cfx.so                        0x00ecd1d0 __tcf_0 + 112
>> 15  libSystem.B.dylib                   0x94ffcdbc __cxa_finalize + 241
>> 16  libSystem.B.dylib                   0x94ffccb0 exit + 33
>> 17  crsFXLauncher                       0x000082bf start + 63
>>
>>
>> Next refactor will be using osg XML support and remove mine, so this
>> XMLRegistry singleton will disappear.
>>
>> Rafa.
>>
>>
>> On Fri, Feb 19, 2010 at 9:18 AM, Robert Osfield
>> <[email protected]> wrote:
>>> Hi Maxim,
>>>
>>> 2010/2/19 Maxim Gammer <[email protected]>:
>>>> Strangely, ffmpeg in my project works fine ...
>>>> (in OSG 2.9.7)
>>>> Here the log:
>>>> ffmpeg:: open (/ home/maximum2000/LABS/transgaz/video/utz1.mov) size (1024,
>>>> 768) aspect ratio 1
>>>> Attaching FFmpegAudioStream
>>>> ....
>>>> Finished FFmpegImageStream:: run ()
>>>> FFmpegAudioStream:: setAudioSink (0)
>>>> Assigning 0
>>>> Calling av_close_input_file (0xe495a40)
>>>> ...
>>>>
>>>> And the video plays fine)
>>>
>>> ffmpeg works fine for me too (Kubuntu 9.04).  I believe the ffmpeg
>>> finding of Rafa's was just co-incindence or "the straw that broke the
>>> camels back" and not directly related to the issue.
>>>
>>> I suspect OSX is destructing the app in an order that is causing
>>> problems i.e. the static before the plugin gets unloaded.
>>>
>>> Robert.
>>> _______________________________________________
>>> osg-users mailing list
>>> [email protected]
>>> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>>>
>>
>>
>>
>> --
>> Rafael Gaitán Linares
>> Instituto de Automática e Informática Industrial  http://www.ai2.upv.es
>> http://gvsig3d.blogspot.com
>> Ciudad Politécnica de la Innovación
>> Universidad Politécnica de Valencia
>> _______________________________________________
>> osg-users mailing list
>> [email protected]
>> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>>
> _______________________________________________
> osg-users mailing list
> [email protected]
> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>



-- 
Rafael Gaitán Linares
Instituto de Automática e Informática Industrial  http://www.ai2.upv.es
http://gvsig3d.blogspot.com
Ciudad Politécnica de la Innovación
Universidad Politécnica de Valencia
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to