mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-01-11 18:05:37 +00:00
gst/videotestsrc/gstvideotestsrc.c: generate the list of supported caps at startup and reuse it instead of always gen...
Original commit message from CVS: * gst/videotestsrc/gstvideotestsrc.c: (gst_videotestsrc_get_capslist), (generate_capslist), (plugin_init): generate the list of supported caps at startup and reuse it instead of always generating it
This commit is contained in:
parent
c00fdabf0a
commit
242409ad1d
2 changed files with 34 additions and 14 deletions
|
@ -1,3 +1,11 @@
|
||||||
|
2004-08-04 Benjamin Otte <otte@gnome.org>
|
||||||
|
|
||||||
|
* gst/videotestsrc/gstvideotestsrc.c:
|
||||||
|
(gst_videotestsrc_get_capslist), (generate_capslist),
|
||||||
|
(plugin_init):
|
||||||
|
generate the list of supported caps at startup and reuse it instead
|
||||||
|
of always generating it
|
||||||
|
|
||||||
2004-07-30 Benjamin Otte <in7y118@public.uni-hamburg.de>
|
2004-07-30 Benjamin Otte <in7y118@public.uni-hamburg.de>
|
||||||
|
|
||||||
* gst/multipart/multipartmux.c: (gst_multipart_mux_pad_link):
|
* gst/multipart/multipartmux.c: (gst_multipart_mux_pad_link):
|
||||||
|
|
|
@ -55,6 +55,8 @@ enum
|
||||||
/* FILL ME */
|
/* FILL ME */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static GstCaps *capslist = NULL;
|
||||||
|
|
||||||
static void gst_videotestsrc_base_init (gpointer g_class);
|
static void gst_videotestsrc_base_init (gpointer g_class);
|
||||||
static void gst_videotestsrc_class_init (GstVideotestsrcClass * klass);
|
static void gst_videotestsrc_class_init (GstVideotestsrcClass * klass);
|
||||||
static void gst_videotestsrc_init (GstVideotestsrc * videotestsrc);
|
static void gst_videotestsrc_init (GstVideotestsrc * videotestsrc);
|
||||||
|
@ -294,22 +296,30 @@ gst_videotestsrc_change_state (GstElement * element)
|
||||||
static GstCaps *
|
static GstCaps *
|
||||||
gst_videotestsrc_get_capslist (void)
|
gst_videotestsrc_get_capslist (void)
|
||||||
{
|
{
|
||||||
GstCaps *caps;
|
return gst_caps_copy (capslist);
|
||||||
GstStructure *structure;
|
}
|
||||||
int i;
|
|
||||||
|
|
||||||
caps = gst_caps_new_empty ();
|
static void
|
||||||
for (i = 0; i < n_fourccs; i++) {
|
generate_capslist (void)
|
||||||
structure = paint_get_structure (fourcc_list + i);
|
{
|
||||||
gst_structure_set (structure,
|
if (!capslist) {
|
||||||
"width", GST_TYPE_INT_RANGE, 1, G_MAXINT,
|
GstCaps *caps;
|
||||||
"height", GST_TYPE_INT_RANGE, 1, G_MAXINT,
|
GstStructure *structure;
|
||||||
"pixel-aspect-ratio", GST_TYPE_FRACTION, 1, 1,
|
int i;
|
||||||
"framerate", GST_TYPE_DOUBLE_RANGE, 0.0, G_MAXDOUBLE, NULL);
|
|
||||||
gst_caps_append_structure (caps, structure);
|
caps = gst_caps_new_empty ();
|
||||||
|
for (i = 0; i < n_fourccs; i++) {
|
||||||
|
structure = paint_get_structure (fourcc_list + i);
|
||||||
|
gst_structure_set (structure,
|
||||||
|
"width", GST_TYPE_INT_RANGE, 1, G_MAXINT,
|
||||||
|
"height", GST_TYPE_INT_RANGE, 1, G_MAXINT,
|
||||||
|
"pixel-aspect-ratio", GST_TYPE_FRACTION, 1, 1,
|
||||||
|
"framerate", GST_TYPE_DOUBLE_RANGE, 0.0, G_MAXDOUBLE, NULL);
|
||||||
|
gst_caps_append_structure (caps, structure);
|
||||||
|
}
|
||||||
|
|
||||||
|
capslist = caps;
|
||||||
}
|
}
|
||||||
|
|
||||||
return caps;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
|
@ -664,6 +674,8 @@ plugin_init (GstPlugin * plugin)
|
||||||
oil_init ();
|
oil_init ();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
generate_capslist ();
|
||||||
|
|
||||||
return gst_element_register (plugin, "videotestsrc", GST_RANK_NONE,
|
return gst_element_register (plugin, "videotestsrc", GST_RANK_NONE,
|
||||||
GST_TYPE_VIDEOTESTSRC);
|
GST_TYPE_VIDEOTESTSRC);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue