Improve printClapFraction()
If a fraction is invalid, such as 2/0, don't simplify it to 1/0.
Don't print a comma after every clap fraction. Have the caller of
printClapFraction() print a comma between clap fractions.
diff --git a/apps/shared/avifutil.c b/apps/shared/avifutil.c
index 003fd64..0caf50f 100644
--- a/apps/shared/avifutil.c
+++ b/apps/shared/avifutil.c
@@ -32,13 +32,14 @@
static void printClapFraction(const char * name, int32_t n, int32_t d)
{
printf("%s: %d/%d", name, n, d);
- int64_t gcd = calcGCD(n, d);
- if (gcd > 1) {
- int32_t rn = (int32_t)(n / gcd);
- int32_t rd = (int32_t)(d / gcd);
- printf(" (%d/%d)", rn, rd);
+ if (d != 0) {
+ int64_t gcd = calcGCD(n, d);
+ if (gcd > 1) {
+ int32_t rn = (int32_t)(n / gcd);
+ int32_t rd = (int32_t)(d / gcd);
+ printf(" (%d/%d)", rn, rd);
+ }
}
- printf(", ");
}
static void avifImageDumpInternal(const avifImage * avif, uint32_t gridCols, uint32_t gridRows, avifBool alphaPresent, avifProgressiveState progressiveState)
@@ -89,8 +90,11 @@
if (avif->transformFlags & AVIF_TRANSFORM_CLAP) {
printf(" * clap (Clean Aperture): ");
printClapFraction("W", (int32_t)avif->clap.widthN, (int32_t)avif->clap.widthD);
+ printf(", ");
printClapFraction("H", (int32_t)avif->clap.heightN, (int32_t)avif->clap.heightD);
+ printf(", ");
printClapFraction("hOff", (int32_t)avif->clap.horizOffN, (int32_t)avif->clap.horizOffD);
+ printf(", ");
printClapFraction("vOff", (int32_t)avif->clap.vertOffN, (int32_t)avif->clap.vertOffD);
printf("\n");