summaryrefslogtreecommitdiff
path: root/libavformat/rtpproto.c
Commit message (Collapse)AuthorAge
* Merge commit 'fab8156b2f30666adabe227b3d7712fd193873b1'Derek Buitenhuis2016-04-21
|\ | | | | | | | | | | | | * commit 'fab8156b2f30666adabe227b3d7712fd193873b1': avio: Copy URLContext generic options into child URLContexts Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
| * avio: Copy URLContext generic options into child URLContextsMartin Storsjö2016-03-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * urlprotocol: receive a list of protocols from the callerAnton Khirnov2016-02-22
| | | | | | | | | | This way, the decisions about which protocols are available for use in any given situations can be delegated to the caller.
* | rtp: Fix play multiple multicast streams with the same portZhao Zhili2016-03-07
| | | | | | | | | | | | | | | | | | | | We cannot play multiple multicast streams with the same port at the same time. This is because both rtp and rtcp port are opened in read-write mode, so they will not bind to the multicast address. Try to make rtp port as read-only by default to solve this bug. Signed-off-by: Zhao Zhili <wantlamy@gmail.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | avformat: Add a protocol blacklisting APIDerek Buitenhuis2016-03-04
| | | | | | | | Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
* | Merge commit '2758cdedfb7ac61f8b5e4861f99218b6fd43491d'Derek Buitenhuis2016-02-29
|\| | | | | | | | | | | | | | | | | | | | | 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>
| * lavf: reorganize URLProtocolsAnton Khirnov2016-02-22
| | | | | | | | | | | | | | | | | | | | 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.
* | Update demuxers and protocols for protocol whitelist supportMichael Niedermayer2016-02-02
| | | | | | | | | | Reviewed-by: Andreas Cadhalpun <andreas.cadhalpun@googlemail.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | avformat: use AV_OPT_TYPE_BOOL in a bunch of placesClément Bœsch2015-12-04
| |
* | avformat/rtpproto: Move dscp into context & AVOptionsMichael Niedermayer2015-04-11
| | | | | | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | Merge commit '8c9c5479c4ba729b4ba868ab541a90b2061a7c2f'Michael Niedermayer2015-04-01
|\| | | | | | | | | | | | | * commit '8c9c5479c4ba729b4ba868ab541a90b2061a7c2f': rtp: Add an option to set the send/receive buffer size Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * rtp: Add an option to set the send/receive buffer sizeLuca Barbato2015-04-01
| | | | | | | | It gets forwarded down to UDP.
* | Merge commit '3c47e7c4350f73fc77d8e76f0dd6d2946b13c5cc'Michael Niedermayer2015-04-01
|\| | | | | | | | | | | | | | | | | | | * commit '3c47e7c4350f73fc77d8e76f0dd6d2946b13c5cc': rtp: Map the urloptions to AVOptions Conflicts: libavformat/rtpproto.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * rtp: Map the urloptions to AVOptionsLuca Barbato2015-04-01
| | | | | | | | Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* | avformat/rtpproto: Use av_freep() to avoid leaving stale pointers in memoryMichael Niedermayer2014-12-24
| | | | | | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | Merge commit '95d880fa6436f3b557a9c060428a04b9e4d552df'Michael Niedermayer2014-12-10
|\| | | | | | | | | | | | | * commit '95d880fa6436f3b557a9c060428a04b9e4d552df': rtpproto: Fix the input RTP data format check Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * rtpproto: Fix the input RTP data format checkMartin Storsjö2014-12-09
| | | | | | | | | | | | | | | | | | | | | | | | | | Only the upper 2 bits of the first byte are known to be a fixed value. The lower bits in the first byte of a RTP packet could be set if the input is from another RTP packetizers than libavformat's, but for RTCP packets, they would also be set when sending RTCP RR packets, triggering false warnings about incorrect input format to the protocol. Signed-off-by: Martin Storsjö <martin@martin.st>
* | Merge commit '29bc7bfba288ff8572ed967a8752a1dbde7b724b'Michael Niedermayer2014-12-08
|\| | | | | | | | | | | | | * commit '29bc7bfba288ff8572ed967a8752a1dbde7b724b': rtpproto: Write a warning if the input data written isn't RTP packetized Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * rtpproto: Write a warning if the input data written isn't RTP packetizedMartin Storsjö2014-12-08
| | | | | | | | | | | | | | Tell the user that the RTP muxer needs to be used to packetize the data - using the RTP protocol on its own isn't enough. Signed-off-by: Martin Storsjö <martin@martin.st>
* | avformat/rtpproto: Allow to specify DSCP classVincent Bernat2014-11-27
| | | | | | | | | | | | | | | | | | 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>
* | Merge commit 'd2771a1dc0a3695e8873adc16d068077f2417eea'Michael Niedermayer2014-10-20
|\| | | | | | | | | | | | | * commit 'd2771a1dc0a3695e8873adc16d068077f2417eea': rtpproto: Free the addrinfo pointer on failure Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * rtpproto: Free the addrinfo pointer on failureLuca Barbato2014-10-20
| | | | | | | | | | CC: libav-stable@libav.org Bug-Id: CID 1238797
* | Revert "avformat/rtpproto: fix strict aliasing violations with sockaddr"Michael Niedermayer2014-09-16
| | | | | | | | | | | | | | | | | | It appears this breaks build with MSVC until someone who has MSVC setup has time to investigate and workaround/fix this, its better to revert so that build is not broken Thats even more so as the original commit only fixed a hypothetical issue This reverts commit e587a428d75d58e2e5a592efd7bff44e1d9294ee.
* | avformat/rtpproto: fix strict aliasing violations with sockaddrMichael Niedermayer2014-09-15
| | | | | | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | avformat/rtpproto: when local rtp port and local rtcp port are not ↵lemonlinger@gmail.com2013-10-25
| | | | | | | | | | | | | | | | | | specified, try to make two successive ports and retry 3 times when failed some video players on Android will not send udp hole punching messages if the rtcp port and rtp port are not two successive integers. So, if the video player is behind NAT, it could not receive and rtp messages via udp Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | Merge commit '4b054a3400f728c54470ee6a1eefe1d82420f6a2'Michael Niedermayer2013-08-16
|\| | | | | | | | | | | | | * commit '4b054a3400f728c54470ee6a1eefe1d82420f6a2': rtpproto: Check the right feature detection macro Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * rtpproto: Check the right feature detection macroMartin Storsjö2013-08-15
| | | | | | | | | | | | | | | | IPPROTO_IPV6 is unrelated here (it's only used in udp.c for multicast sockopts), check for support for the sockaddr_in6 struct itself. Signed-off-by: Martin Storsjö <martin@martin.st>
* | Merge remote-tracking branch 'qatar/master'Michael Niedermayer2013-08-15
|\| | | | | | | | | | | | | * qatar/master: rtpproto: Check for the right feature when reading a sockaddr_in6 Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * rtpproto: Check for the right feature when reading a sockaddr_in6Dave Yeo2013-08-15
| | | | | | | | | | | | | | Some systems, such as OS/2, define AF_INET6 without a full implementation. Signed-off-by: Martin Storsjö <martin@martin.st>
* | Merge commit '6b58e11a8331690ec32e9869db89ae10c54614e9'Michael Niedermayer2013-08-14
|\| | | | | | | | | | | | | * commit '6b58e11a8331690ec32e9869db89ae10c54614e9': rtpproto: Add an option for writing return packets to the address of the last received packets Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * rtpproto: Add an option for writing return packets to the address of the ↵Martin Storsjö2013-08-14
| | | | | | | | | | | | | | | | | | | | | | last received packets If we've received packets on the same socket before, the return packets are sent to that address. If we've only received packets on the other socket, try to guess the source port for the other one assuming the basic +1/-1 logic. Signed-off-by: Martin Storsjö <martin@martin.st>
* | Merge commit '2427ac6ccd868811d1fe9df7c64c50ca58abe6f6'Michael Niedermayer2013-08-14
|\| | | | | | | | | | | | | * commit '2427ac6ccd868811d1fe9df7c64c50ca58abe6f6': rtpproto: Update the parameter documentation Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * rtpproto: Update the parameter documentationMartin Storsjö2013-08-13
| | | | | | | | | | | | | | | | Move the sources documentation up below the marker for deprecated otpions. Also mention the new block parameter, that was added in 749722209. Signed-off-by: Martin Storsjö <martin@martin.st>
* | Merge commit 'ee37d5811caa8f4ad125a37fe6ce3f9e66cd72f2'Michael Niedermayer2013-08-01
|\| | | | | | | | | | | | | * commit 'ee37d5811caa8f4ad125a37fe6ce3f9e66cd72f2': rtpproto: Allow specifying a separate rtcp port in ff_rtp_set_remote_url Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * rtpproto: Allow specifying a separate rtcp port in ff_rtp_set_remote_urlMartin Storsjö2013-08-01
| | | | | | | | | | | | | | | | | | | | A separate rtcp port can already be set when opening the rtp protocol normally, but when doing port setup as in RTSP (where we first need to open the local ports and pass them to the peer, and only then receive the remote peer port numbers), we didn't check the same url parameter as in the normal open routine. Signed-off-by: Martin Storsjö <martin@martin.st>
* | Merge commit '1851e1d05d06f6ef3436c667e4354da0f407b226'Michael Niedermayer2013-08-01
|\| | | | | | | | | | | | | * commit '1851e1d05d06f6ef3436c667e4354da0f407b226': rtpproto: Check the size before reading buf[1] Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * rtpproto: Check the size before reading buf[1]Martin Storsjö2013-08-01
| | | | | | | | | | | | | | | | I doubt that anyone ever would try to send a 1 byte packet via the RTP protocol, but check just in case - it shouldn't crash at least. Signed-off-by: Martin Storsjö <martin@martin.st>
* | Merge commit 'b7e6da988bfd5def40ccf3476eb8ce2f98a969a5'Michael Niedermayer2013-08-01
|\| | | | | | | | | | | | | * commit 'b7e6da988bfd5def40ccf3476eb8ce2f98a969a5': rtpproto: Move rtpproto specific function declarations to a separate header Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * rtpproto: Move rtpproto specific function declarations to a separate headerMartin Storsjö2013-07-31
| | | | | | | | | | | | | | Mixing these with the rtp depacketizer functions in rtpdec.h is no good. Signed-off-by: Martin Storsjö <martin@martin.st>
* | Merge commit '892b0be1dfbdeaf71235fb6c593286e4f5c7e4ec'Michael Niedermayer2013-08-01
|\| | | | | | | | | | | | | * commit '892b0be1dfbdeaf71235fb6c593286e4f5c7e4ec': rtpproto: Simplify the rtp_read function by looping over the fds Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * rtpproto: Simplify the rtp_read function by looping over the fdsMartin Storsjö2013-07-31
| | | | | | | | | | | | | | This avoids having duplicate code where only the fd parameter differs. Signed-off-by: Martin Storsjö <martin@martin.st>
* | Merge commit '7531588fffbca1f0afdcc06635999c00dfc16ca6'Michael Niedermayer2013-08-01
|\| | | | | | | | | | | | | * commit '7531588fffbca1f0afdcc06635999c00dfc16ca6': rtpproto: Remove a misplaced comment Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * rtpproto: Remove a misplaced commentMartin Storsjö2013-07-31
| | | | | | | | | | | | | | The fdset is a pollfd array nowadays, and it is already populated at this point. Signed-off-by: Martin Storsjö <martin@martin.st>
* | Merge commit '54e03ff6af8a070f1055edd26028f3f7b2e2ca8e'Michael Niedermayer2013-08-01
|\| | | | | | | | | | | | | * commit '54e03ff6af8a070f1055edd26028f3f7b2e2ca8e': rtpproto: Support nonblocking reads Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * rtpproto: Support nonblocking readsMartin Storsjö2013-07-31
| | | | | | | | Signed-off-by: Martin Storsjö <martin@martin.st>
* | Merge commit '74972220909787af5a3ffe66f7fa8041827c2bd2'Michael Niedermayer2013-07-30
|\| | | | | | | | | | | | | | | | | | | * commit '74972220909787af5a3ffe66f7fa8041827c2bd2': rtpproto: Support more than one SSM include address, support excludes Conflicts: libavformat/rtpproto.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * rtpproto: Support more than one SSM include address, support excludesEd Torbett2013-07-29
| | | | | | | | Signed-off-by: Martin Storsjö <martin@martin.st>
* | Merge commit '36fb0d02a1faa11eaee51de01fb4061ad6092af9'Michael Niedermayer2013-07-20
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | * commit '36fb0d02a1faa11eaee51de01fb4061ad6092af9': rtsp: Support multicast source filters (RFC 4570) rtpproto: Check the source IP if one single source has been specified rtpproto: Support IGMPv3 source specific multicast inclusion Conflicts: libavformat/rtpproto.c libavformat/rtsp.c libavformat/rtsp.h Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * rtpproto: Check the source IP if one single source has been specifiedMartin Storsjö2013-07-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | If another peer is sending unicast packets to the same port that we are listening on, those packets can end up being received despite using source specific multicast. For those cases, manually check the source address of received packets against the intended source address. This only handles the case when the source list is one single IP address for now, which probably is the most common case. Based on a patch by Ed Torbett. Signed-off-by: Martin Storsjö <martin@martin.st>
| * rtpproto: Support IGMPv3 source specific multicast inclusionEd Torbett2013-07-19
| | | | | | | | | | | | | | | | | | Blocking/exclusion is not supported yet. The rtp protocol parameter takes the same form as the existing sources parameter for the udp protocol. Signed-off-by: Martin Storsjö <martin@martin.st>