summaryrefslogtreecommitdiff
path: root/libavformat/avio.h
diff options
context:
space:
mode:
authorStephan Holljes <klaxa1337@googlemail.com>2015-07-03 02:25:51 +0200
committerStephan Holljes <klaxa1337@googlemail.com>2015-08-01 00:58:31 +0200
commit63c07a956bb240ebd5aeb0509953fe80e08e4699 (patch)
tree3c13d2e5e58406dd5104b283eaa850295a8e2240 /libavformat/avio.h
parent5125e4b53f71ca3c7d34c5812425f6f2fb963375 (diff)
downloadffmpeg-63c07a956bb240ebd5aeb0509953fe80e08e4699.tar.gz
lavf/avio: add avio_accept and avio_handshake
Signed-off-by: Stephan Holljes <klaxa1337@googlemail.com>
Diffstat (limited to 'libavformat/avio.h')
-rw-r--r--libavformat/avio.h29
1 files changed, 29 insertions, 0 deletions
diff --git a/libavformat/avio.h b/libavformat/avio.h
index 9b8fcce3eb..06dd7f5ef8 100644
--- a/libavformat/avio.h
+++ b/libavformat/avio.h
@@ -648,4 +648,33 @@ struct AVBPrint;
*/
int avio_read_to_bprint(AVIOContext *h, struct AVBPrint *pb, size_t max_size);
+/**
+ * Accept and allocate a client context on a server context.
+ * @param s the server context
+ * @param c the client context, must be unallocated
+ * @return >= 0 on success or a negative value corresponding
+ * to an AVERROR on failure
+ */
+int avio_accept(AVIOContext *s, AVIOContext **c);
+
+/**
+ * Perform one step of the protocol handshake to accept a new client.
+ * This function must be called on a client returned by avio_accept() before
+ * using it as a read/write context.
+ * It is separate from avio_accept() because it may block.
+ * A step of the handshake is defined by places where the application may
+ * decide to change the proceedings.
+ * For example, on a protocol with a request header and a reply header, each
+ * one can constitute a step because the application may use the parameters
+ * from the request to change parameters in the reply; or each individual
+ * chunk of the request can constitute a step.
+ * If the handshake is already finished, avio_handshake() does nothing and
+ * returns 0 immediately.
+ *
+ * @param c the client context to perform the handshake on
+ * @return 0 on a complete and successful handshake
+ * > 0 if the handshake progressed, but is not complete
+ * < 0 for an AVERROR code
+ */
+int avio_handshake(AVIOContext *c);
#endif /* AVFORMAT_AVIO_H */