My first instinct would be to say that ppm-load not setting it's output
format is a bug, and that it should try to sniff the file in prepare()
inorder to set the correct format. If you do format switching in
gaussian-blur's process() then you'll also spoil the format detection of
whatever is connected to gaussian's output.

As an alternative to that, I would be inclined to process ppm-load to a
buffer then pass that buffer to a second graph.

Finally (and please don't use this option), the reason you get that error
is because the parent implementation of process() in
gegl/operation/gegl-operation-filter.c calls
gegl_operation_context_get_target for you, it is possible to override this
and still use the rest of the filter class (see operations/common/over.c).


On Wed, May 29, 2013 at 8:58 PM, Dov Grobgeld <dov.grobg...@gmail.com>wrote:

> Hi all,
>
> Yesterday night I started playing around with converting the gaussian-blur
> operation to only work on the channels that are part of the input pad. My
> goal was to make the operation "format transparent", in the sense that the
> output format should be equal to the input format. But after several
> failures, I realized that I was stuck.
>
> The problem is as follows. I want to set my input format based on the
> output format of the previous node. I'm building the following network:
>
> gegl:ppm-load → gegl:gaussian-blur → gegl:npy-save
>
> and I feed the ppm-load with a "Y u8" image. Now, the problem is that if I
> in the gaussian-blur prepare function call:
>
> gegl_operation_get_source_format(operation, "input")
>
> it returns NULL. Why is that? Am I correct to assume that the prepare
> calls are done before any processing has taken place? If so the ppm-load
> still doesn't know what format it will set in its output pad.
>
> So instead I asked about the format in process(). But then I get the
> following warning:
>
> (test-npy.py:2383): GEGL-gegl-operation-context.c-WARNING **: no format
> for gegl:gaussian-blur 0x95bb9b0 presuming RGBA float
>
> I still haven't figured out exactly why this happens, but I would still
> like to know if anyone knows what I'm doing wrong, and whether dynamically
> choosing the input format based on the previous output format is even
> possible?
>
> Thanks!
> Dov
>
>
> _______________________________________________
> gegl-developer-list mailing list
> gegl-developer-list@gnome.org
> https://mail.gnome.org/mailman/listinfo/gegl-developer-list
>
>
_______________________________________________
gegl-developer-list mailing list
gegl-developer-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gegl-developer-list

Reply via email to