librtmp2 0.5.0

librtmp2 — RTMP/RTMPS protocol library
Documentation
librtmp2 (0.4.2-1) UNRELEASED; urgency=medium

  * Bound Client::publish()/play() AMF exchanges with the configured
    connect timeout, closing a stall window where a malicious server could
    hold the caller for minutes after connect succeeded.
  * Reject AMF route strings (connect app, publish/play stream names) that
    are not valid UTF-8 or contain embedded NUL bytes, preventing distinct
    wire-level names from colliding onto the same relay route.
  * Reject empty connect app / publish/play stream names, and gate
    onMetaData/script relay on on_media_cb being registered.
  * Track bytes_received as u64 so WindowAckSize pacing stays correct past
    4 GiB; pass Aggregate sub-tag slices directly in the client play path
    instead of cloning.

 -- OpenRTMP <info@openrtmp.org>  Tue, 21 Jul 2026 00:00:00 +0000

librtmp2 (0.4.1-1) UNRELEASED; urgency=medium

  * Track the exact publish-route key claimed per connection and release
    that same key from the route registry on FCUnpublish/closeStream/play
    takeover, fixing stale route ownership. Also evict stream_cache entries
    for both the claimed key and the current relay route key (if pinned to
    a different value afterward), fixing stale cache replay.
  * publish() now clears Stream.is_playing, matching play()'s existing
    is_publishing clear, so a play->publish switch on the same connection
    is observable by hosts polling stream role flags.
  * Enforce a single wall-clock deadline across DNS resolution, TCP/TLS
    connect, the RTMP handshake, and the AMF connect/createStream exchange
    in Client::connect() (configurable via Client::set_connect_timeout()).
  * Cap chained ModEx extension unwrapping at 32 layers to prevent CPU
    amplification from deeply nested wrappers on media frames.

 -- OpenRTMP <info@openrtmp.org>  Sat, 18 Jul 2026 00:00:00 +0000

librtmp2 (0.4.0-1) UNRELEASED; urgency=medium

  * Server-side E-RTMP v2 connect negotiation (fourCcList, capsEx bitmask,
    videoFourCcInfoMap, reconnect) with capability-aware multitrack relay,
    per-track callbacks, and init-cache replay for late-joining players.
  * Enhanced init-frame classification for HEVC, AV1, Opus, AAC, and
    CodedFramesX keyframes; onMetaData caching and timestamp-preserving relay.
  * Client AMF0/AMF3 metadata and Aggregate receive callbacks, populated
    codec/track fields, and legacy pause/seek/receiveAudio/receiveVideo/
    closeStream command handling on the server session path.
  * Correct E-RTMP packet-type constants and per-codec capability masks;
    bound capability blobs, Aggregate sub-tags, and multitrack cache storage.

 -- OpenRTMP <info@openrtmp.org>  Wed, 15 Jul 2026 00:00:00 +0000

librtmp2 (0.3.1-1) UNRELEASED; urgency=medium

  * Harden DNS resolution, RTMP ping keepalive, and publishing send-path
    flush behavior on the client and server.
  * Close stale pre-connect sessions and cap the shared DNS resolver queue
    to prevent connection-slot exhaustion and unbounded resolver threads.

 -- OpenRTMP <info@openrtmp.org>  Sun, 13 Jul 2026 00:00:00 +0000

librtmp2 (0.3.0-1) UNRELEASED; urgency=medium

  * Initial Debian packaging for PPA publishing.
  * Lower the rustc Build-Depends floor to 1.93, matching the crate's
    actual MSRV (rust-version in Cargo.toml) instead of whatever
    toolchain happened to be installed in CI.
  * Client TLS verification now honors ServerConfig.tls_ca_file and
    tls_insecure via Transport::connect_tls()'s new ca_file/insecure
    parameters, which were previously silently ignored.

 -- OpenRTMP <info@openrtmp.org>  Sun, 12 Jul 2026 00:00:00 +0000

librtmp2 (0.2.1-1) UNRELEASED; urgency=medium

  * lrtmp2_tls_supported() runtime capability check exported to FFI.
  * Parse onMetaData from RTMP data messages into Conn fields (duration,
    width, height, framerate, videodatarate, audiodatarate, codec info).
  * Fix flv audio/video/script tag parsers not resetting the
    caller-owned tag struct at the start of every parse() call.
  * Fix CodeQL invalid-pointer alert in the FFI server_create test and
    borrow-checker errors in AMF0 skip_value_depth.
  * Security: cap and copy FFI frame payloads before sending; add
    per-poll and per-command-wait recv byte budgets to the RTMP client;
    substitute a safe default max_connections for a zero-initialized
    ServerConfig instead of disabling connection limiting.

 -- OpenRTMP <info@openrtmp.org>  Fri, 10 Jul 2026 00:00:00 +0000

librtmp2 (0.2.0-1) UNRELEASED; urgency=medium

  * RTMP Aggregate message (0x16) handling: aggregate-framed audio/video
    is now unpacked and relayed through the normal media-frame path.
  * Client::connect() now actually supports rtmps:// via the new
    Transport::connect_tls(); parse_rtmp_url() recognizes the scheme
    and defaults to port 443.
  * Various client/server transport correctness fixes: recv budget
    accounting no longer drops already-read bytes, poll(2) retries on
    EINTR, bounded TLS handshake timeout, blocking read helpers poll
    for write-readiness during TLS renegotiation, RTMPS pre-checks TLS
    support before dialing.
  * Security: cap and copy FFI frame payloads before sending; add
    per-poll and per-command-wait recv byte budgets to the RTMP client;
    substitute a safe default max_connections for a zero-initialized
    ServerConfig instead of disabling connection limiting.

 -- OpenRTMP <info@openrtmp.org>  Fri, 10 Jul 2026 00:00:00 +0000

librtmp2 (0.1.1-1) UNRELEASED; urgency=medium

  * Cap per-connection recv drain in process_connections() to 256 KiB
    per poll pass, preventing a peer from starving other sessions in
    the single-threaded poll loop.
  * Update docs.rs badge to track the latest published version.

 -- OpenRTMP <info@openrtmp.org>  Wed, 08 Jul 2026 00:00:00 +0000

librtmp2 (0.1.0-1) UNRELEASED; urgency=medium

  * First tagged pre-release: TLS/RTMPS support (OpenSSL, optional via
    the "tls" Cargo feature), legacy RTMP and Enhanced RTMP v1/v2
    protocol support, full server/client APIs with callbacks, frame API
    for audio/video/script/metadata, H.264/H.265/AV1 and legacy video,
    AAC/Opus/MP3/G.711 audio, bounds-checked parsers, constant-time
    handshake RNG, and ABI baseline tooling.

 -- OpenRTMP <info@openrtmp.org>  Wed, 08 Jul 2026 00:00:00 +0000