mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-06-05 06:58:56 +00:00
vdpauvideopostprocess: add inverse-telecine property
This commit is contained in:
parent
13075eb07e
commit
ba69dd4747
2 changed files with 23 additions and 1 deletions
|
@ -68,7 +68,8 @@ enum
|
||||||
PROP_DEINTERLACE_MODE,
|
PROP_DEINTERLACE_MODE,
|
||||||
PROP_DEINTERLACE_METHOD,
|
PROP_DEINTERLACE_METHOD,
|
||||||
PROP_NOISE_REDUCTION,
|
PROP_NOISE_REDUCTION,
|
||||||
PROP_SHARPENING
|
PROP_SHARPENING,
|
||||||
|
PROP_INVERSE_TELECINE
|
||||||
};
|
};
|
||||||
|
|
||||||
/* the capabilities of the inputs and outputs.
|
/* 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;
|
features[n_features++] = VDP_VIDEO_MIXER_FEATURE_NOISE_REDUCTION;
|
||||||
if (vpp->sharpening != 0.0)
|
if (vpp->sharpening != 0.0)
|
||||||
features[n_features++] = VDP_VIDEO_MIXER_FEATURE_SHARPNESS;
|
features[n_features++] = VDP_VIDEO_MIXER_FEATURE_SHARPNESS;
|
||||||
|
if (vpp->inverse_telecine)
|
||||||
|
features[n_features++] = VDP_VIDEO_MIXER_FEATURE_INVERSE_TELECINE;
|
||||||
|
|
||||||
status =
|
status =
|
||||||
device->vdp_video_mixer_create (device->device, n_features, features,
|
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:
|
case PROP_SHARPENING:
|
||||||
g_value_set_float (value, vpp->sharpening);
|
g_value_set_float (value, vpp->sharpening);
|
||||||
break;
|
break;
|
||||||
|
case PROP_INVERSE_TELECINE:
|
||||||
|
g_value_set_boolean (value, vpp->inverse_telecine);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
|
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
|
||||||
break;
|
break;
|
||||||
|
@ -943,6 +949,16 @@ gst_vdp_vpp_set_property (GObject * object, guint property_id,
|
||||||
}
|
}
|
||||||
break;
|
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:
|
default:
|
||||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
|
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
|
||||||
break;
|
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,
|
"The amount of sharpening or blurring to be applied", -1.0, 1.0, 0.0,
|
||||||
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
|
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;
|
gstelement_class->change_state = gst_vdp_vpp_change_state;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -84,6 +84,7 @@ struct _GstVdpVideoPostProcess
|
||||||
|
|
||||||
gfloat noise_reduction;
|
gfloat noise_reduction;
|
||||||
gfloat sharpening;
|
gfloat sharpening;
|
||||||
|
gboolean inverse_telecine;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct _GstVdpVideoPostProcessClass
|
struct _GstVdpVideoPostProcessClass
|
||||||
|
|
Loading…
Reference in a new issue