From d09776d48651eeba10e1b5f2e5fba612b48b95f4 Mon Sep 17 00:00:00 2001 From: Andreas Rheinhardt Date: Mon, 26 Sep 2022 13:48:18 +0200 Subject: [PATCH] avformat/avio: Schedule AVIODirContext to become an opaque type Users can't make anything with its content. Making it opaque might allow us to avoid one level of indirection. Signed-off-by: Andreas Rheinhardt --- doc/APIchanges | 3 +++ libavformat/avio.c | 6 ++++++ libavformat/avio.h | 4 ++++ libavformat/version.h | 2 +- libavformat/version_major.h | 1 + 5 files changed, 15 insertions(+), 1 deletion(-) diff --git a/doc/APIchanges b/doc/APIchanges index f32a3954a0..6de3a88997 100644 --- a/doc/APIchanges +++ b/doc/APIchanges @@ -14,6 +14,9 @@ libavutil: 2021-04-27 API changes, most recent first: +2022-10-03 - xxxxxxxxxx - lavf 59.34.100 - avio.h + Make AVIODirContext an opaque type in a future major version bump. + 2022-09-27 - 0c0a3deb18 - lavu 57.38.100 - cpu.h Add CPU flags for RISC-V vector extensions: AV_CPU_FLAG_RVV_I32, AV_CPU_FLAG_RVV_F32, AV_CPU_FLAG_RVV_I64, diff --git a/libavformat/avio.c b/libavformat/avio.c index 4846bbd8c6..ab1c19a58d 100644 --- a/libavformat/avio.c +++ b/libavformat/avio.c @@ -528,6 +528,12 @@ int ffurl_delete(const char *url) return ret; } +#if !FF_API_AVIODIRCONTEXT +struct AVIODirContext { + struct URLContext *url_context; +}; +#endif + int avio_open_dir(AVIODirContext **s, const char *url, AVDictionary **options) { URLContext *h = NULL; diff --git a/libavformat/avio.h b/libavformat/avio.h index 36c3d7b430..7e4aa9a1c8 100644 --- a/libavformat/avio.h +++ b/libavformat/avio.h @@ -101,9 +101,13 @@ typedef struct AVIODirEntry { int64_t filemode; /**< Unix file mode, -1 if unknown. */ } AVIODirEntry; +#if FF_API_AVIODIRCONTEXT typedef struct AVIODirContext { struct URLContext *url_context; } AVIODirContext; +#else +typedef struct AVIODirContext AVIODirContext; +#endif /** * Different data types that can be returned via the AVIO diff --git a/libavformat/version.h b/libavformat/version.h index 6c740dd187..647a773ed5 100644 --- a/libavformat/version.h +++ b/libavformat/version.h @@ -31,7 +31,7 @@ #include "version_major.h" -#define LIBAVFORMAT_VERSION_MINOR 33 +#define LIBAVFORMAT_VERSION_MINOR 34 #define LIBAVFORMAT_VERSION_MICRO 100 #define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \ diff --git a/libavformat/version_major.h b/libavformat/version_major.h index 099a17873f..86af3ee4a5 100644 --- a/libavformat/version_major.h +++ b/libavformat/version_major.h @@ -47,6 +47,7 @@ #define FF_HLS_TS_OPTIONS (LIBAVFORMAT_VERSION_MAJOR < 60) #define FF_API_AVSTREAM_CLASS (LIBAVFORMAT_VERSION_MAJOR > 59) #define FF_API_GET_END_PTS (LIBAVFORMAT_VERSION_MAJOR < 60) +#define FF_API_AVIODIRCONTEXT (LIBAVFORMAT_VERSION_MAJOR < 60) #define FF_API_R_FRAME_RATE 1