Commit Graph

89 Commits

Author SHA1 Message Date
Martin Storsjö
c24a403496 libavformat: Remove FF_NETERRNO()
Map EAGAIN and EINTR from ff_neterrno to the normal AVERROR()
error codes. Provide fallback definitions of other errno.h network
errors, mapping them to the corresponding winsock errors.

This eases catching these error codes in common code, without having
to distinguish between FF_NETERRNO(EAGAIN) and AVERROR(EAGAIN).

This fixes roundup issue 2614, unbreaking blocking network IO on
windows.

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
(cherry picked from commit 28c4741a66)
2011-02-23 18:22:03 +01:00
Anton Khirnov
1b98107c8d Move find_info_tag to lavu and add av_ prefix to it
Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net>
(cherry picked from commit ab0287fcbd)
2011-02-18 19:52:33 +01:00
David Fries
9087a46d55 udp: Enable address reuse by default for multicast
Keep the original corner case behaviour, where reuse is enabled
for the case where no argument is given to the reuse url option.

Signed-off-by: Martin Storsjö <martin@martin.st>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
(cherry picked from commit 00952be424)
2011-02-11 02:54:08 +01:00
Luca Barbato
d0eb91ad04 os: replace select with poll
Select has limitations on the fd values it could accept and silently
breaks when it is reached.
(cherry picked from commit a8475bbdb6)
2011-01-30 03:40:59 +01:00
Diego Elio Pettenò
66355be3c3 Prefix all _demuxer, _muxer, _protocol from libavformat and libavdevice.
This also lists the objects from those two libraries as internal (by adding
the ff_ prefix) so that they can then be hidden via linker scripts.
(cherry picked from commit c6610a216e)
2011-01-28 03:15:34 +01:00
Martin Storsjö
21a569f302 udp: Allow specifying the connect option in udp_set_remote_url, too
If the remote address is updated later with this function, the caller
shouldn't set the connect option until in this call.

Originally committed as revision 26245 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-06 15:16:50 +00:00
Aurelien Jacobs
8ef30ac1f3 add FF_API_UDP_GET_FILE define to disable the deprecated udp_get_file_handle()
public function

Originally committed as revision 25481 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-10-15 12:49:48 +00:00
Martin Storsjö
25968c3953 Reindent
Originally committed as revision 25406 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-10-08 08:43:10 +00:00
Martin Storsjö
6766a354f7 udp: Add an option for connecting the udp socket
This allows us to find out the local sending address via getsockname,
otherwise we just get INADDR_ANY (or similar for v6).

This also makes writes return ECONNREFUSED if nobody is listening on the
receiving port.

Originally committed as revision 25405 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-10-08 08:42:30 +00:00
Martin Storsjö
55b6bd1c01 Convert ff_is_multicast_address to take a struct sockaddr parameter
Not all users of this function will have a full struct sockaddr_storage
available, and casting other sockaddrs to sockaddr_storage is wrong,
while any sockaddr can be cast to a base sockaddr.

Originally committed as revision 25388 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-10-07 07:58:56 +00:00
Martin Storsjö
7ac57fa5eb Share the is_multicast_address function
The header probably isn't the right permanent place for this function, but
it is quite small, and consensus seems to be that it can stay in the
header for now, instead of creating a new file network.c just for this one.

Originally committed as revision 25387 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-10-07 07:54:52 +00:00
Martin Storsjö
f63630cdf3 Move multicast address identification fallback macros to network.h from udp.c
Originally committed as revision 25386 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-10-07 07:53:31 +00:00
Martin Storsjö
5961253463 udp: Define _DARWIN_C_SOURCE
This is required in order to get the IP_MULTICAST_TTL define.

Originally committed as revision 25351 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-10-05 16:35:33 +00:00
Martin Storsjö
25a2ebb917 udp: Return the actual error code on errors, instead of AVERROR(EIO)
Originally committed as revision 25350 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-10-05 14:09:30 +00:00
Martin Storsjö
63206a8ffb Check for the IPPROTO_IPV6 define before using it
This fixes building on FreeBSD in some configurations, if the IPv6 multicast
structs are available, but IPPROTO_IPV6 isn't defined.

Originally committed as revision 25147 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-09-20 06:38:40 +00:00
Reimar Döffinger
8250561149 Check for udp_set_remote_url error.
Fixes issue 1784 (hang with nonsense URL/no network available).

Originally committed as revision 24575 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-28 16:27:16 +00:00
Diego Biurrun
9a58234fea Fix misspelled parameter names in Doxygen documentation.
This fixes one Doxygen warning each.

Originally committed as revision 23970 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-02 10:49:29 +00:00
Måns Rullgård
f3bfe388b5 Make ff_url_split() public
ff_url_split() is retained as an alias, as it was used by ffserver,
to avoid breaking ABI compatibility with it.

Originally committed as revision 23822 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-06-27 14:16:46 +00:00
Martin Storsjö
48e77473e9 Cosmetics: Change connexion to connection in code comments
Originally committed as revision 23601 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-06-14 09:09:59 +00:00
Martin Storsjö
27241cbffe Declare the url_write buffer parameter as const
Originally committed as revision 23401 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-06-01 07:46:23 +00:00
Diego Biurrun
ba87f0801d Remove explicit filename from Doxygen @file commands.
Passing an explicit filename to this command is only necessary if the
documentation in the @file block refers to a file different from the
one the block resides in.

Originally committed as revision 22921 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-04-20 14:45:34 +00:00
Martin Storsjö
cae9a15c98 Don't report EINTR from select as an error, retry select instead
Originally committed as revision 22694 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-26 16:04:38 +00:00
Aurelien Jacobs
e4a9e3cc7c move ff_url_split() and ff_url_join() declarations to internal.h
those functions are not part of the public API

Originally committed as revision 22534 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-14 23:59:48 +00:00
Martin Storsjö
c5c6e67c28 Rename url_split to ff_url_split
Since this function isn't in the public API, it should have an ff_ prefix.

Originally committed as revision 22321 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-08 09:03:25 +00:00
Martin Storsjö
814c56413d Don't explicitly initialize networking in the tcp and udp protocols
Networking is always initialized when opening protocols.

Originally committed as revision 22227 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-05 22:38:48 +00:00
Reimar Döffinger
11a74f3639 Explicitly set struct addrinfo to NULL if getaddrinfo failed instead of
assuming getaddrinfo will have done this.

Originally committed as revision 22123 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-28 22:33:22 +00:00
Ronald S. Bultje
6481075443 Make style a little bit more K&R'ish.
Originally committed as revision 21383 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-22 16:12:55 +00:00
Martin Storsjö
7c823d8b7f Rename a function which is no longer ipv6-specific. Patch by Martin Storsjö
<$firstname () $firstname st>.

Originally committed as revision 21382 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-22 16:10:08 +00:00
Martin Storsjö
b4d68544c8 Remove IPv4-only codepath. Patch by Martin Storsjö <$first $first st>.
Originally committed as revision 21365 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-21 15:42:05 +00:00
Ronald S. Bultje
f0a8039464 Add url_get_file_handle(), which is used to get the file descriptor
associated with the I/O handle (e.g. the fd returned by open()). See
"[RFC] rtsp.c EOF support" thread.

There were previously some URI-specific implementations of the same idea,
e.g. rtp_get_file_handles() and udp_get_file_handle(). All of these are
deprecated by this patch and will be removed at the next major API bump.

Originally committed as revision 17779 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-03 17:04:51 +00:00
Diego Biurrun
bad5537e2c Use full internal pathname in doxygen @file directives.
Otherwise doxygen complains about ambiguous filenames when files exist
under the same name in different subdirectories.

Originally committed as revision 16912 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-01 02:00:19 +00:00
Diego Biurrun
406792e7b0 cosmetics: Remove pointless period after copyright statement non-sentences.
Originally committed as revision 16684 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-19 15:46:40 +00:00
Aurelien Jacobs
b250f9c66d Change semantic of CONFIG_*, HAVE_* and ARCH_*.
They are now always defined to either 0 or 1.

Originally committed as revision 16590 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-13 23:44:16 +00:00
Dave Yeo
c0a8f8d498 Add sys/time.h header #include, fixes compilation on OS/2.
patch by Dave Yeo, daveryeo telus net

Originally committed as revision 16077 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-12-12 06:55:48 +00:00
Jindřich Makovička
36b532815c bind to the multicast address if possible
Originally committed as revision 16032 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-12-07 17:29:09 +00:00
Jindřich Makovička
ce09d560b7 Get rid of MSG_DONTWAIT using a more standard way to use a socket
in a non blocked mode.
Patch by Jindrich Makovicka: makovick gmail

Originally committed as revision 15846 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-11-17 07:50:25 +00:00
Jindřich Makovička
7d0842992a check for interrupt when receiving from socket
Originally committed as revision 15824 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-11-14 19:33:22 +00:00
Jindřich Makovička
236bb1ab01 Allow the UDP socket buffer size to be adjusted using a
'buffer_size' URL option.

Patch by Jindrich Makovicka, makovick at gmail dot com

Originally committed as revision 15807 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-11-12 21:40:53 +00:00
Luca Abeni
a9e02947f6 Fix udp.c compilation with recent glibc (>= 2.8)
Originally committed as revision 14963 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-25 06:20:00 +00:00
Ronald S. Bultje
e6c1381982 Fix memleak on some OSes in case network initialization fails. See
"[PATCH] tcp.c/udp.c memleak?" for discussion.

Originally committed as revision 14923 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-23 17:39:56 +00:00
Luca Abeni
397db8ac5e Fix type of dest_addr_len to respect return value of udp_set_url.
Patch by Luca Abeni.

Originally committed as revision 13114 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-05-11 10:53:21 +00:00
Luca Barbato
3adfb3772c doxy header for udp protocol
Originally committed as revision 12861 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-04-16 16:52:35 +00:00
Luca Abeni
35b74c3deb Remove the "multicast=" tag from UDP and RTP URLs
Originally committed as revision 12830 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-04-15 11:23:07 +00:00
D Richard Felker III
03c09e4399 Do not use GNU-specific (or BSD-specific or whatever they may be)
constants which are completely unneeded anyway. Note that 3 is a cheap
integer bound for log10(1<<CHAR_BIT).

Originally committed as revision 11902 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-02-11 03:30:42 +00:00
Luca Abeni
087b327287 Include os_support.h only when needed
Originally committed as revision 11073 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-11-21 16:33:06 +00:00
Luca Abeni
086119b3f3 Remove perror() usage from udp.c
Originally committed as revision 11059 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-11-19 08:07:33 +00:00
Luca Abeni
aa519c4771 Remove some more duplicated code
Originally committed as revision 11038 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-11-15 14:26:52 +00:00
Luca Abeni
d4936869ff Remove the useless variable "my_addr1"
Originally committed as revision 11037 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-11-15 13:41:51 +00:00
Luca Abeni
882d00f27d Use the same code to set local_port in the IPv4-only case and in the
protocol-independet case

Originally committed as revision 11036 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-11-15 13:34:56 +00:00
Luca Abeni
6b7089044a Remove some useless assignments (the UDPContext is allocated with av_mallocz())
Originally committed as revision 11017 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-11-14 08:22:06 +00:00