diff options
author | Andreas Rheinhardt <andreas.rheinhardt@outlook.com> | 2022-09-26 13:48:18 +0200 |
---|---|---|
committer | Andreas Rheinhardt <andreas.rheinhardt@outlook.com> | 2022-10-03 23:21:57 +0200 |
commit | d09776d48651eeba10e1b5f2e5fba612b48b95f4 (patch) | |
tree | bd5551ae3b10aeb75e64c0193e0cb8084636cb31 | |
parent | e4beb307ab26816128678235641a13dfdb8d07d0 (diff) | |
download | ffmpeg-d09776d48651eeba10e1b5f2e5fba612b48b95f4.tar.gz |
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 <andreas.rheinhardt@outlook.com>
-rw-r--r-- | doc/APIchanges | 3 | ||||
-rw-r--r-- | libavformat/avio.c | 6 | ||||
-rw-r--r-- | libavformat/avio.h | 4 | ||||
-rw-r--r-- | libavformat/version.h | 2 | ||||
-rw-r--r-- | libavformat/version_major.h | 1 |
5 files changed, 15 insertions, 1 deletions
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 |