Request for comment: add support for compressor/decompressor-specific init/destroy #2128
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
WIP
Problem
The current C API does not allow compressors and decompressors to allocate/destroy internal resources that can be reused across calls on a given image, beyond very specific memory buffers (through calls to
internal_encode_alloc_buffer()
).Solution
Add a per-pipeline and user-configurable initialization and teardown functions:
decompress_init_fn
decompress_destroy_fn
compress_init_fn
compress_destroy_fn
These functions are initialized to default in
exr_decoding_choose_default_routines()
.These functions are called in
exr_decoding_initialize()
,exr_decoding_destroy()
,exr_encoding_initialize()
andexr_encoding_destroy()
.