Samuel Pitoiset
71036a3a5e
rtmp: Factorize the code by adding handle_invoke_status
...
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
13 years ago
Samuel Pitoiset
5e6001db8f
rtmp: Factorize the code by adding handle_invoke_result
...
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
13 years ago
Samuel Pitoiset
f89584ca44
rtmp: Add message tracking
...
Signed-off-by: Martin Storsjö <martin@martin.st>
13 years ago
Luca Barbato
82613564cf
rtmp: send check_bw as notification
...
Set the transactionId to 0 to signal the server a return _result/_error
is not expected.
Solves the problems experienced with strict rtmp servers.
13 years ago
Samuel Pitoiset
00cb52c65c
rtmp: Add a new option 'rtmp_subscribe'
...
This option specifies the name of live stream to subscribe.
Defaults to rtmp_playpath.
Signed-off-by: Martin Storsjö <martin@martin.st>
13 years ago
Samuel Pitoiset
f9e77c1762
rtmp: Add support for subscribing live streams
...
When streaming live streams using the Akamai, Edgecast or Limelight CDN,
players cannot simply connect to the live stream. Instead, they have to
subscribe to it, by sending an FC Subscribe call to the server.
Signed-off-by: Martin Storsjö <martin@martin.st>
13 years ago
Samuel Pitoiset
12127b65b0
rtmp: Factorize simultaneous URLProtocol / AVClass declarations with a macro
...
Signed-off-by: Martin Storsjö <martin@martin.st>
13 years ago
Samuel Pitoiset
9c9c21eaa1
rtmp: do not warn about receiving metadata packets
...
They are managed in get_packet()
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
13 years ago
Samuel Pitoiset
8ea1459bc3
rtmp: Check the buffer length of ping packets
...
Signed-off-by: Martin Storsjö <martin@martin.st>
13 years ago
Samuel Pitoiset
e49e6b6451
rtmp: Allow having more unknown data at the end of a chunk size packet without failing
...
Signed-off-by: Martin Storsjö <martin@martin.st>
13 years ago
Samuel Pitoiset
2357f60687
rtmp: Prevent reading outside of an allocate buffer when receiving server bandwidth packets
...
Signed-off-by: Martin Storsjö <martin@martin.st>
13 years ago
Samuel Pitoiset
abf77a247b
rtmp: Return an error when the client bandwidth is incorrect
...
Signed-off-by: Martin Storsjö <martin@martin.st>
13 years ago
Samuel Pitoiset
be8f949219
rtmp: Return proper error code in handle_server_bw
...
Signed-off-by: Martin Storsjö <martin@martin.st>
13 years ago
Samuel Pitoiset
088a82bb33
rtmp: Return proper error code in handle_client_bw
...
Signed-off-by: Martin Storsjö <martin@martin.st>
13 years ago
Samuel Pitoiset
e7ea6883bf
rtmp: Return proper error codes in handle_chunk_size
...
Signed-off-by: Martin Storsjö <martin@martin.st>
13 years ago
Samuel Pitoiset
6d1c9945dd
rtmp: Factorize the code by adding handle_invoke
...
Signed-off-by: Martin Storsjö <martin@martin.st>
13 years ago
Samuel Pitoiset
7be2a7d8ff
rtmp: Factorize the code by adding handle_chunk_size
...
Signed-off-by: Martin Storsjö <martin@martin.st>
13 years ago
Samuel Pitoiset
0ffd5161c4
rtmp: Factorize the code by adding handle_ping
...
Signed-off-by: Martin Storsjö <martin@martin.st>
13 years ago
Samuel Pitoiset
912ecc9a19
rtmp: Factorize the code by adding handle_client_bw
...
Signed-off-by: Martin Storsjö <martin@martin.st>
13 years ago
Samuel Pitoiset
9b498148ca
rtmp: Factorize the code by adding handle_server_bw
...
Signed-off-by: Martin Storsjö <martin@martin.st>
13 years ago
Samuel Pitoiset
758377a2b7
rtmp: Add a new option 'rtmp_pageurl'
...
This option specifies the URL of the web page in which the media
was embedded.
Signed-off-by: Martin Storsjö <martin@martin.st>
13 years ago
Samuel Pitoiset
63ffa154e9
rtmp: Make the description of the rtmp_tcurl option more generic
...
Signed-off-by: Martin Storsjö <martin@martin.st>
13 years ago
Samuel Pitoiset
f7bfb126cd
rtmp: Move the CONFIG_ condition into the if conditions
...
This makes sure these calls are removed by dead code elimination
even if optimization is disabled. This fixes building without
crypto libraries without optimization.
Signed-off-by: Martin Storsjö <martin@martin.st>
13 years ago
Michael Niedermayer
dc31b84cbf
rtmpproto: fix compilation without optimizations
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
13 years ago
Samuel Pitoiset
08cd95e8a3
RTMPTE protocol support
...
Signed-off-by: Martin Storsjö <martin@martin.st>
13 years ago
Samuel Pitoiset
acd554c103
RTMPE protocol support
...
This adds two protocols, but one of them is an internal implementation
detail just used as an abstraction layer/generalization in the code. The
RTMPE protocol implementation uses ffrtmpcrypt:// as an alternative to the
tcp:// protocol. This allows moving most of the lower level logic out
from the higher level generic rtmp code.
Signed-off-by: Martin Storsjö <martin@martin.st>
13 years ago
Samuel Pitoiset
0e31088b6c
rtmp: Add ff_rtmp_calc_digest_pos()
...
This function is used for calculating digest position for RTMP handshake
packets.
Signed-off-by: Martin Storsjö <martin@martin.st>
13 years ago
Samuel Pitoiset
3505d5574e
rtmp: Rename rtmp_calc_digest to ff_rtmp_calc_digest and make it global
...
Signed-off-by: Martin Storsjö <martin@martin.st>
13 years ago
Samuel Pitoiset
86991ce2dd
RTMPTS protocol support
...
Signed-off-by: Martin Storsjö <martin@martin.st>
13 years ago
Samuel Pitoiset
6aedabc9b6
RTMPS protocol support
...
Signed-off-by: Martin Storsjö <martin@martin.st>
13 years ago
Samuel Pitoiset
775c4d3625
rtmp: Rename rtmphttp to ffrtmphttp
...
The prefix makes it easier to distinguish the proper end-user
protocols from the internal ones.
Signed-off-by: Martin Storsjö <martin@martin.st>
13 years ago
Jordi Ortiz
08e087ccf7
rtmp: rtmp_parse_result() add case for video and audio packets to avoid undesired debug output.
...
Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com>
13 years ago
Samuel Pitoiset
46743a859c
rtmp: Don't send every flv packet in a separate HTTP request in RTMPT
...
Add a new option 'rtmp_flush_interval' that allows specifying the
number of packets to write before sending it off as a HTTP request.
This is mostly relevant for RTMPT - for plain RTMP, it only controls
how often we check the socket for incoming packets, which shouldn't
affect the performance in any noticeable way.
Signed-off-by: Martin Storsjö <martin@martin.st>
13 years ago
Samuel Pitoiset
8e50c57dcb
RTMPT protocol support
...
This adds two protocols, but one of them is an internal implementation
detail just used as an abstraction layer/generalization in the code. The
RTMPT protocol implementation uses rtmphttp:// as an alternative to the
tcp:// protocol. This allows moving most of the lower level logic out
from the higher level generic rtmp code.
Signed-off-by: Martin Storsjö <martin@martin.st>
13 years ago
Samuel Pitoiset
7dc747f50b
rtmp: Read and handle incoming packets while writing data
...
This makes sure all incoming packets are read and handled (and reacted
to) while sending an FLV stream over RTMP to a server. If there were
enough incoming data to fill the TCP buffers, this could potentially
make things block at unexpected places. For the upcoming RTMPT support,
we need to consume all incoming data before we can send the next
request.
Signed-off-by: Martin Storsjö <martin@martin.st>
13 years ago
Samuel Pitoiset
8517e9c476
rtmp: Add a new option 'rtmp_buffer', for setting the client buffer time
...
Signed-off-by: Martin Storsjö <martin@martin.st>
13 years ago
Samuel Pitoiset
9477c035a7
rtmp: Set the client buffer time to 3s instead of 0.26s
...
This factorizes existing code into a new function gen_buffer_time(),
which generates the client buffer time message and sends it to the
server.
Signed-off-by: Martin Storsjö <martin@martin.st>
13 years ago
Samuel Pitoiset
c2d38beab2
rtmp: Handle server bandwidth packets
...
Signed-off-by: Martin Storsjö <martin@martin.st>
13 years ago
Samuel Pitoiset
9ff930aace
rtmp: Display a verbose message when an unknown packet type is received
...
Signed-off-by: Martin Storsjö <martin@martin.st>
13 years ago
Martin Storsjö
0533868642
rtmp: Tokenize the AMF connection parameters manually instead of using strtok_r
...
This fixes builds on platforms without strtok_r (windows).
Signed-off-by: Martin Storsjö <martin@martin.st>
13 years ago
Samuel Pitoiset
0a9a225733
rtmp: Fix a possible access to invalid memory location when the playpath is too short.
...
Signed-off-by: Martin Storsjö <martin@martin.st>
13 years ago
Michael Niedermayer
f91b635b52
rtmpproto: replace strtok_r by av_strtok its unavailable in mingw
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
13 years ago
Samuel Pitoiset
f862537de8
rtmp: Do not send extension for flv files
...
This fixes bugzilla bug #304 .
Signed-off-by: Martin Storsjö <martin@martin.st>
13 years ago
Samuel Pitoiset
8ee3e1874e
rtmp: support connection parameters
...
Allow using connection parameters in order to append arbitrary
AMF data like "B:1 S:authMe O:1 NN:code:1.23 NS:flag:ok O:0" to the
Connect message. You can pass these parameters through the -rtmp_conn
option.
Signed-off-by: Martin Storsjö <martin@martin.st>
13 years ago
Luca Barbato
c6eeb9b7b6
rtmp: fix url parsing
...
The application component can have a subcomponent to specify the
application instance even if it doesn't have a ":" in the playpath.
13 years ago
Samuel Pitoiset
177bcc9593
rtmp: Pass the proper return code in rtmp_handshake
...
Signed-off-by: Martin Storsjö <martin@martin.st>
13 years ago
Samuel Pitoiset
bba287fdac
rtmp: Check return codes of net IO operations
...
Signed-off-by: Martin Storsjö <martin@martin.st>
13 years ago
Samuel Pitoiset
a4d3f3580b
rtmp: Return a proper error code instead of -1
...
Signed-off-by: Martin Storsjö <martin@martin.st>
13 years ago
Samuel Pitoiset
08e93f5b46
rtmp: Check malloc calls
...
Signed-off-by: Martin Storsjö <martin@martin.st>
13 years ago
Samuel Pitoiset
f645f1d6ea
rtmp: Check ff_rtmp_packet_create calls
...
Check malloc calls used by ff_rtmp_packet_create, unify error
handling and pass on error codes.
Signed-off-by: Martin Storsjö <martin@martin.st>
13 years ago