mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-18 15:51:11 +00:00
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:
parent
1361d06874
commit
0de3094950
3 changed files with 22 additions and 3 deletions
10
ChangeLog
10
ChangeLog
|
@ -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:
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -87,6 +87,9 @@ struct _GstVideoMixer
|
|||
|
||||
gint fps_n;
|
||||
gint fps_d;
|
||||
|
||||
/* Next available sinkpad index */
|
||||
gint next_sinkpad;
|
||||
};
|
||||
|
||||
struct _GstVideoMixerClass
|
||||
|
|
Loading…
Reference in a new issue