Commit Graph

201 Commits

Author SHA1 Message Date
Nicolas George
463705bd1c udp: fix non-blocking and interrupt handling.
In non-blocking mode, lowest-level read protocols are
supposed block only for a short amount of time to let
retry_transfer_wrapper() check for interrupts.

Also, checking the interrupt_callback in the receiving thread is
wrong, as interrupt_callback is not guaranteed to be thread-safe
and the job is already done by retry_transfer_wrapper(). The error
code was also incorrect.

Bug reported by Andrey Utkin.
2012-03-17 14:43:37 +01:00
Andrey Utkin
3069e70f62 udp: Add option overrun_nonfatal
Optionize fail/survive on circular buffer overrun

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-12 21:50:46 +01:00
Andrey Utkin
a2eecc110b udp: remove dead code line (unused result)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-12 21:49:33 +01:00
Michael Niedermayer
88c76c7d22 Revert "udp: add multicast input interface selection"
This reverts commit 9abd47fe90.

Broke compilation on openbsd and others
2012-03-12 06:48:32 +01:00
Tudor.Suciu
9abd47fe90 udp: add multicast input interface selection
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-12 06:01:09 +01:00
Michael Niedermayer
8e31dbc1dc Merge remote-tracking branch 'qatar/master'
* qatar/master:
  Fix a bunch of common typos.
  build: Skip compiling xvmc.h under the correct condition.
  configure: darwin: Change dylib install names to include major version.
  mpegts: Always honor a registration descriptor if present and there is no other codec information.
  aacdec: Fix SCE parity check.
  aacdec: Fix out of array writes (stack).
  rtsp: Only set the ttl parameter if the server actually gave a value
  udp: Set ttl for read-write streams, too, not only for write-only ones
  udp: Only bind to the multicast address if in read-only mode
  udp: Clarify the comment about binding the multicast address
  udp: Reorder comments

Conflicts:
	libavcodec/aacdec.c
	tools/patcheck

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-10 01:12:08 +01:00
Martin Storsjö
2bfd92b330 udp: Set ttl for read-write streams, too, not only for write-only ones
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-03-09 15:04:05 +02:00
Martin Storsjö
c700fdb00f udp: Only bind to the multicast address if in read-only mode
This fixes sending back RTCP RR packets if receiving RTP over
multicast.

If the multicast stream is sent on demand (set up and signalled
via RTSP), the sender might depend on getting RTCP RR packets
knowing that there are listeners, otherwise the stream can be
closed after a certain timeout.

This fixes receiving RTSP streams over multicast on unix, from
certain Axis cameras.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-03-09 15:03:46 +02:00
Martin Storsjö
1b89bcdd7f udp: Clarify the comment about binding the multicast address
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-03-09 15:03:11 +02:00
Martin Storsjö
113d3e106d udp: Reorder comments
When this code was added in 36b532815c, the new code was added
between the existing comment and the existing line of code, making
the old comment seem to refer to the new code. This makes it read
correctly.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-03-09 15:03:10 +02:00
Michael Niedermayer
bf807a5e87 Merge remote-tracking branch 'qatar/master'
* qatar/master: (29 commits)
  sbrdsp.asm: convert all instructions to float/SSE ones.
  dv: cosmetics.
  dv: check buffer size before reading profile.
  Revert "AAC SBR: group some writes."
  udp: Print an error message if bind fails
  cook: extend channel uncoupling tables so the full bit range is covered.
  roqvideo: cosmetics.
  roqvideo: convert to bytestream2 API.
  dca: don't use av_clip_uintp2().
  wmall: fix build with -DDEBUG enabled.
  smc: port to bytestream2 API.
  AAC SBR: group some writes.
  dsputil: remove shift parameter from scalarproduct_int16
  SBR DSP: unroll sum_square
  rv34: remove dead code in intra availability check
  rv34: clean a bit availability checks.
  v4l2: update documentation
  tgq: convert to bytestream2 API.
  parser: remove forward declaration of MpegEncContext
  dca: prevent accessing static arrays with invalid indexes.
  ...

Conflicts:
	doc/indevs.texi
	libavcodec/Makefile
	libavcodec/dca.c
	libavcodec/dvdata.c
	libavcodec/eatgq.c
	libavcodec/mmvideo.c
	libavcodec/roqvideodec.c
	libavcodec/smc.c
	libswscale/output.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-08 02:51:45 +01:00
Martin Storsjö
a887c87c23 udp: Print an error message if bind fails
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-03-07 21:52:19 +02:00
Michael Niedermayer
29a8f6b8d4 udp: Fix sign of error codes.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-23 23:24:14 +01:00
Laurent BRULET
45c39e566f udp: fix segfault on closing
Fixes ticket915
2012-01-14 17:14:18 +01:00
Michael Niedermayer
3edff185ab Merge remote-tracking branch 'qatar/master'
* qatar/master: (21 commits)
  ipmovie: do not read audio packets before the codec is known
  truemotion2: check size before GetBitContext initialisation
  avio: Only do implicit network initialization for network protocols
  avio: Add an URLProtocol flag for indicating that a protocol uses network
  adpcm: ADPCM Electronic Arts has always two channels
  matroskadec: Fix a bug where a pointer was cached to an array that might later move due to a realloc()
  fate: Add missing reference file from 9b4767e4.
  mov: Support MOV_CH_LAYOUT_USE_DESCRIPTIONS for labeled descriptions.
  4xm: Prevent buffer overreads.
  mjpegdec: parse RSTn to prevent skipping other data in mjpeg_decode_scan
  vp3: add fate test for non-zero last coefficient
  vp3: fix streams with non-zero last coefficient
  swscale: remove unused U/V arguments from yuv2rgb_write().
  timer: K&R formatting cosmetics
  lavf: cosmetics, reformat av_read_frame().
  lavf: refactor av_read_frame() to make it easier to understand.
  Report an error if pitch_lag is zero in AMR-NB decoder.
  Revert "4xm: Prevent buffer overreads."
  4xm: Prevent buffer overreads.
  4xm: pass the correct remaining buffer size to decode_i2_frame().
  ...

Conflicts:
	libavcodec/4xm.c
	libavcodec/mjpegdec.c
	libavcodec/truemotion2.c
	libavformat/ipmovie.c
	libavformat/mov_chan.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-01-06 02:45:12 +01:00
Martin Storsjö
32b83aeec1 avio: Add an URLProtocol flag for indicating that a protocol uses network
This definition is in two files, since the definitions will move
to the private header at the next bump.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-01-05 23:56:52 +02:00
Michael Niedermayer
9f50dafe90 udp: support non blocking reads with fifo
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-12-23 01:51:47 +01:00
Michael Niedermayer
bc900501e0 udp: Replace double select() by select+mutex+cond.
When no data was available both the buffer thread as well as
the main thread would block in select(), when data becomes
available both should move forward and as data is read in the
buffer thread the main thread would block in select() later
the read data was put in the fifo but the main thread still
would be blocked in select() until either the timeout or
another packet would come in.

This is solved in this commit by using a mutex and a condition
variable

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-12-23 01:42:42 +01:00
Michael Niedermayer
3dcbafc777 udp: return circular buffer error if such error happened.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-12-23 01:41:15 +01:00
Michael Niedermayer
7fad19a63d Merge remote-tracking branch 'qatar/master'
* qatar/master:
  x86: cabac: replace explicit memory references with "m" operands
  avplay: don't request a stereo downmix
  wmapro: use av_float2int()
  lavc: avoid invalid memcpy() in avcodec_default_release_buffer()
  lavu: replace int/float punning functions
  lavfi: install libavfilter/vsrc_buffer.h
  Remove extraneous semicolons
  sdp: Restore the original mp4 format h264 extradata if converted
  rtpenc: Add support for mp4 format h264
  rtpenc: Simplify code by introducing a separate end pointer
  movenc: Use the actual converted sample for RTP hinting
  Fix a bunch of common typos.

Conflicts:
	doc/developer.texi
	doc/eval.texi
	doc/filters.texi
	doc/protocols.texi
	ffmpeg.c
	ffplay.c
	libavcodec/mpegvideo.h
	libavcodec/x86/cabac.h
	libavfilter/Makefile
	libavformat/avformat.h
	libavformat/cafdec.c
	libavformat/flvdec.c
	libavformat/flvenc.c
	libavformat/gxfenc.c
	libavformat/img2.c
	libavformat/movenc.c
	libavformat/mpegts.c
	libavformat/rtpenc_h264.c
	libavformat/utils.c
	libavformat/wtv.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-12-12 01:25:37 +01:00
Diego Biurrun
da9cea77e3 Fix a bunch of common typos. 2011-12-11 00:32:25 +01:00
Michael Niedermayer
7b0b10ce41 Merge remote-tracking branch 'qatar/master'
* qatar/master: (25 commits)
  rtpenc: Add support for G726 audio
  rtpdec: Interpret the different G726 names as bits_per_coded_sample
  rtpenc: Change rtp_send_samples to handle sample sizes other than even bytes
  rtpenc: Cast a rescaling parameter to int64_t
  h264: cap max has_b_frames at MAX_DELAYED_PIC_COUNT - 1.
  ARM: fix indentation in ff_dsputil_init_neon()
  ARM: NEON put/avg_pixels8/16 cosmetics
  ARM: add remaining NEON avg_pixels8/16 functions
  ARM: clean up NEON put/avg_pixels macros
  fate: split acodec-pcm into individual tests
  swscale: #include "libavutil/mathematics.h"
  pmpdec: don't use deprecated av_set_pts_info.
  rv34: align temporary block of "dct" coefs
  Add PlayStation Portable PMP format demuxer
  proto: Realign struct initializers
  proto: Use .priv_data_size to allocate the private context
  mmsh: Properly clean up if the second ffurl_alloc failed
  rtmp: Clean up properly if the handshake failed
  md5proto: Remove the get_file_handle function
  applehttpproto: Use the close function if the open function fails
  ...

Conflicts:
	libavcodec/vble.c
	libavformat/mmsh.c
	libavformat/pmpdec.c
	libavformat/udp.c
	tests/ref/acodec/pcm

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-12-02 00:51:11 +01:00
Martin Storsjö
7e58050590 proto: Use .priv_data_size to allocate the private context
This simplifies the open functions by avoiding one function
call that needs error checking, reducing the amount of
extra bulk code.

Signed-off-by: Martin Storsjö <martin@martin.st>
2011-12-01 13:47:26 +02:00
Michael Niedermayer
328a3545c6 udp: update to new interrupt callback API
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-11-19 02:14:28 +01:00
Michael Niedermayer
afc0a24d7d Merge remote-tracking branch 'qatar/master'
* qatar/master:
  avcodec: add support for planar signed 8-bit PCM.
  ra144enc: add sample_fmts list to ff_ra_144_encoder
  smackaud: use uint8_t* for 8-bit output buffer type
  smackaud: clip output samples
  smackaud: use sign_extend() for difference value instead of casting
  sipr: use a function pointer to select the decode_frame function
  sipr: set mode based on block_align instead of bit_rate
  sipr: do not needlessly set *data_size to 0 when returning an error
  ra288: fix formatting of LOCAL_ALIGNED_16
  udp: Allow specifying the local IP address
  VC1: Add bottom field offset to block_index[] to avoid rewriting (+10L)
  vc1dec: move an if() block.
  vc1dec: use correct hybrid prediction threshold.
  vc1dec: Partial rewrite of vc1_pred_mv()
  vc1dec: take ME precision into account while scaling MV predictors.
  lavf: don't leak corrupted packets

Conflicts:
	libavcodec/8svx.c
	libavcodec/ra288.c
	libavcodec/version.h
	libavformat/iff.c
	libavformat/udp.c
	libavformat/utils.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-11-10 03:45:23 +01:00
Martin Storsjö
65ac51373b udp: Allow specifying the local IP address
This is useful if sending multicast data on a host with
multiple interfaces.

Signed-off-by: Martin Storsjö <martin@martin.st>
2011-11-09 20:19:39 +02:00
Michael Niedermayer
b2bdca1b4a udp: simplify 7a032cb97f
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-11-09 03:51:08 +01:00
Andrey Utkin
7a032cb97f Fix segfault on UDP reading
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-11-09 03:43:52 +01:00
Michael Niedermayer
7c4e4c6a06 udp: fix circular buffer error handling
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-08-25 21:43:30 +02:00
Michael Niedermayer
20f0bf8cfb udp: buffer datagrams in circular buffer instead of a bytestream
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-08-25 21:33:54 +02:00
Michael Niedermayer
bd652ff66e udp: allow fifo size to be tuned seperately
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-07-25 16:37:12 +02:00
Michael Niedermayer
721be99371 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  cosmetics: fix some then/than typos
  doxygen: Include libavcodec and libavformat examples into the documentation
  avutil: elaborate documentation for av_get_random_seed
  Add support for aac streams in mp4/mov without extradata.
  aes: whitespace cosmetics
  adler32: whitespace cosmetics
  swscale: fix another yuv range conversion overflow in 16bit scaling.
  Fix cpu flags test program
  opt-test: Add missing braces to silence compiler warnings.
  build: Eliminate obsolete test targets.
  udp: Fix a compilation warning
  swscale: Unbreak build with --enable-small
  base64: add fate test
  aes: improve test program and add fate test
  adler32: make test program more useful and add fate test
  swscale: fix yuv range correction when using 16-bit scaling.
  aacenc: Make chan_map const correct

Conflicts:
	Makefile
	doc/examples/muxing-example.c
	libavformat/udp.c
	libavutil/random_seed.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-07-01 05:35:26 +02:00
Martin Storsjö
5d62d0b114 udp: Fix a compilation warning
This fixes this compilation warning, by making endptr a non-const
pointer, as required by strtol:
In function ‘udp_open’:
warning: passing argument 2 of ‘strtol’ from incompatible pointer type

Signed-off-by: Martin Storsjö <martin@martin.st>
2011-06-30 12:04:46 +03:00
Michael Niedermayer
dca3542d35 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  configure: Add -Wno-format-zero-length to CFLAGS.
  udp: Receive on the remote port number, if no local port is set

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-06-25 04:32:49 +02:00
Can Wu
fc66e23154 udp: Receive on the remote port number, if no local port is set
For a unicast udp stream to localhost:1234, currently
ffplay udp://:1234?localport=1234
works, but
ffplay udp://:1234
doesn't work.

Signed-off-by: Martin Storsjö <martin@martin.st>
2011-06-24 18:27:02 +03:00
Michael Niedermayer
124a9edb5f udp: support old, crappy non pthread mode
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-06-04 16:55:22 +02:00
JULIAN GARDNER
f35761bca2 udp: fix indention 2011-06-03 19:41:15 +02:00
JULIAN GARDNER
8146d16b60 cleaned up the udp.c, removed some variables and an av_log 2011-05-18 17:17:56 +02:00
Michael Niedermayer
7b915726eb udp: remove resource.h inclusion, it breaks mingw compilation.
The header seems unneeded, if its needed we will put it back with appropriate #if
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-05-15 01:48:17 +02:00
Michael Niedermayer
e60e54ceb5 UDP: dont use thread_t as truth value.
Unbreak compile on mingw.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-05-14 13:34:08 +02:00
Michael Niedermayer
03f8f39769 udp: switch custom fifo to libavutil fifo.
This also allows us to drop the semaphore as our fifo is lock free.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-05-13 17:43:17 +02:00
Michael Niedermayer
593bb98d61 udp: use FFMAX&FFMIN.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-05-13 17:42:19 +02:00
JULIAN GARDNER
4275602183 udp: add a thread into udp.c for receiving data into a circular buffer, this stops the problem of live decoding/encoding giving errors.
Also added a buf_size which is the number of TS packets that to be allocated for the circular buffer.
2011-05-13 17:40:59 +02:00
Michael Niedermayer
72153419b5 Merge remote branch 'qatar/master'
* qatar/master: (33 commits)
  rtpdec_qdm2: Don't try to parse data packet if no configuration is received
  ac3enc: put the counting of stereo rematrixing bits in the same place to make the code easier to understand.
  ac3enc: clean up count_frame_bits() and count_frame_bits_fixed()
  mpegvideo: make FF_DEBUG_DCT_COEFF output coeffs via av_log() instead of just via AVFrame.
  srtdec: make sure we don't write past the end of buffer
  wmaenc: improve channel count and bitrate error handling in encode_init()
  matroskaenc: make sure we don't produce invalid file with no codec ID
  matroskadec: check that pointers were initialized before accessing them
  lavf: fix function name in compute_pkt_fields2 av_dlog message
  lavf: fix av_find_best_stream when providing a wanted stream.
  lavf: fix av_find_best_stream when decoder_ret is given and using a related stream.
  ffmpeg: factorize quality calculation
  tiff: add support for SamplesPerPixel tag in tiff_decode_tag()
  tiff: Prefer enum TiffCompr over int for TiffContext.compr.
  mov: Support edit list atom version 1.
  configure: Enable libpostproc automatically if GPL code is enabled.
  Cosmetics: fix prototypes in oggdec
  oggdec: fix memleak with continuous streams.
  matroskaenc: add missing new line in av_log() call
  dnxhdenc: add AVClass in private context.
  ...

swscale changes largely rewritten by me or replaced by baptsites due to lots of bugs in ronalds code.
Above code is also just in case its not obvios to a large extended duplicates that where cherry picked
from ffmpeg.

Conflicts:
	configure
	ffmpeg.c
	libavformat/matroskaenc.c
	libavutil/pixfmt.h
	libswscale/ppc/swscale_template.c
	libswscale/swscale.c
	libswscale/swscale_template.c
	libswscale/utils.c
	libswscale/x86/swscale_template.c
	tests/fate/h264.mak
	tests/ref/lavfi/pixdesc_le
	tests/ref/lavfi/pixfmts_copy_le
	tests/ref/lavfi/pixfmts_null_le
	tests/ref/lavfi/pixfmts_scale_le
	tests/ref/lavfi/pixfmts_vflip_le

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-05-13 04:40:40 +02:00
Diego Biurrun
046f081b46 configure: Do not unconditionally add -D_POSIX_C_SOURCE to CPPFLAGS.
Adding _POSIX_C_SOURCE to CPPFLAGS globally produces all sorts of problems
since it causes certain system functions to be hidden on some (BSD) systems.
The solution is to only add the flag on systems that really require it, i.e.
glibc-based ones.

This change makes BSD systems compile out-of-the-box without the need for
adding specific flags manually.  It also allows dropping a number of flags
set manually on a file-per-file basis, but were only present to work around
breakage introduced by the presence of _POSIX_C_SOURCE.

Also add _XOPEN_SOURCE to CPPFLAGS for glibc systems.  We use XSI extensions
in several places already, so it is preferable to define it globally instead
of littering source files with individual #defines only needed for glibc.
2011-05-12 11:41:59 +02:00
Michael Niedermayer
b97b4b58a6 Merge remote branch 'qatar/master'
* qatar/master:
  mpegaudiodec: group #includes more sanely
  mpegaudio: remove #if 0 blocks
  ffmpeg.c: reset avoptions after each input/output file.
  ffmpeg.c: store per-output stream sws flags.
  mpegaudio: remove CONFIG_MPEGAUDIO_HP option
  mpegtsenc: Clear st->priv_data when freeing it
  udp: Fix receiving RTP data over multicast
  rtpproto: Remove an unused variable
  regtest: fix wma tests
NOT pulled:  mpegaudio: remove CONFIG_AUDIO_NONSHORT
  regtest: separate flags for encoding and decoding

Conflicts:
	ffmpeg.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-05-10 04:03:17 +02:00
Martin Storsjö
a7ea5e3d35 udp: Fix receiving RTP data over multicast
Earlier, AVIO_RDWR was handled as READ, and all the checks
for the AVIO_WRONLY flag explicitly meant the write-only case.
When changed from old AVIO/URL contants to AVIO_FLAG in
59d96941f0, these comparisons were updated incorrectly, by
mapping checks for AVIO_WRONLY to checks for AVIO_FLAG_WRITE.

When receiving RTP over UDP, the urlcontext is opened with
READ_WRITE flags.

This patch updates the flag comparisons to check for the same
conditions as the code did prior to 59d96941f0.

Signed-off-by: Martin Storsjö <martin@martin.st>
2011-05-09 19:14:38 +03:00
Michael Niedermayer
10d2ae8cf7 Merge remote branch 'qatar/master'
* qatar/master:
  Makefile: Include dependencies for test tools, too
  Remove a version check in av_log made unnecessary by the big bump.
  update last major version increase dates in APIchanges
  Reduce picture size for yadif.
  oggdec: use av_freep() instead of av_free()
  avio: Fix sanity checks in ffurl_read*
  libavformat: Free AVFormatContext->streams
  libavformat: Make protocols pass URLContext as log context where available
  asf: remove commented out code in asf_read_seek
not pulled:  libpostproc: Remove crufty code disabled by the big bump.
  Reflect 0.7_beta1 release in the Changelog
not pulled:  sws: remove disabled cruft.
  lavu: remove disabled ff_random_get_seed cruft.
  lavu: remove disabled sha1 cruft.

Conflicts:
	Changelog
	libavutil/sha1.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-04-21 03:37:05 +02:00
Martin Storsjö
c60112f268 libavformat: Make protocols pass URLContext as log context where available
Since the libavformat major bump, URLContext contains an AVClass,
making it a usable log context.

Signed-off-by: Martin Storsjö <martin@martin.st>
2011-04-20 14:59:45 +03:00
Michael Niedermayer
efb5fa79f5 Merge remote branch 'qatar/master'
* qatar/master: (37 commits)
  In avcodec_open(), set return code to an error value only when an error occurs instead of unconditionally at the start of the function.
  lavc: remove reference to opt.h from Makefile.
  prefer avio_check() over url_exist()
  avio: remove AVIO_* access symbols in favor of new AVIO_FLAG_* symbols
  lavu: remove misc disabled cruft
  lavu: remove FF_API_OLD_IMAGE_NAMES cruft
NOT PULLED  lavu: remove FF_API_OLD_EVAL_NAMES cruft
  lavc: remove misc disabled cruft.
  lavc: remove the FF_API_INOFFICIAL cruft.
  lavc: remove the FF_API_SET_STRING_OLD cruft.
  lavc: remove the FF_API_USE_LPC cruft.
  lavc: remove the FF_API_SUBTITLE_OLD cruft.
  lavc: remove the FF_API_VIDEO_OLD cruft.
  lavc: remove the FF_API_AUDIO_OLD cruft.
  lavc: remove the FF_API_OPT_SHOW cruft.
  lavc: remove the FF_API_MM_FLAGS cruft.
  lavf: remove misc disabled cruft.
  lavf: remove FF_API_INDEX_BUILT cruft
  lavf: remove FF_API_URL_CLASS cruft.
  lavf: remove FF_API_SYMVER cruft
  ...

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-04-20 04:48:23 +02:00
Stefano Sabatini
59d96941f0 avio: remove AVIO_* access symbols in favor of new AVIO_FLAG_* symbols
Make AVIO_FLAG_ access constants work as flags, and in particular fix
the behavior of functions (such as avio_check()) which expect them to
be flags rather than modes.

This breaks API.
2011-04-19 19:47:58 +02:00
Anton Khirnov
c4efa7c229 lavf: remove FF_API_UDP_GET_FILE cruft 2011-04-19 18:28:38 +02:00
Michael Niedermayer
d4d09329ee Merge remote branch 'qatar/master'
* qatar/master:
  lavf: bump minor and add an APIChanges entry for avformat cleanup
  lavf: get rid of ffm-specific stuff in avformat.h
Not pulled:  avio: deprecate av_protocol_next().
  avio: add a function for iterating though protocol names.
  lavf: rename a parameter of av_sdp_create from buff->buf
  lavf: rename avf_sdp_create to av_sdp_create.
  lavf: make av_guess_image2_codec internal
  avio: make URLProtocol internal.
  avio: make URLContext internal.
  lavf: mark av_pkt_dump(_log) for remove on $next+1 bump.
  lavf: use designated initializers for all protocols
  applehttp: don't use deprecated url_ functions.
  avio: move two ff_udp_* functions from avio_internal to url.h
  asfdec: remove a forgotten declaration of nonexistent function
  avio: deprecate the typedef for URLInterruptCB

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-04-09 03:17:07 +02:00
Anton Khirnov
f35ff97f2e lavf: use designated initializers for all protocols
This is more readable and makes it easier to reorder URLProtocol
members.
2011-04-08 11:08:26 +02:00
Michael Niedermayer
c88caa522c Merge remote branch 'qatar/master'
* qatar/master:
  proto: include os_support.h in network.h
  matroskaenc: don't write an empty Cues element.
  lavc: add a FF_API_REQUEST_CHANNELS deprecation macro
  avio: move extern url_interrupt_cb declaration from avio.h to url.h
  avio: make av_register_protocol2 internal.
  avio: avio_ prefix for url_set_interrupt_cb.
  avio: AVIO_ prefixes for URL_ open flags.
  proto: introduce listen option in tcp
  doc: clarify configure features
  proto: factor ff_network_wait_fd and use it on udp

Conflicts:
	ffmpeg.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-04-08 02:50:13 +02:00
Anton Khirnov
5cec897105 avio: move extern url_interrupt_cb declaration from avio.h to url.h 2011-04-07 18:11:24 +02:00
Anton Khirnov
f87b1b373a avio: AVIO_ prefixes for URL_ open flags. 2011-04-07 18:07:16 +02:00
Luca Barbato
ebba2b3e2a proto: factor ff_network_wait_fd and use it on udp
Support the URL_FLAG_NONBLOCK semantic and uniform the protocol.
The quick retry loop is already part of retry_transfer_wrapper.

The polling routine is common to the network protocols:
udp, tcp and, once merged, sctp.
2011-04-07 02:53:55 +02:00
Michael Niedermayer
2fd41c9067 Merge remote-tracking branch 'newdev/master'
* newdev/master:
  avio: make udp_set_remote_url/get_local_port internal.
  asfdec: also subtract preroll when reading simple index object
  matroskaenc: remove a variable that's unused after bc17bd9.
  avio: cosmetics - nicer vertical alignment.
  Remove unnecessary icc version checks
  Disable 'attribute "foo" ignored' warnings from icc
  rtsp: Don't use a locale dependent format string
  Add xd55 codec tag for XDCAM HD422 720p25 CBR files.
  configure: get libavcodec version from new version.h header
  lavc: move the version macros to a new installed header.
  matroskaenc: simplify get_aac_sample_rates by using ff_mpeg4audio_get_config
  Do not use format string "%0.3f" for RTSP Range field.
  Add apply_window_int16() to DSPContext with x86-optimized versions and use it in the ac3_fixed encoder.
  Document usage of import libraries created by dlltool
  configure: Set the correct lib target for arm/wince dlltool
  fate: simplify regression-funcs.sh
  fate: add support for multithread testing

Conflicts:
	libavformat/rtspdec.c
	libavutil/attributes.h
	libavutil/internal.h
	libavutil/mem.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-03-24 02:16:11 +01:00
Anton Khirnov
4ec153bb66 avio: make udp_set_remote_url/get_local_port internal. 2011-03-23 17:32:13 +01:00
Mans Rullgard
2912e87a6c Replace FFmpeg with Libav in licence headers
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-03-19 13:33:20 +00:00
Nicolas George
c76374c6db Use AVERROR_EXIT with url_interrupt_cb.
Functions interrupted by url_interrupt_cb should not be restarted.
Therefore using AVERROR(EINTR) was wrong, as it did not allow to distinguish
when the underlying system call was interrupted and actually needed to be
restarted.

This fixes roundup issues 2657 and 2659 (ffplay not exiting for streamed
content).

Signed-off-by: Nicolas George <nicolas.george@normalesup.org>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-03-15 08:09:19 -04:00
Martin Storsjö
28c4741a66 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>
2011-02-23 07:21:31 -05:00
Anton Khirnov
ab0287fcbd Move find_info_tag to lavu and add av_ prefix to it
Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net>
2011-02-17 15:35:18 +01:00
David Fries
00952be424 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>
2011-02-09 22:03:59 -05:00
Luca Barbato
a8475bbdb6 os: replace select with poll
Select has limitations on the fd values it could accept and silently
breaks when it is reached.
2011-01-28 15:45:19 +01:00
Diego Elio Pettenò
c6610a216e 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.
2011-01-26 22:10:09 +00: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