<feed xmlns='http://www.w3.org/2005/Atom'>
<title>jellyfin/tests/Jellyfin.Drawing.Skia.Tests, branch master</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<id>https://git.b0n.dev/jellyfin/atom?h=master</id>
<link rel='self' href='https://git.b0n.dev/jellyfin/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.b0n.dev/jellyfin/'/>
<updated>2026-09-15T15:16:11Z</updated>
<entry>
<title>Backport pull request #17956 from jellyfin/release-12.z</title>
<updated>2026-09-15T15:16:11Z</updated>
<author>
<name>Shadowghost</name>
<email>Shadowghost@users.noreply.github.com</email>
</author>
<published>2026-09-15T15:16:11Z</published>
<link rel='alternate' type='text/html' href='https://git.b0n.dev/jellyfin/commit/?id=8e2b62331d8f6c632ad8bcc80149818ba5b8a800'/>
<id>urn:sha1:8e2b62331d8f6c632ad8bcc80149818ba5b8a800</id>
<content type='text'>
Don't resample or sharpen images Skia isn't actually resizing

Original-merge: 7d7faf08b7769af0f6c544cab59fb57316167d84

Merged-by: crobibero &lt;cody@robibe.ro&gt;

Backported-by: Cody Robibero &lt;cody@robibe.ro&gt;
</content>
</entry>
<entry>
<title>Apply the resize sharpening kernel directly instead of via SKImageFilter</title>
<updated>2026-09-02T19:41:36Z</updated>
<author>
<name>Albert</name>
<email>bassmann1911@gmail.com</email>
</author>
<published>2026-09-02T19:41:36Z</published>
<link rel='alternate' type='text/html' href='https://git.b0n.dev/jellyfin/commit/?id=064de2172ebdad0b9dfc946fed8e95f59efb9b33'/>
<id>urn:sha1:064de2172ebdad0b9dfc946fed8e95f59efb9b33</id>
<content type='text'>
Since the SkiaSharp 3 update the MatrixConvolution image filter used in
SkiaEncoder.ResizeImage no longer has a fast CPU path: on the software
rasterizer it takes about 4.5 seconds per megapixel-sized image, which
turns every cold image request into a multi-second operation and makes
first-time loads of a library view take minutes.

Draw the resize without the paint filter and apply the identical 3x3
kernel (same weights, clamped edges, alpha included) directly on the
resized pixels instead. This drops a cold 1000x1500 -&gt; 663x995 poster
render from ~4.6s to well under a second; the convolution pass itself
takes ~86ms. Output is visually unchanged.
</content>
</entry>
<entry>
<title>Apply review suggestions</title>
<updated>2026-08-28T05:21:37Z</updated>
<author>
<name>Shadowghost</name>
<email>Ghost_of_Stone@web.de</email>
</author>
<published>2026-08-28T05:21:37Z</published>
<link rel='alternate' type='text/html' href='https://git.b0n.dev/jellyfin/commit/?id=99f21f16627e4899fbdf10aa0fa340b70452561e'/>
<id>urn:sha1:99f21f16627e4899fbdf10aa0fa340b70452561e</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Prevent SSRF, local file disclosure and DoS via external references in SVG rendering</title>
<updated>2026-08-25T09:04:24Z</updated>
<author>
<name>Shadowghost</name>
<email>Ghost_of_Stone@web.de</email>
</author>
<published>2026-08-25T09:04:24Z</published>
<link rel='alternate' type='text/html' href='https://git.b0n.dev/jellyfin/commit/?id=cefa78fc1de2410e5c5c6da5062c98fe98b22d17'/>
<id>urn:sha1:cefa78fc1de2410e5c5c6da5062c98fe98b22d17</id>
<content type='text'>
</content>
</entry>
</feed>
