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 626577 - [x264enc] regression: doesn't work with older versions of x264
[x264enc] regression: doesn't work with older versions of x264
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-ugly
git master
Other Linux
: Normal blocker
: 0.10.16
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2010-08-10 22:59 UTC by Jan Schmidt
Modified: 2010-08-11 15:56 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Pass appropriate arguments to b-pyramid with X264_BUILD >= 78 (2.28 KB, patch)
2010-08-11 07:31 UTC, Robert Swain
committed Details | Review

Description Jan Schmidt 2010-08-10 22:59:22 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.
Comment 1 Robert Swain 2010-08-11 06:55:50 UTC
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.
Comment 2 Robert Swain 2010-08-11 07:31:46 UTC
Created attachment 167558 [details] [review]
Pass appropriate arguments to b-pyramid with X264_BUILD >= 78
Comment 3 Tim-Philipp Müller 2010-08-11 15:53:53 UTC
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