[Bug 776540] GstGL: Occasional assertion failures on GST_IS_GL_DISPLAY and GST_IS_GL_CONTEXT

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Fri Dec 30 12:29:01 UTC 2016


https://bugzilla.gnome.org/show_bug.cgi?id=776540

--- Comment #4 from Petros <petroskataras at gmail.com> ---
I have some more info after running on Linux.

Here is the backtrace :

#0  0x00007ffff6618a6b in g_logv () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#1  0x00007ffff6618bdf in g_log () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007ffff5955ccf in gst_gl_context_get_display (context=0x0) at
gstglcontext.c:1490
#3  0x00007ffff5970d75 in gst_gl_handle_set_context
(element=element at entry=0x1572480, context=context at entry=0x7fffa00016a0,
display=display at entry=0x15726c0, 
    other_context=0x15723a0) at gstglutils.c:403
#4  0x00007ffff5962140 in gst_gl_base_filter_set_context (element=0x1572480,
context=0x7fffa00016a0) at gstglbasefilter.c:178
#5  0x00007ffff5970799 in _gst_context_query (element=element at entry=0x1572480,
display_type=display_type at entry=0x7ffff5985d59 "gst.gl.app_context") at
gstglutils.c:233
#6  0x00007ffff5970b4f in gst_gl_context_query (element=0x1572480) at
gstglutils.c:282
#7  gst_gl_ensure_element_data (element=element at entry=0x1572480,
display_ptr=display_ptr at entry=0x15726c0, context_ptr=0x15723a0) at
gstglutils.c:346
#8  0x00007ffff596204d in gst_gl_base_filter_change_state (element=0x1572480,
transition=GST_STATE_CHANGE_NULL_TO_READY) at gstglbasefilter.c:483
#9  0x00007ffff62f172e in gst_element_change_state
(element=element at entry=0x1572480,
transition=transition at entry=GST_STATE_CHANGE_NULL_TO_READY) at
gstelement.c:2695
#10 0x00007ffff62f1ea7 in gst_element_set_state_func (element=0x1572480,
state=GST_STATE_READY) at gstelement.c:2649
#11 0x00007ffff62d0295 in gst_bin_element_set_state (next=GST_STATE_READY,
current=GST_STATE_NULL, start_time=0, base_time=0, element=0x1572480,
bin=0x7fffcc0118a0)
    at gstbin.c:2613
#12 gst_bin_change_state_func (element=0x7fffcc0118a0,
transition=GST_STATE_CHANGE_NULL_TO_READY) at gstbin.c:2955
#13 0x00007ffff62f172e in gst_element_change_state
(element=element at entry=0x7fffcc0118a0,
transition=transition at entry=GST_STATE_CHANGE_NULL_TO_READY) at
gstelement.c:2695
#14 0x00007ffff62f1ea7 in gst_element_set_state_func (element=0x7fffcc0118a0,
state=GST_STATE_READY) at gstelement.c:2649
#15 0x00007fffea81d22f in activate_sink (playbin=playbin at entry=0x127e040,
sink=0x7fffcc0118a0, activated=activated at entry=0x7fffffffab48) at
gstplaybin2.c:4451
#16 0x00007fffea822a7e in activate_group (target=GST_STATE_PAUSED,
group=0x127e4c8, playbin=0x127e040) at gstplaybin2.c:5243
#17 setup_next_source (playbin=playbin at entry=0x127e040,
target=GST_STATE_PAUSED) at gstplaybin2.c:5644
#18 0x00007fffea823be8 in gst_play_bin_change_state (element=0x127e040,
transition=GST_STATE_CHANGE_READY_TO_PAUSED) at gstplaybin2.c:5774
#19 0x00007ffff62f172e in gst_element_change_state
(element=element at entry=0x127e040,
transition=transition at entry=GST_STATE_CHANGE_READY_TO_PAUSED) at
gstelement.c:2695
#20 0x00007ffff62f1ea7 in gst_element_set_state_func (element=0x127e040,
state=GST_STATE_PAUSED) at gstelement.c:2649
#21 0x00000000009c1e80 in gst::video::GstPlayer::setPipelineState
(this=0x1449c00, targetState=GST_STATE_PAUSED, forceSync=false)
    at
/home/petroska/Software/libs/cinder-aes/src/cinder/linux/GstPlayer.cpp:980
#22 0x00000000009c1084 in gst::video::GstPlayer::load (this=0x1449c00,
path="/home/petroska/Software/libs/cinder-aes/test/Linux/GstPlayerRefactorTest/assets/bbb.mp4", 
    async=false) at
/home/petroska/Software/libs/cinder-aes/src/cinder/linux/GstPlayer.cpp:659
#23 0x00000000008218db in cinder::linux::MovieBase::initFromPath
(this=0x14fce00, filePath=...) at
/home/petroska/Software/libs/cinder-aes/src/cinder/linux/Movie.cpp:68
#24 0x0000000000821e9e in cinder::linux::MovieGl::MovieGl (this=0x14fce00,
path=...) at
/home/petroska/Software/libs/cinder-aes/src/cinder/linux/Movie.cpp:247
#25 0x0000000000734784 in cinder::linux::MovieGl::create (path=...) at
/home/petroska/Software/libs/cinder-aes/include/cinder/linux/Movie.h:170
#26 0x000000000073351f in GstPlayerTestApp::loadMovieFile (this=0xde0ff0,
moviePath=...)
    at
/home/petroska/Software/libs/cinder-aes/test/Linux/GstPlayerRefactorTest/src/GstPlayerTestApp.cpp:293
#27 0x00000000007325c1 in GstPlayerTestApp::newLoad (this=0xde0ff0)
    at
/home/petroska/Software/libs/cinder-aes/test/Linux/GstPlayerRefactorTest/src/GstPlayerTestApp.cpp:206
#28 0x0000000000732500 in GstPlayerTestApp::testReload (this=0xde0ff0)
    at
/home/petroska/Software/libs/cinder-aes/test/Linux/GstPlayerRefactorTest/src/GstPlayerTestApp.cpp:195
#29 0x0000000000730ea7 in GstPlayerTestApp::testCurrentCase (this=0xde0ff0)
    at
/home/petroska/Software/libs/cinder-aes/test/Linux/GstPlayerRefactorTest/src/GstPlayerTestApp.cpp:125
#30 0x0000000000733051 in GstPlayerTestApp::update (this=0xde0ff0) at
/home/petroska/Software/libs/cinder-aes/test/Linux/GstPlayerRefactorTest/src/GstPlayerTestApp.cpp:244
#31 0x000000000074790d in cinder::app::AppBase::privateUpdate__ (this=0xde0ff0)
at /home/petroska/Software/libs/cinder-aes/src/cinder/app/AppBase.cpp:232
#32 0x00000000008172bb in cinder::app::AppImplLinux::run (this=0xde0cf0) at
/home/petroska/Software/libs/cinder-aes/src/cinder/app/linux/AppImplLinuxGlfw.cpp:332
#33 0x0000000000810bcb in cinder::app::AppLinux::launch (this=0xde0ff0) at
/home/petroska/Software/libs/cinder-aes/src/cinder/app/linux/AppLinux.cpp:48
#34 0x00000000007474f3 in cinder::app::AppBase::executeLaunch (this=0xde0ff0)
at /home/petroska/Software/libs/cinder-aes/src/cinder/app/AppBase.cpp:190
#35 0x0000000000735639 in
cinder::app::AppLinux::main<GstPlayerTestApp>(std::shared_ptr<cinder::app::Renderer>
const&, char const*, int, char* const*, std::function<void
(cinder::app::AppBase::Settings*)> const&) (defaultRenderer=std::shared_ptr
(count 3, weak 0) 0xddfe40, title=0xa445bf "GstPlayerTestApp", argc=1,
argv=0x7fffffffb528, 
    settingsFn=...) at
/home/petroska/Software/libs/cinder-aes/include/cinder/app/linux/AppLinux.h:85
#36 0x0000000000733756 in main (argc=1, argv=0x7fffffffb528) at
/home/petroska/Software/libs/cinder-aes/test/Linux/GstPlayerRefactorTest/src/GstPlayerTestApp.cpp:316

It seems that context_replacement is NULL for some reason when reading the
structure as I can see from the following lines but no clue yet why this is the
case..

...

398         GstGLDisplay *context_display;
399         GstGLDisplay *element_display;
400
401         if (gst_structure_get (s, "context", GST_GL_TYPE_CONTEXT,
402                 &context_replacement, NULL)) {
403           context_display = gst_gl_context_get_display
(context_replacement);
404           element_display = display_replacement ? display_replacement :
*display;
405           if (element_display
406               && (gst_gl_display_get_handle_type (element_display) &
407                   gst_gl_display_get_handle_type (context_display)) == 0) {
(gdb) print s
$8 = (const GstStructure *) 0x148ff60
(gdb) print *s
$9 = {type = 18969104, name = 216}
(gdb) print context_replacement 
$10 = (GstGLContext *) 0x0

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list