{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":1322284,"defaultBranch":"main","name":"OpenImageIO","ownerLogin":"AcademySoftwareFoundation","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2011-02-02T23:03:28.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/40807682?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1726672217.0","currentOid":""},"activityList":{"items":[{"before":"9c7f5226ba2d05023c0c2d191899d6f3d1a4c8fc","after":"187cf72b8964ce99916638f3c8b2217ef2e3e75c","ref":"refs/heads/main","pushedAt":"2024-09-19T05:11:24.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"lgritz","name":"Larry Gritz","path":"/lgritz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/504179?s=80&v=4"},"commit":{"message":"admin: change docs and comments references master -> main (#4435)\n\nSigned-off-by: Larry Gritz ","shortMessageHtmlLink":"admin: change docs and comments references master -> main (#4435)"}},{"before":"9c7f5226ba2d05023c0c2d191899d6f3d1a4c8fc","after":null,"ref":"refs/heads/master","pushedAt":"2024-09-18T15:10:17.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"lgritz","name":"Larry Gritz","path":"/lgritz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/504179?s=80&v=4"}},{"before":null,"after":"9c7f5226ba2d05023c0c2d191899d6f3d1a4c8fc","ref":"refs/heads/main","pushedAt":"2024-09-18T15:10:14.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"lgritz","name":"Larry Gritz","path":"/lgritz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/504179?s=80&v=4"},"commit":{"message":"test: Optimize running of oiiotool-demosaic test (#4429)\n\nThis test was running very slowly, taking too long in all circumstances,\r\nbut shockly causing GHA CI Mac runners to hit the test timeout\r\nsometimes.\r\n\r\nIt turns out we were doing a lot of redundant work. There was no need to\r\nmake separate pattern and bayer images for every data type. Instead,\r\nhoist the test image generation out of the loop and just make one\r\n(float), then use `-i:type=` to read it into an ImageBuf of the\r\nappropriate data type.\r\n\r\nThis cuts the time for this test to run by about 3x.\r\n\r\nSigned-off-by: Larry Gritz ","shortMessageHtmlLink":"test: Optimize running of oiiotool-demosaic test (#4429)"}},{"before":"c658c8f1ee625ebb66b5211d3fb6725630a69de4","after":"9c7f5226ba2d05023c0c2d191899d6f3d1a4c8fc","ref":"refs/heads/master","pushedAt":"2024-09-17T17:48:01.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"lgritz","name":"Larry Gritz","path":"/lgritz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/504179?s=80&v=4"},"commit":{"message":"test: Optimize running of oiiotool-demosaic test (#4429)\n\nThis test was running very slowly, taking too long in all circumstances,\r\nbut shockly causing GHA CI Mac runners to hit the test timeout\r\nsometimes.\r\n\r\nIt turns out we were doing a lot of redundant work. There was no need to\r\nmake separate pattern and bayer images for every data type. Instead,\r\nhoist the test image generation out of the loop and just make one\r\n(float), then use `-i:type=` to read it into an ImageBuf of the\r\nappropriate data type.\r\n\r\nThis cuts the time for this test to run by about 3x.\r\n\r\nSigned-off-by: Larry Gritz ","shortMessageHtmlLink":"test: Optimize running of oiiotool-demosaic test (#4429)"}},{"before":"89cc7dc79426aef419e4ef87558aed93cc2f2f3e","after":"c658c8f1ee625ebb66b5211d3fb6725630a69de4","ref":"refs/heads/master","pushedAt":"2024-09-16T20:16:04.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"lgritz","name":"Larry Gritz","path":"/lgritz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/504179?s=80&v=4"},"commit":{"message":"build: Add auto-build recipe for ZLIB (#4420)\n\nRequired for building redistributable python wheels on Windows Wheels\r\nrunners.\r\n\r\nSigned-off-by: Zach Lewis ","shortMessageHtmlLink":"build: Add auto-build recipe for ZLIB (#4420)"}},{"before":"a3c645302384ba8250ccd852bae4b3d140f3386b","after":"89cc7dc79426aef419e4ef87558aed93cc2f2f3e","ref":"refs/heads/master","pushedAt":"2024-09-15T21:23:05.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"lgritz","name":"Larry Gritz","path":"/lgritz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/504179?s=80&v=4"},"commit":{"message":"docs: minor docs fixups to help with sphinx warnings and errors (#4427)\n\nSigned-off-by: Larry Gritz ","shortMessageHtmlLink":"docs: minor docs fixups to help with sphinx warnings and errors (#4427)"}},{"before":"6aba6e99fd02cea879f87a0ec08f898db37ab49b","after":"a3c645302384ba8250ccd852bae4b3d140f3386b","ref":"refs/heads/master","pushedAt":"2024-09-14T18:41:21.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"lgritz","name":"Larry Gritz","path":"/lgritz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/504179?s=80&v=4"},"commit":{"message":"ci: Adjust ABI standard\n\nSigned-off-by: Larry Gritz ","shortMessageHtmlLink":"ci: Adjust ABI standard"}},{"before":"ce82f61168f67856a8d6ba98ca00be2bb35da081","after":"6aba6e99fd02cea879f87a0ec08f898db37ab49b","ref":"refs/heads/master","pushedAt":"2024-09-14T17:35:21.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"lgritz","name":"Larry Gritz","path":"/lgritz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/504179?s=80&v=4"},"commit":{"message":"build: No need for OCIO search to use PREFER_CONFIG (#4425)\n\nWe no longer supply a FindOpenColorIO.cmake, so it makes no difference.\r\nBut it was getting in the way of a weird case where a wrapping project\r\nwanted to supply one.\r\n\r\nSigned-off-by: Larry Gritz ","shortMessageHtmlLink":"build: No need for OCIO search to use PREFER_CONFIG (#4425)"}},{"before":"37a814f7255030c1859fbff97f634ad2b8b3e1f6","after":"ce82f61168f67856a8d6ba98ca00be2bb35da081","ref":"refs/heads/master","pushedAt":"2024-09-14T17:34:43.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"lgritz","name":"Larry Gritz","path":"/lgritz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/504179?s=80&v=4"},"commit":{"message":"api: IOProxy const method adjustments (#4415)\n\nWith 3.0 approaching, it seems like the only time to make these changes\r\nthat I made note of a while back:\r\n\r\n* It seems to me that `tell()` should be const because it isn't going to\r\nmodify or change the state of the IOProxy.\r\n\r\n* It seems to me that `flush()` should NOT be const, because it probably\r\ndoes change internal state.\r\n\r\nSigned-off-by: Larry Gritz ","shortMessageHtmlLink":"api: IOProxy const method adjustments (#4415)"}},{"before":"c62dec6bbc98b14c274dd04a403bfb612bb785bd","after":"37a814f7255030c1859fbff97f634ad2b8b3e1f6","ref":"refs/heads/master","pushedAt":"2024-09-14T17:34:07.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"lgritz","name":"Larry Gritz","path":"/lgritz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/504179?s=80&v=4"},"commit":{"message":"api: Adjust IBA::perpixel_op function signature (#4409)\n\nWhen I added perpixel_op recently, I didn't get the function signature\r\nright. It only would work for plain old function pointers, and would not\r\nwork properly for \"functors\" or lambdas with capture. I should have used\r\nfunction_view which can do a light-weight wrapper of all three, so now I\r\ndo. Also modified imagebufalgo_test to explicitly test all three forms\r\nto be sure they work.\r\n\r\nAlso update function_view ever so slightly.\r\n\r\n---------\r\n\r\nSigned-off-by: Larry Gritz ","shortMessageHtmlLink":"api: Adjust IBA::perpixel_op function signature (#4409)"}},{"before":"fbc0042c6d4cb30cad674be0a36cc8834064b644","after":"c62dec6bbc98b14c274dd04a403bfb612bb785bd","ref":"refs/heads/master","pushedAt":"2024-09-12T17:16:12.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"lgritz","name":"Larry Gritz","path":"/lgritz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/504179?s=80&v=4"},"commit":{"message":"fix(IBA): fix IBA::demosaic of non-float images (#4419)\n\nFixes the bug where IBA::demosaic only works with float images. \r\n\r\nFixes#4416\r\n\r\nI've extended the unit tests to run on float, half, uint16, uint8\r\nimages.\r\n\r\n\r\nSigned-off-by: Anton Dukhovnikov ","shortMessageHtmlLink":"fix(IBA): fix IBA::demosaic of non-float images (#4419)"}},{"before":"856dc6fc069e288ec8fae6df733feac5711584b7","after":"fbc0042c6d4cb30cad674be0a36cc8834064b644","ref":"refs/heads/master","pushedAt":"2024-09-11T15:09:52.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"lgritz","name":"Larry Gritz","path":"/lgritz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/504179?s=80&v=4"},"commit":{"message":"test: Fix tests that were writing into ref (#4418)\n\nopenexr_copy and openexr-decreasingy\r\n\r\nThese recently added test were writing into the ref/ directory, which\r\nthey certainly should not do. Write into the build test area, compare to\r\nwhat's in the ref area.\r\n\r\nSigned-off-by: Larry Gritz ","shortMessageHtmlLink":"test: Fix tests that were writing into ref (#4418)"}},{"before":"e0a3fce203e47a73c43615d135183f9486df8f0a","after":"856dc6fc069e288ec8fae6df733feac5711584b7","ref":"refs/heads/master","pushedAt":"2024-09-11T00:38:14.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"lgritz","name":"Larry Gritz","path":"/lgritz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/504179?s=80&v=4"},"commit":{"message":"docs: Convert more examples within the imagebufalgo chapter. (#4039)\n\nConvert C++ and Python examples from the \"Image transformations and data\r\nmovement\" section of the \"imagebufalgo\" chapter into tests within the\r\n\"docs-examples\" testsuites (related to issue #3992).\r\n\r\nUpdate 'oiiotool' tabs to use a simple 'tab' instead of 'code-tab' to\r\nprevent synchronized tab selection, which is inconsistent with the other\r\ntabs using the 'literalinclude' directive.\r\n\r\n\r\n---------\r\n\r\nSigned-off-by: Jeremy Retailleau ","shortMessageHtmlLink":"docs: Convert more examples within the imagebufalgo chapter. (#4039)"}},{"before":"b063e19e17d6d0a1a979005d4b4a952c5f4d9e23","after":"6d0b51c07adb87a1bd4aec5cd075c1193e94f015","ref":"refs/heads/dev-2.5","pushedAt":"2024-09-09T22:54:25.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"lgritz","name":"Larry Gritz","path":"/lgritz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/504179?s=80&v=4"},"commit":{"message":"Bump version after release\n\nSigned-off-by: Larry Gritz ","shortMessageHtmlLink":"Bump version after release"}},{"before":"c1d04560122129cabae833ca25cdfe1782777055","after":"e0a3fce203e47a73c43615d135183f9486df8f0a","ref":"refs/heads/master","pushedAt":"2024-09-09T16:08:19.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"lgritz","name":"Larry Gritz","path":"/lgritz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/504179?s=80&v=4"},"commit":{"message":"ci: add a workflow that builds docs (#4413)\n\nThis allows somebody who is enhancing the docs to check the results\r\nentirely through CI without having to set up the dependencies necessary\r\nfor docs on their end. (Perfect for Dev Days.) It also ensures that any\r\nchanges we make to the code base don't break the documentation somehow,\r\nbecause now a successful docs build will be part of the CI.\r\n\r\nNote that the docs building job leaves behind an artifact, which will be\r\na zip file of the directly containing the HTML docs, just like one would\r\nfind on RTD, so you can download that zip file and view the docs it made\r\nto verify that everything looks right.\r\n\r\nI made the docs builder a separate workflow, but I also changed some\r\nthings in the CI workflow for the sake of making them more similar.\r\n\r\nSigned-off-by: Larry Gritz ","shortMessageHtmlLink":"ci: add a workflow that builds docs (#4413)"}},{"before":"c0bf9701d4cd46156bce50fdfe232dba4978e746","after":"c1d04560122129cabae833ca25cdfe1782777055","ref":"refs/heads/master","pushedAt":"2024-09-09T04:05:38.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"lgritz","name":"Larry Gritz","path":"/lgritz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/504179?s=80&v=4"},"commit":{"message":"ci: Bump the dependency versions for the 'latest' test to the actual latest (#4410)\n\nAlso some other minor simplifications.\r\n\r\nSigned-off-by: Larry Gritz ","shortMessageHtmlLink":"ci: Bump the dependency versions for the 'latest' test to the actual …"}},{"before":"f751f21359d8f0bf533931cd98a6f49d8fbb212e","after":"c0bf9701d4cd46156bce50fdfe232dba4978e746","ref":"refs/heads/master","pushedAt":"2024-09-09T01:22:41.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"lgritz","name":"Larry Gritz","path":"/lgritz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/504179?s=80&v=4"},"commit":{"message":"api(IB): Add span-based constuctors to ImageBuf (#4401)\n\nThe flavor of ImageBuf that wraps caller-owned memory is constructed or\r\nreset by merely passing a raw pointer and it assumes that the range of\r\nmemory implied by the strides is entirely safe to read from or write to.\r\nAnd even if correct, there is not much within ImageBuf internals to\r\nprevent bugs from buffer overruns.\r\n\r\nThis PR introduces a new constructor and reset() method to ImageBuf\r\nwhere instead of taking a raw pointer, it takes a span describing the\r\nextent of the safely addressible memory (and also an optional \"pointer\r\nto first pixel\" within the buffer, which is necessary if you're using\r\nnegative strides or for some other reason are describing safe memory\r\nthat starts before the location of pixel 0). That span is stored in the\r\nImageBuf, and also it remembers if it was a cspan (which should indicate\r\na read-only IB) or a non-const span (which should wrap writable memory).\r\n\r\nAt this moment, I'm just adding this API and will start using and\r\ndocumenting it as the perferred method, with the raw pointer versions\r\nbeing regarded as unsafe for now (and maybe some day will be\r\ndeprecated?). But we're not yet using the span internally for safety\r\nchecks.\r\n\r\nIn the future, my intent is to gradually add safeguards to do bounds\r\nchecking against the span for IB operations that touch the wrapped\r\nmemory. Because we'll most likely bounds check only in debug mode, it\r\nshouldn't ever impact performance, but it will make debugging,\r\nsanitizer, and fuzz tests more robust to catch and zero in on buffer\r\noverruns. I also like how it forces the caller, at the call site, to\r\nthink hard about exactly what range of memory the IB is wrapping, and\r\nnot merely pass a single pointer and hope it works out.\r\n\r\nI also changed all ImageBuf ctrs and resets within the OIIO codebase to\r\nuse the new span-based versions.\r\n\r\nThis is part of an overall trend to migrate from raw pointer based API\r\ncalls to span-based API design as much as possible.\r\n\r\nSigned-off-by: Larry Gritz ","shortMessageHtmlLink":"api(IB): Add span-based constuctors to ImageBuf (#4401)"}},{"before":"56b7271a69ad5818b868e68a2df24e100b85cb2f","after":"f751f21359d8f0bf533931cd98a6f49d8fbb212e","ref":"refs/heads/master","pushedAt":"2024-09-06T23:35:08.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"lgritz","name":"Larry Gritz","path":"/lgritz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/504179?s=80&v=4"},"commit":{"message":"api: Fold span_util.h contents into span.h (#4402)\n\nspan_util.h is relatively new. I'm honestly no longer sure why I thought\r\nit was necessary to make a second file, but so little is in it that I\r\nnow believe its contents should be folded into span.h to keep all the\r\nspan-related definitions in once place. It's just not big enough to need\r\nto be divided into several headers.\r\n\r\nSigned-off-by: Larry Gritz ","shortMessageHtmlLink":"api: Fold span_util.h contents into span.h (#4402)"}},{"before":"68bd5db906927a3c8e5493d923532d09dc1ca6ab","after":"56b7271a69ad5818b868e68a2df24e100b85cb2f","ref":"refs/heads/master","pushedAt":"2024-09-06T23:34:15.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"lgritz","name":"Larry Gritz","path":"/lgritz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/504179?s=80&v=4"},"commit":{"message":"docs: Switch license name in docs (#4407)\n\nThe link points to the Apache 2.0 license, we just never changed the\r\nlabel here.\r\n\r\nSigned-off-by: Larry Gritz ","shortMessageHtmlLink":"docs: Switch license name in docs (#4407)"}},{"before":"0312717964cbab158e3c5659d8086358069fcbde","after":"68bd5db906927a3c8e5493d923532d09dc1ca6ab","ref":"refs/heads/master","pushedAt":"2024-09-06T02:47:28.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"lgritz","name":"Larry Gritz","path":"/lgritz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/504179?s=80&v=4"},"commit":{"message":"Bump version after developer preview tag\n\nSigned-off-by: Larry Gritz ","shortMessageHtmlLink":"Bump version after developer preview tag"}},{"before":"8aac12c786bee9abd4674000dcbf409b4cb5a9d7","after":"0312717964cbab158e3c5659d8086358069fcbde","ref":"refs/heads/master","pushedAt":"2024-09-03T04:32:05.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"lgritz","name":"Larry Gritz","path":"/lgritz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/504179?s=80&v=4"},"commit":{"message":"Update ABI reference commit / stage for developer preview v2.6.5.0\n\nSigned-off-by: Larry Gritz ","shortMessageHtmlLink":"Update ABI reference commit / stage for developer preview v2.6.5.0"}},{"before":"275d735e78370630b2a1f1cb55645a4e86be7f02","after":"b063e19e17d6d0a1a979005d4b4a952c5f4d9e23","ref":"refs/heads/release","pushedAt":"2024-09-02T16:29:08.000Z","pushType":"push","commitsCount":12,"pusher":{"login":"lgritz","name":"Larry Gritz","path":"/lgritz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/504179?s=80&v=4"},"commit":{"message":"Stage for v2.5.15.0\n\nSigned-off-by: Larry Gritz ","shortMessageHtmlLink":"Stage for v2.5.15.0"}},{"before":"bb34ac02c9f8d60d22acb636d1b913feafe9a4bb","after":"b063e19e17d6d0a1a979005d4b4a952c5f4d9e23","ref":"refs/heads/dev-2.5","pushedAt":"2024-09-02T16:25:54.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"lgritz","name":"Larry Gritz","path":"/lgritz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/504179?s=80&v=4"},"commit":{"message":"Stage for v2.5.15.0\n\nSigned-off-by: Larry Gritz ","shortMessageHtmlLink":"Stage for v2.5.15.0"}},{"before":"1d599d29e8ef4be34c279386e58ae6cd52faee6a","after":"8aac12c786bee9abd4674000dcbf409b4cb5a9d7","ref":"refs/heads/master","pushedAt":"2024-09-02T16:09:41.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"lgritz","name":"Larry Gritz","path":"/lgritz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/504179?s=80&v=4"},"commit":{"message":"fix: Don't let fmtlib exceptions crash the app (#4400)\n\nWhen fmt arguments don't match the format string, fmt will throw an\r\nexception, or terminate if we disable exceptions (which we do). For\r\ngcc11+, we tried intercepting these, but let's do it for all platforms,\r\nand let's not terminate ourselves, but insted print and log the error.\r\n\r\nBut, oof, to do this properly, I needed to move some error recording\r\nfunctionality from libOpenImageIO to libOpenImageIO_Util and make it\r\nowned more properly by strutil.cpp, so that this all works even when\r\nonly using the util library. The logic isn't changing, it's just moving\r\nover to the other library.\r\n\r\nThis all helps to address #4388\r\n\r\nUnfortunately, the exception thrown by fmt doesn't tell us the bad\r\nformat string itself. That would have really allowed to probably zero\r\nright in on it. But at least we know it's occurring, and one could put a\r\nbreakpoint on pvt::log_fmt_error to catch it in the act and see where\r\nit's being called, revealing the bad line.\r\n\r\nSigned-off-by: Larry Gritz ","shortMessageHtmlLink":"fix: Don't let fmtlib exceptions crash the app (#4400)"}},{"before":"482f165955a74bea175c10852ab089536ee0768e","after":"1d599d29e8ef4be34c279386e58ae6cd52faee6a","ref":"refs/heads/master","pushedAt":"2024-09-02T16:06:57.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"lgritz","name":"Larry Gritz","path":"/lgritz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/504179?s=80&v=4"},"commit":{"message":"feat: implement support for OCIO NamedTransforms (#4393)\n\n- ColorProcCacheKey: Update definition, signature, and usage to support\r\ncaching NamedTransform processor handles.\r\n(Note: **ABI-breaking**)\r\n\r\n- ColorConfig: add NamedTransform convenience functions:\r\n`getNumNamedTransforms`, `getNamedTransformNameByIndex`,\r\n`getNamedTransformNames`, `getNamedTransformAliases`\r\n\r\n- ColorConfig: add `createNamedTransform` function returning new\r\nColorProcessorHandle\r\n\r\n- Add `ImageBufAlgo::ocionamedtransform` functions\r\n\r\n- oiiotool: add `--ocionamedtransform` operator\r\n\r\n- python: add NamedTransform convenience function bindings\r\n\r\n- python: add `ImageBufAlgo.ocionamedtransform(...)` bindings\r\n\r\n- Update `oiiotool` and `python` documentation with examples\r\n\r\n\r\n## Description\r\n\r\nOCIO-2 config authors may define a set of stand-alone \"source-agnostic\"\r\n`NamedTransforms`. Unlike the `colorconvert`, `ociodisplay`, and\r\n`ociolook` IBAs, which explicitly convert _from_ a color space to\r\nsomething else, the `ocionamedtransform` IBA behaves more like the\r\n`ociofiletransform` IBA, where the transform itself can be applied\r\neither in the forwards or inverse direction, and does not take into\r\nconsideration the input encoding or image state.\r\n\r\nQuoting from the OCIO [NamedTransform\r\ndocumentation](https://opencolorio.readthedocs.io/en/latest/guides/authoring/authoring.html#named-transforms):\r\n\r\n> Sometimes it is helpful to include one or more transforms in a config\r\nthat are essentially stand-alone transforms that do not have a fixed\r\nrelationship to a reference space or a process space. An example would\r\nbe a “utility curve” transform where the intent is to simply apply a\r\nLUT1D without any conversion to a reference space. In these cases, a\r\nnamed_transforms section may be added to the config with one or more\r\nnamed transforms. [...] This feature may be used to emulate older\r\nmethods of color management that ignored the RGB primaries and simply\r\napplied one-dimensional transformations.\r\n\r\nNotably, the built-in OCIO-2 Studio config\r\n(`ocio://studio-config-latest`) contains NamedTransforms \"sRGB - Curve\"\r\nand \"Rec709 - Curve\", which we could implement as drop-in replacements\r\nfor the existing `linear_to_sRGB`, `sRGB_to_linear`, `linear_to_Rec709`,\r\nand `Rec709_to_linear` functions in `color.h` (unless those functions\r\nare deprecated...).\r\n\r\nThere are several other applications for NamedTransforms as well. They\r\ncan be extremely useful as workflow-oriented transforms implemented at\r\nvarious points in facility pipelines (e.g., for applying shot-specific\r\nconversions, grades, gamut-compression, etc.); they can be used to\r\nprovide diagnostic transforms for visualizing \"exposure zones\", clipped\r\nareas, NaNs, etc; for visually \"tagging\" problematic clips; for applying\r\nparts of ACES Metadata Files parsed by OCIO's forthcoming AMF parser;\r\nfor conversion to non-RGB color models... all sorts of things.\r\n\r\n## Tests\r\n\r\nTests are forthcoming. I've tested everything locally, but have not yet\r\nimplemented proper tests in the testsuite.\r\n\r\n---------\r\n\r\nSigned-off-by: Zach Lewis ","shortMessageHtmlLink":"feat: implement support for OCIO NamedTransforms (#4393)"}},{"before":"92bebd009adc75387069b36bbfa388390c54a270","after":"482f165955a74bea175c10852ab089536ee0768e","ref":"refs/heads/master","pushedAt":"2024-09-02T16:03:33.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"lgritz","name":"Larry Gritz","path":"/lgritz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/504179?s=80&v=4"},"commit":{"message":"refactor!: de-virtualize IC and TS (#4384)\n\nBackground: The ImageCache and TextureSystem had historically been\r\nimplemented as pure virtual abstract base classe defining an interface,\r\nthen a hidden concrete subclass. The flexibility this was intended to\r\nprovide was never really used; instead the imagined main client for the\r\nflexibility, OSL, has a different mechanism for customizing the texture\r\nsystem (via their RendererServices class). Meanwhile, this has made the\r\ninterfaces to IC and TS impossible to change without breaking the ABI.\r\n\r\nSo this PR does the following:\r\n\r\n* ImageCache and TextureSytem are fullly de-virtualized, and are now\r\nconcrete classes, no hidden subclassing, no virtual methods. As such,\r\nremoving or changing existing methods will be an ABI break, but adding\r\nnew methods is not.\r\n\r\n* Each now use a PIMPL idiom, where all the data and internal methods\r\nare hidden from the public interface and do not affect the ABI.\r\n\r\n* Roughly speaking, we added the PIMPL pointers and made the\r\nImageCacheImpl/TextureSystemImpl -- what used to be the hidden concrete\r\nsubclasses -- into the hidden PIMPL classes.\r\n\r\n* Moved a lot of classes that used to be in a \"pvt\" namespace into the\r\nmain namespace. If they are opaque types not exposed in public headers\r\nor as symbols exported from the library, it doesn't matter, so this just\r\nremoves some arbitrary clutter.\r\n\r\n* Had to rearrange some of the recently added heapsize/footprint code,\r\nmoved some inline functions in the headers into methods of the classes,\r\ndefined in the cpp files.\r\n\r\nThis itself is a huge ABI change, so will only be merged into master, to\r\nbecome part of the 3.0 release. This is not an API change, though! This\r\nis all about the internals, and should not require any client software\r\nto change a single line of code.\r\n\r\nI may do further simplification or refactoring of this code in the\r\nfuture, but that will all be smaller and have no further API/ABI changes\r\nthat break compatibility.\r\n\r\nAlthough the structure of the class hierarchy has changed around, none\r\nof the logic about how IC and TS actually *work* has changed, so there\r\nshould be no change in observable behavior.\r\n\r\nSigned-off-by: Larry Gritz ","shortMessageHtmlLink":"refactor!: de-virtualize IC and TS (#4384)"}},{"before":"101f9508e15207598fc333e370adbfacee955f87","after":"92bebd009adc75387069b36bbfa388390c54a270","ref":"refs/heads/master","pushedAt":"2024-09-02T16:02:30.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"lgritz","name":"Larry Gritz","path":"/lgritz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/504179?s=80&v=4"},"commit":{"message":"api!: add virtual heapsize() and footprint() to ImageInput and ImageOutput (#4323)\n\nSecond PR of two, following @lgritz and I discussions on memory tracking\r\nin the OIIO::ImageCache.\r\n\r\n- the memory tracking system from\r\nhttps://github.com/AcademySoftwareFoundation/OpenImageIO/pull/4322 is\r\nnot sufficient to track OIIO public objects that can be overriden.\r\n- add virtual `heapsize()` method to ImageInput and ImageOutput that\r\nreturn the total heap allocated memory held by the structure and its\r\nmembers.\r\n- [ ] **TODO**: override for every internal OIIO type (bmp, tiff, etc). \r\n\r\nRelated PR from Larry :\r\nhttps://github.com/AcademySoftwareFoundation/OpenImageIO/pull/4317\r\nFirst PR:\r\nhttps://github.com/AcademySoftwareFoundation/OpenImageIO/pull/4322\r\n\r\nSigned-off-by: Basile Fraboni ","shortMessageHtmlLink":"api!: add virtual heapsize() and footprint() to ImageInput and ImageO…"}},{"before":"a534a392cd5aa027741f7359d3a7f4799d6b9fcc","after":"101f9508e15207598fc333e370adbfacee955f87","ref":"refs/heads/master","pushedAt":"2024-08-31T23:59:36.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"lgritz","name":"Larry Gritz","path":"/lgritz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/504179?s=80&v=4"},"commit":{"message":"feat(raw): make the crop match in-camera JPEG (#4397)\n\nMake the 'display window' match the default crop, which is applied to\r\nin-camera JPEG.\r\n\r\n---------\r\n\r\nSigned-off-by: Anton Dukhovnikov ","shortMessageHtmlLink":"feat(raw): make the crop match in-camera JPEG (#4397)"}},{"before":"2c009082dce423683d857a26070219964368cb67","after":"bb34ac02c9f8d60d22acb636d1b913feafe9a4bb","ref":"refs/heads/dev-2.5","pushedAt":"2024-08-31T19:10:58.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"lgritz","name":"Larry Gritz","path":"/lgritz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/504179?s=80&v=4"},"commit":{"message":"feat(ffmpeg): FFmpeg additional metadata (#4396)\n\nThis change adds additional FFmpeg metadata from the video and data\r\nstreams. These streams can hold the start timecode which is very useful\r\nin OpenTimelineIO applications.\r\n\r\nI also added `av_guess_frame_rate()` which might be more robust than\r\njust checking `stream->avg_frame_rate`, but I can also create a separate\r\nPR if it is better to break it up.\r\n\r\nIt doesn't look like there are any FFmpeg tests in `testsuite`?\r\n\r\nI tested with the DPEL ALab trailer and some Netflix Open Content\r\nmovies, and was able to see the timecode metadata in the OIIO image\r\nattributes.\r\n\r\n---------\r\n\r\nSigned-off-by: Darby Johnston ","shortMessageHtmlLink":"feat(ffmpeg): FFmpeg additional metadata (#4396)"}},{"before":"f460da52e354bd60d3cba5f2e18dc93e26a13ca2","after":"a534a392cd5aa027741f7359d3a7f4799d6b9fcc","ref":"refs/heads/master","pushedAt":"2024-08-31T18:06:20.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"lgritz","name":"Larry Gritz","path":"/lgritz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/504179?s=80&v=4"},"commit":{"message":"dev: span utility improvements (#4398)\n\n* Added as_bytes and as_writable_bytes that convert spans of arbitrary\r\ntype to spans of std::byte. (This mimics C++20 utilities of the same\r\nname.)\r\n\r\n* spancopy, spanset, spanzero: add parameter defaults for the common\r\ncase of wanting to do the operation on the whole span, also simplify the\r\nbound-limiting logic in those functions a bit (but still performing\r\nprecisely the same task).\r\n\r\nSigned-off-by: Larry Gritz ","shortMessageHtmlLink":"dev: span utility improvements (#4398)"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEum0yeAA","startCursor":null,"endCursor":null}},"title":"Activity · AcademySoftwareFoundation/OpenImageIO"}