On Tue, Jul 21, 2015 at 5:58 AM, Stephan Holljes <klaxa1...@googlemail.com> wrote: > On Tue, Jul 21, 2015 at 5:45 AM, Stephan Holljes > <klaxa1...@googlemail.com> wrote: >> Signed-off-by: Stephan Holljes <klaxa1...@googlemail.com> >> --- >> libavformat/tcp.c | 18 ++++++++++++++++++ >> 1 file changed, 18 insertions(+) >> >> diff --git a/libavformat/tcp.c b/libavformat/tcp.c >> index f24cad2..6f5e175 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,22 @@ 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, >> &s->interrupt_callback)) < 0) >> + 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 +240,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, >> -- >> 2.1.0 >> > > I forgot to filter the correct flags. Attached patch is identical, but > uses "s->flags & (AVIO_FLAG_READ_WRITE | AVIO_FLAG_DIRECT)" in > ffurl_alloc()
Disregard the previous patch, I messed up my commits in git.
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) + 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, -- 2.1.0
_______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel