avio: make URLProtocol internal.
authorAnton Khirnov <anton@khirnov.net>
Thu, 7 Apr 2011 19:01:17 +0000 (21:01 +0200)
committerAnton Khirnov <anton@khirnov.net>
Fri, 8 Apr 2011 13:59:26 +0000 (15:59 +0200)
libavformat/avio.h
libavformat/url.h

index a97d630..c39d2a0 100644 (file)
@@ -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;
index b6c110d..bde06d9 100644 (file)
@@ -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
 
 /**