本文整理汇总了C++中GST_BASE_TRANSFORM函数的典型用法代码示例。如果您正苦于以下问题:C++ GST_BASE_TRANSFORM函数的具体用法?C++ GST_BASE_TRANSFORM怎么用?C++ GST_BASE_TRANSFORM使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了GST_BASE_TRANSFORM函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: gst_cv_laplace_init
static void
gst_cv_laplace_init (GstCvLaplace * filter)
{
filter->aperture_size = DEFAULT_APERTURE_SIZE;
gst_base_transform_set_in_place (GST_BASE_TRANSFORM (filter), FALSE);
}
示例2: gst_alpha_color_init
static void
gst_alpha_color_init (GstAlphaColor * alpha)
{
GstBaseTransform *btrans = GST_BASE_TRANSFORM (alpha);
gst_base_transform_set_in_place (btrans, TRUE);
}
示例3: gst_opencv_video_filter_set_in_place
void
gst_opencv_video_filter_set_in_place (GstOpencvVideoFilter * transform,
gboolean ip)
{
transform->in_place = ip;
gst_base_transform_set_in_place (GST_BASE_TRANSFORM (transform), ip);
}
示例4: gst_navseek_seek
static void
gst_navseek_seek (GstNavSeek * navseek, gint64 offset)
{
GstFormat peer_format = GST_FORMAT_TIME;
gboolean ret;
GstPad *peer_pad;
gint64 peer_value;
/* Query for the current time then attempt to set to time + offset */
peer_pad = gst_pad_get_peer (GST_BASE_TRANSFORM (navseek)->sinkpad);
ret = gst_pad_query_position (peer_pad, &peer_format, &peer_value);
if (ret && peer_format == GST_FORMAT_TIME) {
GstEvent *event;
peer_value += offset;
if (peer_value < 0)
peer_value = 0;
event = gst_event_new_seek (1.0, GST_FORMAT_TIME,
GST_SEEK_FLAG_ACCURATE | GST_SEEK_FLAG_FLUSH,
GST_SEEK_TYPE_SET, peer_value, GST_SEEK_TYPE_NONE, GST_CLOCK_TIME_NONE);
gst_pad_send_event (peer_pad, event);
}
gst_object_unref (peer_pad);
}
示例5: gst_video_filter2_init
static void
gst_video_filter2_init (GstVideoFilter2 * videofilter2,
GstVideoFilter2Class * videofilter2_class)
{
gst_base_transform_set_qos_enabled (GST_BASE_TRANSFORM (videofilter2), TRUE);
}
示例6: gst_caps_setter_set_property
static void
gst_caps_setter_set_property (GObject * object, guint prop_id,
const GValue * value, GParamSpec * pspec)
{
GstCapsSetter *filter;
g_return_if_fail (GST_IS_CAPS_SETTER (object));
filter = GST_CAPS_SETTER (object);
switch (prop_id) {
case PROP_CAPS:{
GstCaps *new_caps;
const GstCaps *new_caps_val = gst_value_get_caps (value);
gint i;
if (new_caps_val == NULL) {
new_caps = gst_caps_new_any ();
} else {
new_caps = gst_caps_copy (new_caps_val);
}
for (i = 0; new_caps && (i < gst_caps_get_size (new_caps)); ++i) {
GstStructure *s;
s = gst_caps_get_structure (new_caps, i);
if (!gst_structure_foreach (s, gst_caps_is_fixed_foreach, NULL)) {
GST_ERROR_OBJECT (filter, "rejected unfixed caps: %" GST_PTR_FORMAT,
new_caps);
gst_caps_unref (new_caps);
new_caps = NULL;
break;
}
}
if (new_caps) {
GST_OBJECT_LOCK (filter);
gst_caps_replace (&filter->caps, new_caps);
/* drop extra ref */
gst_caps_unref (new_caps);
GST_OBJECT_UNLOCK (filter);
GST_DEBUG_OBJECT (filter, "set new caps %" GST_PTR_FORMAT, new_caps);
}
/* try to activate these new caps next time around */
gst_base_transform_reconfigure (GST_BASE_TRANSFORM (filter));
break;
}
case PROP_JOIN:
filter->join = g_value_get_boolean (value);
break;
case PROP_REPLACE:
filter->replace = g_value_get_boolean (value);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
}
}
示例7: gst_pixbufscale_set_info
static gboolean
gst_pixbufscale_set_info (GstVideoFilter * filter, GstCaps * in,
GstVideoInfo * in_info, GstCaps * out, GstVideoInfo * out_info)
{
if (in_info->width == out_info->width && in_info->height == out_info->height) {
gst_base_transform_set_passthrough (GST_BASE_TRANSFORM (filter), TRUE);
} else {
gst_base_transform_set_passthrough (GST_BASE_TRANSFORM (filter), FALSE);
}
GST_DEBUG_OBJECT (filter, "from=%dx%d, size %" G_GSIZE_FORMAT
" -> to=%dx%d, size %" G_GSIZE_FORMAT,
in_info->width, in_info->height, in_info->size,
out_info->width, out_info->height, out_info->size);
return TRUE;
}
示例8: gst_capsfilter_init
static void
gst_capsfilter_init (GstCapsFilter * filter)
{
GstBaseTransform *trans = GST_BASE_TRANSFORM (filter);
gst_base_transform_set_gap_aware (trans, TRUE);
gst_base_transform_set_prefer_passthrough (trans, FALSE);
filter->filter_caps = gst_caps_new_any ();
}
示例9: gst_skin_detect_init
/* initialize the new element
* instantiate pads and add them to element
* set pad calback functions
* initialize instance structure
*/
static void
gst_skin_detect_init (GstSkinDetect * filter)
{
filter->postprocess = TRUE;
filter->method = HSV;
gst_base_transform_set_in_place (GST_BASE_TRANSFORM (filter), FALSE);
}
示例10: gst_tidmaiaccel_init
/******************************************************************************
* gst_tidmaiaccel_init
*****************************************************************************/
static void gst_tidmaiaccel_init (GstTIDmaiaccel *dmaiaccel)
{
gst_base_transform_set_qos_enabled (GST_BASE_TRANSFORM (dmaiaccel), TRUE);
dmaiaccel->colorSpace = ColorSpace_NOTSET;
dmaiaccel->width = 0;
dmaiaccel->height = 0;
dmaiaccel->bufTabAllocated = FALSE;
}
示例11: gst_audio_fx_base_fir_filter_query
static gboolean
gst_audio_fx_base_fir_filter_query (GstPad * pad, GstQuery * query)
{
GstAudioFXBaseFIRFilter *self =
GST_AUDIO_FX_BASE_FIR_FILTER (gst_pad_get_parent (pad));
gboolean res = TRUE;
switch (GST_QUERY_TYPE (query)) {
case GST_QUERY_LATENCY:
{
GstClockTime min, max;
gboolean live;
guint64 latency;
GstPad *peer;
gint rate = GST_AUDIO_FILTER (self)->format.rate;
if (rate == 0) {
res = FALSE;
} else if ((peer = gst_pad_get_peer (GST_BASE_TRANSFORM (self)->sinkpad))) {
if ((res = gst_pad_query (peer, query))) {
gst_query_parse_latency (query, &live, &min, &max);
GST_DEBUG_OBJECT (self, "Peer latency: min %"
GST_TIME_FORMAT " max %" GST_TIME_FORMAT,
GST_TIME_ARGS (min), GST_TIME_ARGS (max));
if (self->fft && !self->low_latency)
latency = self->block_length - self->kernel_length + 1;
else
latency = self->latency;
/* add our own latency */
latency = gst_util_uint64_scale_round (latency, GST_SECOND, rate);
GST_DEBUG_OBJECT (self, "Our latency: %"
GST_TIME_FORMAT, GST_TIME_ARGS (latency));
min += latency;
if (max != GST_CLOCK_TIME_NONE)
max += latency;
GST_DEBUG_OBJECT (self, "Calculated total latency : min %"
GST_TIME_FORMAT " max %" GST_TIME_FORMAT,
GST_TIME_ARGS (min), GST_TIME_ARGS (max));
gst_query_set_latency (query, live, min, max);
}
gst_object_unref (peer);
}
break;
}
default:
res = gst_pad_query_default (pad, query);
break;
}
gst_object_unref (self);
return res;
}
示例12: gst_alpha_color_init
static void
gst_alpha_color_init (GstMillColor * mc, GstMillColorClass * g_class)
{
GstBaseTransform *btrans = NULL;
btrans = GST_BASE_TRANSFORM (mc);
btrans->always_in_place = TRUE;
}
示例13: toggle_passthrough
static void
toggle_passthrough (gpointer data, gpointer user_data)
{
GstBaseTransform *basetrans = GST_BASE_TRANSFORM (user_data);
gst_base_transform_set_passthrough (basetrans, TRUE);
g_thread_yield ();
gst_base_transform_set_passthrough (basetrans, FALSE);
}
示例14: gst_cv_smooth_change_type
static void
gst_cv_smooth_change_type (GstCvSmooth * filter, gint value)
{
GST_DEBUG_OBJECT (filter, "Changing type from %d to %d", filter->type, value);
if (filter->type == value)
return;
filter->type = value;
switch (value) {
case CV_GAUSSIAN:
case CV_BLUR:
gst_base_transform_set_in_place (GST_BASE_TRANSFORM (filter), TRUE);
break;
default:
gst_base_transform_set_in_place (GST_BASE_TRANSFORM (filter), FALSE);
break;
}
}
示例15: gst_cv_sobel_init
static void
gst_cv_sobel_init (GstCvSobel * filter)
{
filter->x_order = DEFAULT_X_ORDER;
filter->y_order = DEFAULT_Y_ORDER;
filter->aperture_size = DEFAULT_APERTURE_SIZE;
gst_base_transform_set_in_place (GST_BASE_TRANSFORM (filter), FALSE);
}