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