static void gst_codec_src_class_init (GstCodecSrcClass * klass) { GstPushSrcClass *pushsrc_class = GST_PUSH_SRC_CLASS (klass); pushsrc_class->create = gst_codec_src_create; }
static void gst_classpath_src_class_init (GstClasspathSrcClass *klass) { GObjectClass *gobject_class; GstElementClass *gstelement_class; GstBaseSrcClass *gstbasesrc_class; GstPushSrcClass *gstpushsrc_class; GParamSpec *pspec; gobject_class = G_OBJECT_CLASS (klass); gstelement_class = GST_ELEMENT_CLASS (klass); gstbasesrc_class = GST_BASE_SRC_CLASS (klass); gstpushsrc_class = GST_PUSH_SRC_CLASS (klass); /* getter and setters */ gobject_class->set_property = gst_classpath_src_set_property; gobject_class->get_property = gst_classpath_src_get_property; /* register properties */ pspec = g_param_spec_pointer (GST_CLASSPATH_SRC_ISTREAM, "GstInputStream instance", "GstInputStream instance", G_PARAM_READWRITE); g_object_class_install_property (gobject_class, ARG_INPUTSTREAM, pspec); /* register callbacks */ gobject_class->finalize = GST_DEBUG_FUNCPTR (gst_classpath_src_finalize); gstbasesrc_class->start = GST_DEBUG_FUNCPTR (gst_classpath_src_start); gstbasesrc_class->stop = GST_DEBUG_FUNCPTR (gst_classpath_src_stop); gstpushsrc_class->create = GST_DEBUG_FUNCPTR (gst_classpath_src_create); }
static void gst_red_video_src_class_init (GstRedVideoSrcClass * klass) { GstPushSrcClass *pushsrc_class = GST_PUSH_SRC_CLASS (klass); pushsrc_class->create = gst_red_video_src_create; }
static void gst_rtmp_src_class_init (GstRTMPSrcClass * klass) { GObjectClass *gobject_class; GstBaseSrcClass *gstbasesrc_class; GstPushSrcClass *gstpushsrc_class; gobject_class = G_OBJECT_CLASS (klass); gstbasesrc_class = GST_BASE_SRC_CLASS (klass); gstpushsrc_class = GST_PUSH_SRC_CLASS (klass); gobject_class->finalize = gst_rtmp_src_finalize; gobject_class->set_property = gst_rtmp_src_set_property; gobject_class->get_property = gst_rtmp_src_get_property; /* properties */ gst_element_class_install_std_props (GST_ELEMENT_CLASS (klass), "location", PROP_LOCATION, G_PARAM_READWRITE, NULL); gstbasesrc_class->start = GST_DEBUG_FUNCPTR (gst_rtmp_src_start); gstbasesrc_class->stop = GST_DEBUG_FUNCPTR (gst_rtmp_src_stop); gstbasesrc_class->is_seekable = GST_DEBUG_FUNCPTR (gst_rtmp_src_is_seekable); gstbasesrc_class->prepare_seek_segment = GST_DEBUG_FUNCPTR (gst_rtmp_src_prepare_seek_segment); gstbasesrc_class->do_seek = GST_DEBUG_FUNCPTR (gst_rtmp_src_do_seek); gstpushsrc_class->create = GST_DEBUG_FUNCPTR (gst_rtmp_src_create); gstbasesrc_class->query = GST_DEBUG_FUNCPTR (gst_rtmp_src_query); }
static void oob_source_class_init (OOBSourceClass * klass) { GstPushSrcClass *pushsrc_class = GST_PUSH_SRC_CLASS (klass); pushsrc_class->create = GST_DEBUG_FUNCPTR (oob_source_create); }
static void gst_win_inet_src_class_init (GstWinInetSrcClass * klass) { GObjectClass *gobject_class = G_OBJECT_CLASS (klass); GstBaseSrcClass *gstbasesrc_class = GST_BASE_SRC_CLASS (klass); GstPushSrcClass *gstpushsrc_class = GST_PUSH_SRC_CLASS (klass); gobject_class->dispose = gst_win_inet_src_dispose; gobject_class->finalize = gst_win_inet_src_finalize; gobject_class->get_property = gst_win_inet_src_get_property; gobject_class->set_property = gst_win_inet_src_set_property; gstbasesrc_class->start = GST_DEBUG_FUNCPTR (gst_win_inet_src_start); gstbasesrc_class->stop = GST_DEBUG_FUNCPTR (gst_win_inet_src_stop); gstpushsrc_class->create = GST_DEBUG_FUNCPTR (gst_win_inet_src_create); g_object_class_install_property (gobject_class, PROP_LOCATION, g_param_spec_string ("location", "Location", "Location to read from", DEFAULT_LOCATION, G_PARAM_READWRITE)); g_object_class_install_property (gobject_class, PROP_POLL_MODE, g_param_spec_boolean ("poll-mode", "poll-mode", "Enable poll mode (keep re-issuing request)", DEFAULT_POLL_MODE, G_PARAM_READWRITE)); g_object_class_install_property (gobject_class, PROP_IRADIO_MODE, g_param_spec_boolean ("iradio-mode", "iradio-mode", "Enable Internet radio mode " "(extraction of shoutcast/icecast metadata)", DEFAULT_IRADIO_MODE, G_PARAM_READWRITE)); }
static void gst_fd_src_class_init (GstFdSrcClass * klass) { GObjectClass *gobject_class; GstBaseSrcClass *gstbasesrc_class; GstElementClass *gstelement_class; GstPushSrcClass *gstpush_src_class; gobject_class = G_OBJECT_CLASS (klass); gstelement_class = GST_ELEMENT_CLASS (klass); gstbasesrc_class = GST_BASE_SRC_CLASS (klass); gstpush_src_class = GST_PUSH_SRC_CLASS (klass); parent_class = g_type_class_peek_parent (klass); gobject_class->set_property = gst_fd_src_set_property; gobject_class->get_property = gst_fd_src_get_property; gobject_class->dispose = gst_fd_src_dispose; g_object_class_install_property (gobject_class, PROP_FD, g_param_spec_int ("fd", "fd", "An open file descriptor to read from", 0, G_MAXINT, 0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); gstbasesrc_class->start = GST_DEBUG_FUNCPTR (gst_fd_src_start); gstbasesrc_class->stop = GST_DEBUG_FUNCPTR (gst_fd_src_stop); gstbasesrc_class->unlock = GST_DEBUG_FUNCPTR (gst_fd_src_unlock); gstbasesrc_class->unlock_stop = GST_DEBUG_FUNCPTR (gst_fd_src_unlock_stop); gstbasesrc_class->is_seekable = GST_DEBUG_FUNCPTR (gst_fd_src_is_seekable); gstbasesrc_class->get_size = GST_DEBUG_FUNCPTR (gst_fd_src_get_size); gstbasesrc_class->do_seek = GST_DEBUG_FUNCPTR (gst_fd_src_do_seek); gstpush_src_class->create = GST_DEBUG_FUNCPTR (gst_fd_src_create); }
static void gst_ks_video_src_class_init (GstKsVideoSrcClass * klass) { GObjectClass *gobject_class = G_OBJECT_CLASS (klass); GstElementClass *gstelement_class = GST_ELEMENT_CLASS (klass); GstBaseSrcClass *gstbasesrc_class = GST_BASE_SRC_CLASS (klass); GstPushSrcClass *gstpushsrc_class = GST_PUSH_SRC_CLASS (klass); g_type_class_add_private (klass, sizeof (GstKsVideoSrcPrivate)); gobject_class->finalize = gst_ks_video_src_finalize; gobject_class->get_property = gst_ks_video_src_get_property; gobject_class->set_property = gst_ks_video_src_set_property; gstelement_class->change_state = GST_DEBUG_FUNCPTR (gst_ks_video_src_change_state); gstelement_class->set_clock = GST_DEBUG_FUNCPTR (gst_ks_video_src_set_clock); gstbasesrc_class->get_caps = GST_DEBUG_FUNCPTR (gst_ks_video_src_get_caps); gstbasesrc_class->set_caps = GST_DEBUG_FUNCPTR (gst_ks_video_src_set_caps); gstbasesrc_class->fixate = GST_DEBUG_FUNCPTR (gst_ks_video_src_fixate); gstbasesrc_class->query = GST_DEBUG_FUNCPTR (gst_ks_video_src_query); gstbasesrc_class->unlock = GST_DEBUG_FUNCPTR (gst_ks_video_src_unlock); gstbasesrc_class->unlock_stop = GST_DEBUG_FUNCPTR (gst_ks_video_src_unlock_stop); gstpushsrc_class->create = GST_DEBUG_FUNCPTR (gst_ks_video_src_create); g_object_class_install_property (gobject_class, PROP_DEVICE_PATH, g_param_spec_string ("device-path", "Device Path", "The device path", DEFAULT_DEVICE_PATH, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (gobject_class, PROP_DEVICE_NAME, g_param_spec_string ("device-name", "Device Name", "The human-readable device name", DEFAULT_DEVICE_NAME, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (gobject_class, PROP_DEVICE_INDEX, g_param_spec_int ("device-index", "Device Index", "The zero-based device index", -1, G_MAXINT, DEFAULT_DEVICE_INDEX, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (gobject_class, PROP_DO_STATS, g_param_spec_boolean ("do-stats", "Enable statistics", "Enable logging of statistics", DEFAULT_DO_STATS, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (gobject_class, PROP_FPS, g_param_spec_int ("fps", "Frames per second", "Last measured framerate, if statistics are enabled", -1, G_MAXINT, -1, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (gobject_class, PROP_ENABLE_QUIRKS, g_param_spec_boolean ("enable-quirks", "Enable quirks", "Enable driver-specific quirks", DEFAULT_ENABLE_QUIRKS, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); GST_DEBUG_CATEGORY_INIT (gst_ks_debug, "ksvideosrc", 0, "Kernel streaming video source"); }
static void gst_multi_file_src_class_init (GstMultiFileSrcClass * klass) { GObjectClass *gobject_class = G_OBJECT_CLASS (klass); GstPushSrcClass *gstpushsrc_class = GST_PUSH_SRC_CLASS (klass); GstBaseSrcClass *gstbasesrc_class = GST_BASE_SRC_CLASS (klass); gobject_class->set_property = gst_multi_file_src_set_property; gobject_class->get_property = gst_multi_file_src_get_property; g_object_class_install_property (gobject_class, ARG_LOCATION, g_param_spec_string ("location", "File Location", "Pattern to create file names of input files. File names are " "created by calling sprintf() with the pattern and the current " "index.", DEFAULT_LOCATION, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (gobject_class, ARG_INDEX, g_param_spec_int ("index", "File Index", "Index to use with location property to create file names. The " "index is incremented by one for each buffer read.", 0, INT_MAX, DEFAULT_INDEX, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (gobject_class, ARG_START_INDEX, g_param_spec_int ("start-index", "Start Index", "Start value of index. The initial value of index can be set " "either by setting index or start-index. When the end of the loop " "is reached, the index will be set to the value start-index.", 0, INT_MAX, DEFAULT_INDEX, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (gobject_class, ARG_STOP_INDEX, g_param_spec_int ("stop-index", "Start Index", "Stop value of index. The special value -1 means no stop.", -1, INT_MAX, DEFAULT_INDEX, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (gobject_class, ARG_CAPS, g_param_spec_boxed ("caps", "Caps", "Caps describing the format of the data.", GST_TYPE_CAPS, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (gobject_class, ARG_LOOP, g_param_spec_boolean ("loop", "Loop", "Whether to repeat from the beginning when all files have been read.", FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); gobject_class->dispose = gst_multi_file_src_dispose; gstbasesrc_class->get_caps = gst_multi_file_src_getcaps; gstbasesrc_class->query = gst_multi_file_src_query; gstpushsrc_class->create = gst_multi_file_src_create; if (sizeof (off_t) < 8) { GST_LOG ("No large file support, sizeof (off_t) = %" G_GSIZE_FORMAT, sizeof (off_t)); } }
static void gst_v4l2src_class_init (GstV4l2SrcClass * klass) { GObjectClass *gobject_class; GstElementClass *element_class; GstBaseSrcClass *basesrc_class; GstPushSrcClass *pushsrc_class; gobject_class = G_OBJECT_CLASS (klass); element_class = GST_ELEMENT_CLASS (klass); basesrc_class = GST_BASE_SRC_CLASS (klass); pushsrc_class = GST_PUSH_SRC_CLASS (klass); gobject_class->dispose = gst_v4l2src_dispose; gobject_class->finalize = (GObjectFinalizeFunc) gst_v4l2src_finalize; gobject_class->set_property = gst_v4l2src_set_property; gobject_class->get_property = gst_v4l2src_get_property; element_class->change_state = gst_v4l2src_change_state; gst_v4l2_object_install_properties_helper (gobject_class, DEFAULT_PROP_DEVICE); g_object_class_install_property (gobject_class, PROP_QUEUE_SIZE, g_param_spec_uint ("queue-size", "Queue size", "Number of buffers to be enqueud in the driver in streaming mode", GST_V4L2_MIN_BUFFERS, GST_V4L2_MAX_BUFFERS, PROP_DEF_QUEUE_SIZE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (gobject_class, PROP_ALWAYS_COPY, g_param_spec_boolean ("always-copy", "Always Copy", "If the buffer will or not be used directly from mmap", PROP_DEF_ALWAYS_COPY, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); /** * GstV4l2Src:decimate * * Only use every nth frame * * Since: 0.10.26 */ g_object_class_install_property (gobject_class, PROP_DECIMATE, g_param_spec_int ("decimate", "Decimate", "Only use every nth frame", 1, G_MAXINT, PROP_DEF_DECIMATE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); basesrc_class->get_caps = GST_DEBUG_FUNCPTR (gst_v4l2src_get_caps); basesrc_class->set_caps = GST_DEBUG_FUNCPTR (gst_v4l2src_set_caps); basesrc_class->start = GST_DEBUG_FUNCPTR (gst_v4l2src_start); basesrc_class->unlock = GST_DEBUG_FUNCPTR (gst_v4l2src_unlock); basesrc_class->unlock_stop = GST_DEBUG_FUNCPTR (gst_v4l2src_unlock_stop); basesrc_class->stop = GST_DEBUG_FUNCPTR (gst_v4l2src_stop); basesrc_class->query = GST_DEBUG_FUNCPTR (gst_v4l2src_query); basesrc_class->fixate = GST_DEBUG_FUNCPTR (gst_v4l2src_fixate); basesrc_class->negotiate = GST_DEBUG_FUNCPTR (gst_v4l2src_negotiate); pushsrc_class->create = GST_DEBUG_FUNCPTR (gst_v4l2src_create); }
/** * gst_niimaqsrc_class_init: * klass: #GstNiImaqClass to initialize * * Initialize #GstNiImaqClass, which occurs only once no matter how many * instances of the class there are */ static void gst_niimaqsrc_class_init (GstNiImaqSrcClass * klass) { /* get pointers to base classes */ GObjectClass *gobject_class = G_OBJECT_CLASS (klass); GstElementClass *gstelement_class = GST_ELEMENT_CLASS (klass); GstBaseSrcClass *gstbasesrc_class = GST_BASE_SRC_CLASS (klass); GstPushSrcClass *gstpushsrc_class = GST_PUSH_SRC_CLASS (klass); /* install GObject vmethod implementations */ gobject_class->dispose = gst_niimaqsrc_dispose; gobject_class->set_property = gst_niimaqsrc_set_property; gobject_class->get_property = gst_niimaqsrc_get_property; /* install GObject properties */ g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_DEVICE, g_param_spec_string ("device", "Device", "NI-IMAQ interface to open (e.g., img0::0)", DEFAULT_PROP_DEVICE, G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE)); g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_RING_BUFFER_COUNT, g_param_spec_int ("ring-buffer-count", "Number of frames in the IMAQ ringbuffer", "The number of frames in the IMAQ ringbuffer", 1, G_MAXINT, DEFAULT_PROP_RING_BUFFER_COUNT, G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE)); g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_AVOID_COPY, g_param_spec_boolean ("avoid-copy", "Avoid copying", "Whether to avoid copying (do not use with queues)", DEFAULT_PROP_AVOID_COPY, G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE)); g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_IS_SIGNED, g_param_spec_boolean ("is-signed", "Image is signed 16-bit", "Image is signed 16-bit, shift to unsigned 16-bit", DEFAULT_PROP_IS_SIGNED, G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE)); gst_element_class_add_pad_template (gstelement_class, gst_static_pad_template_get (&src_factory)); gst_element_class_set_static_metadata (gstelement_class, "NI-IMAQ Video Source", "Source/Video", "National Instruments IMAQ based source, supports Camera Link and analog cameras", "Joshua M. Doe <*****@*****.**>"); /* install GstBaseSrc vmethod implementations */ gstbasesrc_class->start = GST_DEBUG_FUNCPTR (gst_niimaqsrc_start); gstbasesrc_class->stop = GST_DEBUG_FUNCPTR (gst_niimaqsrc_stop); gstbasesrc_class->query = GST_DEBUG_FUNCPTR (gst_niimaqsrc_query); gstbasesrc_class->get_caps = GST_DEBUG_FUNCPTR (gst_niimaqsrc_get_caps); gstbasesrc_class->set_caps = GST_DEBUG_FUNCPTR (gst_niimaqsrc_set_caps); /* install GstPushSrc vmethod implementations */ gstpushsrc_class->create = GST_DEBUG_FUNCPTR (gst_niimaqsrc_create); }
static void gst_osx_video_src_class_init (GstOSXVideoSrcClass * klass) { GObjectClass * gobject_class; GstElementClass * element_class; GstBaseSrcClass * basesrc_class; GstPushSrcClass * pushsrc_class; OSErr err; GST_DEBUG (G_STRFUNC); gobject_class = G_OBJECT_CLASS (klass); element_class = GST_ELEMENT_CLASS (klass); basesrc_class = GST_BASE_SRC_CLASS (klass); pushsrc_class = GST_PUSH_SRC_CLASS (klass); gobject_class->dispose = gst_osx_video_src_dispose; gobject_class->finalize = (GObjectFinalizeFunc) gst_osx_video_src_finalize; gobject_class->set_property = GST_DEBUG_FUNCPTR (gst_osx_video_src_set_property); gobject_class->get_property = GST_DEBUG_FUNCPTR (gst_osx_video_src_get_property); element_class->change_state = gst_osx_video_src_change_state; basesrc_class->get_caps = gst_osx_video_src_get_caps; basesrc_class->set_caps = gst_osx_video_src_set_caps; basesrc_class->start = gst_osx_video_src_start; basesrc_class->stop = gst_osx_video_src_stop; basesrc_class->query = gst_osx_video_src_query; basesrc_class->fixate = gst_osx_video_src_fixate; pushsrc_class->create = gst_osx_video_src_create; g_object_class_install_property (gobject_class, ARG_DEVICE, g_param_spec_string ("device", "Device", "Sequence Grabber input device in format 'sgname:input#'", NULL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (gobject_class, ARG_DEVICE_NAME, g_param_spec_string ("device-name", "Device name", "Human-readable name of the video device", NULL, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); err = EnterMovies(); if (err == noErr) { klass->movies_enabled = TRUE; } else { klass->movies_enabled = FALSE; GST_ERROR ("EnterMovies returned %d", err); } }
static void oob_source_class_init (OOBSourceClass * klass) { static GstStaticPadTemplate sinktemplate = GST_STATIC_PAD_TEMPLATE ("src", GST_PAD_SRC, GST_PAD_ALWAYS, GST_STATIC_CAPS_ANY); GstElementClass *element_class = GST_ELEMENT_CLASS (klass); GstPushSrcClass *pushsrc_class = GST_PUSH_SRC_CLASS (klass); gst_element_class_add_pad_template (element_class, gst_static_pad_template_get (&sinktemplate)); pushsrc_class->create = GST_DEBUG_FUNCPTR (oob_source_create); }
static void gst_phoenixsrc_class_init (GstPhoenixSrcClass * klass) { GObjectClass *gobject_class = G_OBJECT_CLASS (klass); GstElementClass *gstelement_class = GST_ELEMENT_CLASS (klass); GstBaseSrcClass *gstbasesrc_class = GST_BASE_SRC_CLASS (klass); GstPushSrcClass *gstpushsrc_class = GST_PUSH_SRC_CLASS (klass); gobject_class->set_property = gst_phoenixsrc_set_property; gobject_class->get_property = gst_phoenixsrc_get_property; gobject_class->dispose = gst_phoenixsrc_dispose; gobject_class->finalize = gst_phoenixsrc_finalize; gst_element_class_add_pad_template (gstelement_class, gst_static_pad_template_get (&gst_phoenixsrc_src_template)); gst_element_class_set_static_metadata (gstelement_class, "Active Silicon Phoenix Video Source", "Source/Video", "Active Silicon Phoenix framegrabber video source", "Joshua M. Doe <*****@*****.**>"); gstbasesrc_class->start = GST_DEBUG_FUNCPTR (gst_phoenixsrc_start); gstbasesrc_class->stop = GST_DEBUG_FUNCPTR (gst_phoenixsrc_stop); gstbasesrc_class->get_caps = GST_DEBUG_FUNCPTR (gst_phoenixsrc_get_caps); gstbasesrc_class->set_caps = GST_DEBUG_FUNCPTR (gst_phoenixsrc_set_caps); gstpushsrc_class->create = GST_DEBUG_FUNCPTR (gst_phoenixsrc_create); /* Install GObject properties */ g_object_class_install_property (gobject_class, PROP_CAMERA_CONFIG_FILEPATH, g_param_spec_string ("config-file", "Config file", "Camera configuration filepath", DEFAULT_PROP_CAMERA_CONFIG_FILEPATH, (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); g_object_class_install_property (gobject_class, PROP_NUM_CAPTURE_BUFFERS, g_param_spec_uint ("num-capture-buffers", "Number of capture buffers", "Number of capture buffers", 1, G_MAXUINT, DEFAULT_PROP_NUM_CAPTURE_BUFFERS, (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); g_object_class_install_property (gobject_class, PROP_BOARD, g_param_spec_uint ("board", "Board", "Board number (0 for auto)", 0, 7, DEFAULT_PROP_BOARD, (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); g_object_class_install_property (gobject_class, PROP_CHANNEL, g_param_spec_uint ("channel", "Channel", "Channel number (0 for auto)", 0, 2, DEFAULT_PROP_CHANNEL, (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); }
static void gst_rtmp_src_class_init (GstRTMPSrcClass * klass) { GObjectClass *gobject_class; GstElementClass *gstelement_class; GstBaseSrcClass *gstbasesrc_class; GstPushSrcClass *gstpushsrc_class; gobject_class = G_OBJECT_CLASS (klass); gstelement_class = GST_ELEMENT_CLASS (klass); gstbasesrc_class = GST_BASE_SRC_CLASS (klass); gstpushsrc_class = GST_PUSH_SRC_CLASS (klass); gobject_class->finalize = gst_rtmp_src_finalize; gobject_class->set_property = gst_rtmp_src_set_property; gobject_class->get_property = gst_rtmp_src_get_property; /* properties */ g_object_class_install_property (gobject_class, PROP_LOCATION, g_param_spec_string ("location", "RTMP Location", "Location of the RTMP url to read", DEFAULT_LOCATION, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); gst_element_class_add_pad_template (gstelement_class, gst_static_pad_template_get (&srctemplate)); gst_element_class_set_static_metadata (gstelement_class, "RTMP Source", "Source/File", "Read RTMP streams", "Bastien Nocera <*****@*****.**>, " "Sebastian Dröge <*****@*****.**>"); gstbasesrc_class->start = GST_DEBUG_FUNCPTR (gst_rtmp_src_start); gstbasesrc_class->stop = GST_DEBUG_FUNCPTR (gst_rtmp_src_stop); gstbasesrc_class->unlock = GST_DEBUG_FUNCPTR (gst_rtmp_src_unlock); gstbasesrc_class->is_seekable = GST_DEBUG_FUNCPTR (gst_rtmp_src_is_seekable); gstbasesrc_class->prepare_seek_segment = GST_DEBUG_FUNCPTR (gst_rtmp_src_prepare_seek_segment); gstbasesrc_class->do_seek = GST_DEBUG_FUNCPTR (gst_rtmp_src_do_seek); gstpushsrc_class->create = GST_DEBUG_FUNCPTR (gst_rtmp_src_create); gstbasesrc_class->query = GST_DEBUG_FUNCPTR (gst_rtmp_src_query); GST_DEBUG_CATEGORY_INIT (rtmpsrc_debug, "rtmpsrc", 0, "RTMP Source"); }
static void gst_codec_src_class_init (GstCodecSrcClass * klass) { GstPushSrcClass *pushsrc_class = GST_PUSH_SRC_CLASS (klass); GstBaseSrcClass *basesrc_class = GST_BASE_SRC_CLASS (klass); static GstStaticPadTemplate src_templ = GST_STATIC_PAD_TEMPLATE ("src", GST_PAD_SRC, GST_PAD_ALWAYS, GST_STATIC_CAPS ("application/x-codec") ); GstElementClass *element_class = GST_ELEMENT_CLASS (klass); gst_element_class_add_static_pad_template (element_class, &src_templ); gst_element_class_set_metadata (element_class, "Codec Src", "Source/Video", "yep", "me"); pushsrc_class->create = gst_codec_src_create; basesrc_class->get_caps = gst_codec_src_get_caps; }
static void gst_red_video_src_class_init (GstRedVideoSrcClass * klass) { GstPushSrcClass *pushsrc_class = GST_PUSH_SRC_CLASS (klass); GstBaseSrcClass *basesrc_class = GST_BASE_SRC_CLASS (klass); static GstStaticPadTemplate src_templ = GST_STATIC_PAD_TEMPLATE ("src", GST_PAD_SRC, GST_PAD_ALWAYS, GST_STATIC_CAPS ("video/x-raw, format=(string)I420") ); GstElementClass *element_class = GST_ELEMENT_CLASS (klass); gst_element_class_add_static_pad_template (element_class, &src_templ); gst_element_class_set_metadata (element_class, "Red Video Src", "Source/Video", "yep", "me"); pushsrc_class->create = gst_red_video_src_create; basesrc_class->get_caps = gst_red_video_src_get_caps; }
static void gst_cel_video_src_class_init (GstCelVideoSrcClass * klass) { GObjectClass *gobject_class = G_OBJECT_CLASS (klass); GstElementClass *gstelement_class = GST_ELEMENT_CLASS (klass); GstBaseSrcClass *gstbasesrc_class = GST_BASE_SRC_CLASS (klass); GstPushSrcClass *gstpushsrc_class = GST_PUSH_SRC_CLASS (klass); gobject_class->dispose = gst_cel_video_src_dispose; gobject_class->finalize = gst_cel_video_src_finalize; gobject_class->get_property = gst_cel_video_src_get_property; gobject_class->set_property = gst_cel_video_src_set_property; gstelement_class->change_state = gst_cel_video_src_change_state; gstbasesrc_class->get_caps = gst_cel_video_src_get_caps; gstbasesrc_class->set_caps = gst_cel_video_src_set_caps; gstbasesrc_class->start = gst_cel_video_src_start; gstbasesrc_class->stop = gst_cel_video_src_stop; gstbasesrc_class->query = gst_cel_video_src_query; gstbasesrc_class->unlock = gst_cel_video_src_unlock; gstbasesrc_class->unlock_stop = gst_cel_video_src_unlock_stop; gstpushsrc_class->create = gst_cel_video_src_create; g_object_class_install_property (gobject_class, PROP_DEVICE_INDEX, g_param_spec_int ("device-index", "Device Index", "The zero-based device index", -1, G_MAXINT, DEFAULT_DEVICE_INDEX, G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (gobject_class, PROP_DO_STATS, g_param_spec_boolean ("do-stats", "Enable statistics", "Enable logging of statistics", DEFAULT_DO_STATS, G_PARAM_CONSTRUCT | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (gobject_class, PROP_FPS, g_param_spec_int ("fps", "Frames per second", "Last measured framerate, if statistics are enabled", -1, G_MAXINT, -1, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); GST_DEBUG_CATEGORY_INIT (gst_cel_video_src_debug, "celvideosrc", 0, "iOS Celestial video source"); }
static void shell_recorder_src_class_init (ShellRecorderSrcClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); GstElementClass *element_class = GST_ELEMENT_CLASS (klass); GstPushSrcClass *push_src_class = GST_PUSH_SRC_CLASS (klass); static GstStaticPadTemplate src_template = GST_STATIC_PAD_TEMPLATE ("src", GST_PAD_SRC, GST_PAD_ALWAYS, GST_STATIC_CAPS_ANY); object_class->finalize = shell_recorder_src_finalize; object_class->set_property = shell_recorder_src_set_property; object_class->get_property = shell_recorder_src_get_property; push_src_class->create = shell_recorder_src_create; g_object_class_install_property (object_class, PROP_CAPS, g_param_spec_boxed ("caps", "Caps", "Fixed GstCaps for the source", GST_TYPE_CAPS, G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_MEMORY_USED, g_param_spec_uint ("memory-used", "Memory Used", "Memory currently used by the queue (in kB)", 0, G_MAXUINT, 0, G_PARAM_READABLE)); gst_element_class_add_pad_template (element_class, gst_static_pad_template_get (&src_template)); gst_element_class_set_details_simple (element_class, "ShellRecorderSrc", "Generic/Src", "Feed screen capture data to a pipeline", "Owen Taylor <*****@*****.**>"); }
static void gst_fd_src_class_init (GstFdSrcClass * klass) { GObjectClass *gobject_class; GstBaseSrcClass *gstbasesrc_class; GstPushSrcClass *gstpush_src_class; gobject_class = G_OBJECT_CLASS (klass); gstbasesrc_class = GST_BASE_SRC_CLASS (klass); gstpush_src_class = GST_PUSH_SRC_CLASS (klass); gobject_class->set_property = gst_fd_src_set_property; gobject_class->get_property = gst_fd_src_get_property; gobject_class->dispose = gst_fd_src_dispose; g_object_class_install_property (gobject_class, PROP_FD, g_param_spec_int ("fd", "fd", "An open file descriptor to read from", 0, G_MAXINT, DEFAULT_FD, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); /** * GstFdSrc:timeout * * Post a message after timeout microseconds * * Since: 0.10.21 */ g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_TIMEOUT, g_param_spec_uint64 ("timeout", "Timeout", "Post a message after timeout microseconds (0 = disabled)", 0, G_MAXUINT64, DEFAULT_TIMEOUT, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); gstbasesrc_class->start = GST_DEBUG_FUNCPTR (gst_fd_src_start); gstbasesrc_class->stop = GST_DEBUG_FUNCPTR (gst_fd_src_stop); gstbasesrc_class->unlock = GST_DEBUG_FUNCPTR (gst_fd_src_unlock); gstbasesrc_class->unlock_stop = GST_DEBUG_FUNCPTR (gst_fd_src_unlock_stop); gstbasesrc_class->is_seekable = GST_DEBUG_FUNCPTR (gst_fd_src_is_seekable); gstbasesrc_class->get_size = GST_DEBUG_FUNCPTR (gst_fd_src_get_size); gstbasesrc_class->do_seek = GST_DEBUG_FUNCPTR (gst_fd_src_do_seek); gstbasesrc_class->query = GST_DEBUG_FUNCPTR (gst_fd_src_query); gstpush_src_class->create = GST_DEBUG_FUNCPTR (gst_fd_src_create); }
static void gst_mio_video_src_class_init (GstMIOVideoSrcClass * klass) { GObjectClass *gobject_class = G_OBJECT_CLASS (klass); GstElementClass *gstelement_class = GST_ELEMENT_CLASS (klass); GstBaseSrcClass *gstbasesrc_class = GST_BASE_SRC_CLASS (klass); GstPushSrcClass *gstpushsrc_class = GST_PUSH_SRC_CLASS (klass); gobject_class->finalize = gst_mio_video_src_finalize; gobject_class->get_property = gst_mio_video_src_get_property; gobject_class->set_property = gst_mio_video_src_set_property; gstelement_class->change_state = gst_mio_video_src_change_state; gstbasesrc_class->get_caps = gst_mio_video_src_get_caps; gstbasesrc_class->set_caps = gst_mio_video_src_set_caps; gstbasesrc_class->start = gst_mio_video_src_start; gstbasesrc_class->stop = gst_mio_video_src_stop; gstbasesrc_class->query = gst_mio_video_src_query; gstbasesrc_class->unlock = gst_mio_video_src_unlock; gstbasesrc_class->unlock_stop = gst_mio_video_src_unlock_stop; gstpushsrc_class->create = gst_mio_video_src_create; g_object_class_install_property (gobject_class, PROP_DEVICE_UID, g_param_spec_string ("device-uid", "Device UID", "Unique ID of the desired device", NULL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (gobject_class, PROP_DEVICE_NAME, g_param_spec_string ("device-name", "Device Name", "Name of the desired device", NULL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (gobject_class, PROP_DEVICE_INDEX, g_param_spec_int ("device-index", "Device Index", "Zero-based device index of the desired device", -1, G_MAXINT, DEFAULT_DEVICE_INDEX, G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS)); GST_DEBUG_CATEGORY_INIT (gst_mio_video_src_debug, "miovideosrc", 0, "Mac OS X CoreMedia video source"); }
static void gst_v4l2src_class_init (GstV4l2SrcClass * klass) { GObjectClass *gobject_class; GstBaseSrcClass *basesrc_class; GstPushSrcClass *pushsrc_class; gobject_class = G_OBJECT_CLASS (klass); basesrc_class = GST_BASE_SRC_CLASS (klass); pushsrc_class = GST_PUSH_SRC_CLASS (klass); gobject_class->dispose = gst_v4l2src_dispose; gobject_class->finalize = (GObjectFinalizeFunc) gst_v4l2src_finalize; gobject_class->set_property = gst_v4l2src_set_property; gobject_class->get_property = gst_v4l2src_get_property; gst_v4l2_object_install_properties_helper (gobject_class); g_object_class_install_property (gobject_class, PROP_QUEUE_SIZE, g_param_spec_uint ("queue-size", "Queue size", "Number of buffers to be enqueud in the driver", GST_V4L2_MIN_BUFFERS, GST_V4L2_MAX_BUFFERS, GST_V4L2_MIN_BUFFERS, G_PARAM_READWRITE)); g_object_class_install_property (gobject_class, PROP_ALWAYS_COPY, g_param_spec_boolean ("always-copy", "Always Copy", "If the buffer will or not be used directly from mmap", DEFAULT_PROP_ALWAYS_COPY, G_PARAM_READWRITE)); basesrc_class->get_caps = GST_DEBUG_FUNCPTR (gst_v4l2src_get_caps); basesrc_class->set_caps = GST_DEBUG_FUNCPTR (gst_v4l2src_set_caps); basesrc_class->start = GST_DEBUG_FUNCPTR (gst_v4l2src_start); basesrc_class->stop = GST_DEBUG_FUNCPTR (gst_v4l2src_stop); basesrc_class->query = GST_DEBUG_FUNCPTR (gst_v4l2src_query); basesrc_class->fixate = GST_DEBUG_FUNCPTR (gst_v4l2src_fixate); basesrc_class->negotiate = GST_DEBUG_FUNCPTR (gst_v4l2src_negotiate); pushsrc_class->create = GST_DEBUG_FUNCPTR (gst_v4l2src_create); }
static void gst_wasapi_src_class_init (GstWasapiSrcClass * klass) { GObjectClass *gobject_class = G_OBJECT_CLASS (klass); GstElementClass *gstelement_class = GST_ELEMENT_CLASS (klass); GstBaseSrcClass *gstbasesrc_class = GST_BASE_SRC_CLASS (klass); GstPushSrcClass *gstpushsrc_class = GST_PUSH_SRC_CLASS (klass); gobject_class->dispose = gst_wasapi_src_dispose; gobject_class->finalize = gst_wasapi_src_finalize; gstelement_class->provide_clock = gst_wasapi_src_provide_clock; gstbasesrc_class->start = gst_wasapi_src_start; gstbasesrc_class->stop = gst_wasapi_src_stop; gstbasesrc_class->query = gst_wasapi_src_query; gstpushsrc_class->create = gst_wasapi_src_create; GST_DEBUG_CATEGORY_INIT (gst_wasapi_src_debug, "wasapisrc", 0, "Windows audio session API source"); }
static void gst_multi_file_src_class_init (GstMultiFileSrcClass * klass) { GObjectClass *gobject_class = G_OBJECT_CLASS (klass); GstPushSrcClass *gstpushsrc_class = GST_PUSH_SRC_CLASS (klass); GstBaseSrcClass *gstbasesrc_class = GST_BASE_SRC_CLASS (klass); gobject_class->set_property = gst_multi_file_src_set_property; gobject_class->get_property = gst_multi_file_src_get_property; g_object_class_install_property (gobject_class, ARG_LOCATION, g_param_spec_string ("location", "File Location", "Pattern to create file names of input files. File names are " "created by calling sprintf() with the pattern and the current " "index.", DEFAULT_LOCATION, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (gobject_class, ARG_INDEX, g_param_spec_int ("index", "File Index", "Index to use with location property to create file names. The " "index is incremented by one for each buffer read.", 0, INT_MAX, DEFAULT_INDEX, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (gobject_class, ARG_CAPS, g_param_spec_boxed ("caps", "Caps", "Caps describing the format of the data.", GST_TYPE_CAPS, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); gobject_class->dispose = gst_multi_file_src_dispose; gstbasesrc_class->get_caps = gst_multi_file_src_getcaps; gstbasesrc_class->query = gst_multi_file_src_query; gstpushsrc_class->create = gst_multi_file_src_create; if (sizeof (off_t) < 8) { GST_LOG ("No large file support, sizeof (off_t) = %" G_GSIZE_FORMAT, sizeof (off_t)); } }
static void ticapturesrc_class_init(GstTICaptureSrcClass *klass) { GObjectClass *gobject_class; GstElementClass *gstelement_class; GstBaseSrcClass *gstbase_src_class; GstPushSrcClass *pushsrc_class; GST_LOG("class_init begin"); gobject_class = G_OBJECT_CLASS(klass); gstelement_class = GST_ELEMENT_CLASS(klass); gstbase_src_class = GST_BASE_SRC_CLASS(klass); pushsrc_class = GST_PUSH_SRC_CLASS (klass); gobject_class->set_property = set_property; gobject_class->get_property = get_property; parent_class = g_type_class_peek_parent (klass); g_object_class_install_property(gobject_class, PROP_DEVICE, g_param_spec_string("device", "Device", "Device location", DEFAULT_DEVICE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property(gobject_class, PROP_NUMBUFS, g_param_spec_int("queue-size", "Video driver queue size", "Number of buffers to be enqueud in the driver in streaming mod", MIN_NUM_BUFS, MAX_NUM_BUFS, DEFAULT_NUM_BUFS, G_PARAM_READWRITE )); g_object_class_install_property(gobject_class, PROP_CAPTURE_INPUT, g_param_spec_string("capture-input", "Capture input name", "Available Capture Input \n" "\t\t\tsvideo\n" "\t\t\tcomposite\n" "\t\t\tcomponent\n" "\t\t\tauto", DEFAULT_CAPTURE_INPUT, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property(gobject_class, PROP_MMAP_BUFFER, g_param_spec_boolean("mmap-buffer", "Driver buffer", "Use driver mapped buffers (i.e mmap) for capture", DEFAULT_MMAP_BUFFER, G_PARAM_READWRITE)); g_object_class_install_property(gobject_class, PROP_DEVICE_FD, g_param_spec_int("device-fd", "File descriptor of the device", "File descriptor of the device" , -1, G_MAXINT, -1, G_PARAM_READABLE )); g_object_class_install_property(gobject_class, PROP_VIDEO_STD, g_param_spec_string("video-standard", "Capture Standard", "Available Display Standard \n" "\t\t\tntsc\n" "\t\t\tpal\n" "\t\t\t480p\n" "\t\t\t720p\n" "\t\t\t1080i\n" "\t\t\t1080p\n" "\t\t\tauto", DEFAULT_VIDEO_STD, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); gstbase_src_class->set_caps = setcaps; gstbase_src_class->start = start; gstbase_src_class->stop = stop; gstbase_src_class->is_seekable = NULL; pushsrc_class->create = create; GST_LOG("class init end"); }
static void gst_ks_video_src_class_init (GstKsVideoSrcClass * klass) { GObjectClass *gobject_class = G_OBJECT_CLASS (klass); GstElementClass *gstelement_class = GST_ELEMENT_CLASS (klass); GstBaseSrcClass *gstbasesrc_class = GST_BASE_SRC_CLASS (klass); GstPushSrcClass *gstpushsrc_class = GST_PUSH_SRC_CLASS (klass); g_type_class_add_private (klass, sizeof (GstKsVideoSrcPrivate)); parent_class = g_type_class_peek_parent (klass); gst_element_class_set_static_metadata (gstelement_class, "KsVideoSrc", "Source/Video", "Stream data from a video capture device through Windows kernel streaming", "Ole André Vadla Ravnås <*****@*****.**>\n" "Haakon Sporsheim <*****@*****.**>\n" "Andres Colubri <*****@*****.**>"); gst_element_class_add_pad_template (gstelement_class, gst_pad_template_new ("src", GST_PAD_SRC, GST_PAD_ALWAYS, ks_video_get_all_caps ())); gobject_class->finalize = gst_ks_video_src_finalize; gobject_class->get_property = gst_ks_video_src_get_property; gobject_class->set_property = gst_ks_video_src_set_property; gstelement_class->change_state = GST_DEBUG_FUNCPTR (gst_ks_video_src_change_state); gstelement_class->set_clock = GST_DEBUG_FUNCPTR (gst_ks_video_src_set_clock); gstbasesrc_class->get_caps = GST_DEBUG_FUNCPTR (gst_ks_video_src_get_caps); gstbasesrc_class->set_caps = GST_DEBUG_FUNCPTR (gst_ks_video_src_set_caps); gstbasesrc_class->fixate = GST_DEBUG_FUNCPTR (gst_ks_video_src_fixate); gstbasesrc_class->query = GST_DEBUG_FUNCPTR (gst_ks_video_src_query); gstbasesrc_class->unlock = GST_DEBUG_FUNCPTR (gst_ks_video_src_unlock); gstbasesrc_class->unlock_stop = GST_DEBUG_FUNCPTR (gst_ks_video_src_unlock_stop); gstpushsrc_class->create = GST_DEBUG_FUNCPTR (gst_ks_video_src_create); g_object_class_install_property (gobject_class, PROP_DEVICE_PATH, g_param_spec_string ("device-path", "Device Path", "The device path", DEFAULT_DEVICE_PATH, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (gobject_class, PROP_DEVICE_NAME, g_param_spec_string ("device-name", "Device Name", "The human-readable device name", DEFAULT_DEVICE_NAME, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (gobject_class, PROP_DEVICE_INDEX, g_param_spec_int ("device-index", "Device Index", "The zero-based device index", -1, G_MAXINT, DEFAULT_DEVICE_INDEX, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (gobject_class, PROP_DO_STATS, g_param_spec_boolean ("do-stats", "Enable statistics", "Enable logging of statistics", DEFAULT_DO_STATS, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (gobject_class, PROP_FPS, g_param_spec_int ("fps", "Frames per second", "Last measured framerate, if statistics are enabled", -1, G_MAXINT, -1, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (gobject_class, PROP_ENABLE_QUIRKS, g_param_spec_boolean ("enable-quirks", "Enable quirks", "Enable driver-specific quirks", DEFAULT_ENABLE_QUIRKS, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); }
static void gst_decklink_audio_src_class_init (GstDecklinkAudioSrcClass * klass) { GObjectClass *gobject_class = G_OBJECT_CLASS (klass); GstElementClass *element_class = GST_ELEMENT_CLASS (klass); GstBaseSrcClass *basesrc_class = GST_BASE_SRC_CLASS (klass); GstPushSrcClass *pushsrc_class = GST_PUSH_SRC_CLASS (klass); gobject_class->set_property = gst_decklink_audio_src_set_property; gobject_class->get_property = gst_decklink_audio_src_get_property; gobject_class->finalize = gst_decklink_audio_src_finalize; element_class->change_state = GST_DEBUG_FUNCPTR (gst_decklink_audio_src_change_state); basesrc_class->get_caps = GST_DEBUG_FUNCPTR (gst_decklink_audio_src_get_caps); basesrc_class->set_caps = GST_DEBUG_FUNCPTR (gst_decklink_audio_src_set_caps); basesrc_class->query = GST_DEBUG_FUNCPTR (gst_decklink_audio_src_query); basesrc_class->unlock = GST_DEBUG_FUNCPTR (gst_decklink_audio_src_unlock); basesrc_class->unlock_stop = GST_DEBUG_FUNCPTR (gst_decklink_audio_src_unlock_stop); pushsrc_class->create = GST_DEBUG_FUNCPTR (gst_decklink_audio_src_create); g_object_class_install_property (gobject_class, PROP_CONNECTION, g_param_spec_enum ("connection", "Connection", "Audio input connection to use", GST_TYPE_DECKLINK_AUDIO_CONNECTION, DEFAULT_CONNECTION, (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT))); 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))); g_object_class_install_property (gobject_class, PROP_ALIGNMENT_THRESHOLD, g_param_spec_uint64 ("alignment-threshold", "Alignment Threshold", "Timestamp alignment threshold in nanoseconds", 0, G_MAXUINT64 - 1, DEFAULT_ALIGNMENT_THRESHOLD, (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); g_object_class_install_property (gobject_class, PROP_DISCONT_WAIT, g_param_spec_uint64 ("discont-wait", "Discont Wait", "Window of time in nanoseconds to wait before " "creating a discontinuity", 0, G_MAXUINT64 - 1, DEFAULT_DISCONT_WAIT, (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); g_object_class_install_property (gobject_class, PROP_BUFFER_SIZE, g_param_spec_uint ("buffer-size", "Buffer Size", "Size of internal buffer in number of video frames", 1, G_MAXINT, DEFAULT_BUFFER_SIZE, (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); gst_element_class_add_pad_template (element_class, gst_static_pad_template_get (&sink_template)); gst_element_class_set_static_metadata (element_class, "Decklink Audio Source", "Audio/Src", "Decklink Source", "David Schleef <*****@*****.**>, " "Sebastian Dröge <*****@*****.**>"); GST_DEBUG_CATEGORY_INIT (gst_decklink_audio_src_debug, "decklinkaudiosrc", 0, "debug category for decklinkaudiosrc element"); }
static void gst_v4l2src_class_init (GstV4l2SrcClass * klass) { GObjectClass *gobject_class; GstElementClass *element_class; GstBaseSrcClass *basesrc_class; GstPushSrcClass *pushsrc_class; gobject_class = G_OBJECT_CLASS (klass); element_class = GST_ELEMENT_CLASS (klass); basesrc_class = GST_BASE_SRC_CLASS (klass); pushsrc_class = GST_PUSH_SRC_CLASS (klass); gobject_class->finalize = (GObjectFinalizeFunc) gst_v4l2src_finalize; gobject_class->set_property = gst_v4l2src_set_property; gobject_class->get_property = gst_v4l2src_get_property; element_class->change_state = gst_v4l2src_change_state; gst_v4l2_object_install_properties_helper (gobject_class, DEFAULT_PROP_DEVICE); /** * GstV4l2Src::prepare-format: * @v4l2src: the v4l2src instance * @fd: the file descriptor of the current device * @caps: the caps of the format being set * * This signal gets emitted before calling the v4l2 VIDIOC_S_FMT ioctl * (set format). This allows for any custom configuration of the device to * happen prior to the format being set. * This is mostly useful for UVC H264 encoding cameras which need the H264 * Probe & Commit to happen prior to the normal Probe & Commit. * * Since: 0.10.32 */ gst_v4l2_signals[SIGNAL_PRE_SET_FORMAT] = g_signal_new ("prepare-format", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST, 0, NULL, NULL, NULL, G_TYPE_NONE, 2, G_TYPE_INT, GST_TYPE_CAPS); gst_element_class_set_static_metadata (element_class, "Video (video4linux2) Source", "Source/Video", "Reads frames from a Video4Linux2 device", "Edgard Lima <*****@*****.**>, " "Stefan Kost <*****@*****.**>"); gst_element_class_add_pad_template (element_class, gst_pad_template_new ("src", GST_PAD_SRC, GST_PAD_ALWAYS, gst_v4l2_object_get_all_caps ())); basesrc_class->get_caps = GST_DEBUG_FUNCPTR (gst_v4l2src_get_caps); basesrc_class->set_caps = GST_DEBUG_FUNCPTR (gst_v4l2src_set_caps); basesrc_class->start = GST_DEBUG_FUNCPTR (gst_v4l2src_start); basesrc_class->unlock = GST_DEBUG_FUNCPTR (gst_v4l2src_unlock); basesrc_class->unlock_stop = GST_DEBUG_FUNCPTR (gst_v4l2src_unlock_stop); basesrc_class->stop = GST_DEBUG_FUNCPTR (gst_v4l2src_stop); basesrc_class->query = GST_DEBUG_FUNCPTR (gst_v4l2src_query); basesrc_class->fixate = GST_DEBUG_FUNCPTR (gst_v4l2src_fixate); basesrc_class->negotiate = GST_DEBUG_FUNCPTR (gst_v4l2src_negotiate); basesrc_class->decide_allocation = GST_DEBUG_FUNCPTR (gst_v4l2src_decide_allocation); pushsrc_class->create = GST_DEBUG_FUNCPTR (gst_v4l2src_create); klass->v4l2_class_devices = NULL; GST_DEBUG_CATEGORY_INIT (v4l2src_debug, "v4l2src", 0, "V4L2 source element"); }
static void gst_decklink_video_src_class_init (GstDecklinkVideoSrcClass * klass) { GObjectClass *gobject_class = G_OBJECT_CLASS (klass); GstElementClass *element_class = GST_ELEMENT_CLASS (klass); GstBaseSrcClass *basesrc_class = GST_BASE_SRC_CLASS (klass); GstPushSrcClass *pushsrc_class = GST_PUSH_SRC_CLASS (klass); GstCaps *templ_caps; gobject_class->set_property = gst_decklink_video_src_set_property; gobject_class->get_property = gst_decklink_video_src_get_property; gobject_class->finalize = gst_decklink_video_src_finalize; element_class->change_state = GST_DEBUG_FUNCPTR (gst_decklink_video_src_change_state); element_class->provide_clock = GST_DEBUG_FUNCPTR (gst_decklink_video_src_provide_clock); basesrc_class->get_caps = GST_DEBUG_FUNCPTR (gst_decklink_video_src_get_caps); basesrc_class->set_caps = GST_DEBUG_FUNCPTR (gst_decklink_video_src_set_caps); basesrc_class->query = GST_DEBUG_FUNCPTR (gst_decklink_video_src_query); basesrc_class->unlock = GST_DEBUG_FUNCPTR (gst_decklink_video_src_unlock); basesrc_class->unlock_stop = GST_DEBUG_FUNCPTR (gst_decklink_video_src_unlock_stop); pushsrc_class->create = GST_DEBUG_FUNCPTR (gst_decklink_video_src_create); g_object_class_install_property (gobject_class, PROP_MODE, g_param_spec_enum ("mode", "Playback Mode", "Video Mode to use for playback", GST_TYPE_DECKLINK_MODE, DEFAULT_MODE, (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT))); g_object_class_install_property (gobject_class, PROP_CONNECTION, g_param_spec_enum ("connection", "Connection", "Video input connection to use", GST_TYPE_DECKLINK_CONNECTION, DEFAULT_CONNECTION, (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT))); 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))); g_object_class_install_property (gobject_class, PROP_BUFFER_SIZE, g_param_spec_uint ("buffer-size", "Buffer Size", "Size of internal buffer in number of video frames", 1, G_MAXINT, DEFAULT_BUFFER_SIZE, (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); g_object_class_install_property (gobject_class, PROP_VIDEO_FORMAT, g_param_spec_enum ("video-format", "Video format", "Video format type to use for input (Only use auto for mode=auto)", GST_TYPE_DECKLINK_VIDEO_FORMAT, GST_DECKLINK_VIDEO_FORMAT_AUTO, (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT))); g_object_class_install_property (gobject_class, PROP_TIMECODE_FORMAT, g_param_spec_enum ("timecode-format", "Timecode format", "Timecode format type to use for input", GST_TYPE_DECKLINK_TIMECODE_FORMAT, GST_DECKLINK_TIMECODE_FORMAT_RP188ANY, (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT))); templ_caps = gst_decklink_mode_get_template_caps (); gst_element_class_add_pad_template (element_class, gst_pad_template_new ("src", GST_PAD_SRC, GST_PAD_ALWAYS, templ_caps)); gst_caps_unref (templ_caps); gst_element_class_set_static_metadata (element_class, "Decklink Video Source", "Video/Src", "Decklink Source", "David Schleef <*****@*****.**>, " "Sebastian Dröge <*****@*****.**>"); GST_DEBUG_CATEGORY_INIT (gst_decklink_video_src_debug, "decklinkvideosrc", 0, "debug category for decklinkvideosrc element"); }
static void gst_aravis_class_init (GstAravisClass * klass) { GObjectClass *gobject_class = G_OBJECT_CLASS (klass); GstBaseSrcClass *gstbasesrc_class = GST_BASE_SRC_CLASS (klass); GstPushSrcClass *gstpushsrc_class = GST_PUSH_SRC_CLASS (klass); gobject_class->finalize = gst_aravis_finalize; gobject_class->set_property = gst_aravis_set_property; gobject_class->get_property = gst_aravis_get_property; g_object_class_install_property (gobject_class, PROP_CAMERA_NAME, g_param_spec_string ("camera-name", "Camera name", "Name of the camera", NULL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (gobject_class, PROP_CAMERA, g_param_spec_object ("camera", "Camera Object", "Camera instance to retrieve additional information", ARV_TYPE_CAMERA, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (gobject_class, PROP_GAIN, g_param_spec_double ("gain", "Gain", "Gain (dB)", -1.0, 500.0, 0.0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (gobject_class, PROP_GAIN_AUTO, g_param_spec_boolean ("gain-auto", "Auto Gain", "Auto Gain Mode", TRUE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (gobject_class, PROP_EXPOSURE, g_param_spec_double ("exposure", "Exposure", "Exposure time (µs)", -1, 100000000.0, 500.0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (gobject_class, PROP_EXPOSURE_AUTO, g_param_spec_boolean ("exposure-auto", "Auto Exposure", "Auto Exposure Mode", TRUE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (gobject_class, PROP_OFFSET_X, g_param_spec_int ("offset-x", "x Offset", "Offset in x direction", 0, G_MAXINT, 0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (gobject_class, PROP_OFFSET_Y, g_param_spec_int ("offset-y", "y Offset", "Offset in y direction", 0, G_MAXINT, 0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (gobject_class, PROP_H_BINNING, g_param_spec_int ("h-binning", "Horizontal binning", "CCD horizontal binning", 1, G_MAXINT, 1, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (gobject_class, PROP_V_BINNING, g_param_spec_int ("v-binning", "Vertical binning", "CCD vertical binning", 1, G_MAXINT, 1, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (gobject_class, PROP_GAIN_AUTO, g_param_spec_boolean ("packet-resend", "Packet Resend", "Request dropped packets to be reissued by the camera", TRUE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); GST_DEBUG_CATEGORY_INIT (aravis_debug, "aravissrc", 0, "Aravis interface"); gstbasesrc_class->get_caps = gst_aravis_get_caps; gstbasesrc_class->set_caps = gst_aravis_set_caps; gstbasesrc_class->start = gst_aravis_start; gstbasesrc_class->stop = gst_aravis_stop; gstbasesrc_class->get_times = gst_aravis_get_times; gstpushsrc_class->create = gst_aravis_create; }