std/vp8: fix skip for all-zero DCT coefficients

"wuffs test -mimic std/webp" now passes.

This commit, part of a series, is inspired by pull request PR #168 by
Damian Kaczmarek (with AI assistance), with some modifications.

Updates PR #168
diff --git a/release/c/wuffs-unsupported-snapshot.c b/release/c/wuffs-unsupported-snapshot.c
index 58b989a..885f3a0 100644
--- a/release/c/wuffs-unsupported-snapshot.c
+++ b/release/c/wuffs-unsupported-snapshot.c
@@ -81822,7 +81822,7 @@
     uint32_t a_n);
 
 WUFFS_BASE__GENERATED_C_CODE
-static wuffs_base__empty_struct
+static uint32_t
 wuffs_vp8__decoder__decode_coefficients(
     wuffs_vp8__decoder* self,
     wuffs_base__slice_u8 a_workbuf,
@@ -82316,7 +82316,7 @@
 // -------- func vp8.decoder.decode_coefficients
 
 WUFFS_BASE__GENERATED_C_CODE
-static wuffs_base__empty_struct
+static uint32_t
 wuffs_vp8__decoder__decode_coefficients(
     wuffs_vp8__decoder* self,
     wuffs_base__slice_u8 a_workbuf,
@@ -82417,7 +82417,10 @@
     }
     v_bc += 2u;
   }
-  return wuffs_base__make_empty_struct();
+  if ((self->private_impl.f_mb_dc_nz == 0u) && (self->private_impl.f_mb_ac_nz == 0u)) {
+    return 1u;
+  }
+  return 0u;
 }
 
 // -------- func vp8.decoder.initialize_mb_coeffs
@@ -83984,7 +83987,7 @@
     self->private_impl.f_mb_dc_nz = 0u;
     self->private_impl.f_mb_ac_nz = 0u;
   } else {
-    wuffs_vp8__decoder__decode_coefficients(self,
+    v_skip = wuffs_vp8__decoder__decode_coefficients(self,
         a_workbuf,
         a_mbx,
         a_mby,
diff --git a/std/vp8/decode_coefficients.wuffs b/std/vp8/decode_coefficients.wuffs
index a730d55..8ad9d99 100644
--- a/std/vp8/decode_coefficients.wuffs
+++ b/std/vp8/decode_coefficients.wuffs
@@ -13,7 +13,7 @@
         mbx: base.u32[..= 0x3FF],
         mby: base.u32[..= 0x3FF],
         seg: base.u32[..= 3],
-        luma_mode: base.u32[..= 4]) {
+        luma_mode: base.u32[..= 4]) base.u32[..= 1] {
     var bc    : base.u32
     var by    : base.u32
     var bx    : base.u32
@@ -134,6 +134,11 @@
         }
         bc += 2
     }
+
+    if (this.mb_dc_nz == 0) and (this.mb_ac_nz == 0) {
+        return 1
+    }
+    return 0
 }
 
 pri func decoder.initialize_mb_coeffs!() {
diff --git a/std/vp8/decode_macroblocks.wuffs b/std/vp8/decode_macroblocks.wuffs
index 06cf996..79f686d 100644
--- a/std/vp8/decode_macroblocks.wuffs
+++ b/std/vp8/decode_macroblocks.wuffs
@@ -119,7 +119,7 @@
         this.mb_ac_nz = 0
 
     } else {
-        this.decode_coefficients!(
+        skip = this.decode_coefficients!(
                 workbuf: args.workbuf, mbx: args.mbx, mby: args.mby,
                 seg: seg, luma_mode: luma_mode)
     }
diff --git a/test/3pdata/nia-checksums-of-blinksuite.txt b/test/3pdata/nia-checksums-of-blinksuite.txt
index 9e6bc9f..628424a 100644
--- a/test/3pdata/nia-checksums-of-blinksuite.txt
+++ b/test/3pdata/nia-checksums-of-blinksuite.txt
@@ -173,7 +173,7 @@
 OK. 631f6a02 test/3pdata/blinksuite/test.webp
 OK. 19d3a207 test/3pdata/blinksuite/test3.webp
 BAD 1dfa35c6 test/3pdata/blinksuite/truncated2.webp
-OK. a66e5687 test/3pdata/blinksuite/webp-color-no-profile-lossy.webp
+OK. 603ddc49 test/3pdata/blinksuite/webp-color-no-profile-lossy.webp
 BAD ed67a9a5 test/3pdata/blinksuite/wrong-block-length.gif
 OK. 577c5c4c test/3pdata/blinksuite/ycbcr-420-fast-int-progressive.jpg
 OK. bf4cd8e2 test/3pdata/blinksuite/ycbcr-420-float-progressive.jpg
diff --git a/test/3pdata/nia-checksums-of-webpsuite.txt b/test/3pdata/nia-checksums-of-webpsuite.txt
index 7f04d3e..67ce611 100644
--- a/test/3pdata/nia-checksums-of-webpsuite.txt
+++ b/test/3pdata/nia-checksums-of-webpsuite.txt
@@ -1,6 +1,6 @@
 # Generated by script/print-nia-checksums.sh
 OK. ca4c0038 test/3pdata/webpsuite/bad_palette_index.webp
-OK. 695fb9c9 test/3pdata/webpsuite/bryce.webp
+OK. 3557c3f5 test/3pdata/webpsuite/bryce.webp
 OK. a07d001c test/3pdata/webpsuite/bug3.webp
 OK. 6fbda804 test/3pdata/webpsuite/color_cache_bits_11.webp
 BAD d338aed8 test/3pdata/webpsuite/dual_transform.webp
@@ -50,7 +50,7 @@
 OK. 6706e719 test/3pdata/webpsuite/lossless_vec_2_8.webp
 BAD 79781cfb test/3pdata/webpsuite/lossless_vec_2_9.webp
 OK. 3a23e407 test/3pdata/webpsuite/lossy_extreme_probabilities.webp
-OK. ac8caef7 test/3pdata/webpsuite/lossy_q0_f100.webp
+OK. f6f31bd1 test/3pdata/webpsuite/lossy_q0_f100.webp
 OK. 6957defa test/3pdata/webpsuite/near_lossless_75.webp
 OK. 7c80a001 test/3pdata/webpsuite/one_color_no_palette.webp
 OK. 6706e719 test/3pdata/webpsuite/peak.bmp
@@ -78,7 +78,7 @@
 OK. 9458b100 test/3pdata/webpsuite/vp80-00-comprehensive-009.webp
 OK. 954647a5 test/3pdata/webpsuite/vp80-00-comprehensive-010.webp
 OK. ff7d9585 test/3pdata/webpsuite/vp80-00-comprehensive-011.webp
-OK. 85cbf113 test/3pdata/webpsuite/vp80-00-comprehensive-012.webp
+OK. 6732c101 test/3pdata/webpsuite/vp80-00-comprehensive-012.webp
 OK. df21b5c8 test/3pdata/webpsuite/vp80-00-comprehensive-013.webp
 OK. de3154f1 test/3pdata/webpsuite/vp80-00-comprehensive-014.webp
 OK. 6291f264 test/3pdata/webpsuite/vp80-00-comprehensive-015.webp
@@ -102,7 +102,7 @@
 OK. 65fb3f68 test/3pdata/webpsuite/vp80-03-segmentation-1414.webp
 OK. 65fb3f68 test/3pdata/webpsuite/vp80-03-segmentation-1415.webp
 OK. 3819b4d7 test/3pdata/webpsuite/vp80-03-segmentation-1425.webp
-OK. 6883fbc5 test/3pdata/webpsuite/vp80-03-segmentation-1426.webp
+OK. 981e1d2e test/3pdata/webpsuite/vp80-03-segmentation-1426.webp
 OK. 57780055 test/3pdata/webpsuite/vp80-03-segmentation-1427.webp
 OK. caf44365 test/3pdata/webpsuite/vp80-03-segmentation-1432.webp
 OK. 17d6af96 test/3pdata/webpsuite/vp80-03-segmentation-1435.webp
diff --git a/test/c/std/webp.c b/test/c/std/webp.c
index 11ccf70..be4f25f 100644
--- a/test/c/std/webp.c
+++ b/test/c/std/webp.c
@@ -532,7 +532,7 @@
     test_mimic_webp_lossy_decode_image_19k_8bpp,
     test_mimic_webp_lossy_decode_image_40k_24bpp,
     test_mimic_webp_lossy_decode_image_77k_24bpp,
-    // test_mimic_webp_lossy_decode_image_552k_32bpp,
+    test_mimic_webp_lossy_decode_image_552k_32bpp,
     test_mimic_webp_lossy_decode_image_4002k_24bpp,
 
 #endif  // WUFFS_MIMIC
diff --git a/test/nia-checksums-of-data.txt b/test/nia-checksums-of-data.txt
index 27cba69..ab27329 100644
--- a/test/nia-checksums-of-data.txt
+++ b/test/nia-checksums-of-data.txt
@@ -115,13 +115,13 @@
 OK. 25e212b3 test/data/hibiscus.primitive.gif
 OK. 9624fa44 test/data/hibiscus.primitive.jpeg
 OK. 33a44f22 test/data/hibiscus.primitive.lossless.webp
-OK. 9f1315c7 test/data/hibiscus.primitive.lossy.webp
+OK. 09bbaab0 test/data/hibiscus.primitive.lossy.webp
 OK. 33a44f22 test/data/hibiscus.primitive.png
 OK. 60040742 test/data/hibiscus.regular.bmp
 OK. b727da8b test/data/hibiscus.regular.gif
 OK. 41e39405 test/data/hibiscus.regular.jpeg
 OK. 60040742 test/data/hibiscus.regular.lossless.webp
-OK. 2b5fe795 test/data/hibiscus.regular.lossy.webp
+OK. 6bbe1ed2 test/data/hibiscus.regular.lossy.webp
 OK. 60040742 test/data/hibiscus.regular.png
 OK. dcbb225a test/data/hippopotamus.bmp
 OK. ed4b78fc test/data/hippopotamus.interlaced.gif