Thanks. If the behavior of ppm-load is considered buggy, then it all makes
sense. I'll use the output format if it is set, or otherwise I will
fallback to RGBA within prepare.

Regards,
Dov



On Thu, May 30, 2013 at 10:54 AM, Daniel Sabo <daniels...@gmail.com> wrote:

> 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