feat: re-encode cover images for rockbox compatibility

This commit is contained in:
Markury
2026-06-03 20:39:20 -04:00
parent 2beae8e327
commit 3d7d3ded1c
3 changed files with 37 additions and 3 deletions

View File

@@ -87,14 +87,20 @@ export async function downloadTrack(
// Get user settings
const appSettings = get(settings);
// Download cover art if enabled
// Download cover art if enabled, re-encode as baseline JPEG for player compatibility
let coverData: Uint8Array | undefined;
if ((appSettings.embedCoverArt || appSettings.saveCoverToFolder) && track.albumCoverUrl) {
try {
console.log('Downloading cover art...');
coverData = await downloadCover(track.albumCoverUrl);
const rawCover = await downloadCover(track.albumCoverUrl);
const reencoded = await invoke<number[]>('reencode_cover_image', {
data: Array.from(rawCover),
quality: appSettings.coverImageQuality
});
coverData = new Uint8Array(reencoded);
console.log(`[ImageDownload] Re-encoded cover: ${rawCover.length} -> ${coverData.length} bytes (q=${appSettings.coverImageQuality})`);
} catch (error) {
console.warn('Failed to download cover art:', error);
console.warn('Failed to download/re-encode cover art:', error);
}
}