From f0054bcc8250b2d4463ac721dc99a0d6cf815d69 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Sebastian=20Dr=C3=B6ge?= Date: Fri, 24 Jul 2009 19:38:07 +0200 Subject: [PATCH] effectv: Don't allow caps changes for some effectv filters These filters use information from previous frames to generate the current frame and a caps change will make the effect start from the beginning again. --- gst/effectv/gstaging.c | 3 +++ gst/effectv/gstdice.c | 3 +++ gst/effectv/gstquark.c | 3 +++ gst/effectv/gstradioac.c | 3 +++ gst/effectv/gstripple.c | 3 +++ gst/effectv/gstshagadelic.c | 3 +++ gst/effectv/gststreak.c | 3 +++ gst/effectv/gstvertigo.c | 3 +++ gst/effectv/gstwarp.c | 2 ++ 9 files changed, 26 insertions(+) diff --git a/gst/effectv/gstaging.c b/gst/effectv/gstaging.c index d07fc5f..96c312f 100644 --- a/gst/effectv/gstaging.c +++ b/gst/effectv/gstaging.c @@ -418,4 +418,7 @@ gst_agingtv_init (GstAgingTV * agingtv, GstAgingTVClass * klass) agingtv->color_aging = DEFAULT_COLOR_AGING; agingtv->pits = DEFAULT_PITS; agingtv->dusts = DEFAULT_DUSTS; + + gst_pad_use_fixed_caps (GST_BASE_TRANSFORM_SINK_PAD (agingtv)); + gst_pad_use_fixed_caps (GST_BASE_TRANSFORM_SRC_PAD (agingtv)); } diff --git a/gst/effectv/gstdice.c b/gst/effectv/gstdice.c index b46aab8..5d73b7a 100644 --- a/gst/effectv/gstdice.c +++ b/gst/effectv/gstdice.c @@ -310,4 +310,7 @@ gst_dicetv_init (GstDiceTV * filter, GstDiceTVClass * klass) filter->g_cube_size = 0; filter->g_map_height = 0; filter->g_map_width = 0; + + gst_pad_use_fixed_caps (GST_BASE_TRANSFORM_SINK_PAD (filter)); + gst_pad_use_fixed_caps (GST_BASE_TRANSFORM_SRC_PAD (filter)); } diff --git a/gst/effectv/gstquark.c b/gst/effectv/gstquark.c index a05f3fc..29bed2b 100644 --- a/gst/effectv/gstquark.c +++ b/gst/effectv/gstquark.c @@ -286,4 +286,7 @@ gst_quarktv_init (GstQuarkTV * filter, GstQuarkTVClass * klass) { filter->planes = PLANES; filter->current_plane = filter->planes - 1; + + gst_pad_use_fixed_caps (GST_BASE_TRANSFORM_SRC_PAD (filter)); + gst_pad_use_fixed_caps (GST_BASE_TRANSFORM_SINK_PAD (filter)); } diff --git a/gst/effectv/gstradioac.c b/gst/effectv/gstradioac.c index 92ffc7b..76bdb98 100644 --- a/gst/effectv/gstradioac.c +++ b/gst/effectv/gstradioac.c @@ -612,4 +612,7 @@ gst_radioactv_init (GstRadioacTV * filter, GstRadioacTVClass * klass) filter->color = DEFAULT_COLOR; filter->interval = DEFAULT_INTERVAL; filter->trigger = DEFAULT_TRIGGER; + + gst_pad_use_fixed_caps (GST_BASE_TRANSFORM_SRC_PAD (filter)); + gst_pad_use_fixed_caps (GST_BASE_TRANSFORM_SINK_PAD (filter)); } diff --git a/gst/effectv/gstripple.c b/gst/effectv/gstripple.c index ce4a58c..75e3981 100644 --- a/gst/effectv/gstripple.c +++ b/gst/effectv/gstripple.c @@ -607,4 +607,7 @@ static void gst_rippletv_init (GstRippleTV * filter, GstRippleTVClass * klass) { filter->mode = DEFAULT_MODE; + + gst_pad_use_fixed_caps (GST_BASE_TRANSFORM_SRC_PAD (filter)); + gst_pad_use_fixed_caps (GST_BASE_TRANSFORM_SINK_PAD (filter)); } diff --git a/gst/effectv/gstshagadelic.c b/gst/effectv/gstshagadelic.c index 89894d2..661df6b 100644 --- a/gst/effectv/gstshagadelic.c +++ b/gst/effectv/gstshagadelic.c @@ -265,4 +265,7 @@ gst_shagadelictv_init (GstShagadelicTV * filter, GstShagadelicTVClass * klass) { filter->ripple = NULL; filter->spiral = NULL; + + gst_pad_use_fixed_caps (GST_BASE_TRANSFORM_SRC_PAD (filter)); + gst_pad_use_fixed_caps (GST_BASE_TRANSFORM_SINK_PAD (filter)); } diff --git a/gst/effectv/gststreak.c b/gst/effectv/gststreak.c index 0772e8d..ed129d9 100644 --- a/gst/effectv/gststreak.c +++ b/gst/effectv/gststreak.c @@ -272,4 +272,7 @@ static void gst_streaktv_init (GstStreakTV * filter, GstStreakTVClass * klass) { filter->feedback = DEFAULT_FEEDBACK; + + gst_pad_use_fixed_caps (GST_BASE_TRANSFORM_SRC_PAD (filter)); + gst_pad_use_fixed_caps (GST_BASE_TRANSFORM_SINK_PAD (filter)); } diff --git a/gst/effectv/gstvertigo.c b/gst/effectv/gstvertigo.c index 06cc0bb..2ddce9a 100644 --- a/gst/effectv/gstvertigo.c +++ b/gst/effectv/gstvertigo.c @@ -308,4 +308,7 @@ gst_vertigotv_init (GstVertigoTV * filter, GstVertigoTVClass * klass) filter->phase = 0.0; filter->phase_increment = 0.02; filter->zoomrate = 1.01; + + gst_pad_use_fixed_caps (GST_BASE_TRANSFORM_SRC_PAD (filter)); + gst_pad_use_fixed_caps (GST_BASE_TRANSFORM_SINK_PAD (filter)); } diff --git a/gst/effectv/gstwarp.c b/gst/effectv/gstwarp.c index fd31dc4..c51ed38 100644 --- a/gst/effectv/gstwarp.c +++ b/gst/effectv/gstwarp.c @@ -282,4 +282,6 @@ gst_warptv_class_init (GstWarpTVClass * klass) static void gst_warptv_init (GstWarpTV * warptv, GstWarpTVClass * klass) { + gst_pad_use_fixed_caps (GST_BASE_TRANSFORM_SRC_PAD (warptv)); + gst_pad_use_fixed_caps (GST_BASE_TRANSFORM_SINK_PAD (warptv)); } -- 2.7.4