After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 745473 - gl: Warning in opengl3 when using glcolorscale and gltransformation
gl: Warning in opengl3 when using glcolorscale and gltransformation
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-bad
unspecified
Other Linux
: Normal normal
: 1.5.1
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2015-03-02 16:47 UTC by Xavier Claessens
Modified: 2015-07-07 07:56 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Xavier Claessens 2015-03-02 16:47:27 UTC
With this pipeline:

gst-launch-1.0 uridecodebin uri=file:///something.jpg ! glcolorscale ! imagefreeze ! gltransformation ! glimagesink

It prints tones of error like this:

0:00:01.103329371  5979 0x7f129c0546d0 ERROR              glcontext gstglcontext.c:1068:_gst_gl_debug_callback:<glcontextglx0> high: GL error from API id:4, GL_INVALID_VALUE in glDeleteSync (not a valid sync object)

With gst-launch-1.0 it still work though. But with similar pipeline on my real app it crash with this assert:

** (lt-scout-client:788): CRITICAL **: gst_video_frame_map_id: assertion 'info->finfo->format == meta->format' failed

Not sure that's related, but the error with gst-launch does not fill me with confidence.
Comment 1 Lubosz Sarnecki 2015-03-02 19:31:37 UTC
I wanted to note that the pipeline works with removing either imagefreeze or glcolorscale.

Replacing gltransformation with glfiltercube produces the same sync errors though. glfilterblur works strangely.
Comment 2 Nicolas Dufresne (ndufresne) 2015-03-02 20:04:20 UTC
A backtrace please ? (with G_DEBUG=fatal_criticals)
Comment 3 Xavier Claessens 2015-03-03 15:22:07 UTC
** (lt-scout-client:5179): CRITICAL **: gst_video_frame_map_id: assertion 'info->finfo->format == meta->format' failed

Program received signal SIGTRAP, Trace/breakpoint trap.
[Switching to Thread 0x7fff82bff700 (LWP 5231)]
g_logv (log_domain=0x0, log_level=G_LOG_LEVEL_CRITICAL, format=<optimized out>, args=args@entry=0x7fff82bfdf68) at gmessages.c:1046
1046		  g_private_set (&g_log_depth, GUINT_TO_POINTER (depth));
(gdb) t apply all bt

Thread 25 (Thread 0x7fff82bff700 (LWP 5231))

  • #0 g_logv
    at gmessages.c line 1046
  • #1 g_log
    at gmessages.c line 1079
  • #2 g_return_if_fail_warning
    at gmessages.c line 1088
  • #3 gst_video_frame_map_id
  • #4 gst_video_frame_map
  • #5 gst_gl_filter_filter_texture
    at gstglfilter.c line 1273
  • #6 gst_gl_filter_transform
    at gstglfilter.c line 1359
  • #7 gst_base_transform_handle_buffer
    at gstbasetransform.c line 2138
  • #8 gst_base_transform_chain
    at gstbasetransform.c line 2245
  • #9 gst_pad_chain_data_unchecked
    at gstpad.c line 3977
  • #10 gst_pad_push_data
    at gstpad.c line 4210
  • #11 gst_pad_push
    at gstpad.c line 4321
  • #12 gst_proxy_pad_chain_default
    at gstghostpad.c line 126
  • #13 gst_pad_chain_data_unchecked
    at gstpad.c line 3977
  • #14 gst_pad_push_data
    at gstpad.c line 4210
  • #15 gst_pad_push
    at gstpad.c line 4321
  • #16 gst_proxy_pad_chain_default
    at gstghostpad.c line 126
  • #17 gst_pad_chain_data_unchecked
    at gstpad.c line 3977
  • #18 gst_pad_push_data
    at gstpad.c line 4210
  • #19 gst_pad_push
    at gstpad.c line 4321
  • #20 gst_image_freeze_src_loop
    at gstimagefreeze.c line 794
  • #21 gst_task_func
    at gsttask.c line 331
  • #22 g_thread_pool_thread_proxy
    at gthreadpool.c line 307
  • #23 g_thread_proxy
    at gthread.c line 764
  • #24 start_thread
    at pthread_create.c line 312
  • #25 clone
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S line 111

Thread 18 (Thread 0x7fffaaffd700 (LWP 5223))

  • #0 syscall
    at ../sysdeps/unix/sysv/linux/x86_64/syscall.S line 38
  • #1 g_cond_wait
    at gthread-posix.c line 1390
  • #2 gst_base_sink_wait_preroll
    at gstbasesink.c line 2155
  • #3 gst_audio_base_sink_render
    at gstaudiobasesink.c line 1957
  • #4 gst_base_sink_chain_unlocked
    at gstbasesink.c line 3438
  • #5 gst_base_sink_chain_main
    at gstbasesink.c line 3546
  • #6 gst_pad_chain_data_unchecked
    at gstpad.c line 3977
  • #7 gst_pad_push_data
    at gstpad.c line 4210
  • #8 gst_pad_push
    at gstpad.c line 4321
  • #9 gst_proxy_pad_chain_default
    at gstghostpad.c line 126
  • #10 gst_pad_chain_data_unchecked
    at gstpad.c line 3977
  • #11 gst_pad_push_data
    at gstpad.c line 4210
  • #12 gst_pad_push
    at gstpad.c line 4321
  • #13 gst_proxy_pad_chain_default
    at gstghostpad.c line 126
  • #14 gst_pad_chain_data_unchecked
    at gstpad.c line 3977
  • #15 gst_pad_push_data
    at gstpad.c line 4210
  • #16 gst_pad_push
    at gstpad.c line 4321
  • #17 gst_proxy_pad_chain_default
    at gstghostpad.c line 126
  • #18 gst_pad_chain_data_unchecked
    at gstpad.c line 3977
  • #19 gst_pad_push_data
    at gstpad.c line 4210
  • #20 gst_pad_push
    at gstpad.c line 4321
  • #21 gst_audio_decoder_push_forward
    at gstaudiodecoder.c line 975
  • #22 gst_audio_decoder_output
    at gstaudiodecoder.c line 1051
  • #23 gst_audio_decoder_finish_frame
    at gstaudiodecoder.c line 1314
  • #24 gst_faad_handle_frame
    at gstfaad.c line 794
  • #25 gst_audio_decoder_push_buffers
    at gstaudiodecoder.c line 1470
  • #26 gst_audio_decoder_chain_forward
    at gstaudiodecoder.c line 1584
  • #27 gst_audio_decoder_chain
    at gstaudiodecoder.c line 1842
  • #28 gst_pad_chain_data_unchecked
    at gstpad.c line 3977
  • #29 gst_pad_push_data
    at gstpad.c line 4210
  • #30 gst_pad_push
    at gstpad.c line 4321
  • #31 gst_base_parse_push_frame
    at gstbaseparse.c line 2341
  • #32 gst_base_parse_chain
    at gstbaseparse.c line 2950
  • #33 gst_pad_chain_data_unchecked
    at gstpad.c line 3977
  • #34 gst_pad_push_data
    at gstpad.c line 4210
  • #35 gst_pad_push
    at gstpad.c line 4321
  • #36 gst_rtp_base_depayload_push
    at gstrtpbasedepayload.c line 685
  • #37 gst_rtp_mp4a_depay_process
    at gstrtpmp4adepay.c line 376
  • #38 gst_rtp_base_depayload_chain
    at gstrtpbasedepayload.c line 431
  • #39 gst_pad_chain_data_unchecked
    at gstpad.c line 3977
  • #40 gst_pad_push_data
    at gstpad.c line 4210
  • #41 gst_pad_chain_data_unchecked
    at gstpad.c line 3977
  • #42 gst_pad_push_data
    at gstpad.c line 4210
  • #43 gst_pad_push
    at gstpad.c line 4321
  • #44 gst_proxy_pad_chain_default
    at gstghostpad.c line 126
  • #45 gst_pad_chain_data_unchecked
    at gstpad.c line 3977
  • #46 gst_pad_push_data
    at gstpad.c line 4210
  • #47 gst_pad_push
    at gstpad.c line 4321
  • #48 gst_proxy_pad_chain_default
    at gstghostpad.c line 126
  • #49 gst_pad_chain_data_unchecked
    at gstpad.c line 3977
  • #50 gst_pad_push_data
    at gstpad.c line 4210
  • #51 gst_pad_push
    at gstpad.c line 4321
  • #52 gst_proxy_pad_chain_default
    at gstghostpad.c line 126
  • #53 gst_pad_chain_data_unchecked
    at gstpad.c line 3977
  • #54 gst_pad_push_data
    at gstpad.c line 4210
  • #55 gst_pad_push
    at gstpad.c line 4321
  • #56 gst_rtp_pt_demux_chain
    at gstrtpptdemux.c line 442
  • #57 gst_pad_chain_data_unchecked
    at gstpad.c line 3977
  • #58 gst_pad_push_data
    at gstpad.c line 4210
  • #59 gst_pad_push
    at gstpad.c line 4321
  • #60 pop_and_push_next
    at gstrtpjitterbuffer.c line 2630
  • #61 handle_next_buffer
    at gstrtpjitterbuffer.c line 2722
  • #62 gst_rtp_jitter_buffer_loop
    at gstrtpjitterbuffer.c line 3144
  • #63 gst_task_func
    at gsttask.c line 331
  • #64 g_thread_pool_thread_proxy
    at gthreadpool.c line 307
  • #65 g_thread_proxy
    at gthread.c line 764
  • #66 start_thread
    at pthread_create.c line 312
  • #67 clone
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S line 111

Thread 17 (Thread 0x7fffab7fe700 (LWP 5222))

  • #0 syscall
    at ../sysdeps/unix/sysv/linux/x86_64/syscall.S line 38
  • #1 g_cond_wait
    at gthread-posix.c line 1390
  • #2 wait_next_timeout
    at gstrtpjitterbuffer.c line 3119
  • #3 g_thread_proxy
    at gthread.c line 764
  • #4 start_thread
    at pthread_create.c line 312
  • #5 clone
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S line 111

Thread 16 (Thread 0x7fffabfff700 (LWP 5221))

  • #0 syscall
    at ../sysdeps/unix/sysv/linux/x86_64/syscall.S line 38
  • #1 g_cond_wait
    at gthread-posix.c line 1390
  • #2 do_probe_callbacks
    at gstpad.c line 3455
  • #3 gst_pad_push_data
    at gstpad.c line 4193
  • #4 gst_pad_push
    at gstpad.c line 4321
  • #5 gst_proxy_pad_chain_default
    at gstghostpad.c line 126
  • #6 gst_pad_chain_data_unchecked
    at gstpad.c line 3977
  • #7 gst_pad_push_data
    at gstpad.c line 4210
  • #8 gst_pad_push
    at gstpad.c line 4321
  • #9 gst_base_transform_chain
    at gstbasetransform.c line 2281
  • #10 gst_pad_chain_data_unchecked
    at gstpad.c line 3977
  • #11 gst_pad_push_data
    at gstpad.c line 4210
  • #12 gst_pad_push
    at gstpad.c line 4321
  • #13 gst_proxy_pad_chain_default
    at gstghostpad.c line 126
  • #14 gst_pad_chain_data_unchecked
    at gstpad.c line 3977
  • #15 gst_pad_push_data
    at gstpad.c line 4210
  • #16 gst_pad_push
    at gstpad.c line 4321
  • #17 gst_proxy_pad_chain_default
    at gstghostpad.c line 126
  • #18 gst_pad_chain_data_unchecked
    at gstpad.c line 3977
  • #19 gst_pad_push_data
    at gstpad.c line 4210
  • #20 gst_pad_push
    at gstpad.c line 4321
  • #21 gst_video_decoder_clip_and_push_buf
    at gstvideodecoder.c line 2878
  • #22 gst_video_decoder_finish_frame
    at gstvideodecoder.c line 2784
  • #23 gst_ffmpegviddec_video_frame
    at gstavviddec.c line 1352
  • #24 gst_ffmpegviddec_frame
    at gstavviddec.c line 1409
  • #25 gst_ffmpegviddec_handle_frame
    at gstavviddec.c line 1521
  • #26 gst_video_decoder_decode_frame
    at gstvideodecoder.c line 3080
  • #27 gst_video_decoder_chain_forward
    at gstvideodecoder.c line 1957
  • #28 gst_video_decoder_chain
    at gstvideodecoder.c line 2257
  • #29 gst_pad_chain_data_unchecked
    at gstpad.c line 3977
  • #30 gst_pad_push_data
    at gstpad.c line 4210
  • #31 gst_pad_push
    at gstpad.c line 4321
  • #32 gst_base_transform_chain
    at gstbasetransform.c line 2281
  • #33 gst_pad_chain_data_unchecked
    at gstpad.c line 3977
  • #34 gst_pad_push_data
    at gstpad.c line 4210
  • #35 gst_pad_push
    at gstpad.c line 4321
  • #36 gst_base_parse_push_frame
    at gstbaseparse.c line 2341
  • #37 gst_base_parse_handle_and_push_frame
    at gstbaseparse.c line 2173
  • #38 gst_base_parse_finish_frame
    at gstbaseparse.c line 2498
  • #39 gst_h264_parse_handle_frame
    at gsth264parse.c line 1079
  • #40 gst_base_parse_handle_buffer
    at gstbaseparse.c line 1987
  • #41 gst_base_parse_chain
    at gstbaseparse.c line 3025
  • #42 gst_pad_chain_data_unchecked
    at gstpad.c line 3977
  • #43 gst_pad_push_data
    at gstpad.c line 4210
  • #44 gst_pad_push
    at gstpad.c line 4321
  • #45 gst_rtp_base_depayload_push
    at gstrtpbasedepayload.c line 685
  • #46 gst_rtp_base_depayload_chain
    at gstrtpbasedepayload.c line 433
  • #47 gst_pad_chain_data_unchecked
    at gstpad.c line 3977
  • #48 gst_pad_push_data
    at gstpad.c line 4210
  • #49 gst_pad_chain_data_unchecked
    at gstpad.c line 3977
  • #50 gst_pad_push_data
    at gstpad.c line 4210
  • #51 gst_pad_push
    at gstpad.c line 4321
  • #52 gst_proxy_pad_chain_default
    at gstghostpad.c line 126
  • #53 gst_pad_chain_data_unchecked
    at gstpad.c line 3977
  • #54 gst_pad_push_data
    at gstpad.c line 4210
  • #55 gst_pad_push
    at gstpad.c line 4321
  • #56 gst_proxy_pad_chain_default
    at gstghostpad.c line 126
  • #57 gst_pad_chain_data_unchecked
    at gstpad.c line 3977
  • #58 gst_pad_push_data
    at gstpad.c line 4210
  • #59 gst_pad_push
    at gstpad.c line 4321
  • #60 gst_proxy_pad_chain_default
    at gstghostpad.c line 126
  • #61 gst_pad_chain_data_unchecked
    at gstpad.c line 3977
  • #62 gst_pad_push_data
    at gstpad.c line 4210
  • #63 gst_pad_push
    at gstpad.c line 4321
  • #64 gst_rtp_pt_demux_chain
    at gstrtpptdemux.c line 442
  • #65 gst_pad_chain_data_unchecked
    at gstpad.c line 3977
  • #66 gst_pad_push_data
    at gstpad.c line 4210
  • #67 gst_pad_push
    at gstpad.c line 4321
  • #68 pop_and_push_next
    at gstrtpjitterbuffer.c line 2630
  • #69 handle_next_buffer
    at gstrtpjitterbuffer.c line 2722
  • #70 gst_rtp_jitter_buffer_loop
    at gstrtpjitterbuffer.c line 3144
  • #71 gst_task_func
    at gsttask.c line 331
  • #72 g_thread_pool_thread_proxy
    at gthreadpool.c line 307
  • #73 g_thread_proxy
    at gthread.c line 764
  • #74 start_thread
    at pthread_create.c line 312
  • #75 clone
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S line 111

Thread 15 (Thread 0x7fffd0ff8700 (LWP 5220))

  • #0 syscall
    at ../sysdeps/unix/sysv/linux/x86_64/syscall.S line 38
  • #1 g_cond_wait
    at gthread-posix.c line 1390
  • #2 wait_next_timeout
    at gstrtpjitterbuffer.c line 3119
  • #3 g_thread_proxy
    at gthread.c line 764
  • #4 start_thread
    at pthread_create.c line 312
  • #5 clone
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S line 111

Thread 14 (Thread 0x7fffd17f9700 (LWP 5219))

  • #0 syscall
    at ../sysdeps/unix/sysv/linux/x86_64/syscall.S line 38
  • #1 g_cond_wait
    at gthread-posix.c line 1390
  • #2 gst_task_func
    at gsttask.c line 316
  • #3 g_thread_pool_thread_proxy
    at gthreadpool.c line 307
  • #4 g_thread_proxy
    at gthread.c line 764
  • #5 start_thread
    at pthread_create.c line 312
  • #6 clone
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S line 111

Thread 13 (Thread 0x7fffd1ffa700 (LWP 5218))

  • #0 syscall
    at ../sysdeps/unix/sysv/linux/x86_64/syscall.S line 38
  • #1 g_cond_wait
    at gthread-posix.c line 1390
  • #2 gst_task_func
    at gsttask.c line 316
  • #3 g_thread_pool_thread_proxy
    at gthreadpool.c line 307
  • #4 g_thread_proxy
    at gthread.c line 764
  • #5 start_thread
    at pthread_create.c line 312
  • #6 clone
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S line 111

Thread 12 (Thread 0x7fffd27fb700 (LWP 5217))

  • #0 syscall
    at ../sysdeps/unix/sysv/linux/x86_64/syscall.S line 38
  • #1 g_cond_wait
    at gthread-posix.c line 1390
  • #2 gst_task_func
    at gsttask.c line 316
  • #3 g_thread_pool_thread_proxy
    at gthreadpool.c line 307
  • #4 g_thread_proxy
    at gthread.c line 764
  • #5 start_thread
    at pthread_create.c line 312
  • #6 clone
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S line 111

Thread 11 (Thread 0x7fffd2ffc700 (LWP 5216))

  • #0 syscall
    at ../sysdeps/unix/sysv/linux/x86_64/syscall.S line 38
  • #1 g_cond_wait
    at gthread-posix.c line 1390
  • #2 gst_task_func
    at gsttask.c line 316
  • #3 g_thread_pool_thread_proxy
    at gthreadpool.c line 307
  • #4 g_thread_proxy
    at gthread.c line 764
  • #5 start_thread
    at pthread_create.c line 312
  • #6 clone
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S line 111

Thread 8 (Thread 0x7fffdcaf2700 (LWP 5211))

  • #0 syscall
    at ../sysdeps/unix/sysv/linux/x86_64/syscall.S line 38
  • #1 g_cond_wait
    at gthread-posix.c line 1390
  • #2 gst_task_func
    at gsttask.c line 316
  • #3 g_thread_pool_thread_proxy
    at gthreadpool.c line 307
  • #4 g_thread_proxy
    at gthread.c line 764
  • #5 start_thread
    at pthread_create.c line 312
  • #6 clone
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S line 111

Thread 7 (Thread 0x7fffdd2f3700 (LWP 5210))

  • #0 syscall
    at ../sysdeps/unix/sysv/linux/x86_64/syscall.S line 38
  • #1 g_cond_wait
    at gthread-posix.c line 1390
  • #2 gst_task_func
    at gsttask.c line 316
  • #3 g_thread_pool_thread_proxy
    at gthreadpool.c line 307
  • #4 g_thread_proxy
    at gthread.c line 764
  • #5 start_thread
    at pthread_create.c line 312
  • #6 clone
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S line 111

Thread 6 (Thread 0x7fffde15d700 (LWP 5188))

  • #0 syscall
    at ../sysdeps/unix/sysv/linux/x86_64/syscall.S line 38
  • #1 g_cond_wait
    at gthread-posix.c line 1390
  • #2 gst_task_func
    at gsttask.c line 316
  • #3 g_thread_pool_thread_proxy
    at gthreadpool.c line 307
  • #4 g_thread_proxy
    at gthread.c line 764
  • #5 start_thread
    at pthread_create.c line 312
  • #6 clone
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S line 111

Comment 4 Xavier Claessens 2015-03-03 15:27:50 UTC
But note that with the gst-launch-1.0 command I pasted above, I get only the gstreamer error, no critical, so no crash.

glcontext gstglcontext.c:1068:_gst_gl_debug_callback:<glcontextglx0> high: GL error from API id:3, GL_INVALID_VALUE in glDeleteSync (not a valid sync object)
Comment 5 Nicolas Dufresne (ndufresne) 2015-03-03 16:25:52 UTC
Warnings goes away when running with GST_GL_API=opengl. So it's only with opengl3 API ;-P.
Comment 6 Xavier Claessens 2015-03-03 16:28:15 UTC
With GST_GL_API=opengl the gl error goes away, but not the critical, so please ignore the backtrace I attached it's not related, probably a bug in my app.

But the gl error is still valid and can be reproduced with the gst-launch-1.0 command I posted in fist comment.
Comment 7 Lubosz Sarnecki 2015-03-03 17:08:45 UTC
Doesn't this mean that the sync API does not support OpenGL3 currently?

Or is it just the glfilercube and gltransformation elements? gltransformation not ported to GL3 yet though.
For a proper core initialization the vertex buffer would need to be added to a VertexArray buffer, also the shader would need to be ported to GLSL3.

As seen in my port of gltestsrc to GL3 (not upstream yet):
https://github.com/lubosz/gst-plugins-bad/commit/900a3c966c9d3e985e280ec67068a3d984e4da1e

Looking forward to Vulkan ;)
Comment 8 Xavier Claessens 2015-03-03 18:05:19 UTC
I reported the criticial and backtrace seperately in bug #745549
Comment 9 Matthew Waters (ystreet00) 2015-07-07 05:35:24 UTC
commit 840f63896f5c2ca9cefbf6d26c75c6096cdc5155
Author: Jan Schmidt <jan@centricular.com>
Date:   Wed Jun 3 00:31:42 2015 +1000

    glsyncmeta: Set new sync point when copying
    
    Set a new sync point when copying instead of
    transferring the (non-refcounted) GL sync object
    from the source meta.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=750279