diff --git a/libavcodec/gifdec.c b/libavcodec/gifdec.c
index 71d3d70214d2d3fc38177cc6b1483591092c5537..8fb1f4bbbd99eb3adb162ec1948a3a29becedea2 100644
--- a/libavcodec/gifdec.c
+++ b/libavcodec/gifdec.c
@@ -451,7 +451,7 @@ static int gif_decode_frame(AVCodecContext *avctx, void *data, int *got_frame, A
     s->picture.pts          = avpkt->pts;
     s->picture.pkt_pts      = avpkt->pts;
     s->picture.pkt_dts      = avpkt->dts;
-    s->picture.pkt_duration = avpkt->duration;
+    av_frame_set_pkt_duration(&s->picture, avpkt->duration);
 
     if (avpkt->size >= 6) {
         s->keyframe = memcmp(avpkt->data, gif87a_sig, 6) == 0 ||