diff options
author | Youri Westerman <tetracon@gmail.com> | 2013-07-19 20:09:28 +0200 |
---|---|---|
committer | Tim-Philipp Müller <tim@centricular.net> | 2013-07-22 14:27:12 +0100 |
commit | 35ba6d0887ae82e8b6657eb3cf8f1a1f25b3d301 (patch) | |
tree | 25615546c854989dcb6851b6d88442cc09abcd6e | |
parent | cd38dc0f929f17b9ea439da12a4b7966dd2c4e86 (diff) | |
download | gstreamer-plugins-bad-35ba6d0887ae82e8b6657eb3cf8f1a1f25b3d301.tar.gz |
decklink: add "device-number" to select from multiple devices
https://bugzilla.gnome.org/show_bug.cgi?id=704505
-rw-r--r-- | sys/decklink/gstdecklinksink.cpp | 27 | ||||
-rw-r--r-- | sys/decklink/gstdecklinksink.h | 2 | ||||
-rw-r--r-- | sys/decklink/gstdecklinksrc.cpp | 27 | ||||
-rw-r--r-- | sys/decklink/gstdecklinksrc.h | 2 |
4 files changed, 26 insertions, 32 deletions
diff --git a/sys/decklink/gstdecklinksink.cpp b/sys/decklink/gstdecklinksink.cpp index 9abde79f2..b0c86eeca 100644 --- a/sys/decklink/gstdecklinksink.cpp +++ b/sys/decklink/gstdecklinksink.cpp @@ -82,7 +82,7 @@ enum { PROP_0, PROP_MODE, - PROP_DEVICE + PROP_DEVICE_NUMBER }; /* pad templates */ @@ -120,14 +120,11 @@ gst_decklink_sink_class_init (GstDecklinkSinkClass * klass) (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT))); - /* FIXME: should be device-number or so, or turned into a string */ -#if 0 - g_object_class_install_property (gobject_class, PROP_DEVICE, - g_param_spec_int ("device", "Device", "Capture device instance to use", - 0, G_MAXINT, 0, + g_object_class_install_property (gobject_class, PROP_DEVICE_NUMBER, + g_param_spec_int ("device-number", "Device number", + "Output device instance to use", 0, G_MAXINT, 0, (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT))); -#endif gst_element_class_add_pad_template (element_class, gst_pad_template_new ("videosink", GST_PAD_SINK, GST_PAD_ALWAYS, @@ -182,7 +179,7 @@ gst_decklink_sink_init (GstDecklinkSink * decklinksink) g_cond_init (&decklinksink->audio_cond); decklinksink->mode = GST_DECKLINK_MODE_NTSC; - decklinksink->device = 0; + decklinksink->device_number = 0; decklinksink->callback = new Output; decklinksink->callback->decklinksink = decklinksink; @@ -219,8 +216,8 @@ gst_decklink_sink_set_property (GObject * object, guint property_id, case PROP_MODE: decklinksink->mode = (GstDecklinkModeEnum) g_value_get_enum (value); break; - case PROP_DEVICE: - decklinksink->device = g_value_get_int (value); + case PROP_DEVICE_NUMBER: + decklinksink->device_number = g_value_get_int (value); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); @@ -241,8 +238,8 @@ gst_decklink_sink_get_property (GObject * object, guint property_id, case PROP_MODE: g_value_set_enum (value, decklinksink->mode); break; - case PROP_DEVICE: - g_value_set_int (value, decklinksink->device); + case PROP_DEVICE_NUMBER: + g_value_set_int (value, decklinksink->device_number); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); @@ -331,13 +328,13 @@ gst_decklink_sink_start (GstDecklinkSink * decklinksink) const GstDecklinkMode *mode; BMDAudioSampleType sample_depth; - decklinksink->decklink = gst_decklink_get_nth_device (decklinksink->device); + decklinksink->decklink = gst_decklink_get_nth_device (decklinksink->device_number); if (!decklinksink->decklink) { - GST_WARNING ("failed to get device %d", decklinksink->device); + GST_WARNING ("failed to get device %d", decklinksink->device_number); return FALSE; } - decklinksink->output = gst_decklink_get_nth_output (decklinksink->device); + decklinksink->output = gst_decklink_get_nth_output (decklinksink->device_number); decklinksink->output->SetAudioCallback (decklinksink->callback); diff --git a/sys/decklink/gstdecklinksink.h b/sys/decklink/gstdecklinksink.h index c2654f4d5..8f42ccf25 100644 --- a/sys/decklink/gstdecklinksink.h +++ b/sys/decklink/gstdecklinksink.h @@ -81,7 +81,7 @@ struct _GstDecklinkSink /* properties */ GstDecklinkModeEnum mode; - int device; + int device_number; #ifdef _MSC_VER gboolean comInitialized; diff --git a/sys/decklink/gstdecklinksrc.cpp b/sys/decklink/gstdecklinksrc.cpp index d9cb67240..5b7533df0 100644 --- a/sys/decklink/gstdecklinksrc.cpp +++ b/sys/decklink/gstdecklinksrc.cpp @@ -79,7 +79,7 @@ enum PROP_MODE, PROP_CONNECTION, PROP_AUDIO_INPUT, - PROP_DEVICE + PROP_DEVICE_NUMBER }; static GstStaticPadTemplate gst_decklink_src_audio_src_template = @@ -128,14 +128,11 @@ gst_decklink_src_class_init (GstDecklinkSrcClass * klass) (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT))); - /* FIXME: should be device-number or so, or turned into a string */ -#if 0 - g_object_class_install_property (gobject_class, PROP_DEVICE, - g_param_spec_int ("device", "Device", "Capture device instance to use", - 0, G_MAXINT, 0, + g_object_class_install_property (gobject_class, PROP_DEVICE_NUMBER, + g_param_spec_int ("device-number", "Device number", + "Capture device instance to use", 0, G_MAXINT, 0, (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT))); -#endif gst_element_class_add_pad_template (element_class, gst_static_pad_template_get (&gst_decklink_src_audio_src_template)); @@ -184,7 +181,7 @@ gst_decklink_src_init (GstDecklinkSrc * decklinksrc) decklinksrc->mode = GST_DECKLINK_MODE_NTSC; decklinksrc->connection = GST_DECKLINK_CONNECTION_SDI; decklinksrc->audio_connection = GST_DECKLINK_AUDIO_CONNECTION_AUTO; - decklinksrc->device = 0; + decklinksrc->device_number = 0; decklinksrc->stop = FALSE; decklinksrc->dropped_frames = 0; @@ -233,8 +230,8 @@ gst_decklink_src_set_property (GObject * object, guint property_id, decklinksrc->audio_connection = (GstDecklinkAudioConnectionEnum) g_value_get_enum (value); break; - case PROP_DEVICE: - decklinksrc->device = g_value_get_int (value); + case PROP_DEVICE_NUMBER: + decklinksrc->device_number = g_value_get_int (value); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); @@ -260,8 +257,8 @@ gst_decklink_src_get_property (GObject * object, guint property_id, case PROP_AUDIO_INPUT: g_value_set_enum (value, decklinksrc->audio_connection); break; - case PROP_DEVICE: - g_value_set_int (value, decklinksrc->device); + case PROP_DEVICE_NUMBER: + g_value_set_int (value, decklinksrc->device_number); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); @@ -361,12 +358,12 @@ gst_decklink_src_start (GstElement * element) GST_DEBUG_OBJECT (decklinksrc, "start"); - decklinksrc->decklink = gst_decklink_get_nth_device (decklinksrc->device); + decklinksrc->decklink = gst_decklink_get_nth_device (decklinksrc->device_number); if (decklinksrc->decklink == NULL) { return FALSE; } - decklinksrc->input = gst_decklink_get_nth_input (decklinksrc->device); + decklinksrc->input = gst_decklink_get_nth_input (decklinksrc->device_number); delegate = new DeckLinkCaptureDelegate (); delegate->priv = decklinksrc; @@ -376,7 +373,7 @@ gst_decklink_src_start (GstElement * element) return FALSE; } - decklinksrc->config = gst_decklink_get_nth_config (decklinksrc->device); + decklinksrc->config = gst_decklink_get_nth_config (decklinksrc->device_number); config = decklinksrc->config; switch (decklinksrc->connection) { diff --git a/sys/decklink/gstdecklinksrc.h b/sys/decklink/gstdecklinksrc.h index e6290ca7d..b6bf3f6f0 100644 --- a/sys/decklink/gstdecklinksrc.h +++ b/sys/decklink/gstdecklinksrc.h @@ -77,7 +77,7 @@ struct _GstDecklinkSrc GstDecklinkModeEnum mode; GstDecklinkConnectionEnum connection; GstDecklinkAudioConnectionEnum audio_connection; - int device; + int device_number; #ifdef _MSC_VER gboolean comInitialized; |