diff --git a/libavformat/mov.c b/libavformat/mov.c
index ab5c4e2db9ac211064982091090e6e6da9f6575b..c720440472b597aa5ef368fdea2aa0a1fe22b489 100644
--- a/libavformat/mov.c
+++ b/libavformat/mov.c
@@ -2193,7 +2193,7 @@ static int mov_read_elst(MOVContext *c, AVIOContext *pb, MOVAtom atom)
             time     = avio_rb64(pb);
         } else {
             duration = avio_rb32(pb); /* segment duration */
-            time     = avio_rb32(pb); /* media time */
+            time     = (int32_t)avio_rb32(pb); /* media time */
         }
         avio_rb32(pb); /* Media rate */
         if (i == 0 && time >= -1) {