Index: dft.c =================================================================== --- dft.c (revision 2290) +++ dft.c (working copy) @@ -34,9 +34,16 @@ static void prepare(GeglOperation *operation) { - Babl *image_format = babl_format("RGB float"); - Babl *frequency_format = babl_format("Y float"); /* use "Y_float" temporarily */ - + Babl *image_format = babl_format_new (babl_model("RGB"), + babl_type ("double"), + babl_component ("R"), + babl_component ("G"), + babl_component ("B"), + NULL); + Babl *frequency_format = babl_format_new (babl_model ("Y"), + babl_type ("double"), + babl_component ("Y"), + NULL); gegl_operation_set_format(operation, "input", image_format); gegl_operation_set_format(operation, "output", frequency_format); } @@ -48,17 +55,16 @@ { gint width= gegl_buffer_get_width(input); gint height= gegl_buffer_get_height(input); - gfloat *src_buf, *dst_buf; + gdouble *src_buf, *dst_buf; gint i, j; fftw_complex *fft_out; fftw_plan fftplan; - src_buf = g_new0 (gfloat, gegl_buffer_get_pixel_count (input) * 3); - gegl_buffer_get(input, 1.0, NULL, babl_format("RGB float"), src_buf, - GEGL_AUTO_ROWSTRIDE); + src_buf = g_new0 (gdouble, gegl_buffer_get_pixel_count (input) * 3); + gegl_buffer_get(input, 1.0, NULL, NULL, src_buf, GEGL_AUTO_ROWSTRIDE); /* fetch R component pixes */ - dst_buf = g_new0 (gfloat, height*width); + dst_buf = g_new0 (gdouble, height*width); for (i=0; i