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