diff --git a/libavformat/asfdec_o.c b/libavformat/asfdec_o.c
index 6170116112bd131ebe939702170617da5df3fa1a..fe6b9ebb51a6295e918b5db9a7c0d452035906ad 100644
--- a/libavformat/asfdec_o.c
+++ b/libavformat/asfdec_o.c
@@ -134,7 +134,7 @@ typedef struct ASFContext {
 
     // packet state
     uint64_t sub_left;  // subpayloads left or not
-    int nb_sub; // number of subpayloads read so far from the current ASF packet
+    unsigned int nb_sub; // number of subpayloads read so far from the current ASF packet
     uint16_t mult_sub_len; // total length of subpayloads array inside multiple payload
     uint64_t nb_mult_left; // multiple payloads left
     int return_subpayload;