{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":34993365,"defaultBranch":"master","name":"image-png","ownerLogin":"image-rs","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2015-05-03T16:55:38.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/49300799?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1708302095.0","currentOid":""},"activityList":{"items":[{"before":"f28bc07a7b6a005253e3ec622011f3e1113782da","after":"f00ca20187fe33a28b03b76967a4b57dc3cbf764","ref":"refs/heads/master","pushedAt":"2024-04-01T01:32:08.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"fintelia","name":"Jonathan Behrens","path":"/fintelia","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4943209?s=80&v=4"},"commit":{"message":"Fix test and warnings (#480)","shortMessageHtmlLink":"Fix test and warnings (#480)"}},{"before":"9dd2a890ddd6b110bff1a1961ab2e4ac429e4a81","after":"f28bc07a7b6a005253e3ec622011f3e1113782da","ref":"refs/heads/master","pushedAt":"2024-04-01T01:13:05.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"fintelia","name":"Jonathan Behrens","path":"/fintelia","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4943209?s=80&v=4"},"commit":{"message":"Ignore iCCP section if it is invalid (#475)","shortMessageHtmlLink":"Ignore iCCP section if it is invalid (#475)"}},{"before":"b5b0d48ee352d638db2810f3083d9323094854f4","after":"9dd2a890ddd6b110bff1a1961ab2e4ac429e4a81","ref":"refs/heads/master","pushedAt":"2024-04-01T01:11:43.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"fintelia","name":"Jonathan Behrens","path":"/fintelia","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4943209?s=80&v=4"},"commit":{"message":"Add an option to ignore iccp chunk (#477)","shortMessageHtmlLink":"Add an option to ignore iccp chunk (#477)"}},{"before":"c02bd7b28c2a4397249604de7536a86da8c43f95","after":"b5b0d48ee352d638db2810f3083d9323094854f4","ref":"refs/heads/master","pushedAt":"2024-02-19T00:19:28.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"fintelia","name":"Jonathan Behrens","path":"/fintelia","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4943209?s=80&v=4"},"commit":{"message":"Release 0.17.13 (#472)","shortMessageHtmlLink":"Release 0.17.13 (#472)"}},{"before":"59e04df13076d82477cf219c0f1d241240cf64d7","after":"c02bd7b28c2a4397249604de7536a86da8c43f95","ref":"refs/heads/master","pushedAt":"2024-02-18T23:30:13.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"fintelia","name":"Jonathan Behrens","path":"/fintelia","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4943209?s=80&v=4"},"commit":{"message":"Fix Send bound on Reader (#471)","shortMessageHtmlLink":"Fix Send bound on Reader (#471)"}},{"before":"ec8dbe9e8e155b166d3887c66bd50e5f9e2ff09e","after":"59e04df13076d82477cf219c0f1d241240cf64d7","ref":"refs/heads/master","pushedAt":"2024-02-16T06:36:48.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"fintelia","name":"Jonathan Behrens","path":"/fintelia","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4943209?s=80&v=4"},"commit":{"message":"Release 0.17.12 (#468)","shortMessageHtmlLink":"Release 0.17.12 (#468)"}},{"before":"a6425ca00047f413fa9e093f895bea4357410c17","after":"ec8dbe9e8e155b166d3887c66bd50e5f9e2ff09e","ref":"refs/heads/master","pushedAt":"2024-02-11T20:45:21.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"fintelia","name":"Jonathan Behrens","path":"/fintelia","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4943209?s=80&v=4"},"commit":{"message":"Test minimal versions in CI (#467)","shortMessageHtmlLink":"Test minimal versions in CI (#467)"}},{"before":"92540b30897a21bc4a21593831c52aa27f010305","after":"a6425ca00047f413fa9e093f895bea4357410c17","ref":"refs/heads/master","pushedAt":"2024-02-04T23:10:25.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"fintelia","name":"Jonathan Behrens","path":"/fintelia","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4943209?s=80&v=4"},"commit":{"message":"Return Info with static lifetime (#465)","shortMessageHtmlLink":"Return Info with static lifetime (#465)"}},{"before":"b13388f113d15bf1b57c0eb51ae5b7abc53c3191","after":"92540b30897a21bc4a21593831c52aa27f010305","ref":"refs/heads/master","pushedAt":"2024-02-03T22:00:06.000Z","pushType":"pr_merge","commitsCount":3,"pusher":{"login":"kornelski","name":"Kornel","path":"/kornelski","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/72159?s=80&v=4"},"commit":{"message":"Merge pull request #463 from fintelia/less-miniz-oxide\n\nRemove remaining uses of miniz_oxide for decoding","shortMessageHtmlLink":"Merge pull request #463 from fintelia/less-miniz-oxide"}},{"before":"6cad99dbe3b618e47bba32efdaa633e6ec308cde","after":"b13388f113d15bf1b57c0eb51ae5b7abc53c3191","ref":"refs/heads/master","pushedAt":"2024-02-02T06:38:08.000Z","pushType":"pr_merge","commitsCount":6,"pusher":{"login":"fintelia","name":"Jonathan Behrens","path":"/fintelia","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4943209?s=80&v=4"},"commit":{"message":"Copy 4 bytes at a time in `create_rgba_palette`\n\nThis improves the performance as follows:\n\n- expand_paletted(ctor)/plte=256/trns=256\n [-40.581% -40.396% -40.211%] (p = 0.00 < 0.05)\n- expand_paletted(ctor)/plte=224/trns=32\n [-24.070% -23.840% -23.592%] (p = 0.00 < 0.05)\n\nSmall palettes are mostly unaffected:\n\n- expand_paletted(ctor)/plte=16/trns=1\n [-0.2525% +0.0338% +0.3239%] (p = 0.81 > 0.05)","shortMessageHtmlLink":"Copy 4 bytes at a time in create_rgba_palette"}},{"before":"731844083609c9ea22bcab34b61c284d3c111743","after":"6cad99dbe3b618e47bba32efdaa633e6ec308cde","ref":"refs/heads/next","pushedAt":"2024-01-29T01:45:47.000Z","pushType":"push","commitsCount":5,"pusher":{"login":"fintelia","name":"Jonathan Behrens","path":"/fintelia","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4943209?s=80&v=4"},"commit":{"message":"Add unit tests and benchmarks for `expand_paletted`.","shortMessageHtmlLink":"Add unit tests and benchmarks for expand_paletted."}},{"before":"731844083609c9ea22bcab34b61c284d3c111743","after":"6cad99dbe3b618e47bba32efdaa633e6ec308cde","ref":"refs/heads/master","pushedAt":"2024-01-27T20:48:57.000Z","pushType":"pr_merge","commitsCount":5,"pusher":{"login":"fintelia","name":"Jonathan Behrens","path":"/fintelia","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4943209?s=80&v=4"},"commit":{"message":"Add unit tests and benchmarks for `expand_paletted`.","shortMessageHtmlLink":"Add unit tests and benchmarks for expand_paletted."}},{"before":null,"after":"731844083609c9ea22bcab34b61c284d3c111743","ref":"refs/heads/next","pushedAt":"2024-01-20T22:41:41.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"fintelia","name":"Jonathan Behrens","path":"/fintelia","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4943209?s=80&v=4"},"commit":{"message":"Run CI for more branches (#459)","shortMessageHtmlLink":"Run CI for more branches (#459)"}},{"before":"ed54082e43d2b53daebadbf4d8e1c7fcd307379b","after":"731844083609c9ea22bcab34b61c284d3c111743","ref":"refs/heads/master","pushedAt":"2024-01-20T22:41:22.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"fintelia","name":"Jonathan Behrens","path":"/fintelia","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4943209?s=80&v=4"},"commit":{"message":"Run CI for more branches (#459)","shortMessageHtmlLink":"Run CI for more branches (#459)"}},{"before":"c145797e5d57cba84fc9bb393cba68d330e8ec54","after":"ed54082e43d2b53daebadbf4d8e1c7fcd307379b","ref":"refs/heads/master","pushedAt":"2024-01-20T18:43:25.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"fintelia","name":"Jonathan Behrens","path":"/fintelia","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4943209?s=80&v=4"},"commit":{"message":"End-to-end decoding benchmarks of paletted PNG images. (#453)\n\nCo-authored-by: Jonathan Behrens ","shortMessageHtmlLink":"End-to-end decoding benchmarks of paletted PNG images. (#453)"}},{"before":"5ac3b4189119895f4e47a4391e86e6955855d8e0","after":"c145797e5d57cba84fc9bb393cba68d330e8ec54","ref":"refs/heads/master","pushedAt":"2024-01-20T18:42:32.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"fintelia","name":"Jonathan Behrens","path":"/fintelia","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4943209?s=80&v=4"},"commit":{"message":"Reject zero-sized frame (#457)","shortMessageHtmlLink":"Reject zero-sized frame (#457)"}},{"before":"f1e7fa06fbd560d303e6af530d6326103ad3fe23","after":"5ac3b4189119895f4e47a4391e86e6955855d8e0","ref":"refs/heads/master","pushedAt":"2024-01-13T20:00:18.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"fintelia","name":"Jonathan Behrens","path":"/fintelia","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4943209?s=80&v=4"},"commit":{"message":"Release 0.17.11 (#455)","shortMessageHtmlLink":"Release 0.17.11 (#455)"}},{"before":"9c97a5641acc13744b36f3c2398305a1176f2789","after":"f1e7fa06fbd560d303e6af530d6326103ad3fe23","ref":"refs/heads/master","pushedAt":"2024-01-13T19:35:49.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"fintelia","name":"Jonathan Behrens","path":"/fintelia","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4943209?s=80&v=4"},"commit":{"message":"Ignore trailing date in the IDAT stream (#454)","shortMessageHtmlLink":"Ignore trailing date in the IDAT stream (#454)"}},{"before":"c33e3fb6b4f5d77bc6e18804f02cbf4049c2c951","after":"9c97a5641acc13744b36f3c2398305a1176f2789","ref":"refs/heads/master","pushedAt":"2024-01-13T19:26:16.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"fintelia","name":"Jonathan Behrens","path":"/fintelia","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4943209?s=80&v=4"},"commit":{"message":"Immediately reject IDAT before IHDR (#456)","shortMessageHtmlLink":"Immediately reject IDAT before IHDR (#456)"}},{"before":"b00fb53e18d8cde6485d20623e0e058e3f88e917","after":"c33e3fb6b4f5d77bc6e18804f02cbf4049c2c951","ref":"refs/heads/master","pushedAt":"2024-01-12T05:00:00.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"fintelia","name":"Jonathan Behrens","path":"/fintelia","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4943209?s=80&v=4"},"commit":{"message":"Adds `Reader::finish` to read all the auxillary chunks that comes after the image (#450)","shortMessageHtmlLink":"Adds Reader::finish to read all the auxillary chunks that comes aft…"}},{"before":"254e9b2ec1bbbfe68d5b6e44b410adfa3b4baf8e","after":"b00fb53e18d8cde6485d20623e0e058e3f88e917","ref":"refs/heads/master","pushedAt":"2024-01-07T00:18:01.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"fintelia","name":"Jonathan Behrens","path":"/fintelia","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4943209?s=80&v=4"},"commit":{"message":"Use fdeflate::decompress_to_vec_bounded for ICC profile (#449)","shortMessageHtmlLink":"Use fdeflate::decompress_to_vec_bounded for ICC profile (#449)"}},{"before":"1636b55e3945813ceb15db90374c6b7246b90a83","after":"254e9b2ec1bbbfe68d5b6e44b410adfa3b4baf8e","ref":"refs/heads/master","pushedAt":"2024-01-06T21:43:50.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"fintelia","name":"Jonathan Behrens","path":"/fintelia","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4943209?s=80&v=4"},"commit":{"message":"Reject zero sized images (#445)","shortMessageHtmlLink":"Reject zero sized images (#445)"}},{"before":"c4121b5cfeb064983314b9d524698c1a62bea486","after":"1636b55e3945813ceb15db90374c6b7246b90a83","ref":"refs/heads/master","pushedAt":"2024-01-06T21:36:08.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"fintelia","name":"Jonathan Behrens","path":"/fintelia","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4943209?s=80&v=4"},"commit":{"message":"Avoid 32kB decompression lag + compact less often. (#447)\n\nAvoiding 32kB decompression lag\r\n===============================\r\n\r\nBefore this commit, decompressed data would be accumulated in\r\n`ZlibStream::out_buffer` and returned via `image_data` with 32kB lag\r\ncorresponding to `CHUNCK_BUFFER_SIZE`:\r\n\r\n ```\r\n fn transfer_finished_data(&mut self, image_data: &mut Vec) -> usize {\r\n let safe = self.out_pos.saturating_sub(CHUNCK_BUFFER_SIZE);\r\n image_data.extend(self.out_buffer.drain(..safe));\r\n ...\r\n ```\r\n\r\n32kB is a typical size of L1 cache, so the lag would mean that the data\r\npassed to `image_data.extend(...)` would be already cold and evicted\r\nfrom the L1 cache.\r\n\r\nThis commit avoids the lag by always returning into `image_data` all the\r\ndata from `out_buffer` (i.e. data up to `out_pos`):\r\n\r\n ```\r\n fn transfer_finished_data(&mut self, image_data: &mut Vec) -> usize {\r\n let transferred = &self.out_buffer[self.read_pos..self.out_pos];\r\n image_data.extend_from_slice(transferred);\r\n self.read_pos = self.out_pos;\r\n ...\r\n ```\r\n\r\nCompacting less often\r\n=====================\r\n\r\nThe changes above mean that `Vec::drain` no longer compacts `out_buffer`.\r\nTherefore this commit also refactors how this compaction works.\r\n\r\nBefore this commit, not-yet-returned data would be shifted to the\r\nbeginning of `out_buffer` every time `transfer_finished_data` is called.\r\nThis could potentially mean that for 1 returned byte, N bytes have to be\r\ncopied during compaction.\r\n\r\nAfter this commit, compaction is only done when the compaction cost if\r\noffset by many read bytes - for 3 returned bytes 1 byte has to be copied\r\nduring compaction.\r\n\r\nPerformance impact\r\n==================\r\n\r\nThe commit has a positive impact on performance, except for:\r\n\r\n* `decode/Transparency.png` - regression between 15% and 20% is reported\r\n in 3-out-of-3 measurements.\r\n* `decode/kodim17.png` - a regression of 2.1% has been reported in\r\n 1-out-of-3 measurements (an improvement of 0.6% - 1.13% has been\r\n reported in the other 2-out-of-3 measurements).\r\n* `generated-noncompressed-64k-idat/128x128.png` - a regression of 25%\r\n has been reported in 1-out-of-3 measurements (an improvement of 21% -\r\n 29% has been reported in the other 2-out-of-3 measurements).\r\n\r\nThe results below have been gathered by running the `decoder` benchmark.\r\nFirst a baseline was saved before this commit, and then a comparison\r\nwas done after the commit. This (the baseline + the comparison) was\r\nrepeated a total of 3 times. All results below are for the relative\r\nimpact on the runtime. All results are with p = 0.00 < 0.05.\r\n\r\n* decode/kodim23.png:\r\n * [-2.9560% -2.7112% -2.4009%]\r\n * [-3.4876% -3.3406% -3.1928%]\r\n * [-3.0559% -2.9208% -2.7787%]\r\n\r\n* decode/kodim07.png:\r\n * [-1.2527% -1.0110% -0.6780%]\r\n * [-1.7851% -1.6558% -1.5164%]\r\n * [-1.6576% -1.5216% -1.3856%]\r\n\r\n* decode/kodim02.png:\r\n * [-0.5108% -0.2806% -0.0112%]\r\n * [-1.0885% -0.9493% -0.8118%]\r\n * [-0.5563% -0.4239% -0.2874%]\r\n\r\n* decode/kodim17.png:\r\n * [+1.8649% +2.1138% +2.4169%] (**regression**)\r\n * [-1.2891% -1.1322% -0.9736%]\r\n * [-0.7753% -0.6276% -0.4866%]\r\n\r\n* decode/Lohengrin_-_Illustrated_Sporting_and_Dramatic_News.png:\r\n * [-1.7165% -1.4968% -1.2650%]\r\n * [-1.7051% -1.4473% -1.2229%]\r\n * [-1.2544% -1.0457% -0.8375%]\r\n\r\n* decode/Transparency.png:\r\n * [+19.329% +19.789% +20.199%] (**regression**)\r\n * [+15.337% +15.798% +16.294%] (**regression**)\r\n * [+18.694% +19.106% +19.518%] (**regression**)\r\n\r\n* generated-noncompressed-4k-idat/8x8.png:\r\n * [-2.3295% -1.9940% -1.5912%]\r\n * [-6.1285% -5.8872% -5.6091%]\r\n * [-2.8814% -2.6787% -2.4820%]\r\n\r\n* generated-noncompressed-4k-idat/128x128.png:\r\n * [-59.793% -59.599% -59.417%]\r\n * [-63.930% -63.846% -63.756%]\r\n * [-62.377% -62.248% -62.104%]\r\n\r\n* generated-noncompressed-4k-idat/2048x2048.png:\r\n * [-67.678% -67.579% -67.480%]\r\n * [-65.616% -65.519% -65.429%]\r\n * [-65.824% -65.647% -65.413%]\r\n\r\n* generated-noncompressed-4k-idat/12288x12288.png:\r\n * [-60.932% -60.774% -60.528%]\r\n * [-62.088% -62.016% -61.940%]\r\n * [-61.663% -61.604% -61.546%]\r\n\r\n* generated-noncompressed-64k-idat/128x128.png:\r\n * [-22.237% -21.975% -21.701%]\r\n * [-29.656% -29.480% -29.311%]\r\n * [+24.812% +25.190% +25.571%] (**regression**)\r\n\r\n* generated-noncompressed-64k-idat/2048x2048.png:\r\n * [-21.826% -21.499% -21.087%]\r\n * [-54.279% -54.049% -53.715%]\r\n * [-11.174% -10.828% -10.482%]\r\n\r\n* generated-noncompressed-64k-idat/12288x12288.png:\r\n * [-40.421% -40.311% -40.180%]\r\n * [-39.496% -39.183% -38.871%]\r\n * [-41.443% -41.367% -41.295%]\r\n\r\n* generated-noncompressed-2g-idat/2048x2048.png:\r\n * [-40.136% -40.010% -39.865%]\r\n * [-58.507% -58.333% -58.060%]\r\n * [-35.822% -35.457% -35.038%]\r\n\r\n* generated-noncompressed-2g-idat/12288x12288.png:\r\n * [-37.196% -37.107% -37.014%]\r\n * [-36.125% -36.049% -35.970%]\r\n * [-35.636% -35.477% -35.350%]\r\n\r\nCo-authored-by: Lukasz Anforowicz ","shortMessageHtmlLink":"Avoid 32kB decompression lag + compact less often. (#447)"}},{"before":"d761f1614aef9a119e74cb2808c7af43a422c4c1","after":"c4121b5cfeb064983314b9d524698c1a62bea486","ref":"refs/heads/master","pushedAt":"2024-01-03T18:31:06.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"fintelia","name":"Jonathan Behrens","path":"/fintelia","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4943209?s=80&v=4"},"commit":{"message":"Cap buffer sizes via `ZlibStream::set_max_total_output`. (#429)\n\n* Roll the `fdeflate` dependency to version 0.3.3\r\n\r\n* Cap buffer sizes via `ZlibStream::set_max_total_output`.\r\n\r\nBefore this commit, `ZlibStream::new` would always allocate and zero out\r\n64kB of data via `out_buffer: vec![0; 2 * CHUNCK_BUFFER_SIZE]`. After\r\nthis commit, `out_buffer` is capped by the actual size of the\r\ndecompressed image data. `StreamingDecoder::parse_ihdr` estimates the\r\nimage size and notifies `ZlibStream` via the new `set_max_total_output`\r\nmethod.\r\n\r\nImpact on the runtime of the\r\n`decode/generated-png:noncompressed-8x8.png` benchmark (3 measurements):\r\n\r\n* [-24.028% -23.693% -23.460%] (p = 0.00 < 0.05)\r\n* [-23.830% -23.480% -23.200%] (p = 0.00 < 0.05)\r\n* [-21.259% -20.893% -20.618%] (p = 0.00 < 0.05)","shortMessageHtmlLink":"Cap buffer sizes via ZlibStream::set_max_total_output. (#429)"}},{"before":"8a499d93e3528c67f93443c6644e734dbe20168f","after":"d761f1614aef9a119e74cb2808c7af43a422c4c1","ref":"refs/heads/master","pushedAt":"2023-12-25T21:13:43.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"fintelia","name":"Jonathan Behrens","path":"/fintelia","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4943209?s=80&v=4"},"commit":{"message":"Validate provided info in Encoder::with_info (#442)","shortMessageHtmlLink":"Validate provided info in Encoder::with_info (#442)"}},{"before":"51fd35b7a808932b4c2e01a18aca92bd27f4578f","after":"8a499d93e3528c67f93443c6644e734dbe20168f","ref":"refs/heads/master","pushedAt":"2023-12-17T23:16:08.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"fintelia","name":"Jonathan Behrens","path":"/fintelia","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4943209?s=80&v=4"},"commit":{"message":"No more hard-coded limits (#441)","shortMessageHtmlLink":"No more hard-coded limits (#441)"}},{"before":"dbe2cc602d45382a75c518009389fef986b8fc58","after":"51fd35b7a808932b4c2e01a18aca92bd27f4578f","ref":"refs/heads/master","pushedAt":"2023-12-17T21:52:33.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"fintelia","name":"Jonathan Behrens","path":"/fintelia","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4943209?s=80&v=4"},"commit":{"message":"Benchmark varying sizes of IDATs and larger generated images (#432)","shortMessageHtmlLink":"Benchmark varying sizes of IDATs and larger generated images (#432)"}},{"before":"badce2a6fa222e1ea0abb49f04355eb56bc96753","after":"dbe2cc602d45382a75c518009389fef986b8fc58","ref":"refs/heads/master","pushedAt":"2023-12-16T02:54:47.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"fintelia","name":"Jonathan Behrens","path":"/fintelia","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4943209?s=80&v=4"},"commit":{"message":"Faster u32 parsing (#428)\n\nThis way removes a separate `State::Signature` variant and handles the\r\nPNG signature via two `State::U32` states. This is desirable because:\r\n\r\n* This helps to reuse the performance gains for `State::U32`\r\n (i.e. avoid accumulating the signature byte-by-byte if the input\r\n buffer already has all its bytes)\r\n* Avoiding separate code also has additional benefits:\r\n - Less pressure on the instructions cache\r\n - Ability to reuse branch prediction for `U32`-related code\r\n\r\nThe modified code already has reasonable test coverage via\r\nhttp://www.schaik.com/pngsuite/#corrupted","shortMessageHtmlLink":"Faster u32 parsing (#428)"}},{"before":"3f563bbfd48a341e45ab20c6e1c718fba468b616","after":"badce2a6fa222e1ea0abb49f04355eb56bc96753","ref":"refs/heads/master","pushedAt":"2023-12-11T07:45:34.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"fintelia","name":"Jonathan Behrens","path":"/fintelia","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4943209?s=80&v=4"},"commit":{"message":"Update `unstable` portable-simd imports (#437)\n\nImport SimdOrd, SimdPartialEq from std::simd::cmp\r\nImport SimdInt, SimdUint from std::simd::num\r\n\r\nThe most recent portable-simd subtree sync moved some traits\r\nout of the top level modules.","shortMessageHtmlLink":"Update unstable portable-simd imports (#437)"}},{"before":"7f70ffa26c77956e47670eb959b3aea27aafdced","after":"3f563bbfd48a341e45ab20c6e1c718fba468b616","ref":"refs/heads/master","pushedAt":"2023-12-05T19:32:51.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"fintelia","name":"Jonathan Behrens","path":"/fintelia","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4943209?s=80&v=4"},"commit":{"message":"Test failing image for skip_ancillary_crc disabled (#436)","shortMessageHtmlLink":"Test failing image for skip_ancillary_crc disabled (#436)"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEJBE9MQA","startCursor":null,"endCursor":null}},"title":"Activity · image-rs/image-png"}