sofian / drone

FLOSS dataflow software for real-time media
GNU General Public License v2.0
3 stars 3 forks source link

Crash when playing video in multithreaded release mode #35

Open sofian opened 11 years ago

sofian commented 11 years ago

Valgrind output:

==9331== Thread 3:
==9331== Conditional jump or move depends on uninitialised value(s)
==9331==    at 0x12136CAFD: Gear_VideoSource::_preRun() (in /Users/tats/devel/drone/drone.app/Contents/PlugIns/libGear_VideoSource.dylib.1.0.0)
==9331==    by 0x12136CEB5: Gear_VideoSource::runVideo() (in /Users/tats/devel/drone/drone.app/Contents/PlugIns/libGear_VideoSource.dylib.1.0.0)
==9331==    by 0x100148D00: Engine::playThread(void*) (in /Users/tats/devel/drone/drone.app/Contents/Frameworks/libdroneCore.dylib.1.0.0)
==9331==    by 0x10186CFD5: _pthread_start (in /usr/lib/libSystem.B.dylib)
==9331==    by 0x10186CE88: thread_start (in /usr/lib/libSystem.B.dylib)
==9331== 
Opening movie : /Users/tats/Movies/BonneFete.mov
==9331== Conditional jump or move depends on uninitialised value(s)
==9331==    at 0x1018945D8: pthread_rwlock_init (in /usr/lib/libSystem.B.dylib)
==9331==    by 0x120D24FD6: _nl_load_domain (in /Library/Frameworks/GStreamer.framework/Versions/0.10/lib/libintl.8.dylib)
==9331==    by 0x120D23BAD: _nl_find_domain (in /Library/Frameworks/GStreamer.framework/Versions/0.10/lib/libintl.8.dylib)
==9331==    by 0x120D27080: libintl_dcigettext (in /Library/Frameworks/GStreamer.framework/Versions/0.10/lib/libintl.8.dylib)
==9331==    by 0x12085B866: gst_init_check (in /Library/Frameworks/GStreamer.framework/Versions/0.10/lib/libgstreamer-0.10.0.dylib)
==9331==    by 0x12085B998: gst_init (in /Library/Frameworks/GStreamer.framework/Versions/0.10/lib/libgstreamer-0.10.0.dylib)
==9331==    by 0x12136B580: Gear_VideoSource::loadMovie(std::string) (in /Users/tats/devel/drone/drone.app/Contents/PlugIns/libGear_VideoSource.dylib.1.0.0)
==9331==    by 0x12136CC89: Gear_VideoSource::_preRun() (in /Users/tats/devel/drone/drone.app/Contents/PlugIns/libGear_VideoSource.dylib.1.0.0)
==9331==    by 0x12136CEB5: Gear_VideoSource::runVideo() (in /Users/tats/devel/drone/drone.app/Contents/PlugIns/libGear_VideoSource.dylib.1.0.0)
==9331==    by 0x100148D00: Engine::playThread(void*) (in /Users/tats/devel/drone/drone.app/Contents/Frameworks/libdroneCore.dylib.1.0.0)
==9331==    by 0x10186CFD5: _pthread_start (in /usr/lib/libSystem.B.dylib)
==9331==    by 0x10186CE88: thread_start (in /usr/lib/libSystem.B.dylib)
==9331== 
==9331== Conditional jump or move depends on uninitialised value(s)
==9331==    at 0x1018945D8: pthread_rwlock_init (in /usr/lib/libSystem.B.dylib)
==9331==    by 0x120C1939A: g_rw_lock_impl_new (in /Library/Frameworks/GStreamer.framework/Versions/0.10/lib/libglib-2.0.0.dylib)
==9331==    by 0x120C195F6: g_rw_lock_writer_lock (in /Library/Frameworks/GStreamer.framework/Versions/0.10/lib/libglib-2.0.0.dylib)
==9331==    by 0x1209A69E2: g_type_init_with_debug_flags (in /Library/Frameworks/GStreamer.framework/Versions/0.10/lib/libgobject-2.0.0.dylib)
==9331==    by 0x12085AB7C: init_pre (in /Library/Frameworks/GStreamer.framework/Versions/0.10/lib/libgstreamer-0.10.0.dylib)
==9331==    by 0x120BE66E9: g_option_context_parse (in /Library/Frameworks/GStreamer.framework/Versions/0.10/lib/libglib-2.0.0.dylib)
==9331==    by 0x12085B8DF: gst_init_check (in /Library/Frameworks/GStreamer.framework/Versions/0.10/lib/libgstreamer-0.10.0.dylib)
==9331==    by 0x12085B998: gst_init (in /Library/Frameworks/GStreamer.framework/Versions/0.10/lib/libgstreamer-0.10.0.dylib)
==9331==    by 0x12136B580: Gear_VideoSource::loadMovie(std::string) (in /Users/tats/devel/drone/drone.app/Contents/PlugIns/libGear_VideoSource.dylib.1.0.0)
==9331==    by 0x12136CC89: Gear_VideoSource::_preRun() (in /Users/tats/devel/drone/drone.app/Contents/PlugIns/libGear_VideoSource.dylib.1.0.0)
==9331==    by 0x12136CEB5: Gear_VideoSource::runVideo() (in /Users/tats/devel/drone/drone.app/Contents/PlugIns/libGear_VideoSource.dylib.1.0.0)
==9331==    by 0x100148D00: Engine::playThread(void*) (in /Users/tats/devel/drone/drone.app/Contents/Frameworks/libdroneCore.dylib.1.0.0)
==9331== 
==9331== Thread 1:
==9331== Invalid read of size 4
==9331==    at 0x101FA36CB: CGSCacheAcquireValues (in /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/CoreGraphics.framework/Versions/A/CoreGraphics)
==9331==    by 0x101FA3416: CGGlyphLockLockGlyphBitmaps (in /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/CoreGraphics.framework/Versions/A/CoreGraphics)
==9331==    by 0x119500EBC: ripc_RenderGlyphs (in /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/CoreGraphics.framework/Versions/A/Resources/libRIP.A.dylib)
==9331==    by 0x11950089A: ripc_DrawGlyphs (in /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/CoreGraphics.framework/Versions/A/Resources/libRIP.A.dylib)
==9331==    by 0x101FA1966: draw_glyphs (in /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/CoreGraphics.framework/Versions/A/CoreGraphics)
==9331==    by 0x101FA126D: CGContextShowGlyphsWithAdvances (in /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/CoreGraphics.framework/Versions/A/CoreGraphics)
==9331==    by 0x100722F1F: QCoreTextFontEngine::draw(CGContext*, double, double, QTextItemInt const&, int) (in /Library/Frameworks/QtGui.framework/Versions/4/QtGui)
==9331==    by 0x10096584A: QCoreGraphicsPaintEngine::drawTextItem(QPointF const&, QTextItem const&) (in /Library/Frameworks/QtGui.framework/Versions/4/QtGui)
==9331==    by 0x1008AAD50: QPainter::drawTextItem(QPointF const&, QTextItem const&) (in /Library/Frameworks/QtGui.framework/Versions/4/QtGui)
==9331==    by 0x1009BBB17: QTextLine::draw(QPainter*, QPointF const&, QTextLayout::FormatRange const*) const (in /Library/Frameworks/QtGui.framework/Versions/4/QtGui)
==9331==    by 0x1008AFBAB: qt_format_text(QFont const&, QRectF const&, int, QTextOption const*, QString const&, QRectF*, int, int*, int, QPainter*) (in /Library/Frameworks/QtGui.framework/Versions/4/QtGui)
==9331==    by 0x1008B03B4: QPainter::drawText(QRect const&, int, QString const&, QRect*) (in /Library/Frameworks/QtGui.framework/Versions/4/QtGui)
==9331==  Address 0x122d9f00c is not stack'd, malloc'd or (recently) free'd
==9331== 
==9331== 
==9331== Process terminating with default action of signal 11 (SIGSEGV)
==9331==  Access not within mapped region at address 0x122D9F00C
==9331==    at 0x101FA36CB: CGSCacheAcquireValues (in /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/CoreGraphics.framework/Versions/A/CoreGraphics)
==9331==    by 0x101FA3416: CGGlyphLockLockGlyphBitmaps (in /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/CoreGraphics.framework/Versions/A/CoreGraphics)
==9331==    by 0x119500EBC: ripc_RenderGlyphs (in /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/CoreGraphics.framework/Versions/A/Resources/libRIP.A.dylib)
==9331==    by 0x11950089A: ripc_DrawGlyphs (in /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/CoreGraphics.framework/Versions/A/Resources/libRIP.A.dylib)
==9331==    by 0x101FA1966: draw_glyphs (in /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/CoreGraphics.framework/Versions/A/CoreGraphics)
==9331==    by 0x101FA126D: CGContextShowGlyphsWithAdvances (in /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/CoreGraphics.framework/Versions/A/CoreGraphics)
==9331==    by 0x100722F1F: QCoreTextFontEngine::draw(CGContext*, double, double, QTextItemInt const&, int) (in /Library/Frameworks/QtGui.framework/Versions/4/QtGui)
==9331==    by 0x10096584A: QCoreGraphicsPaintEngine::drawTextItem(QPointF const&, QTextItem const&) (in /Library/Frameworks/QtGui.framework/Versions/4/QtGui)
==9331==    by 0x1008AAD50: QPainter::drawTextItem(QPointF const&, QTextItem const&) (in /Library/Frameworks/QtGui.framework/Versions/4/QtGui)
==9331==    by 0x1009BBB17: QTextLine::draw(QPainter*, QPointF const&, QTextLayout::FormatRange const*) const (in /Library/Frameworks/QtGui.framework/Versions/4/QtGui)
==9331==    by 0x1008AFBAB: qt_format_text(QFont const&, QRectF const&, int, QTextOption const*, QString const&, QRectF*, int, int*, int, QPainter*) (in /Library/Frameworks/QtGui.framework/Versions/4/QtGui)
==9331==    by 0x1008B03B4: QPainter::drawText(QRect const&, int, QString const&, QRect*) (in /Library/Frameworks/QtGui.framework/Versions/4/QtGui)
sofian commented 11 years ago

In branch gstreamer/experimental

sofian commented 11 years ago

It seems to be linked to the gstreamer sdk. Before compiling I need to run /opt/gstreamer-sdk/bin/gst-sdk-shell. However once it's compiled, if I run while in the same shell, I have problems (only in multithreaded mode).

sofian commented 11 years ago

Actually those are two separate issues. There is a problem with the OpenGL video output in multithreading mode.