AcademySoftwareFoundation / AcademySoftwareFoundation/OpenImageIO
[FEATURE REQUEST] oiiotool op graph introspection
- 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
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