diff options
author | Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com> | 2009-08-19 22:23:17 +0200 |
---|---|---|
committer | Jan Schmidt <thaytan@noraisin.net> | 2009-09-16 10:25:46 +0100 |
commit | ba69dd474719cf2408a2ad9416271dbcf5ccfdd1 (patch) | |
tree | aaad1bcdc0cdff97b835aa5a5574f2a222e24c8c /sys | |
parent | 13075eb07edf7c97032e37bdde5500f116bc1fe7 (diff) | |
download | gstreamer-plugins-bad-ba69dd474719cf2408a2ad9416271dbcf5ccfdd1.tar.gz |
vdpauvideopostprocess: add inverse-telecine property
Diffstat (limited to 'sys')
-rw-r--r-- | sys/vdpau/gstvdpvideopostprocess.c | 23 | ||||
-rw-r--r-- | sys/vdpau/gstvdpvideopostprocess.h | 1 |
2 files changed, 23 insertions, 1 deletions
diff --git a/sys/vdpau/gstvdpvideopostprocess.c b/sys/vdpau/gstvdpvideopostprocess.c index fc5431510..6f055c528 100644 --- a/sys/vdpau/gstvdpvideopostprocess.c +++ b/sys/vdpau/gstvdpvideopostprocess.c @@ -68,7 +68,8 @@ enum PROP_DEINTERLACE_MODE, PROP_DEINTERLACE_METHOD, PROP_NOISE_REDUCTION, - PROP_SHARPENING + PROP_SHARPENING, + PROP_INVERSE_TELECINE }; /* the capabilities of the inputs and outputs. @@ -403,6 +404,8 @@ gst_vdp_vpp_create_mixer (GstVdpVideoPostProcess * vpp, GstVdpDevice * device) features[n_features++] = VDP_VIDEO_MIXER_FEATURE_NOISE_REDUCTION; if (vpp->sharpening != 0.0) features[n_features++] = VDP_VIDEO_MIXER_FEATURE_SHARPNESS; + if (vpp->inverse_telecine) + features[n_features++] = VDP_VIDEO_MIXER_FEATURE_INVERSE_TELECINE; status = device->vdp_video_mixer_create (device->device, n_features, features, @@ -858,6 +861,9 @@ gst_vdp_vpp_get_property (GObject * object, guint property_id, GValue * value, case PROP_SHARPENING: g_value_set_float (value, vpp->sharpening); break; + case PROP_INVERSE_TELECINE: + g_value_set_boolean (value, vpp->inverse_telecine); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; @@ -943,6 +949,16 @@ gst_vdp_vpp_set_property (GObject * object, guint property_id, } break; } + case PROP_INVERSE_TELECINE: + { + vpp->inverse_telecine = g_value_get_boolean (value); + + if (vpp->device) { + gst_vdp_vpp_activate_feature (vpp, + VDP_VIDEO_MIXER_FEATURE_INVERSE_TELECINE, vpp->inverse_telecine); + } + break; + } default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; @@ -1010,6 +1026,11 @@ gst_vdp_vpp_class_init (GstVdpVideoPostProcessClass * klass) "The amount of sharpening or blurring to be applied", -1.0, 1.0, 0.0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, PROP_INVERSE_TELECINE, + g_param_spec_boolean ("inverse-telecine", "Inverse telecine", + "Whether inverse telecine should be used", FALSE, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + gstelement_class->change_state = gst_vdp_vpp_change_state; } diff --git a/sys/vdpau/gstvdpvideopostprocess.h b/sys/vdpau/gstvdpvideopostprocess.h index 1eed7aff8..be9ad1b92 100644 --- a/sys/vdpau/gstvdpvideopostprocess.h +++ b/sys/vdpau/gstvdpvideopostprocess.h @@ -84,6 +84,7 @@ struct _GstVdpVideoPostProcess gfloat noise_reduction; gfloat sharpening; + gboolean inverse_telecine; }; struct _GstVdpVideoPostProcessClass |