diff --git a/libavformat/avformat.h b/libavformat/avformat.h index 4a46a36789bcd2c53add3d61c8782f5e1a297fae..b08f758d0f157a47283246012d92d7c7cb6b49d7 100644 --- a/libavformat/avformat.h +++ b/libavformat/avformat.h @@ -672,7 +672,7 @@ typedef struct AVFormatContext { void *priv_data; ByteIOContext *pb; unsigned int nb_streams; -#if LIBAVFORMAT_VERSION_MAJOR < 53 +#if FF_API_MAX_STREAMS AVStream *streams[MAX_STREAMS]; #else AVStream **streams; diff --git a/libavformat/utils.c b/libavformat/utils.c index 73f89a0a0fd7c3eee086e4e20e41440c56d70506..1b58b342bb72ef73d61204635d2467b6482908e5 100644 --- a/libavformat/utils.c +++ b/libavformat/utils.c @@ -2543,7 +2543,13 @@ AVStream *av_new_stream(AVFormatContext *s, int id) { AVStream *st; int i; -#if LIBAVFORMAT_VERSION_MAJOR >= 53 + +#if FF_API_MAX_STREAMS + if (s->nb_streams >= MAX_STREAMS){ + av_log(s, AV_LOG_ERROR, "Too many streams\n"); + return NULL; + } +#else AVStream **streams; if (s->nb_streams >= INT_MAX/sizeof(*streams)) @@ -2552,11 +2558,6 @@ AVStream *av_new_stream(AVFormatContext *s, int id) if (!streams) return NULL; s->streams = streams; -#else - if (s->nb_streams >= MAX_STREAMS){ - av_log(s, AV_LOG_ERROR, "Too many streams\n"); - return NULL; - } #endif st = av_mallocz(sizeof(AVStream));