Commit Graph

19 Commits

Author SHA1 Message Date
Derek Buitenhuis
f8e89d8a29 Merge commit 'fab8156b2f30666adabe227b3d7712fd193873b1'
* commit 'fab8156b2f30666adabe227b3d7712fd193873b1':
  avio: Copy URLContext generic options into child URLContexts

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-21 15:55:09 +01:00
Martin Storsjö
fab8156b2f avio: Copy URLContext generic options into child URLContexts
Since all URLContexts have the same AVOptions, such AVOptions
will be applied on the outermost context only and removed from the
dict, while they probably make sense on all contexts.

This makes sure that rw_timeout gets propagated to the innermost
URLContext (to make sure it gets passed to the tcp protocol, when
opening a http connection for instance).

Alternatively, such matching options would be kept in the dict
and only removed after the ffurl_connect call.

Signed-off-by: Martin Storsjö <martin@martin.st>
2016-03-24 10:34:19 +02:00
Derek Buitenhuis
93629735d7 avformat: Add a protocol blacklisting API
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-03-04 16:13:42 +00:00
Derek Buitenhuis
9c75148e6e Merge commit '2758cdedfb7ac61f8b5e4861f99218b6fd43491d'
This commit also disables the async fate test, because it
used internal APIs in a non-kosher way, which no longer
exists.

* commit '2758cdedfb7ac61f8b5e4861f99218b6fd43491d':
  lavf: reorganize URLProtocols

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-29 16:51:10 +00:00
Anton Khirnov
8c0ceafb0f urlprotocol: receive a list of protocols from the caller
This way, the decisions about which protocols are available for use in
any given situations can be delegated to the caller.
2016-02-22 11:45:31 +01:00
Anton Khirnov
2758cdedfb lavf: reorganize URLProtocols
Instead of a linked list constructed at av_register_all(), store them
in a constant array of pointers.

Since no registration is necessary now, this removes some global state
from lavf. This will also allow the urlprotocol layer caller to limit
the available protocols in a simple and flexible way in the following
commits.
2016-02-22 11:30:58 +01:00
Michael Niedermayer
fe3fed0b14 Update demuxers and protocols for protocol whitelist support
Reviewed-by: Andreas Cadhalpun <andreas.cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-02 04:16:50 +01:00
Clément Bœsch
43ecec0f03 avformat: use AV_OPT_TYPE_BOOL in a bunch of places 2015-12-04 15:43:33 +01:00
Michael Niedermayer
58346f6a29 avformat/icecast: Initialize .str based default for AV_OPT_TYPE_STRING types
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-31 22:37:53 +01:00
Michael Niedermayer
f3c324a0fe Merge commit '3a6bb9735053c453f806ceab1d91124648d90aca'
* commit '3a6bb9735053c453f806ceab1d91124648d90aca':
  Icecast: Send 100-continue header if possible

See: 17dc39e76b
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-15 11:30:42 +01:00
Marvin Scholz
8562c1483b Icecast: Send content-type in all cases
This is needed because Icecast since version 2.4.1 doesn't default
to audio/mpeg anymore. AVOption default not used here, since a later
check if -content_type is set is performed and would break.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-11-15 09:15:39 +01:00
Marvin Scholz
3a6bb97350 Icecast: Send 100-continue header if possible
This allows for proper error reporting. Only do
this for non-legacy requests as only Icecast >2.4.0
will reply with a proper status.
Libav seems to accept both, 100 and 200 status codes, but
let's stay close to spec.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-11-15 09:14:04 +01:00
Marvin Scholz
17dc39e76b Icecast: Use 100-continue if possible for proper error handling
Using 100-continue ffmpeg will only send data if the server confirms it,
so if there is an error with auth or mounpoint, this allows that it is
properly reported to the user. Else ffmpeg sends data and just quits at
some point without an error message.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-11 14:57:46 +01:00
Marvin Scholz
5e08b54f47 Icecast: always send a content-type
use a default (audio/mpeg for historical reason) if none. Required since Icecast 2.4.1
Not using AVOption default because this breaks content-type warnings (needs to
detect if no type was set by the user)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-11 14:49:08 +01:00
Michael Niedermayer
25a4180825 Merge commit '76c70e33d2244a688832f03b53862eb5d9ad3b01'
* commit '76c70e33d2244a688832f03b53862eb5d9ad3b01':
  icecast: Do not use chunked post

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-13 01:27:25 +02:00
Mark McGough
76c70e33d2 icecast: Do not use chunked post
Icecast uses HTTP 1.0 while Libav uses HTTP 1.1 and enables by
default chunked post.

Icecast actually forwards the HTTP chunk headers to the listener
as part of the media stream (without the chunk encoding HTTP headers)
causing the players to lose sync.

Disabling the option is enough to feed icecast properly.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-10-12 19:54:07 +02:00
Michael Niedermayer
491c52d3b0 Merge commit 'eb9244f20210fd420fb9b3c98126f9cae525d1cc'
* commit 'eb9244f20210fd420fb9b3c98126f9cae525d1cc':
  Add Icecast protocol

Conflicts:
	Changelog
	configure
	doc/protocols.texi
	libavformat/icecast.c
	libavformat/version.h

See: e3dc2c86fc
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-04 14:14:13 +02:00
ePirat
e3dc2c86fc libavformat: Add Icecast protocol
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-04 13:33:44 +02:00
Marvin Scholz
eb9244f202 Add Icecast protocol
Icecast is basically a convenience wrapper around the HTTP protocol.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-08-04 12:56:42 +03:00