[gstreamer-bugs] [Bug 607798] x264enc needs updating to support new features

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Sat Feb 20 01:25:17 PST 2010


https://bugzilla.gnome.org/show_bug.cgi?id=607798
  GStreamer | gst-plugins-ugly | git

--- Comment #14 from Jason Garrett-Glaser <darkshikari at gmail.com> 2010-02-20 03:08:21 UTC ---
I've written a patch locally to move all the preset logic into x264.h.

Here's the documentation in x264.h; is this sufficient and reasonable?

/****************************************************************************
 * Advanced parameter handling functions
 ****************************************************************************/

/* These functions expose the full power of x264's preset-tune-profile system
for
 * easy adjustment of large numbers of internal parameters.
 *
 * In order to replicate x264CLI's option handling, these functions MUST be
called
 * in the following order:
 * 1) x264_param_default_preset
 * 2) Custom user options (via param_parse or directly assigned variables)
 * 3) x264_param_apply_fastfirstpass
 * 4) x264_param_apply_profile */

/* x264_param_default_preset:
 *      The same as x264_param_default, but also use the passed preset and tune
 *      to modify the default settings.
 *      (either can be NULL, which implies no preset or no tune, respectively)
 *
 *      Currently available presets are:
 *      ultrafast, veryfast, faster, fast, medium, slow, slower, veryslow,
placebo
 *
 *      Warning: the speed of these presets scales dramatically.  Ultrafast is
a full
 *      100 times faster than placebo!
 *
 *      Currently available tunings are:
 *      film, animation, grain, psnr, ssim, fastdecode, zerolatency
 *
 *      Multiple tunings can be used if separated by a delimiter in ",./-+",
 *      however multiple psy tunings cannot be used.
 *      film, animation, grain, psnr, and ssim are psy tunings.
 *
 *      returns 0 on success, negative on failure (e.g. invalid preset/tune
name). */
int     x264_param_default_preset( x264_param_t *, const char *preset, const
char *tune );

/* x264_param_apply_fastfirstpass:
 *      If first-pass mode is set (rc.b_stat_read == 1, rc.b_stat_write == 0),
 *      modify the encoder settings to disable options generally not useful on
 *      the first pass. */
void    x264_param_apply_fastfirstpass( x264_param_t * );

/* x264_param_apply_profile:
 *      Applies the restrictions of the given profile.
 *      Currently available profiles are: high, main, baseline
 *      (can be NULL, in which case the function will do nothing)
 *
 *      Does NOT guarantee that the given profile will be used: if the
restrictions
 *      of "High" are applied to settings that are already Baseline-compatible,
the
 *      stream will remain baseline.  In short, it does not increase settings,
only
 *      decrease them.
 *
 *      returns 0 on success, negative on failure (e.g. invalid profile name).
*/
int     x264_param_apply_profile( x264_param_t *, const char *profile );

-- 
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.




More information about the Gstreamer-bugs mailing list