[FFmpeg-devel] [PATCH 2/9] lavf/avio: add ffurl_accept and ffurl_handshake
Stephan Holljes
klaxa1337 at googlemail.com
Fri Jul 3 04:33:53 CEST 2015
Signed-off-by: Stephan Holljes <klaxa1337 at googlemail.com>
---
libavformat/avio.c | 19 +++++++++++++++++++
libavformat/url.h | 18 ++++++++++++++++++
2 files changed, 37 insertions(+)
diff --git a/libavformat/avio.c b/libavformat/avio.c
index c188adc..1182336 100644
--- a/libavformat/avio.c
+++ b/libavformat/avio.c
@@ -211,6 +211,25 @@ int ffurl_connect(URLContext *uc, AVDictionary **options)
return 0;
}
+int ffurl_accept(URLContext *s, URLContext **c)
+{
+ if (s->prot->url_accept)
+ return s->prot->url_accept(s, c);
+ return 0;
+}
+
+int ffurl_handshake(URLContext *c)
+{
+ int ret;
+ if (c->prot->url_handshake) {
+ ret = c->prot->url_handshake(c);
+ if (ret)
+ return ret;
+ }
+ c->is_connected = 1;
+ return 0;
+}
+
#define URL_SCHEME_CHARS \
"abcdefghijklmnopqrstuvwxyz" \
"ABCDEFGHIJKLMNOPQRSTUVWXYZ" \
diff --git a/libavformat/url.h b/libavformat/url.h
index 99a3201..d010a77 100644
--- a/libavformat/url.h
+++ b/libavformat/url.h
@@ -58,6 +58,8 @@ typedef struct URLProtocol {
* for those nested protocols.
*/
int (*url_open2)(URLContext *h, const char *url, int flags, AVDictionary **options);
+ int (*url_accept)(URLContext *s, URLContext **c);
+ int (*url_handshake)(URLContext *c);
/**
* Read data from the protocol.
@@ -140,6 +142,22 @@ int ffurl_open(URLContext **puc, const char *filename, int flags,
const AVIOInterruptCB *int_cb, AVDictionary **options);
/**
+ * Accept an URLContext c on an URLContext s
+ * @param s server context
+ * @param c client context
+ * @return >= 0 on success, ff_neterrno() on failure.
+ */
+int ffurl_accept(URLContext *s, URLContext **c);
+
+/**
+ * Perform a protocol handshake on the passed client context.
+ * @param c the client context
+ * @return >= 0 on success or a negative value corresponding
+ * to an AVERROR code on failure
+ */
+int ffurl_handshake(URLContext *c);
+
+/**
* Read up to size bytes from the resource accessed by h, and store
* the read bytes in buf.
*
--
2.1.0
More information about the ffmpeg-devel
mailing list