| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Signed-off-by: Michael Niedermayer <[email protected]>
|
|\
| |
| |
| |
| |
| |
| | |
* commit 'b864230c49089b087eef56988a3d6a784f6f9827':
rtmp: Move RTMP digest calculation to a separate file
Merged-by: James Almer <[email protected]>
|
| |
| |
| |
| | |
The rtmpcrypt protocol requires it.
|
|\|
| |
| |
| |
| |
| |
| | |
* commit '15a92e0c402c830b607f905d6bf203b6cfb4fa8c':
rtmp: Correctly handle the Window Acknowledgement Size packets
Merged-by: James Almer <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This swaps which field is set when the Window Acknowledgement Size
and Set Peer BW packets are received, renames the fields in
order to clarify their role further and adds verbose comments
explaining their respective roles and how well the code currently
does what it is supposed to.
The Set Peer BW packet tells the receiver of the packet (which
can be either client or server) that it should not send more data
if it already has sent more data than the specified number of bytes,
without receiving acknowledgement for them. Actually checking this
limit is currently not implemented.
In order to be able to check that properly, one can send the
Window Acknowledgement Size packet, which tells the receiver of the
packet that it needs to send Acknowledgement packets
(RTMP_PT_BYTES_READ) at least after receiving a given number of bytes
since the last Acknowledgement.
Therefore, when we receive a Window Acknowledgement Size packet,
this sets the maximum number of bytes we can receive without sending
an Acknowledgement; therefore when handling this packet we should set
the receive_report_size field (previously client_report_size).
Signed-off-by: Martin Storsjö <[email protected]>
|
|\|
| |
| |
| |
| |
| |
| | |
* commit 'a1a143adb0fd11c474221431417cff25db7d920f':
rtmp: Rename packet types to closer match the spec
Merged-by: James Almer <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Also rename comments and log messages accordingly,
and add clarifying comments for some hardcoded values.
The previous names were taken from older, reverse engineered
references.
These names match the official public rtmp specification, and
matches the names used by wirecast in annotating captured
streams. These names also avoid hardcoding the roles of server
and client, since the handling of them is irrelevant of whether
we act as server or client.
The RTMP_PT_PING type maps to RTMP_PT_USER_CONTROL.
The SERVER_BW and CLIENT_BW types are a bit more intertwined;
RTMP_PT_SERVER_BW maps to RTMP_PT_WINDOW_ACK_SIZE and
RTMP_PT_CLIENT_BW maps to RTMP_PT_SET_PEER_BW.
Signed-off-by: Martin Storsjö <[email protected]>
|
| |
| |
| |
| |
| |
| |
| | |
Servers seem to be happy to receive the wrapped-around value as long
as they receive a report, otherwise they timeout.
Initially reported and analyzed by Thomas Bernhard.
|
| |
| |
| |
| |
| |
| | |
Mistake was added in 5840473890440dbe0bd2cce530ebb3d93e187ae6.
Signed-off-by: Derek Buitenhuis <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Replicates lavf/librtmp.c behavior in L149-156 and rtmpdump's
behavior with "--swfVfy <url>" passing the url to swfUrl.
Fixes trac ticket #5549.
Signed-off-by: Michael Niedermayer <[email protected]>
|
|\|
| |
| |
| |
| |
| |
| | |
* commit 'f4ca8ea92a8b36fe723412aefafc1b2fa89f8dc6':
rtmpproto: Restructure zlib code to avoid unreachable code warning
Merged-by: Clément Bœsch <[email protected]>
|
| |
| |
| |
| | |
libavformat\rtmpproto.c(1165) : warning C4702: unreachable code
|
|\|
| |
| |
| |
| |
| |
| | |
* commit 'c541a44e029e8a4f21db028c34fee3ad1c10a409':
Revert "rtmpproto: Don't include a client version in the unencrypted C1 handshake"
Merged-by: Clément Bœsch <[email protected]>
|
| |
| |
| |
| |
| |
| | |
handshake"
This reverts commit 7d8d726be7dc46343ab1c98c339c1ed44bcb07c1.
|
|\|
| |
| |
| |
| |
| |
| | |
* commit '7d8d726be7dc46343ab1c98c339c1ed44bcb07c1':
rtmpproto: Don't include a client version in the unencrypted C1 handshake
Merged-by: Clément Bœsch <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
According to the public RTMP specification, these 4 bytes should
be zero.
librtmp in server mode assumes that the RTMPE (FP9) handshake is
used if these bytes are nonzero.
Signed-off-by: Martin Storsjö <[email protected]>
|
|\|
| |
| |
| |
| |
| |
| | |
* commit '9f23f77a532ca9c2b7dc4b5328bc413e4f6f5b56':
rtmpproto: Don't include the libavformat version as "clientid"
Merged-by: Clément Bœsch <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When acting as server, the server can include a "clientid" property
in some status messages. But this should be a unique number
identifying the client session, not identifying the server itself.
In practice, omitting it works just as well as including this
incorrect field.
Signed-off-by: Martin Storsjö <[email protected]>
|
|\|
| |
| |
| |
| |
| |
| | |
* commit '8b5e0d17e70400eaf5dc3845b5c1df8b2b88d830':
rtmpproto: Send chunk size on the network channel
Merged-by: Clément Bœsch <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| | |
This makes sure that e.g. Adobe FME actually reacts to it. As long
as the value we've been sending is the default one (128), the bug
hasn't been noticed.
Signed-off-by: Martin Storsjö <[email protected]>
|
|\|
| |
| |
| |
| |
| |
| | |
* commit 'd6ded94036e43a04889f4ff2813a7f7dd60b82fe':
rtmpproto: Lengthen the filename buffer when receiving streams
Merged-by: Clément Bœsch <[email protected]>
|
| |
| |
| |
| |
| |
| |
| | |
Some applications such as Adobe FME append lots of parameters
here, making it easily overflow the current limit.
Signed-off-by: Martin Storsjö <[email protected]>
|
|\|
| |
| |
| |
| |
| |
| | |
* commit '7395784ba72742b6daa62d35db4028e09f3fdf06':
rtmpproto: Check the return from ff_amf_read_string
Merged-by: Clément Bœsch <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| | |
If this failed, we used to continue with an uninitialized
filename buffer.
CC: [email protected]
Signed-off-by: Martin Storsjö <[email protected]>
|
| |
| |
| |
| |
| |
| |
| | |
use the option set by user
Reported-by: Lancelot Lai <[email protected]>
Signed-off-by: Steven Liu <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When bytes_read overflowed, last_bytes_read did not yet overflow
and no bytes-read report was created leading to a timeout.
Analyzed-by: Thomas Bernhard
Fixes ticket #5836.
|
| |
| |
| |
| |
| |
| |
| | |
Fix problem to fail by a RTMP Control Message except "Set Chunk Size (1)" after an RTMP handshake. When 'nginx-rtmp-module' relays an RTMP, it sends not only control message 'Set Chunk Size (1)' but also 'Window Acknowledgement Size (5)'.
Reviewed-by: Steven Liu <[email protected]>
Signed-off-by: Michael Niedermayer <[email protected]>
|
|\|
| |
| |
| |
| |
| |
| | |
* commit '41ed7ab45fc693f7d7fc35664c0233f4c32d69bb':
cosmetics: Fix spelling mistakes
Merged-by: Clément Bœsch <[email protected]>
|
| |
| |
| |
| | |
Signed-off-by: Diego Biurrun <[email protected]>
|
|\|
| |
| |
| |
| |
| |
| | |
* commit 'fab8156b2f30666adabe227b3d7712fd193873b1':
avio: Copy URLContext generic options into child URLContexts
Merged-by: Derek Buitenhuis <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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ö <[email protected]>
|
| |
| |
| |
| |
| | |
This way, the decisions about which protocols are available for use in
any given situations can be delegated to the caller.
|
| |
| |
| |
| | |
Signed-off-by: Derek Buitenhuis <[email protected]>
|
|\|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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 <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| | |
Reviewed-by: Andreas Cadhalpun <[email protected]>
Signed-off-by: Michael Niedermayer <[email protected]>
|
|\|
| |
| |
| |
| |
| |
| | |
* commit '64f8c439fd663fec4d57ac21af572d498fe21f7a':
rtmpproto: Include the full path as app when "slist=" is found
Merged-by: Hendrik Leppkes <[email protected]>
|
| |
| |
| |
| |
| |
| |
| | |
This matches what librtmp does. This fixes automatic url parsing of
crunchyroll urls.
Signed-off-by: Martin Storsjö <[email protected]>
|
|\|
| |
| |
| |
| |
| |
| | |
* commit 'e55376a1fd5abebbb0a082aa20739d58c2260a37':
rtmpproto: Write correct flv packet sizes at the end of packets
Merged-by: Hendrik Leppkes <[email protected]>
|
| |
| |
| |
| |
| |
| |
| | |
In one case it was written as zero, one case left it uninitialized,
missed the 11 bytes for the flv header.
Signed-off-by: Luca Barbato <[email protected]>
|
| |
| |
| |
| |
| | |
Signed-off-by: James Almer <[email protected]>
Signed-off-by: Martin Storsjö <[email protected]>
|
| |
| |
| |
| |
| | |
Signed-off-by: James Almer <[email protected]>
Signed-off-by: Martin Storsjö <[email protected]>
|
| |
| |
| |
| |
| |
| |
| | |
This should fix RTMP input which was broken by cbbd906be6150be38dfc14b6bc67dcac8da8aea4
the 40 + 11 case is untested as it did not occur in the testcase
Signed-off-by: Michael Niedermayer <[email protected]>
|
| |
| |
| |
| | |
Signed-off-by: Michael Niedermayer <[email protected]>
|
| |
| |
| |
| | |
Signed-off-by: James Almer <[email protected]>
|
| |
| |
| |
| |
| | |
Reviewed-by: Michael Niedermayer <[email protected]>
Signed-off-by: James Almer <[email protected]>
|
| |
| |
| |
| |
| |
| | |
Fixes #4103.
Signed-off-by: Paul B Mahol <[email protected]>
|
|\|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* commit '1a3eb042c704dea190c644def5b32c9cee8832b8':
Replace av_dlog with normal av_log at trace level
Conflicts:
ffplay.c
libavdevice/fbdev_dec.c
libavfilter/avfilter.c
libavfilter/internal.h
libavfilter/setpts.c
libavfilter/src_movie.c
libavfilter/vf_crop.c
libavfilter/vf_drawtext.c
libavfilter/vf_fieldorder.c
libavformat/assdec.c
libavformat/avidec.c
libavformat/flvdec.c
libavformat/http.c
libavformat/ipmovie.c
libavformat/isom.c
libavformat/mov.c
libavformat/mpegenc.c
libavformat/mpegts.c
libavformat/mpegtsenc.c
libavformat/mux.c
libavformat/mxfdec.c
libavformat/nsvdec.c
libavformat/oggdec.c
libavformat/r3d.c
libavformat/rtspdec.c
libavformat/utils.c
Merged-by: Michael Niedermayer <[email protected]>
|
| |
| |
| |
| | |
This applies to every library where performance is not critical.
|
| |
| |
| |
| | |
Signed-off-by: Michael Niedermayer <[email protected]>
|