diff --git a/libavformat/movenc.c b/libavformat/movenc.c
index 529b9d1b98f667f097d13c16ef2b31c0f26782b5..c7fc12da82b54a5deec609aff1d3b34ec6b17eb0 100644
--- a/libavformat/movenc.c
+++ b/libavformat/movenc.c
@@ -2220,8 +2220,12 @@ static int mov_write_edts_tag(AVIOContext *pb, MOVTrack *track)
         }
         avio_wb32(pb, 0x00010000);
     } else {
+        /* Avoid accidentally ending up with start_ct = -1 which has got a
+         * special meaning. Normally start_ct should end up positive or zero
+         * here, but use FFMIN in case dts is a a small positive integer
+         * rounded to 0 when represented in MOV_TIMESCALE units. */
         av_assert0(av_rescale_rnd(track->cluster[0].dts, MOV_TIMESCALE, track->timescale, AV_ROUND_DOWN) <= 0);
-        start_ct  = -FFMIN(track->cluster[0].dts, 0); //FFMIN needed due to rounding
+        start_ct  = -FFMIN(track->cluster[0].dts, 0);
         duration += delay;
     }