x264enc: Update available me types

Use the x264_motion_est_names[] array to populate the enum of ME types. This is
now self-maintaining.
This commit is contained in:
Robert Swain 2010-07-21 16:32:11 +02:00
parent d6f766d10f
commit ac6b656ed3

View file

@ -204,17 +204,26 @@ static GType
gst_x264_enc_me_get_type (void) gst_x264_enc_me_get_type (void)
{ {
static GType me_type = 0; static GType me_type = 0;
static const GEnumValue me_types[] = { static GEnumValue *me_types;
{X264_ME_DIA, "diamond search, radius 1 (fast)", "dia"}, int n, i;
{X264_ME_HEX, "hexagonal search, radius 2", "hex"},
{X264_ME_UMH, "uneven multi-hexagon search", "umh"},
{X264_ME_ESA, "exhaustive search (slow)", "esa"},
{0, NULL, NULL}
};
if (!me_type) { if (me_type != 0)
me_type = g_enum_register_static ("GstX264EncMe", me_types); return me_type;
n = 0;
while (x264_motion_est_names[n] != NULL)
n++;
me_types = g_new0 (GEnumValue, n + 1);
for (i = 0; i < n; i++) {
me_types[i].value = i;
me_types[i].value_name = x264_motion_est_names[i];
me_types[i].value_nick = x264_motion_est_names[i];
} }
me_type = g_enum_register_static ("GstX264EncMe", me_types);
return me_type; return me_type;
} }