Lines Matching refs:gb
116 static gboolean make_gaussian_kernel (GstGaussianBlur * gb, float sigma);
117 static void gaussian_smooth (GstGaussianBlur * gb, guint8 * image,
166 GstGaussianBlur *gb = GST_GAUSSIANBLUR (filter); in gst_gaussianblur_set_info() local
169 gb->width = GST_VIDEO_INFO_WIDTH (in_info); in gst_gaussianblur_set_info()
170 gb->height = GST_VIDEO_INFO_HEIGHT (in_info); in gst_gaussianblur_set_info()
173 gb->stride = GST_VIDEO_INFO_COMP_STRIDE (in_info, 0); in gst_gaussianblur_set_info()
174 n_elems = gb->stride * gb->height; in gst_gaussianblur_set_info()
175 gb->tempim = g_malloc (sizeof (gfloat) * n_elems); in gst_gaussianblur_set_info()
181 gst_gaussianblur_init (GstGaussianBlur * gb) in gst_gaussianblur_init() argument
183 gb->sigma = (gfloat) DEFAULT_SIGMA; in gst_gaussianblur_init()
184 gb->cur_sigma = -1.0; in gst_gaussianblur_init()
190 GstGaussianBlur *gb = GST_GAUSSIANBLUR (object); in gst_gaussianblur_finalize() local
192 g_free (gb->tempim); in gst_gaussianblur_finalize()
193 gb->tempim = NULL; in gst_gaussianblur_finalize()
195 g_free (gb->smoothedim); in gst_gaussianblur_finalize()
196 gb->smoothedim = NULL; in gst_gaussianblur_finalize()
198 g_free (gb->kernel); in gst_gaussianblur_finalize()
199 gb->kernel = NULL; in gst_gaussianblur_finalize()
200 g_free (gb->kernel_sum); in gst_gaussianblur_finalize()
201 gb->kernel_sum = NULL; in gst_gaussianblur_finalize()
260 blur_row_x (GstGaussianBlur * gb, guint8 * in_row, gfloat * out_row) in blur_row_x() argument
266 center = gb->windowsize / 2; in blur_row_x()
268 for (c = 0; c < gb->width; c++) { in blur_row_x()
274 kmax = MIN (gb->windowsize, gb->width - cc); in blur_row_x()
279 sum = gb->kernel_sum[kmax - 1]; in blur_row_x()
280 sum -= kmin ? gb->kernel_sum[kmin - 1] : 0.0; in blur_row_x()
283 float coeff = gb->kernel[k]; in blur_row_x()
298 gaussian_smooth (GstGaussianBlur * gb, guint8 * image, guint8 * out_image) in gaussian_smooth() argument
304 float *tmp_out_row = gb->tempim; in gaussian_smooth()
310 center = gb->windowsize / 2; in gaussian_smooth()
313 for (r = 0; r < gb->height; r++) { in gaussian_smooth()
319 kmax = MIN (gb->windowsize, gb->height - rr); in gaussian_smooth()
322 sum = gb->kernel_sum[kmax - 1]; in gaussian_smooth()
323 sum -= kmin ? gb->kernel_sum[kmin - 1] : 0.0; in gaussian_smooth()
326 while (y_avail <= (r + center) && y_avail < gb->height) { in gaussian_smooth()
327 blur_row_x (gb, in_row, tmp_out_row); in gaussian_smooth()
328 in_row += gb->stride; in gaussian_smooth()
329 tmp_out_row += gb->stride; in gaussian_smooth()
333 tmp_in_pos = gb->tempim + (rr * gb->stride); in gaussian_smooth()
334 out_row = out_image + r * gb->stride; in gaussian_smooth()
336 for (c = 0; c < gb->width; c++) { in gaussian_smooth()
340 for (k = kmin; k < kmax; k++, tmp += gb->stride) { in gaussian_smooth()
341 float kern = gb->kernel[k]; in gaussian_smooth()
362 make_gaussian_kernel (GstGaussianBlur * gb, float sigma) in make_gaussian_kernel() argument
370 gb->windowsize = (int) (1 + 2 * center); in make_gaussian_kernel()
372 gb->kernel = g_new (float, gb->windowsize); in make_gaussian_kernel()
373 gb->kernel_sum = g_new (float, gb->windowsize); in make_gaussian_kernel()
374 if (gb->kernel == NULL || gb->kernel_sum == NULL) in make_gaussian_kernel()
377 if (gb->windowsize == 1) { in make_gaussian_kernel()
378 gb->kernel[0] = 1.0; in make_gaussian_kernel()
379 gb->kernel_sum[0] = 1.0; in make_gaussian_kernel()
384 sum = gb->kernel[center] = dx; in make_gaussian_kernel()
391 gb->kernel[right] = gb->kernel[left] = fx; in make_gaussian_kernel()
397 gb->kernel[center] += 2.0 * sum; in make_gaussian_kernel()
400 for (i = 0; i < gb->windowsize; i++) in make_gaussian_kernel()
401 gb->kernel[i] /= sum; in make_gaussian_kernel()
404 for (i = 0; i < gb->windowsize; i++) { in make_gaussian_kernel()
405 sum2 += gb->kernel[i]; in make_gaussian_kernel()
406 gb->kernel_sum[i] = sum2; in make_gaussian_kernel()
411 for (i = 0; i < gb->windowsize; i++) in make_gaussian_kernel()
412 g_print ("%f ", gb->kernel[i]); in make_gaussian_kernel()
415 for (i = 0; i < gb->windowsize; i++) in make_gaussian_kernel()
416 g_print ("%f ", gb->kernel_sum[i]); in make_gaussian_kernel()
428 GstGaussianBlur *gb = GST_GAUSSIANBLUR (object); in gst_gaussianblur_set_property() local
432 gb->sigma = g_value_get_double (value); in gst_gaussianblur_set_property()
445 GstGaussianBlur *gb = GST_GAUSSIANBLUR (object); in gst_gaussianblur_get_property() local
448 GST_OBJECT_LOCK (gb); in gst_gaussianblur_get_property()
449 g_value_set_double (value, gb->sigma); in gst_gaussianblur_get_property()
450 GST_OBJECT_UNLOCK (gb); in gst_gaussianblur_get_property()