Le tridi 3 thermidor, an CCXXIII, Stephan Holljes a écrit : > From 12d9a1e1c511615275260977941aff3067f103ea Mon Sep 17 00:00:00 2001 > From: Stephan Holljes <klaxa1...@googlemail.com> > Date: Tue, 21 Jul 2015 06:10:25 +0200 > Subject: [PATCH 4/8] lavf/tcp: add tcp_accept > > Signed-off-by: Stephan Holljes <klaxa1...@googlemail.com> > --- > libavformat/tcp.c | 19 +++++++++++++++++++ > 1 file changed, 19 insertions(+) > > diff --git a/libavformat/tcp.c b/libavformat/tcp.c > index f24cad2..9f8c2a0 100644 > --- a/libavformat/tcp.c > +++ b/libavformat/tcp.c > @@ -19,6 +19,7 @@ > * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 > USA > */ > #include "avformat.h" > +#include "libavutil/avassert.h" > #include "libavutil/parseutils.h" > #include "libavutil/opt.h" > #include "libavutil/time.h" > @@ -163,6 +164,23 @@ static int tcp_open(URLContext *h, const char *uri, int > flags) > return ret; > } > > +static int tcp_accept(URLContext *s, URLContext **c) > +{ > + TCPContext *sc = s->priv_data; > + TCPContext *cc; > + int ret; > + av_assert0(sc->listen);
> + if ((ret = ffurl_alloc(c, s->filename, s->flags & (AVIO_FLAG_READ_WRITE > | AVIO_FLAG_DIRECT), > + &s->interrupt_callback)) < 0) What about NONBLOCK? If the client is non-blocking, the application will probably also want non-blocking clients. AFAICS, currently, all the flags are relevant to clients, you can probably pass s->flags entirely, and leave the issue to the person who introduce server-specific flags. > + return ret; > + cc = (*c)->priv_data; > + ret = ff_accept(sc->fd, sc->listen_timeout, s); > + if (ret < 0) > + return ff_neterrno(); > + cc->fd = ret; > + return 0; > +} > + > static int tcp_read(URLContext *h, uint8_t *buf, int size) > { > TCPContext *s = h->priv_data; > @@ -223,6 +241,7 @@ static int tcp_get_file_handle(URLContext *h) > URLProtocol ff_tcp_protocol = { > .name = "tcp", > .url_open = tcp_open, > + .url_accept = tcp_accept, > .url_read = tcp_read, > .url_write = tcp_write, > .url_close = tcp_close, Regards, -- Nicolas George
signature.asc
Description: Digital signature
_______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel