Skip to content

Commit 4785527

Browse files
author
Crossle Song
committed
Add librtmp build script
0 parents  commit 4785527

40 files changed

+19285
-0
lines changed

.gitignore

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
*.[oa]
2+
*.exe
3+
*.so
4+
*.so.[0-9]
5+
*.dylib
6+
rtmpdump
7+
rtmpgw
8+
rtmpsrv
9+
rtmpsuck
10+
obj

Android.mk

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
LOCAL_PATH := $(call my-dir)
2+
3+
subdirs := $(addprefix $(LOCAL_PATH)/,$(addsuffix /Android.mk, \
4+
librtmp \
5+
))
6+
7+
#SSL := ~/SSL
8+
ifndef SSL
9+
$(error "You must define SSL before starting")
10+
endif
11+
12+
include $(subdirs)

AndroidManifest.xml

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
3+
android:versionCode="1"
4+
android:versionName="0.1" >
5+
6+
<uses-sdk android:minSdkVersion="8" />
7+
8+
</manifest>

COPYING

+339
Large diffs are not rendered by default.

ChangeLog

+288
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,288 @@
1+
RTMPDump
2+
Copyright 2008-2009 Andrej Stepanchuk; Distributed under the GPL v2
3+
Copyright 2009-2011 Howard Chu
4+
Copyright 2009 The Flvstreamer Team
5+
http://rtmpdump.mplayerhq.hu/
6+
7+
20 July 2011
8+
- add NetStream.Authenticate.UsherToken for Justin.tv
9+
10+
11 July 2011, v2.4
11+
- add RTMPE type 9 handshake support
12+
13+
30 June 2010, v2.3
14+
- fix RC4 cleanup for GnuTLS/gcrypt
15+
- declare RTMP_Write buf as const
16+
- cleanup Makefile
17+
- replace all use of bool with int
18+
- add RTMP_Socket() and RTMP_Pause() APIs
19+
- add ping/pong message handling
20+
- add basic shared library support
21+
- fix RTMP_ParseURL extension skipping
22+
- fix bad switch() from -r477 in RTMP_Read
23+
- fix rtmpsrv to always use .flv extension on output
24+
- fix crash on socket failure while RTMP_Read() is reading header
25+
- fix RTMP_ReadPacket signed/unsigned chars for m_nChannel
26+
- license cleanup, use current FSF address
27+
- fix RTMP_SetupURL tcUrl generation
28+
- ignore multiple spaces between URL options
29+
- only send CheckBW request once per session
30+
31+
29 May 2010, v2.2e
32+
- port to Xbox
33+
- add explicit URL scheme for rtmpts
34+
- fix rtmpt clientID NUL-termination
35+
- use BufferEmpty trick in rtmpdump but not by default in librtmp
36+
- add librtmp manpage
37+
- fix RTMP_Read, return 0 on EOF, not -1
38+
- change RTMP_Read to return 1 packet at a time, fix buffer mgmt
39+
- fix request/result queue, fix server compatibility for Publishing
40+
- add RTMP_EnableWrite to enable Publishing
41+
42+
29 April 2010, v2.2d
43+
- add RTMP_Alloc, RTMP_Free APIs
44+
- add optional support for polarssl instead of OpenSSL
45+
- add option to build crypto support without SSL/TLS
46+
- tweak handshake offset checking
47+
- add RTMP set_playlist command
48+
- check for (and fix) broken timestamps in FLV packets
49+
- fix tcUrl and playpath parsing in rtmpsrv and rtmpsuck
50+
- change internal boolean flags to bitmasks
51+
52+
14 April 2010, v2.2c
53+
- internal restructuring, fix #undef CRYPTO builds
54+
- add RTMP_SetupURL, RTMP_SetOpt APIs
55+
- add logging callback
56+
57+
22 March 2010, v2.2b
58+
- fix v2.2a crashes in rtmpsrv/rtmpsuck
59+
- fix v2.2a .swfinfo location on Windows
60+
- fix typo for --auth parameter in manpages
61+
- add FP10 handshake support for rtmpsrv/rtmpsuck
62+
- avoid GNUMake vs BSDMake incompatibilities
63+
- add pkgconfig file for librtmp
64+
- more library cleanup
65+
66+
20 March 2010, v2.2a
67+
- fix C++ compatibility for librtmp
68+
- misc library restructuring
69+
- add client support for tunneling: rtmpt, rtmpte, rtmps
70+
- fix rtmpdump/rtmpgw FLV header dataType
71+
- implement RTMP_Read() and RTMP_Write() to simplify library use
72+
- fix SendPacket timestamps
73+
- add optional support for GnuTLS/Gcrypt instead of OpenSSL
74+
- use $HOMEPATH on Windows instead of $HOME for .swfinfo
75+
76+
4 March 2010, v2.2
77+
- move RTMP code into library librtmp
78+
- relicense RTMP code under LGPL v2.1
79+
- add rtmpdump manpage
80+
- fix AMF_LONG_STRING handling
81+
- more FlashPlayer 10 handshake support
82+
- in rtmpsrv fix Play Start/Stop messages
83+
- rename "streams" program to "rtmpgw"
84+
85+
20 February 2010, v2.1d
86+
- extend .swfinfo file format, add --swfAge rtmpdump parameter
87+
old file should be replaced or manually updated: copy the
88+
"date:" line and rename it to "ctim:"
89+
90+
- fix MacOSX builds - just use "make posix" now for all Unix-derived systems
91+
- more explicit error checks in HTTP_get()
92+
- in rtmpsrv spawn rtmpdump automatically
93+
- fix bug in retry/resume of audio-only streams
94+
- other minor misc. fixes
95+
96+
9 January 2010, v2.1c
97+
- cleanup rtmpsrv output
98+
- fix crash in 2.1b hashswf
99+
- fix parseurl to url-decode PlayPath
100+
- fix parseurl to recognize extensions followed by URL params
101+
- fix Makefile, inadvertently dropped 'v' from version string
102+
- in rtmpdump try Reconnect if ToggleStream doesn't work on timeouts
103+
- in rtmpsuck use chunk-based I/O for better latency
104+
- in rtmpsuck support lists of streams
105+
- in rtmpsuck use raw client connect packet to workaround unsupported features
106+
- support arbitrary AMF data appended to connect requests
107+
108+
4 January 2010, v2.1b
109+
- fix url matching in .swfinfo lookup
110+
- fix resume parsing in rtmpdump
111+
- minor code cleanup (CRYPTO dependencies, logging)
112+
- add getStreamLength recognition to rtmpsrv
113+
- add close processing in rtmpsuck
114+
115+
1 January 2010, v2.1a
116+
- fix socket receive timeouts for WIN32
117+
- add streams description to README
118+
119+
29 December 2009, v2.1
120+
- AMF cleanup: bounds checking for all encoders, moved AMF_EncodeNamed* from rtmp.c
121+
- added SecureToken support
122+
- added automatic SWF hash calculation
123+
- added server-side handshake processing
124+
- added rtmpsrv stub server example
125+
- added rtmpsuck proxy server
126+
- tweaks for logging
127+
- renamed more functions to cleanup namespace for library use
128+
- tweaks for server operation: objectEncoding, chunksize changes
129+
130+
16 December 2009, v2.0
131+
- rewrote everything else in C, reorganized to make it usable again as a library
132+
- fixed more portability bugs
133+
- plugged memory leaks
134+
135+
2 December 2009, v1.9a
136+
- fix auth string typo
137+
- handle FCUnsubscribe message
138+
- don't try retry on live streams
139+
- SIGPIPE portability fix
140+
- remove "not supported" comment for RTMPE
141+
142+
13 November 2009, v1.9
143+
- Handle more signals to reduce risk of unresumable/corrupted partially streamed files
144+
- Fixed >2GB file handling
145+
- Added --hashes option for a hash progress bar instead of byte counter
146+
- Fix to allow win32 to use binary mode on stdout.
147+
- Added auto-unpause for buffer-limited streams
148+
149+
1 November 2009, v1.7
150+
151+
- added --subscribe option for subscribing to a stream
152+
- added --start / --stop options for specifying endpoints of a stream
153+
- added --debug / --quiet / --verbose options for controlling output
154+
155+
- added SOCKS4 support (by Monsieur Video)
156+
157+
- restructured to support auto-restart of timed-out streams
158+
159+
- rewritten byteswapping, works on all platforms
160+
161+
- fixed errors in command / result parsing
162+
163+
- support functions rewritten in C to avoid g++ compiler bugs on ARM
164+
165+
- support for 65600 channels instead of just 64
166+
167+
- fixed signature buffer overruns
168+
169+
17 May 2009, v1.6
170+
171+
- big endian alignment fix, should fix sparc64 and others
172+
173+
- moved timestamp handling into RTMP protocol innings, all packets have
174+
absolute timestamps now, when seeking the stream will start with timestamp 0
175+
even if seeked to a later position!
176+
177+
- fixed a timestamp bug (should fix async audio/video problems)
178+
179+
30 Apr 2009, v1.5a
180+
181+
- fixed host name resolution bug (caused unexpected crashes if DNS resolution
182+
was not available)
183+
184+
- also using the hostname in tcUrl instead of the IP turns out to give much
185+
better results
186+
187+
27 Apr 2009, v1.5
188+
189+
- RTMPE support (tested on Adobe 3.0.2,3.0.3,3.5.1, Wowza)
190+
191+
- SWFVerification (tested on Adobe 3.0.2,3.0.3,3.5.1)
192+
193+
- added AMF3 parsing support (experimental feauture, only some primitives, no references)
194+
195+
- added -o - option which allows the stream to be dumped to stdout
196+
(debug/error messages go to stderr)
197+
198+
- added --live option to enable download of live streams
199+
200+
- added support for (Free)BSD and Mac (untested, so might need more fixing,
201+
especially for PPC/sparc64)
202+
203+
- fixed a bug in url parsing
204+
205+
- added a useful application: streams, it will start a streaming server and
206+
using a request like http://localhost/?r=rtmp://.... you can restream the
207+
content to your player over http
208+
209+
11 Mar 2009, v1.4
210+
211+
- fixed resume bug: when the server switches between audio/video packets and FLV
212+
chunk packets (why should a server want to do that? some actually do!) and rtmpdump
213+
was invoked with --resume the keyframe check prevented rtmpdump from continuing
214+
215+
- fixed endianness
216+
217+
- added win32 and arm support (you can cross-compile it onto your Windows box
218+
or even PDA)
219+
220+
- removed libboost dependency, written a small parser for rtmp urls, but it is
221+
more of a heuristic one since the rtmp urls can be ambigous in some
222+
circumstances. The best way is to supply all prameters using the override
223+
options like --play, --app, etc.
224+
225+
- fixed stream ids (from XBMC tree)
226+
227+
19 Jan 2009, v1.3b
228+
229+
- fixed segfault on Mac OS/BSDdue to times(0)
230+
231+
- Makefile rewritten
232+
233+
16 Jan 2009, v1.3a
234+
235+
- fixed a bug introduced in v1.3 (wrong report bytes count), downloads won't
236+
hang anymore
237+
238+
10 Jan 2009, v1.3
239+
240+
- fixed audio only streams (rtmpdump now recognizes the stream and writes a
241+
correct tag, audio, video, audio+video)
242+
243+
- improved resume function to wait till a the seek is executed by the server.
244+
The server might send playback data before seeking, so we ignore up to e.g. 50
245+
frames and keep waiting for a keyframe with a timestamp of zero.
246+
247+
- nevertheless resuming does not always work since the server sometimes
248+
doesn't resend the keyframe, seeking in flash is unreliable
249+
250+
02 Jan 2009, v1.2a
251+
252+
- fixed non-standard rtmp urls (including characters + < > ; )
253+
254+
- added small script get_hulu which can download hulu.com streams (US only)
255+
(many thanks to Richard Ablewhite for the help with hulu.com)
256+
257+
01 Jan 2009, v1.2:
258+
259+
- fixed FLV streams (support for resuming extended)
260+
261+
- fixed hanging download at the end
262+
263+
- several minor bugfixes
264+
265+
- changed parameter behaviour: not supplied parameters are omitted from the
266+
connect packet, --auth is introduced (was automatically obtained from url
267+
before, but it is possible to have an auth in the tcurl/rtmp url only without
268+
an additional encoded string in the connect packet)
269+
270+
28 Dec 2008, v1.1a:
271+
272+
- fixed warnings, added -Wall to Makefile
273+
274+
28 Dec 2008, v1.1:
275+
276+
- fixed stucking downloads (the buffer time is set to the duration now,
277+
so the server doesn't wait till the buffer is emptied
278+
279+
- added a --resume option to coninue incomplete downloads
280+
281+
- added support for AMF_DATE (experimental, no stream to test so far)
282+
283+
- fixed AMF parsing and several small bugs (works on 64bit platforms now)
284+
285+
24 Dec 2008, v1.0:
286+
287+
- First release
288+

0 commit comments

Comments
 (0)