static void
gst_bz2enc_init (GstBz2enc * b)
{
+ GstCaps *tmp = NULL;
b->sink = gst_pad_new_from_static_template (&sink_template, "sink");
gst_pad_set_chain_function (b->sink, GST_DEBUG_FUNCPTR (gst_bz2enc_chain));
gst_pad_set_event_function (b->sink, GST_DEBUG_FUNCPTR (gst_bz2enc_event));
gst_element_add_pad (GST_ELEMENT (b), b->sink);
b->src = gst_pad_new_from_static_template (&src_template, "src");
- gst_pad_set_caps (b->src, gst_static_pad_template_get_caps (&src_template));
+ gst_pad_set_caps (b->src, tmp = gst_static_pad_template_get_caps (&src_template));
gst_pad_use_fixed_caps (b->src);
gst_element_add_pad (GST_ELEMENT (b), b->src);
+ gst_caps_unref(tmp);
b->block_size = DEFAULT_BLOCK_SIZE;
b->buffer_size = DEFAULT_BUFFER_SIZE;
gst_bz2enc_compress_init (b);
static void
gst_kate_dec_init (GstKateDec * dec)
{
+ GstCaps *tmp = NULL;
GST_DEBUG_OBJECT (dec, "gst_kate_dec_init");
dec->sinkpad = gst_pad_new_from_static_template (&sink_factory, "sink");
GST_DEBUG_FUNCPTR (gst_kate_dec_sink_event));
gst_pad_use_fixed_caps (dec->sinkpad);
gst_pad_set_caps (dec->sinkpad,
- gst_static_pad_template_get_caps (&sink_factory));
+ tmp = gst_static_pad_template_get_caps (&sink_factory));
gst_element_add_pad (GST_ELEMENT (dec), dec->sinkpad);
dec->srcpad = gst_pad_new_from_static_template (&src_factory, "src");
gst_kate_util_decode_base_init (&dec->decoder, TRUE);
+ gst_caps_unref(tmp);
dec->src_caps = NULL;
dec->output_format = GST_KATE_FORMAT_UNDEFINED;
dec->remove_markup = FALSE;
gst_pad_use_fixed_caps (musepackdec->srcpad);
if (!gst_pad_set_caps (musepackdec->srcpad, caps)) {
GST_ELEMENT_ERROR (musepackdec, CORE, NEGOTIATION, (NULL), (NULL));
+ gst_caps_unref (caps);
return FALSE;
}
+ gst_caps_unref (caps);
g_atomic_int_set (&musepackdec->bps, 4 * i.channels);
g_atomic_int_set (&musepackdec->rate, i.sample_freq);
caps = gst_static_pad_template_get_caps (template);
- if (gst_caps_is_any (caps) || gst_caps_is_empty (caps))
+ if (gst_caps_is_any (caps) || gst_caps_is_empty (caps)) {
+ gst_caps_unref(caps);
return FALSE;
+ }
+ gst_caps_unref(caps);
}
if (!src || !sink)
-/*
+/*
* GStreamer
* Copyright (C) 2007 David Schleef <ds@schleef.org>
*
{
GObjectClass *gobject_class;
GstElementClass *gstelement_class;
-
+ GstCaps *tmp = NULL;
gobject_class = (GObjectClass *) klass;
gstelement_class = (GstElementClass *) klass;
gst_element_class_add_pad_template (gstelement_class,
gst_pad_template_new ("src", GST_PAD_SRC, GST_PAD_ALWAYS,
- gst_caps_from_string (SRC_CAPS)));
+ tmp = gst_caps_from_string (SRC_CAPS)));
+ gst_caps_unref (tmp);
gst_element_class_add_pad_template (gstelement_class,
gst_pad_template_new ("sink", GST_PAD_SINK, GST_PAD_ALWAYS,
- gst_caps_from_string (SINK_CAPS)));
+ tmp = gst_caps_from_string (SINK_CAPS)));
+ gst_caps_unref (tmp);
GST_BASE_TRANSFORM_CLASS (klass)->transform_caps =
GST_DEBUG_FUNCPTR (gst_bayer2rgb_transform_caps);
static void
gst_vcd_parse_init (GstVcdParse * vcd, GstVcdParseClass * klass)
{
+ GstCaps *tmp = NULL;
vcd->sinkpad = gst_pad_new_from_static_template (&sink_factory, "sink");
gst_pad_set_chain_function (vcd->sinkpad,
GST_DEBUG_FUNCPTR (gst_vcd_parse_chain));
GST_DEBUG_FUNCPTR (gst_vcd_parse_src_query));
gst_pad_use_fixed_caps (vcd->srcpad);
gst_pad_set_caps (vcd->srcpad,
- gst_static_pad_template_get_caps (&src_factory));
+ tmp = gst_static_pad_template_get_caps (&src_factory));
gst_element_add_pad (GST_ELEMENT (vcd), vcd->srcpad);
+ gst_caps_unref(tmp);
}
/* These conversion functions assume there's no junk between sectors */
* ! sync ! header ! subheader ! data ... ! edc !
* ! 12 bytes ! 4 bytes ! 8 bytes ! 2324 bytes ! 4 bytes !
* +-------------------------------------------------------+
- *
+ *
* We strip the data out of it and send it to the srcpad.
- *
+ *
* sync : 00 FF FF FF FF FF FF FF FF FF FF 00
* header : hour minute second mode
* sub-header : track channel sub_mode coding repeat (4 bytes)
void
mxf_alaw_init (void)
{
+ GstCaps *tmp = NULL;
mxf_essence_element_handler_register (&mxf_alaw_essence_element_handler);
mxf_alaw_essence_element_writer.pad_template =
gst_pad_template_new ("alaw_audio_sink_%u", GST_PAD_SINK, GST_PAD_REQUEST,
- gst_caps_from_string (ALAW_CAPS));
+ tmp = gst_caps_from_string (ALAW_CAPS));
+ gst_caps_unref (tmp);
memcpy (&mxf_alaw_essence_element_writer.data_definition,
mxf_metadata_track_identifier_get (MXF_METADATA_TRACK_SOUND_ESSENCE), 16);
mxf_essence_element_writer_register (&mxf_alaw_essence_element_writer);
void
mxf_dv_dif_init (void)
{
+ GstCaps *tmp = NULL;
mxf_essence_element_handler_register (&mxf_dv_dif_essence_element_handler);
mxf_dv_dif_essence_element_writer.pad_template =
gst_pad_template_new ("dv_dif_video_sink_%u", GST_PAD_SINK,
GST_PAD_REQUEST,
- gst_caps_from_string ("video/x-dv, width = "
+ tmp = gst_caps_from_string ("video/x-dv, width = "
GST_VIDEO_SIZE_RANGE ", height = " GST_VIDEO_SIZE_RANGE
", framerate = " GST_VIDEO_FPS_RANGE ", systemstream = true"));
+ gst_caps_unref (tmp);
memcpy (&mxf_dv_dif_essence_element_writer.data_definition,
mxf_metadata_track_identifier_get (MXF_METADATA_TRACK_PICTURE_ESSENCE),
16);
void
mxf_jpeg2000_init (void)
{
+ GstCaps *tmp = NULL;
mxf_essence_element_handler_register (&mxf_jpeg2000_essence_element_handler);
mxf_jpeg2000_essence_element_writer.pad_template =
gst_pad_template_new ("jpeg2000_video_sink_%u", GST_PAD_SINK,
GST_PAD_REQUEST,
- gst_caps_from_string ("image/x-jpc, fields = 1, width = "
+ tmp = gst_caps_from_string ("image/x-jpc, fields = 1, width = "
GST_VIDEO_SIZE_RANGE ", height = " GST_VIDEO_SIZE_RANGE
", framerate = " GST_VIDEO_FPS_RANGE
", colorspace = (string) { \"sRGB\", \"sYUV\" }"));
+ gst_caps_unref (tmp);
memcpy (&mxf_jpeg2000_essence_element_writer.data_definition,
mxf_metadata_track_identifier_get (MXF_METADATA_TRACK_PICTURE_ESSENCE),
16);
* Generic Container
*/
-/* TODO:
+/* TODO:
* - Handle CDCI essence
* - Handle more formats with RGBA descriptor (4:4:4 / 4:4:4:4 YUV, RGB656, ...)
* - Handle all the dimensions and other properties in the picture
void
mxf_up_init (void)
{
+ GstCaps *tmp = NULL;
mxf_essence_element_handler_register (&mxf_up_essence_element_handler);
mxf_up_essence_element_writer.pad_template =
gst_pad_template_new ("up_video_sink_%u", GST_PAD_SINK, GST_PAD_REQUEST,
- gst_caps_from_string (GST_VIDEO_CAPS_MAKE ("RGB") "; "
+ tmp = gst_caps_from_string (GST_VIDEO_CAPS_MAKE ("RGB") "; "
GST_VIDEO_CAPS_MAKE ("BGR") "; "
GST_VIDEO_CAPS_MAKE ("RGBx") "; "
GST_VIDEO_CAPS_MAKE ("xRGB") "; "
GST_VIDEO_CAPS_MAKE ("AYUV") "; "
GST_VIDEO_CAPS_MAKE ("v308") "; "
GST_VIDEO_CAPS_MAKE ("UYVY") "; " GST_VIDEO_CAPS_MAKE ("YUY2")));
+ gst_caps_unref (tmp);
memcpy (&mxf_up_essence_element_writer.data_definition,
mxf_metadata_track_identifier_get (MXF_METADATA_TRACK_PICTURE_ESSENCE),
void
mxf_vc3_init (void)
{
+ GstCaps *tmp = NULL;
mxf_essence_element_handler_register (&mxf_vc3_essence_element_handler);
mxf_vc3_essence_element_writer.pad_template =
gst_pad_template_new ("vc3_video_sink_%u", GST_PAD_SINK, GST_PAD_REQUEST,
- gst_caps_from_string ("video/x-dnxhd, width = " GST_VIDEO_SIZE_RANGE
+ tmp = gst_caps_from_string ("video/x-dnxhd, width = " GST_VIDEO_SIZE_RANGE
", height = " GST_VIDEO_SIZE_RANGE ", framerate = "
GST_VIDEO_FPS_RANGE));
+ gst_caps_unref (tmp);
memcpy (&mxf_vc3_essence_element_writer.data_definition,
mxf_metadata_track_identifier_get (MXF_METADATA_TRACK_PICTURE_ESSENCE),
16);
* <refsect2>
* <title>Example launch line</title>
* |[
- * gst-launch -v filesrc location=some_file.ogv ! decodebin !
+ * gst-launch -v filesrc location=some_file.ogv ! decodebin !
* scenechange ! theoraenc ! fakesink
* ]|
* </refsect2>
* terms of accuracy, schro's implementation has about 2-3 false positives
* or false negatives per 100 scene changes. This implementation has
* about 5 per 100. The threshold is tuned for minimum total false
- * positives or negatives, on the assumption that the badness of a
+ * positives or negatives, on the assumption that the badness of a
* false negative is the same as a false positive.
*
* This algorithm is pretty much at its limit for error rate. I
gst_scene_change_class_init (GstSceneChangeClass * klass)
{
GstVideoFilterClass *video_filter_class = GST_VIDEO_FILTER_CLASS (klass);
+ GstCaps *tmp = NULL;
gst_element_class_add_pad_template (GST_ELEMENT_CLASS (klass),
gst_pad_template_new ("src", GST_PAD_SRC, GST_PAD_ALWAYS,
- gst_caps_from_string (VIDEO_CAPS)));
+ tmp = gst_caps_from_string (VIDEO_CAPS)));
+ gst_caps_unref (tmp);
gst_element_class_add_pad_template (GST_ELEMENT_CLASS (klass),
gst_pad_template_new ("sink", GST_PAD_SINK, GST_PAD_ALWAYS,
- gst_caps_from_string (VIDEO_CAPS)));
+ tmp = gst_caps_from_string (VIDEO_CAPS)));
+ gst_caps_unref (tmp);
gst_element_class_set_static_metadata (GST_ELEMENT_CLASS (klass),
"Scene change detector",
gst_video_diff_class_init (GstVideoDiffClass * klass)
{
GstVideoFilterClass *video_filter_class = GST_VIDEO_FILTER_CLASS (klass);
+ GstCaps *tmp = NULL;
/* Setting up pads and setting metadata should be moved to
base_class_init if you intend to subclass this class. */
gst_element_class_add_pad_template (GST_ELEMENT_CLASS (klass),
gst_pad_template_new ("src", GST_PAD_SRC, GST_PAD_ALWAYS,
- gst_caps_from_string (VIDEO_SRC_CAPS)));
+ tmp = gst_caps_from_string (VIDEO_SRC_CAPS)));
+ gst_caps_unref (tmp);
gst_element_class_add_pad_template (GST_ELEMENT_CLASS (klass),
gst_pad_template_new ("sink", GST_PAD_SINK, GST_PAD_ALWAYS,
- gst_caps_from_string (VIDEO_SINK_CAPS)));
+ tmp = gst_caps_from_string (VIDEO_SINK_CAPS)));
+ gst_caps_unref (tmp);
gst_element_class_set_static_metadata (GST_ELEMENT_CLASS (klass),
"FIXME Long name", "Generic", "FIXME Description",
* @see_also: #GstVideoDetect
*
* This plugin produces #GstSimpleVideoMark::pattern-count squares in the bottom left
- * corner of the video frames. The squares have a width and height of
+ * corner of the video frames. The squares have a width and height of
* respectively #GstSimpleVideoMark:pattern-width and #GstSimpleVideoMark:pattern-height.
* Even squares will be black and odd squares will be white.
- *
+ *
* After writing the pattern, #GstSimpleVideoMark:pattern-data-count squares after the
* pattern squares are produced as the bitarray given in
* #GstSimpleVideoMark:pattern-data. 1 bits will produce white squares and 0 bits will
* produce black squares.
- *
+ *
* The element can be enabled with the #GstSimpleVideoMark:enabled property. It is
* mostly used together with the #GstVideoDetect plugin.
- *
+ *
* <refsect2>
* <title>Example launch line</title>
* |[
GstBaseTransformClass *base_transform_class =
GST_BASE_TRANSFORM_CLASS (klass);
GstVideoFilterClass *video_filter_class = GST_VIDEO_FILTER_CLASS (klass);
+ GstCaps *tmp = NULL;
gst_element_class_add_pad_template (GST_ELEMENT_CLASS (klass),
gst_pad_template_new ("src", GST_PAD_SRC, GST_PAD_ALWAYS,
- gst_caps_from_string (VIDEO_CAPS)));
+ tmp = gst_caps_from_string (VIDEO_CAPS)));
+ gst_caps_unref (tmp);
gst_element_class_add_pad_template (GST_ELEMENT_CLASS (klass),
gst_pad_template_new ("sink", GST_PAD_SINK, GST_PAD_ALWAYS,
- gst_caps_from_string (VIDEO_CAPS)));
+ tmp = gst_caps_from_string (VIDEO_CAPS)));
+ gst_caps_unref (tmp);
gst_element_class_set_static_metadata (GST_ELEMENT_CLASS (klass),
"Video marker", "Filter/Effect/Video",
* </para>
* </listitem>
* </itemizedlist>
- *
+ *
* <refsect2>
* <title>Example launch line</title>
* |[
* gst-launch -m videotestsrc ! videoanalyse ! videoconvert ! ximagesink
- * ]| This pipeline emits messages to the console for each frame that has been analysed.
+ * ]| This pipeline emits messages to the console for each frame that has been analysed.
* </refsect2>
*/
gst_video_analyse_class_init (GstVideoAnalyseClass * klass)
{
GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
+ GstCaps *tmp = NULL;
GstVideoFilterClass *video_filter_class = GST_VIDEO_FILTER_CLASS (klass);
gst_element_class_add_pad_template (GST_ELEMENT_CLASS (klass),
gst_pad_template_new ("src", GST_PAD_SRC, GST_PAD_ALWAYS,
- gst_caps_from_string (VIDEO_CAPS)));
+ tmp = gst_caps_from_string (VIDEO_CAPS)));
+ gst_caps_unref (tmp);
gst_element_class_add_pad_template (GST_ELEMENT_CLASS (klass),
gst_pad_template_new ("sink", GST_PAD_SINK, GST_PAD_ALWAYS,
- gst_caps_from_string (VIDEO_CAPS)));
+ tmp = gst_caps_from_string (VIDEO_CAPS)));
+ gst_caps_unref (tmp);
gst_element_class_set_static_metadata (GST_ELEMENT_CLASS (klass),
"Video analyser", "Filter/Analyzer/Video",
self->taglist = NULL;
self->ghostpad = NULL;
self->sink_is_in_bin = FALSE;
+ GstCaps *tmp = NULL;
g_mutex_init (&self->cb_mutex);
/* we initialize our capsfilter */
gst_a2dp_sink_init_caps_filter (self);
g_object_set (self->capsfilter, "caps",
- gst_static_pad_template_get_caps (&gst_a2dp_sink_factory), NULL);
+ tmp = gst_static_pad_template_get_caps (&gst_a2dp_sink_factory), NULL);
+ gst_caps_unref(tmp);
gst_a2dp_sink_init_fakesink (self);
preview_caps = gst_caps_from_string (preview_caps_name);
if (preview_caps) {
g_object_set (camerabin, "preview-caps", preview_caps, NULL);
+ gst_caps_unref (preview_caps);
GST_DEBUG ("Preview caps set");
} else
GST_DEBUG ("Preview caps set but could not create caps from string");
gst_caps_from_string
("audio/x-raw-int, endianness=(int)1234, signed=(boolean)true, width=(int)32, depth=(int)32, rate=(int)44100, channels=(int)2");
g_object_set (G_OBJECT (dccpclientsrc), "caps", caps, NULL);
+ gst_object_unref (caps);
g_object_set (G_OBJECT (dccpclientsrc), "host", argv[1], NULL);
/*g_object_set (G_OBJECT (dccpclientsrc), "ccid", 3, NULL);
gst_caps_from_string
("audio/x-raw-int, endianness=(int)1234, signed=(boolean)true, width=(int)32, depth=(int)32, rate=(int)44100, channels=(int)2");
g_object_set (G_OBJECT (dccpclientsrc), "caps", caps, NULL);
+ gst_object_unref (caps);
/*g_object_set (G_OBJECT (dccpclientsrc), "ccid", 3, NULL);
g_object_set (G_OBJECT (dccpserversink), "ccid", 3, NULL); */
("audio/x-raw-int, endianness=(int)1234, signed=(boolean)true, width=(int)32, depth=(int)32, rate=(int)44100, channels=(int)2");
g_object_set (G_OBJECT (dccpclientsrc), "caps", caps, NULL);
+ gst_object_unref (caps);
g_object_set (G_OBJECT (dccpclientsrc), "host", argv[1], NULL);
g_object_set (G_OBJECT (dccpclientsrc), "port", atoi (argv[2]), NULL);
/*g_object_set (G_OBJECT (dccpclientsrc), "ccid", 3, NULL); */