GNOME Bugzilla – Bug 626577
[x264enc] regression: doesn't work with older versions of x264
Last modified: 2010-08-11 15:56:49 UTC
Trying to run a simple pipeline with x264enc fails for me: gst-launch videotestsrc ! x264enc ! fakesink Setting pipeline to PAUSED ... Pipeline is PREROLLING ... 0:00:00.188806784 25600 0x98f3060 ERROR x264enc gstx264enc.c:949:gst_x264_enc_parse_options:<x264enc0> Bad value for option b-pyramid=0 (Note: a NULL value for a non-boolean triggers this) ERROR: from element /GstPipeline:pipeline0/GstVideoTestSrc:videotestsrc0: Internal data flow error. Additional debug info: gstbasesrc.c(2553): gst_base_src_loop (): /GstPipeline:pipeline0/GstVideoTestSrc:videotestsrc0: streaming task paused, reason not-negotiated (-4) ERROR: pipeline doesn't want to preroll. Setting pipeline to NULL ... Freeing pipeline ... I have x264 2:0.85.1448+git1a6d32-4 from ubuntu universe. It's been suggested that the version of x264 may be too old to work with recent x264enc changes, in which case the minimum acceptable x264 version should be bumped. It's currently build 55.
The problem is as the error message states, we're passing '0' as the value for a non-boolean. This one must have slipped through the net when I was working on x264enc previously. If necessary in the meantime, people can work around it by setting the following property: option-string=b-pyramid=none I will submit a patch (or two) here shortly to fix this.
Created attachment 167558 [details] [review] Pass appropriate arguments to b-pyramid with X264_BUILD >= 78
Pushed, thanks! commit f45ff93586daef0a39105f8046b8c107623cebd9 Author: Robert Swain <robert.swain@collabora.co.uk> Date: Wed Aug 11 09:21:43 2010 +0200 x264enc: Fix b-pyramid libx264 API boolean arg for non-boolean issue In X264_BUILD >= 78, b-pyramid became a non-boolean so passing a boolean argument to the option string value causes an error. For < 78 we pass the boolean value, for >= 78 we use the x264_b_pyramid_names[] array which will result in passing 'none' for false and 'strict' for true. Other modes can be set through the option-string property for now. https://bugzilla.gnome.org/show_bug.cgi?id=626577