Commit Graph

215 Commits

Author SHA1 Message Date
Clément Bœsch 43ecec0f03 avformat: use AV_OPT_TYPE_BOOL in a bunch of places 2015-12-04 15:43:33 +01:00
Hendrik Leppkes a6dac0b410 Merge commit '12b14382861fbf19378afcddaa19cd9a949a86a3'
* commit '12b14382861fbf19378afcddaa19cd9a949a86a3':
  udp: Provide additional information on getaddrinfo failure

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-11-29 16:12:38 +01:00
Hendrik Leppkes bf54377001 Merge commit '34af7813f77e2b5b9dcb34f20bcf53bfcc0ba9c9'
* commit '34af7813f77e2b5b9dcb34f20bcf53bfcc0ba9c9':
  udp: Use the logging context

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-11-29 16:11:16 +01:00
Luca Barbato 12b1438286 udp: Provide additional information on getaddrinfo failure 2015-11-25 09:01:25 +01:00
Luca Barbato 34af7813f7 udp: Use the logging context 2015-11-25 09:01:25 +01:00
Ganesh Ajjanagadde 26e8895b73 all: add _DEFAULT_SOURCE locally wherever needed
Glibc 2.20 onwards generates a deprecation warning for usage of _BSD_SOURCE and _SVID_SOURCE.
The solution from man feature_test_macros is to define both _DEFAULT_SOURCE and the old macros.
This solution is on the lines of the one in commit af1818276e.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2015-10-04 12:15:16 -04:00
Luca Barbato 61dc9d647c udp: Fix local_port management
The default value for unset is -1, not 0.

Problem introduced in 66028b7ba6
2015-06-22 10:47:29 +03:00
Michael Niedermayer d0059281e6 avformat/udp: Remove (harmless) duplicated pkt_size entry from AVOption table
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-29 22:10:05 +02:00
Michael Niedermayer 8344350509 Merge commit 'ff7adead0a667e606f5a41dca591f074f9ff2f32'
* commit 'ff7adead0a667e606f5a41dca591f074f9ff2f32':
  udp: Fix pkt_size management

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-29 22:06:44 +02:00
Luca Barbato ff7adead0a udp: Fix pkt_size management
The default value for unset is -1, not 0.

Problem introduced in 66028b7ba6

Bug-Id: 835
2015-03-29 17:35:59 +02:00
Michael Niedermayer 4f8540ba40 Merge commit '8dc72eeaf647736c287b59a3856a11904bedd58b'
* commit '8dc72eeaf647736c287b59a3856a11904bedd58b':
  udp: Fix crashes after adding AVOptions

See: aefed6ca87
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-19 11:22:39 +01:00
Martin Storsjö 8dc72eeaf6 udp: Fix crashes after adding AVOptions
Add a missing AVClass member, check whether localaddr is null.
(Previously, localaddr was always a local stack buffer, while it
now also can be an avoption string which can be null.)

This fixes crashes when not passing any localaddr parameter, since
66028b7ba.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-03-19 10:25:22 +02:00
Michael Niedermayer 4f3f5ee1ac Merge commit '66028b7ba6b411ba12ef553e9c8f1f4a4fe27710'
* commit '66028b7ba6b411ba12ef553e9c8f1f4a4fe27710':
  udp: Use AVOptions

Conflicts:
	libavformat/udp.c

See: aefed6ca87
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-16 00:10:09 +01:00
Luca Barbato 66028b7ba6 udp: Use AVOptions
Add AVOptions for options currently available as url parameters.
2015-03-15 18:29:11 +01:00
Michael Niedermayer a0fe1a25fa Merge commit 'daf8cf358a098a903d59adb6c0d0cc3262a8c93e'
* commit 'daf8cf358a098a903d59adb6c0d0cc3262a8c93e':
  avformat: Don't anonymously typedef structs

Conflicts:
	libavformat/adtsenc.c
	libavformat/aiffenc.c
	libavformat/avidec.c
	libavformat/gif.c
	libavformat/iff.c
	libavformat/img2dec.c
	libavformat/jvdec.c
	libavformat/matroskadec.c
	libavformat/udp.c
	libavformat/wtvdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-14 21:07:40 +01:00
Diego Biurrun daf8cf358a avformat: Don't anonymously typedef structs 2015-02-14 10:13:47 -08:00
Vincent Bernat 5269cef408 avformat/udp: Allow to specify DSCP class
By appending `?dscp=26` to the URL, IP packets will be classified as
AF31 (assured forwarding for multimedia flows with low probability of
loss). On congested network, this allows a user to assign priorities to
flows.

Signed-off-by: Vincent Bernat <vincent@bernat.im>
2014-11-27 19:53:09 +01:00
Thomas Volkert 07c3a4f693 avformat/udp: UDP-Lite (RFC 3828) support added
(This fixes ticket #1501)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-05 11:16:05 +01:00
Michael Niedermayer 97cebf3139 avformat/udp: Move variables used only with HAVE_PTHREAD_CANCEL, under the #if
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-30 12:43:58 +02:00
Michael Niedermayer 74c81106d2 avformat/udp: remove unneeded variable initialization
Found-by: James Darnley <james.darnley@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-16 15:58:40 +02:00
Michael Niedermayer 7916053ced avformat/udp: dont mix integers with pointers
Reviewed-by: James Darnley <james.darnley@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-16 15:58:40 +02:00
Michael Niedermayer b2d1e22c2a avformat/udp: fix build on MINIX
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-07 14:43:07 +02:00
Olivier Langlois f1c167496e Support broadcast destination for udp protocol
Use the required socket option SO_BROADCAST to be able to stream to a broadcast
address.

Prior to the patch, trying to stream to a broadcast address was resulting to the
following error:

av_interleaved_write_frame(): Permission denied

The patch has been tested with:

ffmpeg -f v4l2 -framerate 30 -input_format yuyv422 -video_size 640x480 -i /dev/video0 \
 -c:v libx264 -profile:v high -preset ultrafast -tune zerolatency -b:v 500k -pix_fmt yuv420p \
 -f mpegts udp://192.168.1.255:5004?broadcast=1

I have added an option to let the user explicitly request broadcast in order to avoid
ffmpeg to broadcast unintentionally.

Signed-off-by: Olivier Langlois <olivier@trillion01.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-13 15:51:41 +02:00
Lukasz Marek ce1eefe691 lavf: use av_fifo_freep
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-05-07 23:39:47 +02:00
rogerdpack 0b4c5c99bc avformat/udp: cleanup comments, add a warning if receive buffer is unexpectedly unable to be set high enough
which can happen easily in linux

Signed-off-by: rogerdpack <rogerpack2005@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-22 16:40:46 +01:00
rogerdpack 2be1e1b223 avformat/udp: debug log udp socket size
Signed-off-by: rogerdpack <rogerpack2005@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-08 23:56:05 +01:00
Stefano Sabatini b80cf46090 doc/protocols/udp,lavf/udp: apply minor documentation fixes 2013-12-25 18:42:15 +01:00
Stoian Ivanov 5fe415f0f4 UDP: join multicast group on the interface specified with &localaddr=
When joining multicast groups, ffmpeg was using INADDR_ANY as interface address
which leads to enabling the multicast group on the interface with "default gateway".
Often multicast traffic is received over dedicated interface, which scenario ffmpeg was
unable to handle. With this patch, ffmpeg will enable multicast group to the interfaces
configured with address specified in &localaddr= parameter of udp:// URL. To avoid
loacal_addr resolve at udp_close(...) the UDPContext structure was extended with
struct sockaddr_storage local_addr_storage member, which is populated in udp_open(..)
and passed to udp_join_multicast_group()  and udp_leave_multicast_group().

Signed-off-by: Stoian Ivanov <s.ivanov@teracomm.bg>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-17 01:14:28 +01:00
Michael Niedermayer 2539767206 Merge commit 'bb9378251a167ef0116f263912e57f715c1e02ac'
* commit 'bb9378251a167ef0116f263912e57f715c1e02ac':
  network: Use SOCK_CLOEXEC when available

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-08-06 15:40:05 +02:00
Luca Barbato bb9378251a network: Use SOCK_CLOEXEC when available 2013-08-05 16:13:36 +02:00
Michael Niedermayer 42f7c45d7b Merge commit '7d99c92945e4b2d12ed2126365482e1900340da0'
* commit '7d99c92945e4b2d12ed2126365482e1900340da0':
  udp: Keep track of include and exclude sources separately

Conflicts:
	libavformat/udp.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-07-30 11:40:05 +02:00
Michael Niedermayer 15ca3ab825 Merge commit '3357bccc5cb31795f248cd72dc480025f3075a5b'
* commit '3357bccc5cb31795f248cd72dc480025f3075a5b':
  udp: Allow specifying multicast include/blocks as host names as well

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-07-30 11:31:17 +02:00
Ed Torbett 7d99c92945 udp: Keep track of include and exclude sources separately
This allows us to explicitly fail if the caller tried to set
both inclusions and exclusions at the same time.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-07-29 22:58:54 +03:00
Ed Torbett 3357bccc5c udp: Allow specifying multicast include/blocks as host names as well
Previously this only allowed literal IP addresses. When these
are conveyed in a SDP file as in RFC4570, host names are allowed
as well.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-07-29 22:58:53 +03:00
Michael Niedermayer 804c7b2c62 udp: Fix receiving large udp packets
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-06-29 00:10:15 +02:00
Michael Niedermayer 9cf788eca8 avformat/avdevice: add missing time.h includes
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-12 15:28:22 +01:00
Michael Niedermayer 282a6308bf udp: check ff_socket_nonblock() return code
Fixes CID733719
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-05 21:21:04 +01:00
Michael Niedermayer 8943ad4014 Merge commit '4521645b1aee9e9ad8f5cea7b2392cd5f6ffcd26'
* commit '4521645b1aee9e9ad8f5cea7b2392cd5f6ffcd26':
  avio: fix pointer type mismatches in avio_enum_protocols()
  avserver: use socklen_t where appropriate
  udp: use socklen_t where appropriate
  network: use HAVE_THREADS instead of local hack
  af_channelmap: remove stray enum declaration
  buffersink: remove stray semicolon after function definition

Conflicts:
	libavformat/avio.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-28 13:19:11 +01:00
Mans Rullgard be2efe0c7b udp: use socklen_t where appropriate
getsockname() takes a pointer to socklen_t which is not necessarily
int.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-27 13:11:46 +01:00
Michael Niedermayer 044c0e62ea udp: add missing mutex unlock
Fixes CID703688
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-20 23:31:32 +02:00
Andrey Utkin aefed6ca87 udp: pick params from AVOptions also
This updated version does not deviate from previous behavior on default value of 'buffer_size'

I skipped porting 'sources', 'block' options for now as they're parsed seriously. So i added TODO remarks.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-15 22:13:21 +02:00
Andrey Utkin 028b6d2b5c Add 'timeout' option to UDP protocol
This patch accepts 'timeout' option for input mode only. As far as i know, UDP output cannot introduce delays.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-29 00:28:07 +02:00
anonymous 388243bb27 udp: do not call pthread_{mutex,cond}_destroy when not initialized.
This seems to cause a crash on Windows.

The author of that patch was a random guy on IRC who wants to stay anonymous.
2012-08-06 10:06:26 +02:00
Michael Niedermayer a4f94f24b4 udp: fix compilation when HAVE_PTHREAD_CANCEL isnt defined
This happens with for example mplayer.
Fixing it in ffmpeg allows new ffmpeg to be compiled with older mplayer
which would not be possible if the fix was just in mplayer.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-20 14:58:11 +02:00
Stefano Sabatini a8d8e868c6 lavf/udp: warn in case the circular_buffer_size or overrun_nonfatal options are not supported
They are only supported if pthread is available.
2012-07-19 22:48:09 +02:00
Michael Niedermayer ccbcf482ad udp: use av_freep() instead of av_free()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-28 10:12:04 +02:00
Michael Niedermayer 87df986dcf Merge remote-tracking branch 'qatar/master'
* qatar/master:
  mss1: validate number of changeable palette entries
  mss1: report palette changed when some additional colours were decoded
  x86: fft: replace call to memcpy by a loop
  udp: Support IGMPv3 source specific multicast and source blocking
  dxva2: include dxva.h if found
  libm: Provide fallback definitions for isnan() and isinf()
  tcp: Pass NULL as hostname to getaddrinfo if the string is empty
  tcp: Set AI_PASSIVE when the socket will be used for listening

Conflicts:
	configure
	libavcodec/mss1.c
	libavformat/udp.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-28 01:08:52 +02:00
Eric Petit f1136b2b10 udp: fix occasional crash on shutdown
Wait until the thread is down before destroying the fifo

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-27 22:50:22 +02:00
Martin Storsjö 75d339e044 udp: Support IGMPv3 source specific multicast and source blocking
Based on an original patch by Stephen D'Angelo <SDAngelo@evertz.com>.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-06-27 14:39:00 +03:00
Michael Niedermayer b536e2facf Merge remote-tracking branch 'qatar/master'
* qatar/master:
  avconv: add an assert to silence an uninitialized variable warning.
  avconv: shut up an uninitialized variable warning.
  avfiltergraph: shut up uninitialized variable warning.
  af_join: initialize a variable to shut up gcc warning.
  amix: fix format specifier for AVFilterLink.sample_rate.
  lavfi: make filters less verbose.
  mpc8: read APE tags.
  lavr: x86: fix ff_conv_fltp_to_flt_6ch function prototypes
  libm: provide fallback definition for cbrtf() using powf()
  network: Don't redefine error codes if they already exist in errno.h
  configure: Check for sys/time.h
  network: Include unistd.h from network.h
  avconv: don't include vsrc_buffer.h, which doesn't exist anymore
  lavfi: reorder AVFilterLink fields.
  lavfi: reorder AVFilterContext fields.
  lavfi: reorder AVFilter fields.
  lavfi: reorder AVFilterBufferRef fields.
  lavfi: reorder AVFilterBuffer fields.

Conflicts:
	configure
	libavcodec/v210dec.h
	libavfilter/asrc_anullsrc.c
	libavfilter/avfilter.h
	libavfilter/buffersrc.c
	libavfilter/src_movie.c
	libavfilter/vf_aspect.c
	libavfilter/vf_crop.c
	libavfilter/vf_drawbox.c
	libavfilter/vf_fade.c
	libavfilter/vf_overlay.c
	libavfilter/vf_pad.c
	libavfilter/vf_scale.c
	libavfilter/vsrc_color.c
	libavformat/network.h
	libavutil/libm.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-27 01:58:09 +02:00