diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
index 880ce5a241c999241f35a80cd3bc3cbb3ed4182a..e2e4d9dbd6a75d0af3ff16a0921f3c4a8da3e313 100644
--- a/libavcodec/avcodec.h
+++ b/libavcodec/avcodec.h
@@ -63,6 +63,9 @@
 #ifndef FF_API_VIDEO_OLD
 #define FF_API_VIDEO_OLD        (LIBAVCODEC_VERSION_MAJOR < 53)
 #endif
+#ifndef FF_API_SUBTITLE_OLD
+#define FF_API_SUBTITLE_OLD     (LIBAVCODEC_VERSION_MAJOR < 53)
+#endif
 
 #define AV_NOPTS_VALUE          INT64_C(0x8000000000000000)
 #define AV_TIME_BASE            1000000
@@ -3590,7 +3593,7 @@ int avcodec_decode_video2(AVCodecContext *avctx, AVFrame *picture,
                          int *got_picture_ptr,
                          AVPacket *avpkt);
 
-#if LIBAVCODEC_VERSION_MAJOR < 53
+#if FF_API_SUBTITLE_OLD
 /* Decode a subtitle message. Return -1 if error, otherwise return the
  * number of bytes used. If no subtitle could be decompressed,
  * got_sub_ptr is zero. Otherwise, the subtitle is stored in *sub. */
diff --git a/libavcodec/utils.c b/libavcodec/utils.c
index 0d27163d6d17d75fde2a94a804880c0219ce9102..ffd34eee145fe112938f583c059974573f6cad5f 100644
--- a/libavcodec/utils.c
+++ b/libavcodec/utils.c
@@ -671,7 +671,7 @@ int attribute_align_arg avcodec_decode_audio3(AVCodecContext *avctx, int16_t *sa
     return ret;
 }
 
-#if LIBAVCODEC_VERSION_MAJOR < 53
+#if FF_API_SUBTITLE_OLD
 int avcodec_decode_subtitle(AVCodecContext *avctx, AVSubtitle *sub,
                             int *got_sub_ptr,
                             const uint8_t *buf, int buf_size)