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 745549 - glfilter: does not set new caps on its uploader
glfilter: does not set new caps on its uploader
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-03 18:04 UTC by Xavier Claessens
Modified: 2015-03-03 19:24 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
[PATCH] glfilter: Get rid of uploader if caps have changed (1.02 KB, patch)
2015-03-03 18:47 UTC, Nicolas Dufresne (ndufresne)
none Details | Review

Description Xavier Claessens 2015-03-03 18:04:30 UTC
When resolution of my stream change and there is a gltransformation in the pipeline, I get this critical:

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

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 1 Xavier Claessens 2015-03-03 18:07:04 UTC
A workaround is to add g_clear_object (&filter->upload) in gst_gl_filter_set_caps().

It would probably be cleaner to call gst_gl_upload_set_caps() instead, it fix the crash, but then the image is corrupted.
Comment 2 Nicolas Dufresne (ndufresne) 2015-03-03 18:47:59 UTC
Created attachment 298467 [details] [review]
[PATCH] glfilter: Get rid of uploader if caps have changed


We need to update the uploader format if that caps have changed.

https://bugzilla.gnome.org/show_bug.cgi?id=745549
---
 gst-libs/gst/gl/gstglfilter.c | 7 +++++++
 1 file changed, 7 insertions(+)
Comment 3 Nicolas Dufresne (ndufresne) 2015-03-03 19:24:22 UTC
commit 34402920d268205ac7de5dcb0411274c18cedbef
Author: Nicolas Dufresne <nicolas.dufresne@collabora.com>
Date:   Tue Mar 3 13:45:46 2015 -0500

    glfilter: Get rid of uploader if caps have changed
    
    We need to update the uploader format if that caps have changed.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=745549