AcademySoftwareFoundation / AcademySoftwareFoundation/OpenImageIO

[FEATURE REQUEST] oiiotool op graph introspection

Open
#3,990 0 comments 0 reactions 0 assignees View on GitHub
oiiotool
Dominant language
C++
Stars
2.4k
Forks
698
Avg merge
3d 9h
Merged PRs (30d)
48

Description

Following from a discussion on [slack](https://academysoftwarefdn.slack.com/archives/C05782U3806), there was a desire for `oiiotool` to be able to modify/supply parameters to its own `ImageInput` readers based on the connected `ImageOutput` writers.

At present `oiiotool` parses its arguments in order of declaration, so by the time the output declarations are reached, all the `ImageInput`'s are already instanced.
The workaround is currently to use `--iconfig` to manually specify any desired changes to the ImageInput, but there may be cases where we would like these changes to happen "automagically".

Use case could include:
* Avoiding lossy conversions when round tripping image formats
* Minimizing data type conversions (eg uint8->float->uint8)
* Allowing inter-op communication

A simple implementation might just be to parse the ops into a graph prior to instantiation, and write a small query API to allow introspection.

Contributor guide

Open the contributing guide

Research direction

Start by tracing how oiiotool parses declarations and instantiates ImageInput readers and ImageOutput writers, comparing that flow with the existing --iconfig workaround. Define the operation graph and query API needed for output settings to influence inputs, then validate the design against lossy conversions, data type conversions, and inter-op communication.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
cli, computer-graphics
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.