[gst-cvs] gst-plugins-bad: vdpauvidepostprocess: remove boolean noise-reduction property
Jan Schmidt
thaytan at kemper.freedesktop.org
Wed Sep 16 17:39:11 PDT 2009
Module: gst-plugins-bad
Branch: master
Commit: 6705bfa129b2a1b7580fb395da70cab7e322a024
URL: http://cgit.freedesktop.org/gstreamer/gst-plugins-bad/commit/?id=6705bfa129b2a1b7580fb395da70cab7e322a024
Author: Carl-Anton Ingmarsson <ca.ingmarsson at gmail.com>
Date: Sat Jul 4 19:48:42 2009 +0200
vdpauvidepostprocess: remove boolean noise-reduction property
Use the float one to determine if we should enable noise reduction or not
---
sys/vdpau/gstvdpvideopostprocess.c | 47 +++++++++++++-----------------------
sys/vdpau/gstvdpvideopostprocess.h | 3 +-
2 files changed, 18 insertions(+), 32 deletions(-)
diff --git a/sys/vdpau/gstvdpvideopostprocess.c b/sys/vdpau/gstvdpvideopostprocess.c
index 43a2d7f..babdaf4 100644
--- a/sys/vdpau/gstvdpvideopostprocess.c
+++ b/sys/vdpau/gstvdpvideopostprocess.c
@@ -67,8 +67,7 @@ enum
PROP_FORCE_ASPECT_RATIO,
PROP_DEINTERLACE_MODE,
PROP_DEINTERLACE_METHOD,
- PROP_NOISE_REDUCTION,
- PROP_NOISE_REDUCTION_LEVEL
+ PROP_NOISE_REDUCTION
};
/* the capabilities of the inputs and outputs.
@@ -374,7 +373,7 @@ gst_vdp_vpp_create_mixer (GstVdpVideoPostProcess * vpp, GstVdpDevice * device)
features[n_features++] =
gst_vdp_feature_from_deinterlace_method (vpp->method);
}
- if (vpp->noise_reduction)
+ if (vpp->noise_reduction > 0.0)
features[n_features++] = VDP_VIDEO_MIXER_FEATURE_NOISE_REDUCTION;
status =
@@ -390,7 +389,7 @@ gst_vdp_vpp_create_mixer (GstVdpVideoPostProcess * vpp, GstVdpDevice * device)
vpp->device = g_object_ref (device);
- if (vpp->noise_reduction) {
+ if (vpp->noise_reduction > 0.0) {
VdpVideoMixerAttribute attributes[1];
const void *attribute_values[1];
@@ -836,9 +835,6 @@ gst_vdp_vpp_get_property (GObject * object, guint property_id, GValue * value,
case PROP_NOISE_REDUCTION:
g_value_set_boolean (value, vpp->noise_reduction);
break;
- case PROP_NOISE_REDUCTION_LEVEL:
- g_value_set_float (value, vpp->noise_reduction_level);
- break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
break;
@@ -879,31 +875,28 @@ gst_vdp_vpp_set_property (GObject * object, guint property_id,
}
case PROP_NOISE_REDUCTION:
{
- gboolean old_value;
+ gfloat old_value;
old_value = vpp->noise_reduction;
- vpp->noise_reduction = g_value_get_boolean (value);
- if (!vpp->noise_reduction == !old_value)
+ vpp->noise_reduction = g_value_get_float (value);
+ if (vpp->noise_reduction == old_value)
break;
- if (vpp->device)
- gst_vdp_vpp_activate_feature (vpp,
- VDP_VIDEO_MIXER_FEATURE_NOISE_REDUCTION, vpp->noise_reduction);
- break;
- }
- case PROP_NOISE_REDUCTION_LEVEL:
- {
- gfloat noise_reduction;
-
- noise_reduction = g_value_get_float (value);
-
if (vpp->device) {
VdpVideoMixerAttribute attributes[1];
const void *attribute_values[1];
VdpStatus status;
+ if (vpp->noise_reduction == 0.0)
+ gst_vdp_vpp_activate_feature (vpp,
+ VDP_VIDEO_MIXER_FEATURE_NOISE_REDUCTION, FALSE);
+
+ if (old_value == 0.0)
+ gst_vdp_vpp_activate_feature (vpp,
+ VDP_VIDEO_MIXER_FEATURE_NOISE_REDUCTION, TRUE);
+
attributes[0] = VDP_VIDEO_MIXER_ATTRIBUTE_NOISE_REDUCTION_LEVEL;
- attribute_values[0] = &noise_reduction;
+ attribute_values[0] = &vpp->noise_reduction;
status =
vpp->device->vdp_video_mixer_set_attribute_values (vpp->mixer, 1,
@@ -975,12 +968,7 @@ gst_vdp_vpp_class_init (GstVdpVideoPostProcessClass * klass)
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
g_object_class_install_property (gobject_class, PROP_NOISE_REDUCTION,
- g_param_spec_boolean ("noise-reduction", "Noise reduction",
- "Specifies whether noise reduction should be performed on the video",
- FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
-
- g_object_class_install_property (gobject_class, PROP_NOISE_REDUCTION_LEVEL,
- g_param_spec_float ("noise-reduction-level", "Noise reduction level",
+ g_param_spec_float ("noise-reduction", "Noise reduction",
"The amount of noise reduction that should be done", 0.0, 1.0, 0.0,
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
@@ -997,8 +985,7 @@ gst_vdp_vpp_init (GstVdpVideoPostProcess * vpp,
vpp->mode = GST_VDP_DEINTERLACE_MODE_AUTO;
vpp->method = GST_VDP_DEINTERLACE_METHOD_BOB;
- vpp->noise_reduction = FALSE;
- vpp->noise_reduction_level = 0.0;
+ vpp->noise_reduction = 0.0;
/* SRC PAD */
vpp->srcpad = gst_pad_new_from_static_template (&src_template, "src");
diff --git a/sys/vdpau/gstvdpvideopostprocess.h b/sys/vdpau/gstvdpvideopostprocess.h
index 3cba25c..57b9266 100644
--- a/sys/vdpau/gstvdpvideopostprocess.h
+++ b/sys/vdpau/gstvdpvideopostprocess.h
@@ -82,8 +82,7 @@ struct _GstVdpVideoPostProcess
GstVdpDeinterlaceModes mode;
GstVdpDeinterlaceMethods method;
- gboolean noise_reduction;
- gfloat noise_reduction_level;
+ gfloat noise_reduction;
};
struct _GstVdpVideoPostProcessClass
More information about the Gstreamer-commits
mailing list