{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":229629928,"defaultBranch":"master","name":"ndk","ownerLogin":"rust-mobile","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2019-12-22T20:56:38.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/118470275?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1716535999.0","currentOid":""},"activityList":{"items":[{"before":"c824028918aecea924c39c8465d4cebfcf3c48ad","after":null,"ref":"refs/heads/categories","pushedAt":"2024-05-24T19:45:20.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"MarijnS95","name":"Marijn Suijten","path":"/MarijnS95","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2325264?s=80&v=4"}},{"before":"1944c1397d9f46afc40b579d1630b6a65997c329","after":"e4a0b943c537f142e2bfeda46075dfefea1a8890","ref":"refs/heads/master","pushedAt":"2024-05-24T19:45:20.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"MarijnS95","name":"Marijn Suijten","path":"/MarijnS95","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2325264?s=80&v=4"},"commit":{"message":"cargo: Add `categories` for discoverability (#473)\n\n`os::android-apis` is a new category that I added upstream in\r\nhttps://github.com/rust-lang/crates.io/pull/8558. The rest already\r\nexists on crates.io, and should make it easier to find/place this\r\ncrate.","shortMessageHtmlLink":"cargo: Add categories for discoverability (#473)"}},{"before":"5b68d1e3d68b67417b403626b526446831f6bf9f","after":"c824028918aecea924c39c8465d4cebfcf3c48ad","ref":"refs/heads/categories","pushedAt":"2024-05-24T07:33:47.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"MarijnS95","name":"Marijn Suijten","path":"/MarijnS95","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2325264?s=80&v=4"},"commit":{"message":"cargo: Add `categories` for discoverability\n\n`os::android-apis` is a new category that I added upstream in\nhttps://github.com/rust-lang/crates.io/pull/8558. The rest already\nexists on crates.io, and should make it easier to find/place this\ncrate.","shortMessageHtmlLink":"cargo: Add categories for discoverability"}},{"before":"bbf1a499778195003763ac03f9e76c6764098064","after":null,"ref":"refs/heads/imagereader-dataspace","pushedAt":"2024-05-24T07:33:19.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"MarijnS95","name":"Marijn Suijten","path":"/MarijnS95","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2325264?s=80&v=4"}},{"before":"f96415471e758ca60536d010cab6f5231c86e9f0","after":"1944c1397d9f46afc40b579d1630b6a65997c329","ref":"refs/heads/master","pushedAt":"2024-05-24T07:33:18.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"MarijnS95","name":"Marijn Suijten","path":"/MarijnS95","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2325264?s=80&v=4"},"commit":{"message":"image_reader: Add `AImageReader_newWithDataSpace()` from `api-level-34` (#474)\n\nAndroid 14 (U, API level 34) adds `DataSpace` support to `ImageReader`\r\nwith a new constructor and a getter, and finally switches to the regular\r\n`HardwareBufferFormat` instead of the restricted `ImageFormat` enum\r\nto select the underlying buffer format. After all, an `AImage` can be\r\nturned into a `HardwareBuffer` which supports a wider range of formats.\r\n\r\nAlso clean up and commonize some panics on pedantic `.try_from()` checks.","shortMessageHtmlLink":"image_reader: Add AImageReader_newWithDataSpace() from `api-level-3…"}},{"before":"79cc7d162173c948171b73ae95f44bb10918ff30","after":"bbf1a499778195003763ac03f9e76c6764098064","ref":"refs/heads/imagereader-dataspace","pushedAt":"2024-05-24T07:30:28.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"MarijnS95","name":"Marijn Suijten","path":"/MarijnS95","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2325264?s=80&v=4"},"commit":{"message":"image_reader: Add `AImageReader_newWithDataSpace()` from `api-level-34`\n\nAndroid 14 (U, API level 34) adds `DataSpace` support to `ImageReader`\nwith a new constructor and a getter, and finally switches to the regular\n`HardwareBufferFormat` instead of the restricted `ImageFormat` enum\nto select the underlying buffer format. After all, an `AImage` can be\nturned into a `HardwareBuffer` which supports a wider range of formats.\n\nAlso clean up and commonize some panics on pedantic `.try_from()` checks.","shortMessageHtmlLink":"image_reader: Add AImageReader_newWithDataSpace() from api-level-34"}},{"before":null,"after":"1df463e7b06c5129c71c1a228fde67e536e2ca22","ref":"refs/heads/asset-lifetime","pushedAt":"2024-05-21T07:32:11.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"MarijnS95","name":"Marijn Suijten","path":"/MarijnS95","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2325264?s=80&v=4"},"commit":{"message":"asset: Store a `PhantomData` lifetime inside `AssetManager` to represent missing ownership semantics","shortMessageHtmlLink":"asset: Store a PhantomData lifetime inside AssetManager to repres…"}},{"before":"1b6b867de9bb34ac5418f003665dc3a138a4df34","after":"79cc7d162173c948171b73ae95f44bb10918ff30","ref":"refs/heads/imagereader-dataspace","pushedAt":"2024-05-19T21:02:02.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"MarijnS95","name":"Marijn Suijten","path":"/MarijnS95","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2325264?s=80&v=4"},"commit":{"message":"image_reader: Add api-level-34 `AImageReader_newWithDataSpace()`\n\nAndroid 14 (U, API level 34) adds `DataSpace` support to `ImageReader`\nwith a new constructor and a getter, and finally switches to the regular\n`HardwareBufferFormat` instead of the restricted `ImageFormat` enum\nto select the underlying buffer format. After all, an `AImage` can be\nturned into a `HardwareBuffer` which supports a wider range of formats.\n\nAlso clean up and commonize some panics on pedantic `.try_from()` checks.","shortMessageHtmlLink":"image_reader: Add api-level-34 AImageReader_newWithDataSpace()"}},{"before":"fd73dd75a9eab635bf0e4b9f6bae37c08786134b","after":"1b6b867de9bb34ac5418f003665dc3a138a4df34","ref":"refs/heads/imagereader-dataspace","pushedAt":"2024-05-19T20:44:14.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"MarijnS95","name":"Marijn Suijten","path":"/MarijnS95","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2325264?s=80&v=4"},"commit":{"message":"image_reader: Add api-level-34 `AImageReader_newWithDataSpace()`\n\nAndroid 14 (U, API level 34) adds `DataSpace` support to `ImageReader`\nwith a new constructor and a getter, and finally switches to the regular\n`HardwareBufferFormat` instead of the restricted `ImageFormat` enum\nto select the underlying buffer format. After all, an `AImage` can be\nturned into a `HardwareBuffer` which supports a wider range of formats.","shortMessageHtmlLink":"image_reader: Add api-level-34 AImageReader_newWithDataSpace()"}},{"before":"7c9fa5f5f8df43ec500c426312333dfa3cf51bf5","after":null,"ref":"refs/heads/ci-drop-cargo-ndk","pushedAt":"2024-05-19T20:43:55.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"MarijnS95","name":"Marijn Suijten","path":"/MarijnS95","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2325264?s=80&v=4"}},{"before":"10bce8132e7b59329599978a0463c4988dd358ec","after":"f96415471e758ca60536d010cab6f5231c86e9f0","ref":"refs/heads/master","pushedAt":"2024-05-19T20:43:54.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"MarijnS95","name":"Marijn Suijten","path":"/MarijnS95","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2325264?s=80&v=4"},"commit":{"message":"CI: Drop unneeded `cargo-ndk` tool from build-test (#476)\n\nA recent borked `cargo-ndk` release [^1] [^2] lead me to investigate\r\nwhy we are using a nonstandard tool in our CI in the first place.\r\nCompiling / build-testing the `ndk` crate does not require any external\r\ntooling whatsoever nor an SDK setup: this crate is a pure wrapper over\r\npre-generated C bindings in the `ndk-sys` crate, which only require\r\nNDK _libraries_ (and an Android-capable linker) when linking actual\r\nrunnable binaries (typically shared libraries or executables). And the\r\nRust compiler natively supports compiling Rust code for Android targets.\r\n\r\n[^1]: https://github.com/rust-mobile/ndk/actions/runs/9149848316\r\n[^2]: https://togithub.com/bbqsrc/cargo-ndk/pull/135#discussion_r1606097922","shortMessageHtmlLink":"CI: Drop unneeded cargo-ndk tool from build-test (#476)"}},{"before":"7debd298a2893faa5608e48532acb0b4b9ba6bab","after":"7c9fa5f5f8df43ec500c426312333dfa3cf51bf5","ref":"refs/heads/ci-drop-cargo-ndk","pushedAt":"2024-05-19T20:40:45.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"MarijnS95","name":"Marijn Suijten","path":"/MarijnS95","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2325264?s=80&v=4"},"commit":{"message":"CI: Drop unneeded `cargo-ndk` tool from build-test\n\nA recent borked `cargo-ndk` release [^1] [^2] lead me to investigate\nwhy we are using a nonstandard tool in our CI in the first place.\nCompiling / build-testing the `ndk` crate does not require any external\ntooling whatsoever nor an SDK setup: this crate is a pure wrapper over\npre-generated C bindings in the `ndk-sys` crate, which only require\nNDK _libraries_ (and an Android-capable linker) when linking actual\nrunnable binaries (typically shared libraries or executables). And the\nRust compiler natively supports compiling Rust code for Android targets.\n\n[^1]: https://github.com/rust-mobile/ndk/actions/runs/9149848316\n[^2]: https://togithub.com/bbqsrc/cargo-ndk/pull/135#discussion_r1606097922","shortMessageHtmlLink":"CI: Drop unneeded cargo-ndk tool from build-test"}},{"before":null,"after":"7debd298a2893faa5608e48532acb0b4b9ba6bab","ref":"refs/heads/ci-drop-cargo-ndk","pushedAt":"2024-05-19T20:34:59.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"MarijnS95","name":"Marijn Suijten","path":"/MarijnS95","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2325264?s=80&v=4"},"commit":{"message":"Test","shortMessageHtmlLink":"Test"}},{"before":"9fadd6cbe203fd69960d54faccc1fec945e07131","after":"fd73dd75a9eab635bf0e4b9f6bae37c08786134b","ref":"refs/heads/imagereader-dataspace","pushedAt":"2024-05-19T18:59:35.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"MarijnS95","name":"Marijn Suijten","path":"/MarijnS95","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2325264?s=80&v=4"},"commit":{"message":"image_reader: Add api-level-34 `AImageReader_newWithDataSpace()`\n\nAndroid 14 (U, API level 34) adds `DataSpace` support to `ImageReader`\nwith a new constructor and a getter, and finally switches to the regular\n`HardwareBufferFormat` instead of the restricted `ImageFormat` enum\nto select the underlying buffer format. After all, an `AImage` can be\nturned into a `HardwareBuffer` which supports a wider range of formats.","shortMessageHtmlLink":"image_reader: Add api-level-34 AImageReader_newWithDataSpace()"}},{"before":"ce3d82fc9b248e06d8c6f1444ea2046e8ba0fe6b","after":"10bce8132e7b59329599978a0463c4988dd358ec","ref":"refs/heads/master","pushedAt":"2024-05-19T18:59:18.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"MarijnS95","name":"Marijn Suijten","path":"/MarijnS95","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2325264?s=80&v=4"},"commit":{"message":"ndk-sys: Drop cfg for inexistant `target_arch = \"armv7\"` (#475)\n\n[Rust nightly since May 6 2024] points out that `armv7` is not a known,\r\nvalid value for the `target_arch` cfg variable. This is confirmed by\r\nthe docs not listing it either:\r\nhttps://doc.rust-lang.org/reference/conditional-compilation.html#target_arch\r\n\r\nHence drop this entirely, and rely purely on `target_arch = \"arm\"`.\r\n\r\n[Rust nightly since May 6 2024]: https://blog.rust-lang.org/2024/05/06/check-cfg.html","shortMessageHtmlLink":"ndk-sys: Drop cfg for inexistant target_arch = \"armv7\" (#475)"}},{"before":"16f9ae0ebd5d0a1c45ec29a7dc27d5cb6681a4d8","after":null,"ref":"refs/heads/no-armv7-target-arch","pushedAt":"2024-05-19T18:59:18.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"MarijnS95","name":"Marijn Suijten","path":"/MarijnS95","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2325264?s=80&v=4"}},{"before":null,"after":"16f9ae0ebd5d0a1c45ec29a7dc27d5cb6681a4d8","ref":"refs/heads/no-armv7-target-arch","pushedAt":"2024-05-14T21:07:33.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"MarijnS95","name":"Marijn Suijten","path":"/MarijnS95","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2325264?s=80&v=4"},"commit":{"message":"ndk-sys: Drop cfg for inexistant `target_arch = \"armv7\"`\n\n[Rust nightly since May 6 2024] points out that `armv7` is not a known,\nvalid value for the `target_arch` cfg variable. This is confirmed by\nthe docs not listing it either:\nhttps://doc.rust-lang.org/reference/conditional-compilation.html#target_arch\n\nHence drop this entirely, and rely purely on `target_arch = \"arm\"`.\n\n[Rust nightly since May 6 2024]: https://blog.rust-lang.org/2024/05/06/check-cfg.html","shortMessageHtmlLink":"ndk-sys: Drop cfg for inexistant target_arch = \"armv7\""}},{"before":"2e873a29f5668179a96c944c09b994de148ed015","after":"5b68d1e3d68b67417b403626b526446831f6bf9f","ref":"refs/heads/categories","pushedAt":"2024-05-14T20:58:29.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"MarijnS95","name":"Marijn Suijten","path":"/MarijnS95","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2325264?s=80&v=4"},"commit":{"message":"cargo: Add `categories` for discoverability\n\n`os::android-apis` is a new category that I added upstream in\nhttps://github.com/rust-lang/crates.io/pull/8558. The rest already\nexists on crates.io, and should make it easier to find/place this\ncrate.","shortMessageHtmlLink":"cargo: Add categories for discoverability"}},{"before":"1b19d6c231d53a5c092534f0629705e1934cc4d2","after":"9fadd6cbe203fd69960d54faccc1fec945e07131","ref":"refs/heads/imagereader-dataspace","pushedAt":"2024-05-14T20:58:29.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"MarijnS95","name":"Marijn Suijten","path":"/MarijnS95","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2325264?s=80&v=4"},"commit":{"message":"image_reader: Add api-level-34 `AImageReader_newWithDataSpace()`\n\nAndroid 14 (U, API level 34) adds `DataSpace` support to `ImageReader`\nwith a new constructor and a getter, and finally switches to the regular\n`HardwareBufferFormat` instead of the restricted `ImageFormat` enum\nto select the underlying buffer format. After all, an `AImage` can be\nturned into a `HardwareBuffer` which supports a wider range of formats.","shortMessageHtmlLink":"image_reader: Add api-level-34 AImageReader_newWithDataSpace()"}},{"before":"49bbbba16c58ff63cb8a0ad0eca5a9fb7ecaec25","after":"ce3d82fc9b248e06d8c6f1444ea2046e8ba0fe6b","ref":"refs/heads/master","pushedAt":"2024-05-14T20:57:37.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"MarijnS95","name":"Marijn Suijten","path":"/MarijnS95","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2325264?s=80&v=4"},"commit":{"message":"Fix trivial `unused_qualification` lint violations\n\nRust 1.78 is again detecting more violators of this lint.","shortMessageHtmlLink":"Fix trivial unused_qualification lint violations"}},{"before":"6aa20053b09a20c5ff7b5aa82fbbe692bd162c31","after":"1b19d6c231d53a5c092534f0629705e1934cc4d2","ref":"refs/heads/imagereader-dataspace","pushedAt":"2024-05-07T09:45:23.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"MarijnS95","name":"Marijn Suijten","path":"/MarijnS95","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2325264?s=80&v=4"},"commit":{"message":"image_reader: Add api-level-34 `AImageReader_newWithDataSpace()`\n\nAndroid 14 (U, API level 34) adds `DataSpace` support to `ImageReader`\nwith a new constructor and a getter, and finally switches to the regular\n`HardwareBufferFormat` instead of the restricted `ImageFormat` enum\nto select the underlying buffer format. After all, an `AImage` can be\nturned into a `HardwareBuffer` which supports a wider range of formats.","shortMessageHtmlLink":"image_reader: Add api-level-34 AImageReader_newWithDataSpace()"}},{"before":null,"after":"6aa20053b09a20c5ff7b5aa82fbbe692bd162c31","ref":"refs/heads/imagereader-dataspace","pushedAt":"2024-05-07T09:42:26.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"MarijnS95","name":"Marijn Suijten","path":"/MarijnS95","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2325264?s=80&v=4"},"commit":{"message":"image_reader: Add api-level-34 `AImageReader_newWithDataSpace()`\n\nAndroid 14 (U, API level 34) adds `DataSpace` support to `ImageReader`\nwith a new constructor and a getter, and finally switches to the regular\n`HardwareBufferFormat` instead of the restricted `ImageFormat` enum\nto select the underlying buffer format. After all, an `AImage` can be\nturned into a `HardwareBuffer` which supports a wider range of formats.","shortMessageHtmlLink":"image_reader: Add api-level-34 AImageReader_newWithDataSpace()"}},{"before":"7115fadedffcd8429f7450942138426679a61988","after":"2e873a29f5668179a96c944c09b994de148ed015","ref":"refs/heads/categories","pushedAt":"2024-04-30T12:03:31.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"MarijnS95","name":"Marijn Suijten","path":"/MarijnS95","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2325264?s=80&v=4"},"commit":{"message":"cargo: Add `categories` for discoverability\n\n`os::android-apis` is a new category that I added upstream in\nhttps://github.com/rust-lang/crates.io/pull/8558. The rest already\nexists on crates.io, and should make it easier to find/place this\ncrate.","shortMessageHtmlLink":"cargo: Add categories for discoverability"}},{"before":null,"after":"7115fadedffcd8429f7450942138426679a61988","ref":"refs/heads/categories","pushedAt":"2024-04-29T12:14:29.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"MarijnS95","name":"Marijn Suijten","path":"/MarijnS95","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2325264?s=80&v=4"},"commit":{"message":"Add categories to Cargo.toml\n\n`os::android-apis` depends on https://github.com/rust-lang/crates.io/pull/8558","shortMessageHtmlLink":"Add categories to Cargo.toml"}},{"before":"98fbce8157c099f6f72857bcad9c66da1cdecb19","after":null,"ref":"refs/heads/release","pushedAt":"2024-04-26T15:14:43.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"MarijnS95","name":"Marijn Suijten","path":"/MarijnS95","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2325264?s=80&v=4"}},{"before":"9ba82abb8101183d2265555dadc36c1e1a55748f","after":"49bbbba16c58ff63cb8a0ad0eca5a9fb7ecaec25","ref":"refs/heads/master","pushedAt":"2024-04-26T15:14:42.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"MarijnS95","name":"Marijn Suijten","path":"/MarijnS95","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2325264?s=80&v=4"},"commit":{"message":"Release ndk-sys-0.6.0, ndk-0.9.0 (#472)","shortMessageHtmlLink":"Release ndk-sys-0.6.0, ndk-0.9.0 (#472)"}},{"before":null,"after":"98fbce8157c099f6f72857bcad9c66da1cdecb19","ref":"refs/heads/release","pushedAt":"2024-04-26T15:08:12.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"MarijnS95","name":"Marijn Suijten","path":"/MarijnS95","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2325264?s=80&v=4"},"commit":{"message":"Release ndk-sys-0.6.0, ndk-0.9.0","shortMessageHtmlLink":"Release ndk-sys-0.6.0, ndk-0.9.0"}},{"before":"3bd43885cf7758cc2742a1bda5999bc682cec96a","after":null,"ref":"refs/heads/imgreader-no-none-image","pushedAt":"2024-04-26T15:00:41.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"MarijnS95","name":"Marijn Suijten","path":"/MarijnS95","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2325264?s=80&v=4"}},{"before":"ce074608cab2974263e07ceba54a95f56714721c","after":"9ba82abb8101183d2265555dadc36c1e1a55748f","ref":"refs/heads/master","pushedAt":"2024-04-26T15:00:40.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"MarijnS95","name":"Marijn Suijten","path":"/MarijnS95","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2325264?s=80&v=4"},"commit":{"message":"ndk/image_reader: Special-case return statuses in `Image`-acquire functions (#457)\n\nBoth async and non-async `acquire_next/latest_image()` functions will\r\nreturn `ImgreaderNoBufferAvailable` when the producer has not provided\r\na buffer that is either ready for consumption or that can be blocked\r\non (either inside a non-async method, or by returning the accompanying\r\nfence file descriptor). But only the non-`_async()` functions were\r\nmarked as if this is a common case by returning an `Option<>`, seemingly\r\nout of the assumption that the `_async()` functions can _always_ give\r\nyou an image (if the `MaxImagesAcquired` limit is not reached) but with\r\na file-descriptor sync fence to wait on. This is not the case as the\r\nproducer needs to submit a buffer together with a sync fence on the\r\nproducer-end first.\r\n\r\nHence the current API signatures create the false assumption that only\r\nnon-async functions can \"not have a buffer available at all\", when\r\nthe exact same is true for `_async()` functions, in order to provide\r\nan image buffer with a fence that is signalled when it is ready for\r\nreading.\r\n\r\nInstead of special-casing this error in the `_async()` functions,\r\nspecial-case both `NoBufferAvailable` and `MaxImagesAcquired` in a new\r\n`enum AcquireResult` and let it be returned by both non-async and async\r\nfunctions.","shortMessageHtmlLink":"ndk/image_reader: Special-case return statuses in Image-acquire fun…"}},{"before":"cddd506b43a7e82df68ba1995698d9769a25fc8c","after":"3bd43885cf7758cc2742a1bda5999bc682cec96a","ref":"refs/heads/imgreader-no-none-image","pushedAt":"2024-04-26T13:36:14.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"MarijnS95","name":"Marijn Suijten","path":"/MarijnS95","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2325264?s=80&v=4"},"commit":{"message":"ndk/image_reader: Special-case return statuses in `Image`-acquire functions\n\nBoth async and non-async `acquire_next/latest_image()` functions will\nreturn `ImgreaderNoBufferAvailable` when the producer has not provided\na buffer that is either ready for consumption or that can be blocked\non (either inside a non-async method, or by returning the accompanying\nfence file descriptor). But only the non-`_async()` functions were\nmarked as if this is a common case by returning an `Option<>`, seemingly\nout of the assumption that the `_async()` functions can _always_ give\nyou an image (if the `MaxImagesAcquired` limit is not reached) but with\na file-descriptor sync fence to wait on. This is not the case as the\nproducer needs to submit a buffer together with a sync fence on the\nproducer-end first.\n\nHence the current API signatures create the false assumption that only\nnon-async functions can \"not have a buffer available at all\", when\nthe exact same is true for `_async()` functions, in order to provide\nan image buffer with a fence that is signalled when it is ready for\nreading.\n\nInstead of special-casing this error in the `_async()` functions,\nspecial-case both `NoBufferAvailable` and `MaxImagesAcquired` in a new\n`enum AcquireResult` and let it be returned by both non-async and async\nfunctions.","shortMessageHtmlLink":"ndk/image_reader: Special-case return statuses in Image-acquire fun…"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEU1vuvgA","startCursor":null,"endCursor":null}},"title":"Activity · rust-mobile/ndk"}