gst/videomixer/videomixer.*: Instead of a random number for the request pad id's, use a counter.

Original commit message from CVS:
* gst/videomixer/videomixer.c:
* gst/videomixer/videomixer.h:
Instead of a random number for the request pad id's,
use a counter.
Register the videomixerpad class from the element's class_init
where it's safer, and allows the docs generator to scan it.
This commit is contained in:
Jan Schmidt 2008-05-20 10:42:33 +00:00
parent 1361d06874
commit 0de3094950
3 changed files with 22 additions and 3 deletions

View file

@ -1,3 +1,13 @@
2008-05-20 Jan Schmidt <jan.schmidt@sun.com>
* gst/videomixer/videomixer.c:
* gst/videomixer/videomixer.h:
Instead of a random number for the request pad id's,
use a counter.
Register the videomixerpad class from the element's class_init
where it's safer, and allows the docs generator to scan it.
2008-05-20 Wim Taymans <wim.taymans@collabora.co.uk>
* gst/smpte/Makefile.am:

View file

@ -57,7 +57,6 @@
#include <gst/base/gstcollectpads.h>
#include <gst/controller/gstcontroller.h>
#include <stdlib.h>
#include <string.h>
#include "videomixer.h"
@ -500,6 +499,9 @@ gst_videomixer_class_init (GstVideoMixerClass * klass)
GST_DEBUG_FUNCPTR (gst_videomixer_release_pad);
gstelement_class->change_state =
GST_DEBUG_FUNCPTR (gst_videomixer_change_state);
/* Register the pad class */
(void) (GST_TYPE_VIDEO_MIXER_PAD);
}
static void
@ -532,6 +534,8 @@ gst_videomixer_reset (GstVideoMixer * mix)
gst_videomixer_collect_free (data);
walk = g_slist_next (walk);
}
mix->next_sinkpad = 0;
}
static void
@ -622,11 +626,13 @@ gst_videomixer_request_new_pad (GstElement * element,
GstVideoMixerCollect *mixcol = NULL;
if (req_name == NULL || strlen (req_name) < 6) {
/* no name given when requesting the pad, use random serial number */
serial = rand ();
/* no name given when requesting the pad, use next available int */
serial = mix->next_sinkpad++;
} else {
/* parse serial number from requested padname */
serial = atoi (&req_name[5]);
if (serial >= mix->next_sinkpad)
mix->next_sinkpad = serial + 1;
}
/* create new pad with the name */
name = g_strdup_printf ("sink_%d", serial);

View file

@ -87,6 +87,9 @@ struct _GstVideoMixer
gint fps_n;
gint fps_d;
/* Next available sinkpad index */
gint next_sinkpad;
};
struct _GstVideoMixerClass