diff --git a/libavcodec/hevc_ps.c b/libavcodec/hevc_ps.c
index f106932d43..01b11ed42a 100644
--- a/libavcodec/hevc_ps.c
+++ b/libavcodec/hevc_ps.c
@@ -1087,7 +1087,8 @@ int ff_hevc_parse_sps(HEVCSPS *sps, GetBitContext *gb, unsigned int *sps_id,
     if (sps->vui_present)
         decode_vui(gb, avctx, apply_defdispwin, sps);
 
-    if (get_bits1(gb)) { // sps_extension_flag
+    sps->sps_extension_present_flag = get_bits1(gb);
+    if (sps->sps_extension_present_flag) {
         sps->sps_range_extension_flag      = get_bits1(gb);
         sps->sps_multilayer_extension_flag = get_bits1(gb);
         sps->sps_3d_extension_flag         = get_bits1(gb);
diff --git a/libavcodec/hevc_ps.h b/libavcodec/hevc_ps.h
index a9515cdb0e..ef11e51ee7 100644
--- a/libavcodec/hevc_ps.h
+++ b/libavcodec/hevc_ps.h
@@ -217,6 +217,7 @@ typedef struct HEVCSPS {
     VUI vui;
     PTL ptl;
 
+    uint8_t sps_extension_present_flag;
     uint8_t scaling_list_enable_flag;
     ScalingList scaling_list;