summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/APIchanges6
-rw-r--r--libavformat/avformat.h19
-rw-r--r--libavformat/network.c9
-rw-r--r--libavformat/network.h1
-rw-r--r--libavformat/utils.c2
-rw-r--r--libavformat/version.h2
6 files changed, 20 insertions, 19 deletions
diff --git a/doc/APIchanges b/doc/APIchanges
index 0184815224..7699365879 100644
--- a/doc/APIchanges
+++ b/doc/APIchanges
@@ -15,6 +15,12 @@ libavutil: 2017-10-21
API changes, most recent first:
+2018-01-xx - xxxxxxx - lavf 58.5.100 - avformat.h
+ Explicitly make avformat_network_init() and avformat_network_deinit() optional.
+ If these are not called, network initialization and deinitialization is
+ automatic, and unlike in older versions, fully supported, unless libavformat
+ is linked to ancient GnuTLS and OpenSSL.
+
2018-01-xx - xxxxxxx - lavf 58.4.100 - avformat.h
Deprecate AVStream.recommended_encoder_configuration. It was useful only for
FFserver, which has been removed.
diff --git a/libavformat/avformat.h b/libavformat/avformat.h
index 8556f80372..b0387214c5 100644
--- a/libavformat/avformat.h
+++ b/libavformat/avformat.h
@@ -1998,17 +1998,24 @@ void av_register_input_format(AVInputFormat *format);
void av_register_output_format(AVOutputFormat *format);
/**
- * Do global initialization of network components. This is optional,
- * but recommended, since it avoids the overhead of implicitly
- * doing the setup for each session.
+ * Do global initialization of network libraries. This is optional,
+ * and not recommended anymore.
*
- * Calling this function will become mandatory if using network
- * protocols at some major version bump.
+ * This functions only exists to work around thread-safety issues
+ * with older GnuTLS or OpenSSL libraries. If libavformat is linked
+ * to newer versions of those libraries, or if you do not use them,
+ * calling this function is unnecessary. Otherwise, you need to call
+ * this function before any other threads using them are started.
+ *
+ * This function will be deprecated once support for older GnuTLS and
+ * OpenSSL libraries is removed, and this function has no purpose
+ * anymore.
*/
int avformat_network_init(void);
/**
- * Undo the initialization done by avformat_network_init.
+ * Undo the initialization done by avformat_network_init. Call it only
+ * once for each time you called avformat_network_init.
*/
int avformat_network_deinit(void);
diff --git a/libavformat/network.c b/libavformat/network.c
index e9eb4b443a..d5c82e9ab9 100644
--- a/libavformat/network.c
+++ b/libavformat/network.c
@@ -54,20 +54,11 @@ void ff_tls_deinit(void)
#endif
}
-int ff_network_inited_globally;
-
int ff_network_init(void)
{
#if HAVE_WINSOCK2_H
WSADATA wsaData;
-#endif
- if (!ff_network_inited_globally)
- av_log(NULL, AV_LOG_WARNING, "Using network protocols without global "
- "network initialization. Please use "
- "avformat_network_init(), this will "
- "become mandatory later.\n");
-#if HAVE_WINSOCK2_H
if (WSAStartup(MAKEWORD(1,1), &wsaData))
return 0;
#endif
diff --git a/libavformat/network.h b/libavformat/network.h
index 3c0f873279..e3fda4d5e2 100644
--- a/libavformat/network.h
+++ b/libavformat/network.h
@@ -75,7 +75,6 @@ int ff_neterrno(void);
int ff_socket_nonblock(int socket, int enable);
-extern int ff_network_inited_globally;
int ff_network_init(void);
void ff_network_close(void);
diff --git a/libavformat/utils.c b/libavformat/utils.c
index 0022639573..3d733417e1 100644
--- a/libavformat/utils.c
+++ b/libavformat/utils.c
@@ -4885,7 +4885,6 @@ int avformat_network_init(void)
{
#if CONFIG_NETWORK
int ret;
- ff_network_inited_globally = 1;
if ((ret = ff_network_init()) < 0)
return ret;
if ((ret = ff_tls_init()) < 0)
@@ -4899,7 +4898,6 @@ int avformat_network_deinit(void)
#if CONFIG_NETWORK
ff_network_close();
ff_tls_deinit();
- ff_network_inited_globally = 0;
#endif
return 0;
}
diff --git a/libavformat/version.h b/libavformat/version.h
index d566e255e5..87758b027c 100644
--- a/libavformat/version.h
+++ b/libavformat/version.h
@@ -32,7 +32,7 @@
// Major bumping may affect Ticket5467, 5421, 5451(compatibility with Chromium)
// Also please add any ticket numbers that you believe might be affected here
#define LIBAVFORMAT_VERSION_MAJOR 58
-#define LIBAVFORMAT_VERSION_MINOR 4
+#define LIBAVFORMAT_VERSION_MINOR 5
#define LIBAVFORMAT_VERSION_MICRO 100
#define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \