1 /* GStreamer Editing Services
2 * Copyright (C) 2010 Brandon Lewis <brandon.lewis@collabora.co.uk>
3 * 2010 Nokia Corporation
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Library General Public
7 * License as published by the Free Software Foundation; either
8 * version 2 of the License, or (at your option) any later version.
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Library General Public License for more details.
15 * You should have received a copy of the GNU Library General Public
16 * License along with this library; if not, write to the
17 * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
18 * Boston, MA 02110-1301, USA.
23 * @title: GES Enumerations
24 * @short_description: Various enums for the Gstreamer Editing Services
30 #include "ges-enums.h"
31 #include "ges-internal.h"
32 #include "ges-asset.h"
33 #include "ges-meta-container.h"
34 #include "ges-transition-clip.h"
36 #define C_ENUM(v) ((guint) v)
38 static const GFlagsValue track_types_values[] = {
39 {C_ENUM (GES_TRACK_TYPE_UNKNOWN), "GES_TRACK_TYPE_UNKNOWN", "unknown"},
40 {C_ENUM (GES_TRACK_TYPE_AUDIO), "GES_TRACK_TYPE_AUDIO", "audio"},
41 {C_ENUM (GES_TRACK_TYPE_VIDEO), "GES_TRACK_TYPE_VIDEO", "video"},
42 {C_ENUM (GES_TRACK_TYPE_TEXT), "GES_TRACK_TYPE_TEXT", "text"},
43 {C_ENUM (GES_TRACK_TYPE_CUSTOM), "GES_TRACK_TYPE_CUSTOM", "custom"},
48 register_ges_track_type_select_result (GType * id)
50 *id = g_flags_register_static ("GESTrackType", track_types_values);
54 ges_track_type_name (GESTrackType type)
58 for (i = 0; i < G_N_ELEMENTS (track_types_values); i++) {
59 if (type == track_types_values[i].value)
60 return track_types_values[i].value_nick;
63 return "Unknown (mixed?) ";
67 ges_track_type_get_type (void)
70 static GOnce once = G_ONCE_INIT;
72 g_once (&once, (GThreadFunc) register_ges_track_type_select_result, &id);
77 register_ges_pipeline_flags (GType * id)
79 static const GFlagsValue values[] = {
80 {C_ENUM (GES_PIPELINE_MODE_PREVIEW_AUDIO),
81 "GES_PIPELINE_MODE_PREVIEW_AUDIO",
83 {C_ENUM (GES_PIPELINE_MODE_PREVIEW_VIDEO),
84 "GES_PIPELINE_MODE_PREVIEW_VIDEO",
86 {C_ENUM (GES_PIPELINE_MODE_PREVIEW), "GES_PIPELINE_MODE_PREVIEW",
88 {C_ENUM (GES_PIPELINE_MODE_RENDER), "GES_PIPELINE_MODE_RENDER", "render"},
89 {C_ENUM (GES_PIPELINE_MODE_SMART_RENDER), "GES_PIPELINE_MODE_SMART_RENDER",
94 *id = g_flags_register_static ("GESPipelineFlags", values);
98 ges_pipeline_flags_get_type (void)
101 static GOnce once = G_ONCE_INIT;
103 g_once (&once, (GThreadFunc) register_ges_pipeline_flags, &id);
108 register_ges_edit_mode (GType * id)
110 static const GEnumValue edit_mode[] = {
111 {C_ENUM (GES_EDIT_MODE_NORMAL), "GES_EDIT_MODE_NORMAL",
114 {C_ENUM (GES_EDIT_MODE_NORMAL), "GES_EDIT_MODE_NORMAL",
117 {C_ENUM (GES_EDIT_MODE_RIPPLE), "GES_EDIT_MODE_RIPPLE",
120 {C_ENUM (GES_EDIT_MODE_RIPPLE), "GES_EDIT_MODE_RIPPLE",
123 {C_ENUM (GES_EDIT_MODE_ROLL), "GES_EDIT_MODE_ROLL",
126 {C_ENUM (GES_EDIT_MODE_ROLL), "GES_EDIT_MODE_ROLL",
129 {C_ENUM (GES_EDIT_MODE_TRIM), "GES_EDIT_MODE_TRIM",
132 {C_ENUM (GES_EDIT_MODE_TRIM), "GES_EDIT_MODE_TRIM",
135 {C_ENUM (GES_EDIT_MODE_SLIDE), "GES_EDIT_MODE_SLIDE",
138 {C_ENUM (GES_EDIT_MODE_SLIDE), "GES_EDIT_MODE_SLIDE",
144 *id = g_enum_register_static ("GESEditMode", edit_mode);
148 ges_edit_mode_name (GESEditMode mode)
151 case GES_EDIT_MODE_NORMAL:
153 case GES_EDIT_MODE_RIPPLE:
155 case GES_EDIT_MODE_ROLL:
157 case GES_EDIT_MODE_TRIM:
159 case GES_EDIT_MODE_SLIDE:
167 ges_edit_mode_get_type (void)
170 static GOnce once = G_ONCE_INIT;
172 g_once (&once, (GThreadFunc) register_ges_edit_mode, &id);
177 register_ges_edge (GType * id)
179 static const GEnumValue edges[] = {
180 {C_ENUM (GES_EDGE_START), "GES_EDGE_START", "edge_start"},
181 {C_ENUM (GES_EDGE_START), "GES_EDGE_START", "start"},
182 {C_ENUM (GES_EDGE_END), "GES_EDGE_END", "edge_end"},
183 {C_ENUM (GES_EDGE_END), "GES_EDGE_END", "end"},
184 {C_ENUM (GES_EDGE_NONE), "GES_EDGE_NONE", "edge_none"},
185 {C_ENUM (GES_EDGE_NONE), "GES_EDGE_NONE", "none"},
189 *id = g_enum_register_static ("GESEdge", edges);
194 * @edge: The #GESEdge to get the name of
196 * Returns: A human friendly name for @edge
201 ges_edge_name (GESEdge edge)
214 ges_edge_get_type (void)
217 static GOnce once = G_ONCE_INIT;
219 g_once (&once, (GThreadFunc) register_ges_edge, &id);
223 static GEnumValue transition_types[] = {
224 {GES_VIDEO_STANDARD_TRANSITION_TYPE_NONE,
225 "GES_VIDEO_STANDARD_TRANSITION_TYPE_NONE",
227 {GES_VIDEO_STANDARD_TRANSITION_TYPE_BAR_WIPE_LR,
228 "GES_VIDEO_STANDARD_TRANSITION_TYPE_BAR_WIPE_LR",
230 {GES_VIDEO_STANDARD_TRANSITION_TYPE_BAR_WIPE_TB,
231 "GES_VIDEO_STANDARD_TRANSITION_TYPE_BAR_WIPE_TB",
233 {GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_TL,
234 "GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_TL",
236 {GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_TR,
237 "GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_TR",
239 {GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_BR,
240 "GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_BR",
242 {GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_BL,
243 "GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_BL",
245 {GES_VIDEO_STANDARD_TRANSITION_TYPE_FOUR_BOX_WIPE_CI,
246 "GES_VIDEO_STANDARD_TRANSITION_TYPE_FOUR_BOX_WIPE_CI",
248 {GES_VIDEO_STANDARD_TRANSITION_TYPE_FOUR_BOX_WIPE_CO,
249 "GES_VIDEO_STANDARD_TRANSITION_TYPE_FOUR_BOX_WIPE_CO",
251 {GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNDOOR_V,
252 "GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNDOOR_V",
254 {GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNDOOR_H,
255 "GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNDOOR_H",
257 {GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_TC,
258 "GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_TC",
260 {GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_RC,
261 "GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_RC",
263 {GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_BC,
264 "GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_BC",
266 {GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_LC,
267 "GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_LC",
269 {GES_VIDEO_STANDARD_TRANSITION_TYPE_DIAGONAL_TL,
270 "GES_VIDEO_STANDARD_TRANSITION_TYPE_DIAGONAL_TL",
272 {GES_VIDEO_STANDARD_TRANSITION_TYPE_DIAGONAL_TR,
273 "GES_VIDEO_STANDARD_TRANSITION_TYPE_DIAGONAL_TR",
275 {GES_VIDEO_STANDARD_TRANSITION_TYPE_BOWTIE_V,
276 "GES_VIDEO_STANDARD_TRANSITION_TYPE_BOWTIE_V",
278 {GES_VIDEO_STANDARD_TRANSITION_TYPE_BOWTIE_H,
279 "GES_VIDEO_STANDARD_TRANSITION_TYPE_BOWTIE_H",
281 {GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNDOOR_DBL,
282 "GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNDOOR_DBL",
284 {GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNDOOR_DTL,
285 "GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNDOOR_DTL",
287 {GES_VIDEO_STANDARD_TRANSITION_TYPE_MISC_DIAGONAL_DBD,
288 "GES_VIDEO_STANDARD_TRANSITION_TYPE_MISC_DIAGONAL_DBD",
289 "misc-diagonal-dbd"},
290 {GES_VIDEO_STANDARD_TRANSITION_TYPE_MISC_DIAGONAL_DD,
291 "GES_VIDEO_STANDARD_TRANSITION_TYPE_MISC_DIAGONAL_DD",
293 {GES_VIDEO_STANDARD_TRANSITION_TYPE_VEE_D,
294 "GES_VIDEO_STANDARD_TRANSITION_TYPE_VEE_D",
296 {GES_VIDEO_STANDARD_TRANSITION_TYPE_VEE_L,
297 "GES_VIDEO_STANDARD_TRANSITION_TYPE_VEE_L",
299 {GES_VIDEO_STANDARD_TRANSITION_TYPE_VEE_U,
300 "GES_VIDEO_STANDARD_TRANSITION_TYPE_VEE_U",
302 {GES_VIDEO_STANDARD_TRANSITION_TYPE_VEE_R,
303 "GES_VIDEO_STANDARD_TRANSITION_TYPE_VEE_R",
305 {GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNVEE_D,
306 "GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNVEE_D",
308 {GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNVEE_L,
309 "GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNVEE_L",
311 {GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNVEE_U,
312 "GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNVEE_U",
314 {GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNVEE_R,
315 "GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNVEE_R",
317 {GES_VIDEO_STANDARD_TRANSITION_TYPE_IRIS_RECT,
318 "GES_VIDEO_STANDARD_TRANSITION_TYPE_IRIS_RECT",
320 {GES_VIDEO_STANDARD_TRANSITION_TYPE_CLOCK_CW12,
321 "GES_VIDEO_STANDARD_TRANSITION_TYPE_CLOCK_CW12",
323 {GES_VIDEO_STANDARD_TRANSITION_TYPE_CLOCK_CW3,
324 "GES_VIDEO_STANDARD_TRANSITION_TYPE_CLOCK_CW3",
326 {GES_VIDEO_STANDARD_TRANSITION_TYPE_CLOCK_CW6,
327 "GES_VIDEO_STANDARD_TRANSITION_TYPE_CLOCK_CW6",
329 {GES_VIDEO_STANDARD_TRANSITION_TYPE_CLOCK_CW9,
330 "GES_VIDEO_STANDARD_TRANSITION_TYPE_CLOCK_CW9",
332 {GES_VIDEO_STANDARD_TRANSITION_TYPE_PINWHEEL_TBV,
333 "GES_VIDEO_STANDARD_TRANSITION_TYPE_PINWHEEL_TBV",
335 {GES_VIDEO_STANDARD_TRANSITION_TYPE_PINWHEEL_TBH,
336 "GES_VIDEO_STANDARD_TRANSITION_TYPE_PINWHEEL_TBH",
338 {GES_VIDEO_STANDARD_TRANSITION_TYPE_PINWHEEL_FB,
339 "GES_VIDEO_STANDARD_TRANSITION_TYPE_PINWHEEL_FB",
341 {GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_CT,
342 "GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_CT",
344 {GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_CR,
345 "GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_CR",
347 {GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLEFAN_FOV,
348 "GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLEFAN_FOV",
350 {GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLEFAN_FOH,
351 "GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLEFAN_FOH",
353 {GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWT,
354 "GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWT",
356 {GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWR,
357 "GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWR",
359 {GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWB,
360 "GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWB",
362 {GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWL,
363 "GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWL",
365 {GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_PV,
366 "GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_PV",
368 {GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_PD,
369 "GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_PD",
371 {GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_OV,
372 "GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_OV",
374 {GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_OH,
375 "GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_OH",
377 {GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_T,
378 "GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_T",
380 {GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_R,
381 "GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_R",
383 {GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_B,
384 "GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_B",
386 {GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_L,
387 "GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_L",
389 {GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLEFAN_FIV,
390 "GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLEFAN_FIV",
392 {GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLEFAN_FIH,
393 "GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLEFAN_FIH",
395 {GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWTL,
396 "GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWTL",
398 {GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWBL,
399 "GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWBL",
401 {GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWBR,
402 "GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWBR",
404 {GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWTR,
405 "GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWTR",
407 {GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_PDTL,
408 "GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_PDTL",
410 {GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_PDBL,
411 "GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_PDBL",
413 {GES_VIDEO_STANDARD_TRANSITION_TYPE_SALOONDOOR_T,
414 "GES_VIDEO_STANDARD_TRANSITION_TYPE_SALOONDOOR_T",
416 {GES_VIDEO_STANDARD_TRANSITION_TYPE_SALOONDOOR_L,
417 "GES_VIDEO_STANDARD_TRANSITION_TYPE_SALOONDOOR_L",
419 {GES_VIDEO_STANDARD_TRANSITION_TYPE_SALOONDOOR_B,
420 "GES_VIDEO_STANDARD_TRANSITION_TYPE_SALOONDOOR_B",
422 {GES_VIDEO_STANDARD_TRANSITION_TYPE_SALOONDOOR_R,
423 "GES_VIDEO_STANDARD_TRANSITION_TYPE_SALOONDOOR_R",
425 {GES_VIDEO_STANDARD_TRANSITION_TYPE_WINDSHIELD_R,
426 "GES_VIDEO_STANDARD_TRANSITION_TYPE_WINDSHIELD_R",
428 {GES_VIDEO_STANDARD_TRANSITION_TYPE_WINDSHIELD_U,
429 "GES_VIDEO_STANDARD_TRANSITION_TYPE_WINDSHIELD_U",
431 {GES_VIDEO_STANDARD_TRANSITION_TYPE_WINDSHIELD_V,
432 "GES_VIDEO_STANDARD_TRANSITION_TYPE_WINDSHIELD_V",
434 {GES_VIDEO_STANDARD_TRANSITION_TYPE_WINDSHIELD_H,
435 "GES_VIDEO_STANDARD_TRANSITION_TYPE_WINDSHIELD_H",
437 {GES_VIDEO_STANDARD_TRANSITION_TYPE_CROSSFADE,
438 "GES_VIDEO_STANDARD_TRANSITION_TYPE_CROSSFADE",
444 _init_standard_transition_assets (void)
448 for (i = 1; i < G_N_ELEMENTS (transition_types) - 1; i++) {
449 GESAsset *asset = ges_asset_request (GES_TYPE_TRANSITION_CLIP,
450 transition_types[i].value_nick, NULL);
452 ges_meta_container_register_meta_string (GES_META_CONTAINER (asset),
453 GES_META_READABLE, GES_META_DESCRIPTION,
454 transition_types[i].value_name);
456 gst_object_unref (asset);
462 ges_video_standard_transition_type_get_type (void)
464 static GType the_type = 0;
465 static gsize once = 0;
467 if (g_once_init_enter (&once)) {
470 the_type = g_enum_register_static ("GESVideoStandardTransitionType",
472 g_once_init_leave (&once, 1);
479 ges_text_valign_get_type (void)
481 static GType text_overlay_valign_type = 0;
482 static gsize initialized = 0;
483 static const GEnumValue text_overlay_valign[] = {
484 {GES_TEXT_VALIGN_BASELINE, "GES_TEXT_VALIGN_BASELINE", "baseline"},
485 {GES_TEXT_VALIGN_BOTTOM, "GES_TEXT_VALIGN_BOTTOM", "bottom"},
486 {GES_TEXT_VALIGN_TOP, "GES_TEXT_VALIGN_TOP", "top"},
487 {GES_TEXT_VALIGN_POSITION, "GES_TEXT_VALIGN_POSITION", "position"},
488 {GES_TEXT_VALIGN_CENTER, "GES_TEXT_VALIGN_CENTER", "center"},
489 {GES_TEXT_VALIGN_ABSOLUTE, "GES_TEXT_VALIGN_ABSOLUTE", "absolute"},
493 if (g_once_init_enter (&initialized)) {
494 text_overlay_valign_type =
495 g_enum_register_static ("GESTextVAlign", text_overlay_valign);
496 g_once_init_leave (&initialized, 1);
498 return text_overlay_valign_type;
502 ges_text_halign_get_type (void)
504 static GType text_overlay_halign_type = 0;
505 static gsize initialized = 0;
506 static const GEnumValue text_overlay_halign[] = {
507 {GES_TEXT_HALIGN_LEFT, "GES_TEXT_HALIGN_LEFT", "left"},
508 {GES_TEXT_HALIGN_CENTER, "GES_TEXT_HALIGN_CENTER", "center"},
509 {GES_TEXT_HALIGN_RIGHT, "GES_TEXT_HALIGN_RIGHT", "right"},
510 {GES_TEXT_HALIGN_POSITION, "GES_TEXT_HALIGN_POSITION", "position"},
511 {GES_TEXT_HALIGN_ABSOLUTE, "GES_TEXT_HALIGN_ABSOLUTE", "absolute"},
515 if (g_once_init_enter (&initialized)) {
516 text_overlay_halign_type =
517 g_enum_register_static ("GESTextHAlign", text_overlay_halign);
518 g_once_init_leave (&initialized, 1);
520 return text_overlay_halign_type;
523 /* table more-or-less copied from gstvideotestsrc.c */
524 static GEnumValue vpattern_enum_values[] = {
525 {GES_VIDEO_TEST_PATTERN_SMPTE, "GES_VIDEO_TEST_PATTERN_SMPTE", "smpte"}
527 {GES_VIDEO_TEST_PATTERN_SNOW, "GES_VIDEO_TEST_PATTERN_SNOW", "snow"}
529 {GES_VIDEO_TEST_PATTERN_BLACK, "GES_VIDEO_TEST_PATTERN_BLACK", "black"}
531 {GES_VIDEO_TEST_PATTERN_WHITE, "GES_VIDEO_TEST_PATTERN_WHITE", "white"}
533 {GES_VIDEO_TEST_PATTERN_RED, "GES_VIDEO_TEST_PATTERN_RED", "red"}
535 {GES_VIDEO_TEST_PATTERN_GREEN, "GES_VIDEO_TEST_PATTERN_GREEN", "green"}
537 {GES_VIDEO_TEST_PATTERN_BLUE, "GES_VIDEO_TEST_PATTERN_BLUE", "blue"}
539 {GES_VIDEO_TEST_PATTERN_CHECKERS1,
540 "GES_VIDEO_TEST_PATTERN_CHECKERS1", "checkers-1"}
542 {GES_VIDEO_TEST_PATTERN_CHECKERS2,
543 "GES_VIDEO_TEST_PATTERN_CHECKERS2", "checkers-2"}
545 {GES_VIDEO_TEST_PATTERN_CHECKERS4,
546 "GES_VIDEO_TEST_PATTERN_CHECKERS4", "checkers-4"}
548 {GES_VIDEO_TEST_PATTERN_CHECKERS8,
549 "GES_VIDEO_TEST_PATTERN_CHECKERS8", "checkers-8"}
551 {GES_VIDEO_TEST_PATTERN_CIRCULAR,
552 "GES_VIDEO_TEST_PATTERN_CIRCULAR", "circular"}
554 {GES_VIDEO_TEST_PATTERN_BLINK, "GES_VIDEO_TEST_PATTERN_BLINK", "blink"}
556 {GES_VIDEO_TEST_PATTERN_SMPTE75, "GES_VIDEO_TEST_PATTERN_SMPTE75", "smpte75"}
558 {GES_VIDEO_TEST_ZONE_PLATE, "GES_VIDEO_TEST_ZONE_PLATE", "zone-plate"}
560 {GES_VIDEO_TEST_GAMUT, "GES_VIDEO_TEST_GAMUT", "gamut"}
562 {GES_VIDEO_TEST_CHROMA_ZONE_PLATE, "GES_VIDEO_TEST_CHROMA_ZONE_PLATE",
565 {GES_VIDEO_TEST_PATTERN_SOLID, "GES_VIDEO_TEST_PATTERN_SOLID", "solid-color"}
571 ges_video_test_pattern_get_type (void)
574 static gsize once = 0;
575 static GType theType = 0;
577 if (g_once_init_enter (&once)) {
578 theType = g_enum_register_static ("GESVideoTestPattern",
579 vpattern_enum_values);
580 g_once_init_leave (&once, 1);
587 register_ges_meta_flag (GType * id)
589 static const GFlagsValue values[] = {
590 {C_ENUM (GES_META_READABLE), "GES_META_READABLE", "readable"},
591 {C_ENUM (GES_META_WRITABLE), "GES_META_WRITABLE", "writable"},
592 {C_ENUM (GES_META_READ_WRITE), "GES_META_READ_WRITE", "readwrite"},
596 *id = g_flags_register_static ("GESMetaFlag", values);
600 ges_meta_flag_get_type (void)
603 static GOnce once = G_ONCE_INIT;
605 g_once (&once, (GThreadFunc) register_ges_meta_flag, &id);