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 797113 - pbutils: _post_missing_plugin_message raise gst_caps_is_fixed assertion
pbutils: _post_missing_plugin_message raise gst_caps_is_fixed assertion
Status: RESOLVED OBSOLETE
Product: GStreamer
Classification: Platform
Component: gst-plugins-base
git master
Other Linux
: Normal normal
: git master
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2018-09-10 16:51 UTC by Guillaume Desmottes
Modified: 2018-11-03 12:10 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Guillaume Desmottes 2018-09-10 16:51:01 UTC
- Build gst-transcoder https://github.com/pitivi/gst-transcoder
- Make sure you do NOT have a plugin, such as faac for example
- Try transcoding using this plugin: gst-transcoder-1.0 file:///home/cassidy/Downloads/h264_vorbis.mkv test.mp4 ./data/targets/file-extension/mp4.gep

0:00:00.732762743 21202 0x7fffd80ac590 ERROR              encodebin gstencodebin.c:1166:_post_missing_plugin_message:<encodebin0> Couldn't create encoder with preset (NULL) and preset name (NULL) for format audio/mpeg, mpegversion=(int)4, base-profile=(string)lc, rate=(int){ 48000, 96000 }, channels=(int)2; audio/mpeg, mpegversion=(int)4, base-profile=(string)lc, rate=(int){ 48000, 96000 }

** (gst-transcoder:21202): CRITICAL **: 18:44:08.873: gst_missing_encoder_message_new: assertion 'gst_caps_is_fixed (encode_caps)' failed

Thread 10 "queue3:src" received signal SIGTRAP, Trace/breakpoint trap.

Thread 140736664131328 (LWP 21223)

  • #0 _g_log_abort
  • #1 g_logv
  • #2 g_log
  • #3 gst_missing_encoder_message_new
    at ../subprojects/gst-plugins-base/gst-libs/gst/pbutils/missing-plugins.c line 321
  • #4 _post_missing_plugin_message
    at ../subprojects/gst-plugins-base/gst/encoding/gstencodebin.c line 1169
  • #5 _missing_plugin_probe
    at ../subprojects/gst-plugins-base/gst/encoding/gstencodebin.c line 1183
  • #6 probe_hook_marshal
    at ../subprojects/gstreamer/gst/gstpad.c line 3557
  • #7 g_hook_list_marshal
  • #8 do_probe_callbacks
    at ../subprojects/gstreamer/gst/gstpad.c line 3719
  • #9 gst_pad_chain_data_unchecked
    at ../subprojects/gstreamer/gst/gstpad.c line 4298
  • #10 gst_pad_push_data
    at ../subprojects/gstreamer/gst/gstpad.c line 4574
  • #11 gst_pad_push
    at ../subprojects/gstreamer/gst/gstpad.c line 4693
  • #12 gst_base_transform_chain
    at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c line 2330
  • #13 gst_pad_chain_data_unchecked
    at ../subprojects/gstreamer/gst/gstpad.c line 4318
  • #14 gst_pad_push_data
    at ../subprojects/gstreamer/gst/gstpad.c line 4574
  • #15 gst_pad_push
    at ../subprojects/gstreamer/gst/gstpad.c line 4693
  • #16 gst_base_transform_chain
    at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c line 2330
  • #17 gst_pad_chain_data_unchecked
    at ../subprojects/gstreamer/gst/gstpad.c line 4318
  • #18 gst_pad_push_data
    at ../subprojects/gstreamer/gst/gstpad.c line 4574
  • #19 gst_pad_push
    at ../subprojects/gstreamer/gst/gstpad.c line 4693
  • #20 gst_base_transform_chain
    at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c line 2330
  • #21 gst_pad_chain_data_unchecked
    at ../subprojects/gstreamer/gst/gstpad.c line 4318
  • #22 gst_pad_push_data
    at ../subprojects/gstreamer/gst/gstpad.c line 4574
  • #23 gst_pad_push
    at ../subprojects/gstreamer/gst/gstpad.c line 4693
  • #24 gst_base_transform_chain
    at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c line 2330
  • #25 gst_pad_chain_data_unchecked
    at ../subprojects/gstreamer/gst/gstpad.c line 4318
  • #26 gst_pad_push_data
    at ../subprojects/gstreamer/gst/gstpad.c line 4574
  • #27 gst_pad_push
    at ../subprojects/gstreamer/gst/gstpad.c line 4693
  • #28 gst_audio_rate_chain
    at ../subprojects/gst-plugins-base/gst/audiorate/gstaudiorate.c line 680
  • #29 gst_pad_chain_data_unchecked
    at ../subprojects/gstreamer/gst/gstpad.c line 4318
  • #30 gst_pad_push_data
    at ../subprojects/gstreamer/gst/gstpad.c line 4574
  • #31 gst_pad_push
    at ../subprojects/gstreamer/gst/gstpad.c line 4693
  • #32 gst_stream_splitter_chain
    at ../subprojects/gst-plugins-base/gst/encoding/gststreamsplitter.c line 140
  • #33 gst_pad_chain_data_unchecked
    at ../subprojects/gstreamer/gst/gstpad.c line 4318
  • #34 gst_pad_push_data
    at ../subprojects/gstreamer/gst/gstpad.c line 4574
  • #35 gst_pad_push
    at ../subprojects/gstreamer/gst/gstpad.c line 4693
  • #36 gst_queue_push_one
    at ../subprojects/gstreamer/plugins/elements/gstqueue.c line 1384
  • #37 gst_queue_loop
    at ../subprojects/gstreamer/plugins/elements/gstqueue.c line 1537
  • #38 gst_task_func
    at ../subprojects/gstreamer/gst/gsttask.c line 328
  • #39 g_thread_pool_thread_proxy
  • #40 g_thread_proxy
  • #41 start_thread
  • #42 clone

Comment 1 Guillaume Desmottes 2018-09-10 16:52:35 UTC
Thibault: may be a gst-transcoder bug but looks like from pbutils from the trace.
Comment 2 Sebastian Dröge (slomo) 2018-09-10 19:13:30 UTC
encoding should make sure that only fixed caps are passed to that function.
Comment 3 Sebastian Dröge (slomo) 2018-09-10 19:13:43 UTC
encodebin, not encoding
Comment 4 Thibault Saunier 2018-09-11 15:13:19 UTC
Could you show us the caps?

I have the impression encodebin post 1 message per structure inside those caps if we allow several formats in the Profile (which is valid), but I would need to see how the caps look like first.
Comment 5 Guillaume Desmottes 2018-09-11 15:37:55 UTC
See the ERROR right before assertion, it contains the caps: audio/mpeg, mpegversion=(int)4, base-profile=(string)lc, rate=(int){ 48000, 96000 }, channels=(int)2; audio/mpeg, mpegversion=(int)4, base-profile=(string)lc, rate=(int){ 48000, 96000 }
Comment 6 Thibault Saunier 2018-09-11 17:25:46 UTC
Oops, read to fast :-)

OK, so yes, I think we should do something like that and maybe plainly fixate?
Comment 7 Sebastian Dröge (slomo) 2018-09-11 21:31:20 UTC
Somewhere in pbutils there's a function that removes irrelevant fields from caps, like these. Or even two functions :)
Comment 8 Thibault Saunier 2018-09-11 21:58:41 UTC
Cool, didn't know (still haven't found them :-) but then   `gst_missing_encoder_message_new` and friends should *most probably* use it directly (and in encodebin we would still need to iterate the structs as we can have several formats)
Comment 9 Sebastian Dröge (slomo) 2018-09-12 07:17:40 UTC
copy_and_clean_caps() in missing-plugins.c (and add_stream_to_profile() in encoding-profile.c but that one is less complete)
Comment 10 GStreamer system administrator 2018-11-03 12:10:21 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/487.