GNOME Bugzilla – Bug 797113
pbutils: _post_missing_plugin_message raise gst_caps_is_fixed assertion
Last modified: 2018-11-03 12:10:21 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.
+ Trace 238687
Thread 140736664131328 (LWP 21223)
Thibault: may be a gst-transcoder bug but looks like from pbutils from the trace.
encoding should make sure that only fixed caps are passed to that function.
encodebin, not encoding
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.
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 }
Oops, read to fast :-) OK, so yes, I think we should do something like that and maybe plainly fixate?
Somewhere in pbutils there's a function that removes irrelevant fields from caps, like these. Or even two functions :)
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)
copy_and_clean_caps() in missing-plugins.c (and add_stream_to_profile() in encoding-profile.c but that one is less complete)
-- 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.