New Features: - Added socket policy file server to support new security model, starting
Unexpected indentation.
in flash player 9,0,124,0
Block quote ends without a blank line; unexpected unindent.
Added virtual hosting capabilities (Tomcat only)
Added W3C log appender for logback modeled after FMS log events and categories
Added the ability to unload a context using the ContextLoader
Added RTMPS support (Jira SN-69)
Set default J2EE servlet container / HTTP server to Tomcat
Bugfixes: - RTMPProtocolDecoder fixed to support RSO sendMessage (Jira CODECS-9) - Fixed Tomcat logging problem - Fixed memory leak in ServiceUtils - Fixed connection timeout (Jira SN-95 / APPSERVER-274) - Resolved exception with WarLoaderServlet (Jira APPSERVER-224) - Resolved log directory issue (Jira APPSERVER-246) - Resolved ServerStream issue with w3c logging (Jira APPSERVER-263) - Added patch to support ability to implement IBroadcastStream for custom streaming protocols (Jira SN-87)
New Features: - Initial Edge/Origin clustering support for multiple Edges with a single
Unexpected indentation.
Origin (Jira APPSERVER-66)
Block quote ends without a blank line; unexpected unindent.
Added stream listeners that can get notified about received packets
Support for server-side Javascript (Jira APPSERVER-169)
Added new base class org.red5.server.adapter.MultiThreadedApplicationAdapter that allows multiple clients to connect simultaneously to the same application
Added new Flash Player 9 statuses NetStream.Play.FileStructureInvalid and NetStream.Play.NoSupportedTrackFound
New Flex admin tool (Jira APPSERVER-242)
Bugfixes: - Pause near end of buffered streams works as expected (Jira APPSERVER-199) - Fixed potential memory leak with RTMPT connections that are not properly
Unexpected indentation.
closed (Jira APPSERVER-193)
Block quote ends without a blank line; unexpected unindent.
"onMetaData" is only written to newly recorded FLV files and contains valid properties now
Don't try to decode objects for closed RTMPT connections (Jira APPSERVER-208)
New multi-threaded connection code fixes various timeout issues (Jira APPSERVER-122, Jira APPSERVER-166 and Jira APPSERVER-167)
Always use correct classloader inside applications (Jira APPSERVER-200)
Tomcat cannot undeploy red5 application (Jira APPSERVER-204)
"ByteArray" objects used old data after calling "compress" or "uncompress" (Jira APPSERVER-211)
"@DontSerialize" checks for properties also in inherited classes (Jira APPSERVER-225)
Enabled bidirectional class serialization (Jira APPSERVER-219)
Array typed parameters in remoting service methods converted properly (Jira APPSERVER-161)
New Features: - Remoting requests from "mx:RemoteObject" supported (Jira APPSERVER-144) - RTMPT working with Tomcat - Added thread that writes modified persistent objects periodically.
Unexpected indentation.
This reduces server load if multiple attributes of one object, or the same object is modified frequently.
Block quote ends without a blank line; unexpected unindent.
Location of "webapps" folder can be configured in bean "jetty6.server" inside "conf/red5.xml" (Jira APPSERVER-152)
"IStreamFilenameGenerator" can specify if it returns absolute or relative paths
Applications can be unloaded and loaded without restarting Red5
"mx.collections.ArrayCollection" objects supported by AMF3 codec
Object attributes are converted if necessary in AMF0/AMF3 codecs
"mx.utils.ObjectProxy" objects supported by AMF3 codec (Jira APPSERVER-173)
"IConnection" objects for Remoting properly store attributes accross multiple requests by using sessions
Remoting headers are accessible through "IConnection.getConnectParams"
"ByteArray" objects supported (Jira APPSERVER-189)
"NetStream.send" messages are properly passed through from Flex clients (Jira APPSERVER-185)
Class fields that should not be serialized when sending objects to clients can be annotated with "@DontSerialize" (in "org.red5.annotations")
Public methods can be protected from being called through RTMP, RTMPT or Remoting by using "@DeclarePrivate" and "@DeclareProtected".
Support for XML objects added to AMF3 codec (Jira APPSERVER-196)
Bugfixes: - Validate RTMP handshake received from client (Jira APPSERVER-159) - Array typed parameters are converted correctly (Jira APPSERVER-161) - RTMPTHandler is wired through Spring (Jira APPSERVER-150) - fixed concurrency issue in RTMP encoder that could result in wrong
Unexpected indentation.
packet header types (Jira APPSERVER-177)
Block quote ends without a blank line; unexpected unindent.
IStreamAwareScopeHandler methods are also called for server side streams
"NetConnection.Connect.AppShutdown" is returned when trying to connect to application that currently is unloaded (Jira APPSERVER-13)
State is properly reset if exceptions occur in package decoding (Jira APPSERVER-137)
Numbers outside integer range are correctly serialized in AMF3 codec
return proper error object that triggers "onStatus" for "NetConnection.call" in case of errors (Jira APPSERVER-192)
Fixed endless loop in playlist controller with only one item in it (Jira APPSERVER-191)
Fixed renaming across filesystems (Jira SN-59)
Updated Jetty to 6.1.5 (Jira APPSERVER-123)
Fixed deserialization of AMF3 encoded SO events (Jira APPSERVER-188)
Bugfixes: - "pause" no longer breaks live streams (Jira APPSERVER-136) - Configured subscopes don't get released when a client disconnects - AMF requests could not be decoded when run in the context root
Unexpected indentation.
(Jira APPSERVER-146)
Block quote ends without a blank line; unexpected unindent.
Fixed bug for Remoting requests without parameters (Jira APPSERVER-147)
Fixed issue with stop/start of war in Tomcat (Jira APPSERVER-155)
Fixed handshake reply for Flash Player 9 Update 3
IMetaData supports fractional framerates (Jira APPSERVER-157)
Correctly reject empty stream names (Jira APPSERVER-156)
Fixed problem with loading some JAR files from the applications classpath (Jira APPSERVER-141)
Fixed decoding of Remoting requests with multiple parameters (Jira APPSERVER-151)
New Features: - Switched to use mina 1.1, more config options in red5.properties - Newly recorded files start with an "onMetaData" tag containing the
Unexpected indentation.
duration and the codecs used
Block quote ends without a blank line; unexpected unindent.
Added a JMX subsystem with RMI and HTTP connectors
Simplified MBean unregistration and added a registration check prior to the unregister attempt (Jira APPSERVER-118)
"IServerStream" now also supports "pause" and "seek"
Enabled RMI + SSL for JMX
Added JMX authentication
Added Shutdown class for cleanly shutting down a Red5 instance
Added support for AMF3 in remoting server
"receiveAudio" and "receiveVideo" work for VOD streams (Jira SN-22)
Bugfixes: - "NetStream.Record.Failed" is sent for IO errors that occurred during
Unexpected indentation.
recording (Jira APPSERVER-64)
Block quote ends without a blank line; unexpected unindent.
Fixed possible deadlock if methods are invoked by a connecting client on a client that is currently disconnecting (Jira APPSERVER-108)
Fixed NPE when connecting without application given (Jira APPSERVER-116)
Fixed various problems with deserialization of AMF3 objects that implement IExternalizable (Jira CODECS-2)
Fixed warning about deprecated Jetty configuration (Jira APPSERVER-115)
Fixed possible deadlock involving PersistableAttributeStore and Scope (Jira APPSERVER-122)
Display better message if RMI connection to "rmiregistry" could not be established (Jira APPSERVER-125)
Python scripts can import classes available only in the classpath of a webapp (Jira APPSERVER-92)
Fixed Ruby application issue by updating to Spring 2.0.5 and JRuby 0.9.8 (Jira APPSERVER-93)
Fixed async calling of remoting methods (Jira APPSERVER-131)
Accessing root of RTMPT server no longer results in 404 but redirects to HTTP port (Jira APPSERVER-130)
Disconnect clients that don't send a valid handshake (Jira APPSERVER-128)
Reduced max. idle time to prevent too many open sockets when using RTMPT with HTTP/1.0 (Jira APPSERVER-87)
Fixed potential NPEs in PlaylistSubscriberStream (Jira SN-40)
Fixed various problems with deserializing AMF0 references in remoting
Fixed frozen video if audio is disabled in live streams (Jira SN-22)
New features: - Recording/playback of files to/from subscopes implemented
Unexpected indentation.
(Jira APPSERVER-103)
Bugfixes: - Ghost connection detection code rewritten to better detect dead clients
Unexpected indentation.
(Jira APPSERVER-38, SN-37)
Block quote ends without a blank line; unexpected unindent.
Deserialization of objects defined in webapp classpath fixed (Jira APPSERVER-80, APPSERVER-100)
Fixed AMF3 deserializer for references from attributes to parent classes (Jira APPSERVER-101)
Jython example adjusted for new bandwidth API (Jira APPSERVER-92)
Workaround added to deal with broken MP3 files (Jira APPSERVER-62)
"start" and "length" are properly evaluated when playing back VOD streams
Fixed seeking not working for MP3 or audio-only FLV files
Don't log contents of wrong objects (Jira APPSERVER-109)
Fixed potential NPEs in PlaylistSubscriberStream
A client buffer of 0 on live streams no longer breaks playback (Jira CS-3)
Fixed shutdown error in Tomcat with WAR version by updating to SLF4J 1.3.1 (Jira APPSERVER-107)
"NetStream.Play.InsufficientBW" is sent if client is too slow receiving video streams (Jira APPSERVER-51)
Improved frame dropping code for slow connections
New features: - Keyframe informations are cached so files don't need to be reparsed
Unexpected indentation.
before playback
Block quote ends without a blank line; unexpected unindent.
Connections from Flash Media Encoder and On2 Flix Live supported
Access to shared objects can be limited (Jira APPSERVER-25)
Connections can provide a list of remote addresses. This is usefull for proxied RTMPT connections.
Bugfixes: - Bandwidth control code has been rewritten to fix stability issues and
Unexpected indentation.
memory leaking in high concurrency connection count situations
Block quote ends without a blank line; unexpected unindent.
Serialization of Maps with non-number keys fixed (Jira APPSERVER-60)
Multiple IO processor threads are used by default
Memory leak when closing RTMPT connections fixed (Jira APPSERVER-61)
Merged WAR build script with primary script, also moved WAR specific startup servlet into trunk
Deserializing of remoting results fixed (Jira APPSERVER-63)
Fixed "error in object encoding" when rejecting AMF3 clients (Jira APPSERVER-73)
Concurrency problems when closing a connection fixed (Jira APPSERVER-59)
Unnecessary NetStream.Play.* events are no longer sent when playback stopped (Jira APPSERVER-70)
SimplePlaylistController setRepeat and setRandom fixed (Jira SN-27)
NPE in SimpleBWControlService fixed (Jira APPSERVER-75)
Reference bugs in AMF3 encoder fixed (Jira APPSERVER-81)
"NetStream.Play.Failed" is sent correctly now (Jira APPSERVER-52)
Concurrency issue fixed in SimpleBWControlService (Jira SN-32)
Fixed problem when decoding MP3 files with signed values in the ID3v2 tag size (Jira APPSERVER-86)
"NetStream.Seek.Failed" is sent when trying to seek in live streams (Jira APPSERVER-84)
"NetStream.Failed" is sent for exceptions during streaming methods (Jira APPSERVER-85)
Random server freezing resolved (Jira APPSERVER-41)
Send correct timestamps if seeking beyond end of file (Jira APPSERVER-54)
Fixed NoSuchElementException when iterating connections during disconnect (Jira APPSERVER-94)
Reference bugs im AMF3 decoder fixed (Jira APPSERVER-95)
"NetStream.Play.Complete" is sent (APPSERVER-50)
"NetStream.Play.Switch" is sent (APPSERVER-82)
Streams are always played to the end (SN-8)
Seeking in stopped streams fixed (APPSERVER-89)
Fixed deadlock in shared objects under high load (APPSERVER-98)
New features: - Stream classes can be configured through red5-common.xml (Trac #223) - RTMP network library supports client mode (Trac #94) - Source of VOD streams can be customized through IStreamFilenameGenerator
Unexpected indentation.
(Trac #120)
Block quote ends without a blank line; unexpected unindent.
API: IStreamFilenameGenerator differs between playback and recording
Results of method calls can be deferred until they are available to free io threads
Transient fields will not be serialized any longer (Jira APPSERVER-27)
Red5 compiles with Java6 now
Support for AMF3 incl. IExternalizable objects added (Jira APPSERVER-31)
Access to streams can be limited (Jira APPSERVER-25)
(non-persistent) shared objects can be acquired by serverside code to prevent them from being released when the last client disconnects (Jira APPSERVER-48)
Bugfixes: - Serialize RecordSet objects (Trac #201) - "NetConnection.Connect.Rejected" is sent for non-existing scopes to
Unexpected indentation.
match result code of FCS/FMS
Block quote ends without a blank line; unexpected unindent.
RTMPT through Jetty working again (Trac #213)
Size of last frame is correctly written to .flv files
Errors during "connect" are reported back to client through RTMPT
Fixed NPE in FlowControlService thread (Trac #175)
Deserializing of mixed arrays now works in all cases (Trac #109, #195)
"NetStream.Record.Start" and "NetStream.Record.Stop" are sent (Trac #127)
"NetStream.Publish.BadName" is sent if two clients try to publish/record a stream with the same name
Streams stopped if bandwidth limit was set too high (Trac #165)
Fixed potential concurrency issue in FlowControlService (Trac #224)
Stream notification callbacks are invoked on reused connetions (Trac #133)
The playlist is flushed by default (Jira APPSERVER-6)
Fixed ClassCastException in "pendingVideoMessages" (Jira APPSERVER-14)
calling "pause" with null argument works again (Jira APPSERVER-12)
"NetStream.Publish.BadName" is only sent if another client is already publishing a stream
Playing a stream while being recorded now works (Jira SN-4, SN-13)
"IPendingServiceCall.isSuccess()" returns true when a result has been received (Jira APPSERVER-35)
The "http.host" setting from "red5.properties" is evaluated (Jira APPSERVER-36)
"IBroadcastStream" knows about the filename it is being recorded to (Jira APPSERVER-30)
BufferOverflowException for empty RTMP packets fixed (Jira APPSERVER-37)
FLV files are no longer locked after playback (Jira APPSERVER-17)
SharedObjects support "getAttributes" (Jira APPSERVER-45)
MP3 files containing images can be played back (Jira APPSERVER-47)
Fixed parsing of long strings (Jira APPSERVER-44)
Fixed pausing and seeking audio-only flv files (Jira SN-17)
Number of streams is no longer limited (Jira SN-14)
"NetStream.Play.Failed" is returned if a VOD stream can not be played due to IO errors (Jira APPSERVER-52)
"NetStream.InvalidArg" is returned for invalid arguments (Jira APPSERVER-55)
"NetConnection.Connect.InvalidApp" is returned for non-existing application scopes on the server
"NetStream.Record.NoAccess" is returned if file could not be created or written to (Jira APPSERVER-53)
Error when setting SO attributes fixed (Jira APPSERVER-57)
New features: - Created WAR (Web Application Archive) version of Red5
Unexpected indentation.
(Separate repository java/war)
Block quote ends without a blank line; unexpected unindent.
Enabled Tomcat or Jetty as J2EE container implementations
FLV cache implementations (2 are included) (Trac #99)
Scripting support (javascript, ruby, python, groovy, and bsh) based on Spring 2 and JSR223
Bugfixes: - Last frames aren't lost when reading .flv files (Trac #90) - FileConsumer acted on all consumer pipe events (Trac #92) - Improved timestamps of live streams to be more in sync with FMS (Trac #93) - FileConsumer modified position of incoming messages (Trac #91) - Events should support reference counting (Trac #103) - ServerStream playback jerky (Trac #77) - "NetStream.send" events are properly recorded - Reusing streams works (Trac #123) - Fixed NPE if no bandwidth settings are available (Trac #129) - "close" can be called on RTMPT connections multiple times (Trac #166) - Fixed synchronizing problem with clients publishing repeatedly (Trac #124) - RTMPT connections can be closed from the serverside (Trac #179)
New features: - Frame dropping for live streams depending on available bandwidth - Added "receiveAudio", "receiveVideo" and "send" for streams - Destination of recorded streams can be customized (Trac #73) - VOD stream flow control adapts bandwidth based on buffer time (Trac #63) - Up-/downstream bandwidth can be specified
Bugfixes: - Only the same instances are serialized as references (Trac #58) - Re-added JSP support in manifest file of red5.jar (Trac #59) - "tagPosition" is updated in FLVReader when seeking (Trac #55) - Automatic subscopes of the host scope are disabled so only connections
Unexpected indentation.
to existing applications are possible
Block quote ends without a blank line; unexpected unindent.
Running "ant" after setup keeps wrapper configuration (Trac #76)
MP3 files with unsupported sample rates are detected (Trac #66)
Timestamps of recorded .flv files were wrong sometimes (Trac #78)
Stream types could be reused leading to a ClassCastException (Trac #84)
"ns.pause" working if no flag given (Trac #67)
A keyframe is sent for paused streams when seeking
New features: - Refactored streaming code - Refactored scope services - Refactored rtmp message de-/encoding - Enabled subscopes - Bandwidth control for on-demand streams - Experimental support for serverside streams - Added dynamic "onMetaData" for mp3 streams - Added persistence for scopes and shared objects - Added support for simple "directory-only" applications - Added remoting client support (sync / async) - Added deserializer for RecordSet remoting results - Arbitrary objects can be registered as service handlers - IClientRegistry can be customized for each scope - WEB-INF directories are added to the classpath (Trac #27) - Clients can be rejected with a custom error message - Basic "onMetaData" is generated dynamically for .flv files without any
Unexpected indentation.
meta data (Trac #23)
Bugfixes: - MP3 files that have their protection bit set - MP3 files encoded MPEG 2, Layer III (Trac #15) - MP3 files with incomplete last frame - Shared objects bugfixes (Trac #11, #22, #25) - Application handlers were not called on disconnect - IConnection.close() now closes connection (Trac #19) - Connecting to non-existent applications returns correct error now - Jetty correctly runs on all virtual hosts (Trac #26) - Map objects are serialized correctly - Methods could be invoked with converted parameters before invoking them
Unexpected indentation.
with the original parameters
Block quote ends without a blank line; unexpected unindent.
Support invoking methods with "null" as parameter (Trac #29)
Directories for recorded files are created if they don't exist (Trac #20)
"pause(java.lang.Object, int)" was reversed for streams (Trac #16)
Serialization of arbitrary objects uses reflect api to access fields, fixes various problems with inner classes and internal objects like IConnection / IClient
Invalid stream ids are handled in "deleteStream" (Trac #21)
Stream name prefixes and names without extensions supported (Trac #28)
MP3 audio streams
"seek" and "pause" for on-demand streams (Trac #4)
"Address already in use" fixed after restart (Trac #5)
Bugfixes for shared objects (Trac #6)
Bugfixes for videoconference sample (Trac #7)
Connection strings without hostname supported (Trac #8)
Flash 7 version of the videoconference sample added
Public server-side api
AMF remoting
RTMPT
Metadata API
Basic samples and documentation