[FFmpeg-devel] [PATCH 1/3] Non-blocking protocols: flag and documentation

Nicolas George nicolas.george
Sat Jan 29 21:03:57 CET 2011


---
 doc/APIchanges     |    3 +++
 libavformat/avio.h |   24 +++++++++++++++++++++---
 2 files changed, 24 insertions(+), 3 deletions(-)

diff --git a/doc/APIchanges b/doc/APIchanges
index aa1221d..9b908e7 100644
--- a/doc/APIchanges
+++ b/doc/APIchanges
@@ -13,6 +13,9 @@ libavutil:   2009-03-08
 
 API changes, most recent first:
 
+2011-01-XX - rXXXXX - lavf 52.XX.0 - avio.h
+  Add flag for non-blocking protocols: URL_FLAG_NONBLOCK
+
 2011-01-15 - r26374 - lavfi 1.74.0 - AVFilterBufferRefAudioProps
   Rename AVFilterBufferRefAudioProps.samples_nb to nb_samples.
 
diff --git a/libavformat/avio.h b/libavformat/avio.h
index a606f7c..8ce8807 100644
--- a/libavformat/avio.h
+++ b/libavformat/avio.h
@@ -63,9 +63,27 @@ typedef struct URLPollEntry {
     int revents;
 } URLPollEntry;
 
-#define URL_RDONLY 0
-#define URL_WRONLY 1
-#define URL_RDWR   2
+/**
+ * The flags argument to url_open and cosins must be one of the following
+ * constants, optionally ORed with other flags.
+ */
+#define URL_RDONLY 0  /** read-only */
+#define URL_WRONLY 1  /** write-only */
+#define URL_RDWR   2  /** read-write */
+
+/**
+ * Use non-blocking mode.
+ * If this flag is set, operations on the context will return
+ * AVERROR(EAGAIN) if they can not be performed immediately.
+ * If this flag is not set, operations on the context will never return
+ * AVERROR(EAGAIN).
+ * Note that this flag does not affect the opening/connecting of the
+ * context. Connecting a protocol will always block if necessary (e.g. on
+ * network protocols) but never hang (e.g. on busy devices).
+ * Warning: non-blocking protocols is work-in-progress; this flag may be
+ * silently ignored.
+ */
+#define URL_FLAG_NONBLOCK 4
 
 typedef int URLInterruptCB(void);
 
-- 
1.7.2.3




More information about the ffmpeg-devel mailing list