Merge remote-tracking branch 'origin/feat/shop' into feat/shop
All checks were successful
PR Checks / prettier-autofix (pull_request) Successful in 11s
PR Checks / security-sast (pull_request) Successful in 30s
PR Checks / test-backend (pull_request) Successful in 26s
PR Checks / test-frontend (pull_request) Successful in 1m1s

# Conflicts:
#	frontend/src/app/features/shop/components/product-card/product-card.component.scss
#	frontend/src/app/features/shop/product-detail.component.scss
#	frontend/src/app/features/shop/shop-page.component.html
#	frontend/src/app/features/shop/shop-page.component.scss
#	frontend/src/app/features/shop/shop-page.component.ts
This commit is contained in:
2026-03-10 10:53:42 +01:00
15 changed files with 200 additions and 49 deletions

View File

@@ -362,7 +362,27 @@ public class AdminMediaControllerService {
}
String extension = GENERATED_FORMAT_EXTENSIONS.get(format);
Path outputFile = generatedDirectory.resolve(preset.name() + "." + extension);
mediaFfmpegService.generateVariant(sourceFile, outputFile, dimensions.widthPx(), dimensions.heightPx(), format);
try {
mediaFfmpegService.generateVariant(
sourceFile,
outputFile,
dimensions.widthPx(),
dimensions.heightPx(),
format
);
} catch (IOException e) {
if (FORMAT_AVIF.equals(format)) {
skippedFormats.add(format);
logger.warn(
"Skipping AVIF variant generation for asset {} preset '{}' because FFmpeg AVIF generation failed: {}",
asset.getId(),
preset.name(),
e.getMessage()
);
continue;
}
throw e;
}
MediaVariant variant = new MediaVariant();
variant.setMediaAsset(asset);

View File

@@ -82,8 +82,6 @@ public class MediaFfmpegService {
case "AVIF" -> {
command.add("-c:v");
command.add(encoder);
command.add("-still-picture");
command.add("1");
command.add("-crf");
command.add("30");
command.add("-b:v");