summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libavformat/avio.h6
-rw-r--r--libavformat/url.h17
2 files changed, 22 insertions, 1 deletions
diff --git a/libavformat/avio.h b/libavformat/avio.h
index a97d6308ac..c39d2a0444 100644
--- a/libavformat/avio.h
+++ b/libavformat/avio.h
@@ -139,8 +139,11 @@ attribute_deprecated int url_poll(URLPollEntry *poll_table, int n, int timeout);
#define URL_PROTOCOL_FLAG_NESTED_SCHEME 1 /*< The protocol name can be the first part of a nested protocol scheme */
-#endif
+/**
+ * @deprecated This struct is to be made private. Use the higher-level
+ * AVIOContext-based API instead.
+ */
typedef struct URLProtocol {
const char *name;
int (*url_open)(URLContext *h, const char *url, int flags);
@@ -157,6 +160,7 @@ typedef struct URLProtocol {
const AVClass *priv_data_class;
int flags;
} URLProtocol;
+#endif
#if FF_API_REGISTER_PROTOCOL
extern URLProtocol *first_protocol;
diff --git a/libavformat/url.h b/libavformat/url.h
index b6c110dfe9..bde06d91da 100644
--- a/libavformat/url.h
+++ b/libavformat/url.h
@@ -43,6 +43,23 @@ typedef struct URLContext {
int is_streamed; /**< true if streamed (no seek possible), default = false */
int is_connected;
} URLContext;
+
+typedef struct URLProtocol {
+ const char *name;
+ int (*url_open)( URLContext *h, const char *url, int flags);
+ int (*url_read)( URLContext *h, unsigned char *buf, int size);
+ int (*url_write)(URLContext *h, const unsigned char *buf, int size);
+ int64_t (*url_seek)( URLContext *h, int64_t pos, int whence);
+ int (*url_close)(URLContext *h);
+ struct URLProtocol *next;
+ int (*url_read_pause)(URLContext *h, int pause);
+ int64_t (*url_read_seek)(URLContext *h, int stream_index,
+ int64_t timestamp, int flags);
+ int (*url_get_file_handle)(URLContext *h);
+ int priv_data_size;
+ const AVClass *priv_data_class;
+ int flags;
+} URLProtocol;
#endif
/**