Browse code

Non-blocking protocols: flag and documentation

Signed-off-by: Nicolas George <nicolas.george@normalesup.org>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>

Nicolas George authored on 2011/02/05 03:12:36
Showing 2 changed files
... ...
@@ -13,6 +13,9 @@ libavutil:   2009-03-08
13 13
 
14 14
 API changes, most recent first:
15 15
 
16
+2011-02-XX - XXXXXXX - lavf 52.XX.0 - avio.h
17
+  Add flag for non-blocking protocols: URL_FLAG_NONBLOCK
18
+
16 19
 2011-02-04 - f124b08 - lavf 52.96.0 - avformat_free_context()
17 20
   Add avformat_free_context() in avformat.h.
18 21
 
... ...
@@ -63,9 +63,32 @@ typedef struct URLPollEntry {
63 63
     int revents;
64 64
 } URLPollEntry;
65 65
 
66
-#define URL_RDONLY 0
67
-#define URL_WRONLY 1
68
-#define URL_RDWR   2
66
+/**
67
+ * @defgroup open_modes URL open modes
68
+ * The flags argument to url_open and cosins must be one of the following
69
+ * constants, optionally ORed with other flags.
70
+ * @{
71
+ */
72
+#define URL_RDONLY 0  /**< read-only */
73
+#define URL_WRONLY 1  /**< write-only */
74
+#define URL_RDWR   2  /**< read-write */
75
+/**
76
+ * @}
77
+ */
78
+
79
+/**
80
+ * Use non-blocking mode.
81
+ * If this flag is set, operations on the context will return
82
+ * AVERROR(EAGAIN) if they can not be performed immediately.
83
+ * If this flag is not set, operations on the context will never return
84
+ * AVERROR(EAGAIN).
85
+ * Note that this flag does not affect the opening/connecting of the
86
+ * context. Connecting a protocol will always block if necessary (e.g. on
87
+ * network protocols) but never hang (e.g. on busy devices).
88
+ * Warning: non-blocking protocols is work-in-progress; this flag may be
89
+ * silently ignored.
90
+ */
91
+#define URL_FLAG_NONBLOCK 4
69 92
 
70 93
 typedef int URLInterruptCB(void);
71 94