本文整理汇总了C++中GST_DEBUG_CATEGORY_INIT函数的典型用法代码示例。如果您正苦于以下问题:C++ GST_DEBUG_CATEGORY_INIT函数的具体用法?C++ GST_DEBUG_CATEGORY_INIT怎么用?C++ GST_DEBUG_CATEGORY_INIT使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了GST_DEBUG_CATEGORY_INIT函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: gst_mir_buffer_pool_init
static void
gst_mir_buffer_pool_init (GstMirBufferPool * pool)
{
GST_DEBUG_CATEGORY_INIT (gstmirbufferpool_debug, "mirbufferpool", 0,
" mir buffer pool");
}
示例2: gst_switch_sink_base_init
static void
gst_switch_sink_base_init (gpointer klass)
{
GST_DEBUG_CATEGORY_INIT (switch_debug, "switchsink", 0, "switchsink element");
}
示例3: gst_rtp_pt_demux_class_init
static void
gst_rtp_pt_demux_class_init (GstRtpPtDemuxClass * klass)
{
GObjectClass *gobject_klass;
GstElementClass *gstelement_klass;
gobject_klass = (GObjectClass *) klass;
gstelement_klass = (GstElementClass *) klass;
/**
* GstRtpPtDemux::request-pt-map:
* @demux: the object which received the signal
* @pt: the payload type
*
* Request the payload type as #GstCaps for @pt.
*/
gst_rtp_pt_demux_signals[SIGNAL_REQUEST_PT_MAP] =
g_signal_new ("request-pt-map", G_TYPE_FROM_CLASS (klass),
G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GstRtpPtDemuxClass, request_pt_map),
NULL, NULL, g_cclosure_marshal_generic, GST_TYPE_CAPS, 1, G_TYPE_UINT);
/**
* GstRtpPtDemux::new-payload-type:
* @demux: the object which received the signal
* @pt: the payload type
* @pad: the pad with the new payload
*
* Emited when a new payload type pad has been created in @demux.
*/
gst_rtp_pt_demux_signals[SIGNAL_NEW_PAYLOAD_TYPE] =
g_signal_new ("new-payload-type", G_TYPE_FROM_CLASS (klass),
G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GstRtpPtDemuxClass, new_payload_type),
NULL, NULL, g_cclosure_marshal_generic, G_TYPE_NONE, 2, G_TYPE_UINT,
GST_TYPE_PAD);
/**
* GstRtpPtDemux::payload-type-change:
* @demux: the object which received the signal
* @pt: the new payload type
*
* Emited when the payload type changed.
*/
gst_rtp_pt_demux_signals[SIGNAL_PAYLOAD_TYPE_CHANGE] =
g_signal_new ("payload-type-change", G_TYPE_FROM_CLASS (klass),
G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GstRtpPtDemuxClass,
payload_type_change), NULL, NULL, g_cclosure_marshal_VOID__UINT,
G_TYPE_NONE, 1, G_TYPE_UINT);
/**
* GstRtpPtDemux::clear-pt-map:
* @demux: the object which received the signal
*
* The application can call this signal to instruct the element to discard the
* currently cached payload type map.
*/
gst_rtp_pt_demux_signals[SIGNAL_CLEAR_PT_MAP] =
g_signal_new ("clear-pt-map", G_TYPE_FROM_CLASS (klass),
G_SIGNAL_ACTION | G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GstRtpPtDemuxClass,
clear_pt_map), NULL, NULL, g_cclosure_marshal_VOID__VOID,
G_TYPE_NONE, 0, G_TYPE_NONE);
gobject_klass->finalize = gst_rtp_pt_demux_finalize;
gstelement_klass->change_state =
GST_DEBUG_FUNCPTR (gst_rtp_pt_demux_change_state);
klass->clear_pt_map = GST_DEBUG_FUNCPTR (gst_rtp_pt_demux_clear_pt_map);
gst_element_class_add_pad_template (gstelement_klass,
gst_static_pad_template_get (&rtp_pt_demux_sink_template));
gst_element_class_add_pad_template (gstelement_klass,
gst_static_pad_template_get (&rtp_pt_demux_src_template));
gst_element_class_set_static_metadata (gstelement_klass, "RTP Demux",
"Demux/Network/RTP",
"Parses codec streams transmitted in the same RTP session",
"Kai Vehmanen <[email protected]>");
GST_DEBUG_CATEGORY_INIT (gst_rtp_pt_demux_debug,
"rtpptdemux", 0, "RTP codec demuxer");
}
示例4: gst_egl_adaption_init
void
gst_egl_adaption_init (void)
{
GST_DEBUG_CATEGORY_INIT (egladaption_debug, "egladaption", 0,
"EGL adaption layer");
}
示例5: plugin_init
static gboolean
plugin_init (GstPlugin * plugin)
{
guint i, count;
VisList *list;
GST_DEBUG_CATEGORY_INIT (libvisual_debug, "libvisual", 0,
"libvisual audio visualisations");
#ifdef LIBVISUAL_PLUGINSBASEDIR
gst_plugin_add_dependency_simple (plugin, "HOME/.libvisual/actor",
LIBVISUAL_PLUGINSBASEDIR "/actor", NULL, GST_PLUGIN_DEPENDENCY_FLAG_NONE);
#endif
visual_log_set_verboseness (VISUAL_LOG_VERBOSENESS_LOW);
visual_log_set_info_handler (libvisual_log_handler, (void *) GST_LEVEL_INFO);
visual_log_set_warning_handler (libvisual_log_handler,
(void *) GST_LEVEL_WARNING);
visual_log_set_critical_handler (libvisual_log_handler,
(void *) GST_LEVEL_ERROR);
visual_log_set_error_handler (libvisual_log_handler,
(void *) GST_LEVEL_ERROR);
if (!visual_is_initialized ())
if (visual_init (NULL, NULL) != 0)
return FALSE;
list = visual_actor_get_list ();
count = visual_collection_size (VISUAL_COLLECTION (list));
for (i = 0; i < count; i++) {
VisPluginRef *ref = visual_list_get (list, i);
VisPluginData *visplugin = NULL;
gboolean skip = FALSE;
GType type;
gchar *name;
GTypeInfo info = {
sizeof (GstVisualGLClass),
NULL,
NULL,
gst_visual_gl_class_init,
NULL,
ref,
sizeof (GstVisualGL),
0,
NULL
};
visplugin = visual_plugin_load (ref);
if (ref->info->plugname == NULL)
continue;
/* Blacklist some plugins */
if (strcmp (ref->info->plugname, "gstreamer") == 0 ||
strcmp (ref->info->plugname, "gdkpixbuf") == 0) {
skip = TRUE;
} else {
/* only register plugins that support GL */
skip = !(gst_visual_gl_actor_plugin_is_gl (visplugin->info->plugin,
visplugin->info->plugname));
}
visual_plugin_unload (visplugin);
if (!skip) {
name = g_strdup_printf ("GstVisualGL%s", ref->info->plugname);
make_valid_name (name);
type = g_type_register_static (GST_TYPE_VISUAL_GL, name, &info, 0);
g_free (name);
name = g_strdup_printf ("libvisual_gl_%s", ref->info->plugname);
make_valid_name (name);
if (!gst_element_register (plugin, name, GST_RANK_NONE, type)) {
g_free (name);
return FALSE;
}
g_free (name);
}
}
return TRUE;
}
示例6: GST_DEBUG_CATEGORY_STATIC
#endif
#ifdef G_OS_WIN32
#include <windows.h>
#ifdef X509_NAME
#undef X509_NAME
#endif
#endif
#include <openssl/ssl.h>
GST_DEBUG_CATEGORY_STATIC (gst_dtls_certificate_debug);
#define GST_CAT_DEFAULT gst_dtls_certificate_debug
G_DEFINE_TYPE_WITH_CODE (GstDtlsCertificate, gst_dtls_certificate,
G_TYPE_OBJECT, GST_DEBUG_CATEGORY_INIT (gst_dtls_certificate_debug,
"dtlscertificate", 0, "DTLS Certificate"));
#define GST_DTLS_CERTIFICATE_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE((obj), GST_TYPE_DTLS_CERTIFICATE, GstDtlsCertificatePrivate))
enum
{
PROP_0,
PROP_PEM,
NUM_PROPERTIES
};
static GParamSpec *properties[NUM_PROPERTIES];
#define DEFAULT_PEM NULL
struct _GstDtlsCertificatePrivate
示例7: GST_STATIC_PAD_TEMPLATE
GST_PAD_SINK,
GST_PAD_REQUEST,
GST_STATIC_CAPS_ANY);
static GstStaticPadTemplate src_template = GST_STATIC_PAD_TEMPLATE ("src",
GST_PAD_SRC,
GST_PAD_ALWAYS,
GST_STATIC_CAPS ("application/x-dtls")
);
GST_DEBUG_CATEGORY_STATIC (gst_dtls_enc_debug);
#define GST_CAT_DEFAULT gst_dtls_enc_debug
#define gst_dtls_enc_parent_class parent_class
G_DEFINE_TYPE_WITH_CODE (GstDtlsEnc, gst_dtls_enc, GST_TYPE_ELEMENT,
GST_DEBUG_CATEGORY_INIT (gst_dtls_enc_debug, "dtlsenc", 0, "DTLS Encoder"));
enum
{
SIGNAL_ON_KEY_RECEIVED,
NUM_SIGNALS
};
static guint signals[NUM_SIGNALS];
enum
{
PROP_0,
PROP_CONNECTION_ID,
PROP_IS_CLIENT,
示例8: is_shot_change
static gboolean is_shot_change (int frame_number);
#endif
enum
{
PROP_0
};
#define VIDEO_CAPS \
GST_VIDEO_CAPS_MAKE("{ I420, Y42B, Y41B, Y444 }")
/* class initialization */
G_DEFINE_TYPE_WITH_CODE (GstSceneChange, gst_scene_change,
GST_TYPE_VIDEO_FILTER,
GST_DEBUG_CATEGORY_INIT (gst_scene_change_debug_category, "scenechange", 0,
"debug category for scenechange element"));
static void
gst_scene_change_class_init (GstSceneChangeClass * klass)
{
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)));
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)));
gst_element_class_set_static_metadata (GST_ELEMENT_CLASS (klass),
"Scene change detector",
示例9: gst_jack_audio_client_init
void
gst_jack_audio_client_init (void)
{
GST_DEBUG_CATEGORY_INIT (gst_jack_audio_client_debug, "jackclient", 0,
"jackclient helpers");
}
示例10: G_DEFINE_TYPE_WITH_CODE
struct _KmsRecorderEndpointPrivate
{
GstElement *pipeline;
GstClockTime paused_time;
GstClockTime paused_start;
gboolean use_dvr;
struct state_controller state_manager;
KmsLoop *loop;
KmsConfController *controller;
};
/* class initialization */
G_DEFINE_TYPE_WITH_CODE (KmsRecorderEndpoint, kms_recorder_endpoint,
KMS_TYPE_URI_ENDPOINT,
GST_DEBUG_CATEGORY_INIT (kms_recorder_endpoint_debug_category, PLUGIN_NAME,
0, "debug category for recorderendpoint element"));
static void
destroy_ulong (gpointer data)
{
g_slice_free (gulong, data);
}
static void
send_eos (GstElement * appsrc)
{
GstFlowReturn ret;
GST_DEBUG ("Send EOS to %s", GST_ELEMENT_NAME (appsrc));
g_signal_emit_by_name (appsrc, "end-of-stream", &ret);
示例11: gst_audio_fx_base_fir_filter_class_init
static void
gst_audio_fx_base_fir_filter_class_init (GstAudioFXBaseFIRFilterClass * klass)
{
GObjectClass *gobject_class = (GObjectClass *) klass;
GstBaseTransformClass *trans_class = (GstBaseTransformClass *) klass;
GstAudioFilterClass *filter_class = (GstAudioFilterClass *) klass;
GstCaps *caps;
GST_DEBUG_CATEGORY_INIT (gst_audio_fx_base_fir_filter_debug,
"audiofxbasefirfilter", 0, "FIR filter base class");
gobject_class->finalize = gst_audio_fx_base_fir_filter_finalize;
gobject_class->set_property = gst_audio_fx_base_fir_filter_set_property;
gobject_class->get_property = gst_audio_fx_base_fir_filter_get_property;
/**
* GstAudioFXBaseFIRFilter::low-latency:
*
* Work in low-latency mode. This mode is much slower for large filter sizes
* but the latency is always only the pre-latency of the filter.
*
* Since: 0.10.18
*/
g_object_class_install_property (gobject_class, PROP_LOW_LATENCY,
g_param_spec_boolean ("low-latency", "Low latency",
"Operate in low latency mode. This mode is slower but the "
"latency will only be the filter pre-latency. "
"Can only be changed in states < PAUSED!", DEFAULT_LOW_LATENCY,
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
/**
* GstAudioFXBaseFIRFilter::drain-on-changes:
*
* Whether the filter should be drained when its coeficients change
*
* Note: Currently this only works if the kernel size is not changed!
* Support for drainless kernel size changes will be added in the future.
*
* Since: 0.10.18
*/
g_object_class_install_property (gobject_class, PROP_DRAIN_ON_CHANGES,
g_param_spec_boolean ("drain-on-changes", "Drain on changes",
"Drains the filter when its coeficients change",
DEFAULT_DRAIN_ON_CHANGES,
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
caps = gst_caps_from_string (ALLOWED_CAPS);
gst_audio_filter_class_add_pad_templates (GST_AUDIO_FILTER_CLASS (klass),
caps);
gst_caps_unref (caps);
trans_class->transform =
GST_DEBUG_FUNCPTR (gst_audio_fx_base_fir_filter_transform);
trans_class->start = GST_DEBUG_FUNCPTR (gst_audio_fx_base_fir_filter_start);
trans_class->stop = GST_DEBUG_FUNCPTR (gst_audio_fx_base_fir_filter_stop);
trans_class->sink_event =
GST_DEBUG_FUNCPTR (gst_audio_fx_base_fir_filter_sink_event);
trans_class->query = GST_DEBUG_FUNCPTR (gst_audio_fx_base_fir_filter_query);
trans_class->transform_size =
GST_DEBUG_FUNCPTR (gst_audio_fx_base_fir_filter_transform_size);
filter_class->setup = GST_DEBUG_FUNCPTR (gst_audio_fx_base_fir_filter_setup);
}
示例12: gst_xvidenc_class_init
static void
gst_xvidenc_class_init (GstXvidEncClass * klass)
{
GstElementClass *gstelement_class;
GObjectClass *gobject_class;
GParamSpec *pspec;
gobject_class = G_OBJECT_CLASS (klass);
gstelement_class = GST_ELEMENT_CLASS (klass);
parent_class = g_type_class_peek_parent (klass);
GST_DEBUG_CATEGORY_INIT (xvidenc_debug, "xvidenc", 0, "XviD encoder");
gobject_class->finalize = gst_xvidenc_finalize;
gobject_class->set_property = gst_xvidenc_set_property;
gobject_class->get_property = gst_xvidenc_get_property;
/* prop handling */
xvidenc_prop_count = 0;
xvidenc_pspec_quark = g_quark_from_static_string ("xvid-enc-param-spec-data");
pspec = g_param_spec_enum ("profile", "Profile",
"XviD/MPEG-4 encoding profile",
GST_TYPE_XVIDENC_PROFILE, 0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
gst_xvidenc_add_pspec (gobject_class, pspec, profile);
pspec = g_param_spec_enum ("quant-type", "Quantizer Type",
"Quantizer type", GST_TYPE_XVIDENC_QUANT_TYPE, 0,
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
gst_xvidenc_add_pspec (gobject_class, pspec, quant_type);
pspec = g_param_spec_enum ("pass", "Encoding pass/type",
"Encoding pass/type",
GST_TYPE_XVIDENC_PASS, XVIDENC_CBR,
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
gst_xvidenc_add_pspec (gobject_class, pspec, pass);
pspec = g_param_spec_int ("bitrate", "Bitrate",
"[CBR|PASS2] Target video bitrate (bps)",
0, G_MAXINT, 1800000, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
gst_xvidenc_add_pspec (gobject_class, pspec, bitrate);
pspec = g_param_spec_int ("quantizer", "Quantizer",
"[QUANT] Quantizer to apply for constant quantizer mode",
2, 31, 2, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
gst_xvidenc_add_pspec (gobject_class, pspec, quant);
pspec = g_param_spec_string ("statsfile", "Statistics Filename",
"[PASS1|PASS2] Filename to store data for 2-pass encoding",
"xvid-stats.log", G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
gst_xvidenc_add_pspec (gobject_class, pspec, filename);
pspec = g_param_spec_int ("max-key-interval", "Max. Key Interval",
"Maximum number of frames between two keyframes (< 0 is in sec)",
-100, G_MAXINT, -10, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
gst_xvidenc_add_pspec (gobject_class, pspec, max_key_interval);
pspec = g_param_spec_boolean ("closed-gop", "Closed GOP",
"Closed GOP", FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
gst_xvidenc_add_pspec (gobject_class, pspec, closed_gop);
pspec = g_param_spec_int ("motion", "ME Quality",
"Quality of Motion Estimation", 0, 6, 6,
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
gst_xvidenc_add_pspec (gobject_class, pspec, motion);
pspec = g_param_spec_boolean ("me-chroma", "ME Chroma",
"Enable use of Chroma planes for Motion Estimation",
TRUE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
gst_xvidenc_add_pspec (gobject_class, pspec, me_chroma);
pspec = g_param_spec_int ("me-vhq", "ME DCT/Frequency",
"Extent in which to use DCT to minimize encoding length",
0, 4, 1, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
gst_xvidenc_add_pspec (gobject_class, pspec, me_vhq);
pspec = g_param_spec_boolean ("me-quarterpel", "ME Quarterpel",
"Use quarter pixel precision for motion vector search",
FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
gst_xvidenc_add_pspec (gobject_class, pspec, me_quarterpel);
pspec = g_param_spec_boolean ("lumimasking", "Lumimasking",
"Enable lumimasking - apply more compression to dark or bright areas",
FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
gst_xvidenc_add_pspec (gobject_class, pspec, lumimasking);
pspec = g_param_spec_int ("max-bframes", "Max B-Frames",
"Maximum B-frames in a row", 0, G_MAXINT, 1,
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
gst_xvidenc_add_pspec (gobject_class, pspec, max_bframes);
pspec = g_param_spec_int ("bquant-ratio", "B-quantizer ratio",
"Ratio in B-frame quantizer computation", 0, 200, 150,
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
gst_xvidenc_add_pspec (gobject_class, pspec, bquant_ratio);
pspec = g_param_spec_int ("bquant-offset", "B-quantizer offset",
"Offset in B-frame quantizer computation",
//.........这里部分代码省略.........
示例13: GST_VIDEO_CAPS_MAKE
PROP_THRESHOLD
};
#define DEFAULT_THRESHOLD 90
/* pad templates */
#define VIDEO_CAPS GST_VIDEO_CAPS_MAKE( \
"{ I420, Y444, Y42B, Y41B, YUY2, UYVY, AYUV, NV12, NV21, YV12 }")
/* class initialization */
G_DEFINE_TYPE_WITH_CODE (GstZebraStripe, gst_zebra_stripe,
GST_TYPE_VIDEO_FILTER,
GST_DEBUG_CATEGORY_INIT (gst_zebra_stripe_debug_category, "zebrastripe", 0,
"debug category for zebrastripe element"));
static void
gst_zebra_stripe_class_init (GstZebraStripeClass * klass)
{
GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
GstBaseTransformClass *base_transform_class =
GST_BASE_TRANSFORM_CLASS (klass);
GstVideoFilterClass *video_filter_class = GST_VIDEO_FILTER_CLASS (klass);
/* 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_CAPS)));
gst_element_class_add_pad_template (GST_ELEMENT_CLASS (klass),
示例14: _do_init
static void _do_init(GType datasrc_type)
{
GST_DEBUG_CATEGORY_INIT(webkit_data_src_debug, "webkit_data_src", 0, "datasrc element");
g_type_add_interface_static(datasrc_type, GST_TYPE_URI_HANDLER,
&urihandler_info);
}
示例15: gst_dv1394src_class_init
static void
gst_dv1394src_class_init (GstDV1394SrcClass * klass)
{
GObjectClass *gobject_class;
GstElementClass *gstelement_class;
GstBaseSrcClass *gstbasesrc_class;
GstPushSrcClass *gstpushsrc_class;
gobject_class = (GObjectClass *) klass;
gstelement_class = (GstElementClass *) klass;
gstbasesrc_class = (GstBaseSrcClass *) klass;
gstpushsrc_class = (GstPushSrcClass *) klass;
gobject_class->set_property = gst_dv1394src_set_property;
gobject_class->get_property = gst_dv1394src_get_property;
gobject_class->dispose = gst_dv1394src_dispose;
gstelement_class->provide_clock = gst_dv1394src_provide_clock;
gstelement_class->change_state = gst_dv1394_src_change_state;
gst_dv1394src_signals[SIGNAL_FRAME_DROPPED] =
g_signal_new ("frame-dropped", G_TYPE_FROM_CLASS (klass),
G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GstDV1394SrcClass, frame_dropped),
NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_PORT,
g_param_spec_int ("port", "Port", "Port number (-1 automatic)",
-1, 16, DEFAULT_PORT, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_CHANNEL,
g_param_spec_int ("channel", "Channel", "Channel number for listening",
0, 64, DEFAULT_CHANNEL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_CONSECUTIVE,
g_param_spec_int ("consecutive", "consecutive frames",
"send n consecutive frames after skipping", 1, G_MAXINT,
DEFAULT_CONSECUTIVE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_SKIP,
g_param_spec_int ("skip", "skip frames", "skip n frames",
0, G_MAXINT, DEFAULT_SKIP,
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_DROP_INCOMPLETE,
g_param_spec_boolean ("drop-incomplete", "drop incomplete",
"drop incomplete frames", DEFAULT_DROP_INCOMPLETE,
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_USE_AVC,
g_param_spec_boolean ("use-avc", "Use AV/C", "Use AV/C VTR control",
DEFAULT_USE_AVC, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_GUID,
g_param_spec_uint64 ("guid", "GUID",
"select one of multiple DV devices by its GUID. use a hexadecimal "
"like 0xhhhhhhhhhhhhhhhh. (0 = no guid)", 0, G_MAXUINT64,
DEFAULT_GUID, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
/**
* GstDV1394Src:device-name
*
* Descriptive name of the currently opened device
*
* Since: 0.10.7
**/
g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_DEVICE_NAME,
g_param_spec_string ("device-name", "device name",
"user-friendly name of the device", "Default",
G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
gstbasesrc_class->negotiate = NULL;
gstbasesrc_class->start = gst_dv1394src_start;
gstbasesrc_class->stop = gst_dv1394src_stop;
gstbasesrc_class->unlock = gst_dv1394src_unlock;
gstbasesrc_class->query = gst_dv1394src_query;
gstpushsrc_class->create = gst_dv1394src_create;
gst_element_class_add_pad_template (gstelement_class,
gst_static_pad_template_get (&src_factory));
gst_element_class_set_static_metadata (gstelement_class,
"Firewire (1394) DV video source", "Source/Video",
"Source for DV video data from firewire port",
"Erik Walthinsen <[email protected]>, "
"Daniel Fischer <[email protected]>, " "Wim Taymans <[email protected]>, "
"Zaheer Abbas Merali <zaheerabbas at merali dot org>");
GST_DEBUG_CATEGORY_INIT (dv1394src_debug, "dv1394src", 0,
"DV firewire source");
}