diff --git a/third_party/nestegg/README.webm b/third_party/nestegg/README.webm
index 042f0ff1b28f64ef984d3dc42b7d3c5c149466d1..4cf2e4d220b2b3a8c610cce1f75f072e5cdffa42 100644
--- a/third_party/nestegg/README.webm
+++ b/third_party/nestegg/README.webm
@@ -20,3 +20,4 @@ nestegg.c|975 col 6| warning: ‘r’ may be used uninitialized in this function
 - nestegg_packet_track: fix uint64->uint32 warning
 - ne_read_(string|binary|block): normalize size_t usage
 - ne_parse: normalize size_t usage
+- quiet read related uint64->size_t warnings
diff --git a/third_party/nestegg/src/nestegg.c b/third_party/nestegg/src/nestegg.c
index 1a263125ad08b1ef98accd63040044dd1e73f4f8..124b98b3e52460b9082795e3968914d18995225c 100644
--- a/third_party/nestegg/src/nestegg.c
+++ b/third_party/nestegg/src/nestegg.c
@@ -1152,7 +1152,8 @@ ne_read_ebml_lacing(nestegg_io * io, size_t block, size_t * read, uint64_t n, ui
   r = ne_read_vint(io, &lace, &length);
   if (r != 1)
     return r;
-  *read += length;
+  assert(length <= 8);
+  *read += (size_t)length;
 
   sizes[i] = lace;
   sum = sizes[i];
@@ -1164,7 +1165,8 @@ ne_read_ebml_lacing(nestegg_io * io, size_t block, size_t * read, uint64_t n, ui
     r = ne_read_svint(io, &slace, &length);
     if (r != 1)
       return r;
-    *read += length;
+    assert(length <= 8);
+    *read += (size_t)length;
     sizes[i] = sizes[i - 1] + slace;
     sum += sizes[i];
     i += 1;
@@ -1408,7 +1410,8 @@ ne_read_discard_padding(nestegg * ctx, nestegg_packet * pkt)
   if (!element)
     return 1;
 
-  r = ne_read_simple(ctx, element, size);
+  assert((size_t)size == size);
+  r = ne_read_simple(ctx, element, (size_t)size);
   if (r != 1)
     return r;
   storage = (struct ebml_type *) (ctx->ancestor->data + element->offset);