diff --git a/libavcodec/internal.h b/libavcodec/internal.h
index d6e620a9832d2b71fe46520b37da17f0b37245a2..6e93eeb1a91f93d1460208eece91360235dee819 100644
--- a/libavcodec/internal.h
+++ b/libavcodec/internal.h
@@ -141,7 +141,7 @@ typedef struct AVCodecInternal {
      * Current packet as passed into the decoder, to avoid having to pass the
      * packet into every function.
      */
-    AVPacket *pkt;
+    const AVPacket *pkt;
 
     /**
      * temporary buffer used for encoders to store their bitstream
diff --git a/libavcodec/utils.c b/libavcodec/utils.c
index 4d1b63222f30a0e1bd951ff5bcdd8d930cd2caed..d41ea572f5e3548e7c302798b35579be48e46bab 100644
--- a/libavcodec/utils.c
+++ b/libavcodec/utils.c
@@ -745,7 +745,7 @@ int avcodec_default_get_buffer2(AVCodecContext *avctx, AVFrame *frame, int flags
     }
 }
 
-static int add_metadata_from_side_data(AVPacket *avpkt, AVFrame *frame)
+static int add_metadata_from_side_data(const AVPacket *avpkt, AVFrame *frame)
 {
     int size;
     const uint8_t *side_metadata;
@@ -759,7 +759,7 @@ static int add_metadata_from_side_data(AVPacket *avpkt, AVFrame *frame)
 
 int ff_init_buffer_info(AVCodecContext *avctx, AVFrame *frame)
 {
-    AVPacket *pkt = avctx->internal->pkt;
+    const AVPacket *pkt = avctx->internal->pkt;
     int i;
     static const struct {
         enum AVPacketSideDataType packet;