Signed-off-by: Stephan Holljes <klaxa1...@googlemail.com> --- libavformat/avio.h | 16 ++++++++++++++++ libavformat/aviobuf.c | 17 +++++++++++++++++ 2 files changed, 33 insertions(+) Changes since first version: - Add documentation
diff --git a/libavformat/avio.h b/libavformat/avio.h index d3d9bbd..b7a4fa8 100644 --- a/libavformat/avio.h +++ b/libavformat/avio.h @@ -648,4 +648,20 @@ 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 + * @return >= 0 on success or a negative value corresponding + * to an AVERROR on failure + */ +int avio_accept(AVIOContext *s, AVIOContext **c); + +/** + * Perform a protocol dependent handshake + * @param c the client context to perform the handshake on + * @return >= 0 on success or a negative value corresponding + * to an AVERROR on failure + */ +int avio_handshake(AVIOContext *c); #endif /* AVFORMAT_AVIO_H */ diff --git a/libavformat/aviobuf.c b/libavformat/aviobuf.c index ff85081..ce05c5d 100644 --- a/libavformat/aviobuf.c +++ b/libavformat/aviobuf.c @@ -1021,6 +1021,23 @@ int avio_read_to_bprint(AVIOContext *h, AVBPrint *pb, size_t max_size) return 0; } +int avio_accept(AVIOContext *s, AVIOContext **c) +{ + int ret; + URLContext *sc = s->opaque; + URLContext *cc; + ret = ffurl_accept(sc, &cc); + if (ret < 0) + return ret; + return ffio_fdopen(c, cc); +} + +int avio_handshake(AVIOContext *c) +{ + URLContext *cc = c->opaque; + return ffurl_handshake(cc); +} + /* output in a dynamic buffer */ typedef struct DynBuffer { -- 2.1.0 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel