diff options
author | Hyunjun Ko <zzoon@igalia.com> | 2017-07-12 18:25:15 +0900 |
---|---|---|
committer | Víctor Manuel Jáquez Leal <vjaquez@igalia.com> | 2017-07-18 17:17:11 +0200 |
commit | 8a04f390c8b71d22714411056bf1dd7f236525f2 (patch) | |
tree | 89a5d6e717baaea50c8c9227abb3678350ed4a11 | |
parent | a9c13a093496ef68ec9342370cc42cd5fbc612bc (diff) |
postproc: reconfigure when width or height changes
https://bugzilla.gnome.org/show_bug.cgi?id=754885
-rw-r--r-- | gst/vaapi/gstvaapipostproc.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/gst/vaapi/gstvaapipostproc.c b/gst/vaapi/gstvaapipostproc.c index f9a37e15..241a4efd 100644 --- a/gst/vaapi/gstvaapipostproc.c +++ b/gst/vaapi/gstvaapipostproc.c @@ -1431,6 +1431,7 @@ gst_vaapipostproc_set_property (GObject * object, guint prop_id, const GValue * value, GParamSpec * pspec) { GstVaapiPostproc *const postproc = GST_VAAPIPOSTPROC (object); + gboolean do_reconf = FALSE; g_mutex_lock (&postproc->postproc_lock); switch (prop_id) { @@ -1438,11 +1439,19 @@ gst_vaapipostproc_set_property (GObject * object, postproc->format = g_value_get_enum (value); break; case PROP_WIDTH: + { + guint prev_width = postproc->width; postproc->width = g_value_get_uint (value); + do_reconf = (prev_width != postproc->width); break; + } case PROP_HEIGHT: + { + guint prev_height = postproc->height; postproc->height = g_value_get_uint (value); + do_reconf = (prev_height != postproc->height); break; + } case PROP_FORCE_ASPECT_RATIO: postproc->keep_aspect = g_value_get_boolean (value); break; @@ -1490,7 +1499,7 @@ gst_vaapipostproc_set_property (GObject * object, } g_mutex_unlock (&postproc->postproc_lock); - if (check_filter_update (postproc)) + if (do_reconf || check_filter_update (postproc)) gst_base_transform_reconfigure_src (GST_BASE_TRANSFORM (postproc)); } |