Skip to content

Releases

Red5 Server 2.0.53

Choose a tag to compare

@mondain mondain released this 06 Nov 01:29

Full Changelog: v2.0.52...v2.0.53

Red5 Server 2.2.0

Choose a tag to compare

@mondain mondain released this 03 Nov 16:18
eba3024

Changes since 2.0.52

  • JDK 25 is now the baseline: compiler release and enforcer require Java 25; Maven compiler and surefire plugins updated; junit, httpclient and httpcore pinned
  • Launch scripts: dropped options removed or deprecated in current JDKs (-Xverify:none, -noverify, UseBiasedLocking, UseStringCache); G1GC replaces ZGC in the Windows and daemon scripts; debug scripts use -agentlib:jdwp
  • Commons Daemon 1.6.1: jar version is now filtered from the pom into the init script and Windows installer; install-service.bat fixed for the JDK 9+ layout (no jre directory); systemd unit is Type=forking; service README and jsvc notes refreshed
  • Servlet module builds again and is part of the reactor; it is not yet included in the server distribution
  • Javadoc added for previously undocumented public members
  • Docker image moves to eclipse-temurin 25 (Red5/docker)

Known issues

  • RTMPT requires org.red5.server.net.rtmpt.RTMPTServlet from the servlet module, which is not packaged in the server distribution
  • Windows service install, the systemd unit and jsvc 1.6.1 against JDK 25 have not been exercised

Red5 Server 2.0.52

Choose a tag to compare

@mondain mondain released this 30 Oct 15:02

Changes since 2.0.51

  • Tomcat bumped to 11.0.27
  • WsRemoteEndpointImplServer adapted to the Tomcat 11.0.27 WsRemoteEndpointImplBase.doWrite signature (explicit blocking flag); async websocket writes remain non-blocking

Known test status

  • Full suite: SharedObjectTest.testAttributeBlastingWithPrimitive and PublisherConnectLoadTest.testPublishers fail (both also fail on 2.0.51)
  • RTMPSClientTrustTest failed once in the full suite run and passes when run alone; under review

Red5 Server 2.0.51

Choose a tag to compare

@mondain mondain released this 29 Oct 19:41
92a0cb1

Red5 Server 2.0.51

Changes since 2.0.50:

  • MediaBunny: fMP4 init segment and fragment builders are now inlined in the server module (org.red5.server.net.mediabunny.fmp4). The red5-moq-pkgr dependency is removed. Output bytes are unchanged; golden-value tests guard the wire format.
  • Service: tests for service methods with Object and Object[] parameters.
  • AMF interop and Enhanced RTMP test coverage (from 2.0.50 branch work carried forward).
  • Javadoc: primitive types written as {@code} rather than {@link} so javadoc:jar builds.

2.0.50 Release

Choose a tag to compare

@mondain mondain released this 25 Oct 17:45

Highlights

  • Service method lookup (#500): fixes argument type mismatch errors when a call with a single map argument, such as the NetStream.Play.* status objects sent as anonymous objects since 2.0.49, targets a service with overloaded methods.
    • A lone Object parameter now accepts any argument, so onStatus(Object) is selected among onStatus(Object[]), onStatus(Object) and onStatus(Status).
    • A method whose only parameter is Object[] receives the call arguments as one array. An argument that already is an array of the parameter type is passed as is.
    • A leading IConnection parameter still receives the connection.
  • Build:
    • red5-moq-pkgr is pinned to 1.3.11 (was the open range [1.3.9,)), which restores the POM after the property was dropped.
    • BouncyCastle 1.86.
    • Javadoc builds again: primitive types are written as {@code} instead of {@link}, which had failed javadoc:jar on red5-io.

Full Changelog: v2.0.49...v2.0.50

2.0.49 Release

Choose a tag to compare

@mondain mondain released this 25 Oct 04:52
a2aba81

Highlights

  • Spec-compliant AMF0/AMF3 (#415, #497, #498):
    • The codecs are cross-checked against Mini-AMF 0.9.1 and Apache BlazeDS 4.7.3, with golden test vectors from both.
    • Fixed: reference handling, the AMF0-to-AMF3 switch scope, Vector and Dictionary decoding, the Vector encoders, XML documents and string length limits.
    • Fixed: Flex shared objects with AMF3 encoding, Flex message parameters, and status objects on AMF3 connections.
  • RTMP:
    • Data messages on stream 0 decode as calls (#498).
    • The connect result carries fmsVer, capabilities and the Enhanced RTMP fourCcList, info maps and capsEx (#498).
    • Timestamp discontinuity offsets are applied once per message (#486).
  • WebSocket:
    • Origin checking is on by default, and only same-origin handshakes are accepted (#495).
    • Handshakes are bound to the serving application (#488).
    • Containers are removed when their context is destroyed (#494).
  • Resource limits (#488, #494, #496):
    • Recording size, duration and free-space limits, including append mode.
    • Per-application recording budgets, principal quotas and an opt-in retention policy.
    • Shared-object count, size, memory and disk budgets, and idle eviction of persistent shared objects.
    • MediaBunny limits per application, plus a per-address cap.
    • Fixed: a recording writer thread leak.
  • TLS: TomcatConnector accepts PEM certificate and key files (#487).

Upgrade notes

  • WebSocket origins (#495): browser pages served from a different origin than Red5 need their origin in the allowedOrigins context-param. Reverse proxies must pass Host or X-Forwarded-Host. Set crossOriginPolicy=false to restore the old behavior.
  • AMF wire changes:
    • AMF0 dates are written with time-zone 0.
    • AMF0 XML documents carry a U32 length.
    • Vector<Number> and Vector<Object> are prefixed with the AMF3 switch marker. Older Red5 peers that sent them without it no longer decode.
    • Status and error objects on AMF3 are anonymous objects with the same members as AMF0.
  • Connect _result: the properties object carries fmsVer (now RED5/2,0,49,0), capabilities and the E-RTMP keys (capsEx, previously CapsEx). The information object always includes objectEncoding.
  • Data messages on stream 0: a message named on* is delivered as a call instead of being dropped. The server no longer answers a peer's data message with _result.
  • New limits are off by default. See red5.properties (fileconsumer.*, recording.app.max.bytes, so.*) and the commented examples in the live webapp. The one exception is so.max.name.depth, which defaults to 16.

Full Changelog: v2.0.47...v2.0.49

2.0.47 Release

Choose a tag to compare

@mondain mondain released this 10 Oct 15:05
648691b

Full Changelog: v2.0.46...v2.0.47

2.0.46 Release

Choose a tag to compare

@mondain mondain released this 24 Sep 20:07

What's Changed

Full Changelog: v2.0.45...v2.0.46

2.0.45 Release

Choose a tag to compare

@mondain mondain released this 19 Sep 03:24

What's Changed

  • Bump org.springframework:spring-web from 6.2.18 to 6.2.19 by @dependabot[bot] in #451
  • Bump org.springframework:spring-webmvc from 6.2.18 to 6.2.19 by @dependabot[bot] in #449
  • Bump org.springframework:spring-core from 6.2.18 to 6.2.19 by @dependabot[bot] in #450
  • Remove cleared client references immediately by @cragkhit in #448
  • Fix/issue batch 2.0.42 by @mondain in #482
  • Make sure to clean up scopes, even when the request exits before any connection/listener joins [AUTO-724] by @nateroe in #483
  • Bug/red5dev 2425 by @nateroe in #484

New Contributors

Full Changelog: v2.0.44...v2.0.45

2.0.44 Release

Choose a tag to compare

@mondain mondain released this 17 Sep 18:44

Full Changelog: v2.0.43...v2.0.44