Support Deps
  1. Support Deps

librtmp

Public
AuthorCommitMessageCommit dateIssues
Christopher RienzoChristopher Rienzo
dd20e2256ceFS-7553 added RPM packagingFS-7553
Ken RiceKen Rice
3b2b4511b03move the autoreconf to earlier
Mike JerrisMike Jerris
f621bd86825autotool librtmp
Ken RiceKen Rice
0145d18ead0make the patch right
Ken RiceKen Rice
14fdda7dafeadd src_tarball script
William KingWilliam King
c952c6ae604Fix build for pristine-tar
William KingWilliam King
bd3731f2f68Better approach
Cheolho ParkCheolho Park
a107cef9b39Add extended timestamp for Type 3 chunks if necessarySection 5.3.1.3 of the RTMP spec say that type 3 packets also should repeat this field. This matches what the parsing code (in RTMP_ReadPacket) does.
Martin StorsjoMartin Storsjo
a1900c3e152Replace RTMP_PUB_ALLOC with RTMP_LF_FTCU and RTMP_LF_FAPUThis gets rid of the overlap between these two flags, shortening the code somewhat.
Martin StorsjoMartin Storsjo
4444f205545Simplify the logic for freeing reused strings in RTMP_CloseInstead of having a plethora of flags indicating the current state (just to avoid freeing them when closing the previous connection when reconnecting), split RTMP_Close into CloseInternal, taking a flag saying whether this is a reconnect or a normal, final RTMP_Close call. This also avoids leaks of some strings, if the whole session is closed while the authentication process is underway.
Martin StorsjoMartin Storsjo
0226b868539Set RTMP_PUB_ALLOC if tcUrl is allocated in PublisherAuthThis makes sure we don't free tcUrl in RTMP_Close when reconnecting, and avoids leaks (or simplifies code to avoid leaks). This fixes connecting with authentication (both adobe and limelight) when the app has been specified separately from the rest of the url. This is only a temporary step while refactoring, this is removed in a later commit.
Martin StorsjoMartin Storsjo
1a07d682650Reconnect directly when authenticating, don't wait for the close messageThis fixes authentication with wowza 4.x servers, which don't send any close message in the authentication process.
Martin PanterMartin Panter
79459a2b43fExtended timestamp field may be present in type 3 chunk headersAs described in Adobe’s RTMP specification dated 21 Dec 2012; also: * RTMPY ticket #107, “Compressed headers also can have an extended timestamp”, http://web.archive.org/web/20120624031323/http://dev.rtmpy.org/ticket/107 * https://rarut.wordpress.com/2012/03/21/announcing-nginx-rtmp-module/ This resolves intermittent hangs, segfaults and crashes I was seeing when starting ABC News 24 stre...
Martin StorsjoMartin Storsjo
dc76f0a8461Fix leaks in AMF objects that contain arrays
Martin StorsjoMartin Storsjo
3cd3440f0ebFree the extra read buffer if the initial FLV buffer overflowedThis fixes a leak in this cornercase.
Martin StorsjoMartin Storsjo
c89b57271faCorrect the count of bytes written to the initial FLV bufferThis matters if the buffer overflows, when the count is used for patching the buffer back together. This happens if there are multiple video packets with zero timestamp at the start of the stream (before any audio packets), enough to fill the buffer.
Martin StorsjoMartin Storsjo
a9f353c7ccfBump the SO_VERSION to 1Commit a9282329c3 changed the layout of the RTMP struct, making it ABI-incompatible with previous versions.
Martin StorsjoMartin Storsjo
95184863fb7Include -lgmp in the pkg-config file when building with gnutlsThis is required when a user of librtmp is linking statically to librtmp (when it is built with gnutls support). Ideally everything of the Requires line should be in Requires.private, and -lgmp would go into Libs.private - but if only building a static lib, they should go where they are right now instead. Keeping all of this where it is right now, for now, for simplicity.
Martin StorsjoMartin Storsjo
0d44da9f5f5Include the nettle/hogweed crypto libraries in the pkg-config fileThese libraries are linked and used as directly as we use gnutls itself. This fixes linking for callers if librtmp is built statically or if the linker doesn't support transitive linking.
Martin StorsjoMartin Storsjo
5ba573a9712Fix limelight authentication with abbreviated app namesWhen streaming to limelight, the app name is either a full "appname/subaccount" or "appname/_definst_". In the latter case, the app name can be simplified into simply "appname", but the authentication hashing assumes the /_definst_ still to be present.
Martin StorsjoMartin Storsjo
ec606b685c2Don't do strchr on a string that isn't necessarily null-terminated
Martin StorsjoMartin Storsjo
8e3064207faDon't use non-public gnutls functionsThe internal functions gnutls_calc_dh_secret and gnutls_calc_dh_key have changed signature in recent gnutls versions - don't use them but manually do roughly the same as what they used to do before using only public API functions.
Martin StorsjoMartin Storsjo
df6c5188424Remove a useless leftover commentThe variable is any random challenge, thus the byte order doesn't matter at all.
Martin StorsjoMartin Storsjo
f8fcf64f4f8Only use one challenge value in adobe authSome servers (akamai) only include a 'challenge' parameter, no 'opaque' parameter, while others (wowza) include both 'opaque' and 'challenge'. If 'opaque' is provided, it should be used here, otherwise 'challenge', but never both. After this patch, adobe auth works against both wowza and akamai servers.
Björn AxelssonBjörn Axelsson
38d3aeaeef9Correct the length of base64 digestsThis was broken in e42b5d09. This makes adobe auth against akamai servers work again.
Howard ChuHoward Chu
3a1e20c08ccFix b77a7dc719f8b04274db91f6344f4358a78d9c5fDumpMetadata needs to recognize ARRAY types now.
Howard ChuHoward Chu
19d36368f6cPolarSSL 1.2.x compat
Howard ChuHoward Chu
feb81c8b3e0Fix gnutls buildMissing semicolon in e42b5d0926b1a668d7fbd794a70f31040c5f198d
Howard ChuHoward Chu
e79a07c8625PolarSSL version fixesFix commit a312ac7770207bd7d07725c1aef43725206e803a
Björn AxelssonBjörn Axelsson
f3e3e6b507aLook for a fourth slash when splitting the url into app+playpath
Martin StorsjoMartin Storsjo
9d6dc72d7c4Simplify initializing the TLS server contextThis does the same thing, but I wasn't aware of these functions when I initially wrote this.
Howard ChuHoward Chu
1f6c6434d67More authentication cleanup
Howard ChuHoward Chu
e42b5d0926bCleanup authentication codefrom commit 9ecf540e4d5bdc85c17668fa7ead93cc375111ca
LRNLRN
883c3348940Fix dll name to have SO_VERSION-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 subj is attached Changes librtmp.dll into librtmp-$(SO_VERSION).dll, the same form that libtool uses. librtmp.dll is still created from librtmp-$(SO_VERSION).dll via `ln - -sf'; obviously, it makes a hardlink when called in MSYS, but that's no worse than what we have right now. Please, CC me, since i'm not subscibed to this list -----BEGIN PGP SI...UTF-8
Björn AxelssonBjörn Axelsson
9ecf540e4d5Add support for limelight authentication
Martin StorsjoMartin Storsjo
630c8db7d1eAdd adobe authentication supportFrom: Sergiy <piratfm@gmail.com> To use this, add flashver=FMLE/3.0\20(compatible;\20FMSc/1.0) and pubUser=<username> pubUser=<password> to the RTMP url. This should both work for generic adobe authentication, and for publishing to akamai.
Martin StorsjoMartin Storsjo
a9282329c3bAllocate the channel arrays dynamicallyThis avoids having to allocate space for all theoretical channels if most of them aren't used. This drops the size of the full RTMP struct from over 1200 KB to 16 KB (on 64 bit), and as long as only channels with a low number are used, the amount of total allocated memory stays far below what it was before.
Martin StorsjoMartin Storsjo
0fb1d9936fbFree skipped packets in RTMP_GetNextMediaPacket
Martin StorsjoMartin Storsjo
4a08069f086Use CRLF newlines consistently for all HTTP POST headers
Martin StorsjoMartin Storsjo
91921dda700Refill if HTTP_read indicated it needs more dataHTTP_read wants to skip past the first payload byte, so it actually needs to have at least 144 + 1 bytes buffered. This also avoids relying on the magic 144 byte constant altogether, which could easily break if servers include less reply headers.
Martin StorsjoMartin Storsjo
4ded9e05374Don't require 144 bytes to be buffered before proceeding with HTTP_readThis makes the code more flexible, if servers were to use smaller headers.
Martin StorsjoMartin Storsjo
895392a7161Buffer more data before returning successfully from HTTP_read, if neededThis fixes issues if the http header and the payload data are sent in separate packets (as they normally are), and the buffer contains the full header but none of the payload.
Martin StorsjoMartin Storsjo
8e527f61afbAdd null termination to buffers before using strstr
Martin StorsjoMartin Storsjo
002ef6f6be2Support rtmps in rtmpsrv
Martin StorsjoMartin Storsjo
6df3b1f2015Add functions for doing server side TLS initialization
Martin StorsjoMartin Storsjo
f14b6ac18d7Replace hardcoded constants and comments with proper named constants
Martin StorsjoMartin Storsjo
d70c3f677d3Allocate the RTMP struct dynamicallyThis struct is over 1 MB in size, and doesn't fit on the stack on OS X.
Howard ChuHoward Chu
294135e6eafCleanup prev commit
goggle1goggle1
b77a7dc719fHandle AMF_ECMA_ARRAY and AMF_STRICT_ARRAY objects
Matthew GarrettMatthew Garrett
1d07cfa6040Fix socks support for SetupURLSetupURL assigns sockshost but never parses the data. This patch factors the code out from SetupStream into a common function and adds it to SetupURL.