Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: Red5/red5-server
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v2.0.39
Choose a base ref
...
head repository: Red5/red5-server
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v2.0.40
Choose a head ref
  • 4 commits
  • 12 files changed
  • 1 contributor

Commits on Jun 15, 2026

  1. Fix AV1 RTP depacketizer continuation handling using the Z bit

    depacketize() decided whether the first OBU element of a payload was a
    continuation of the previous packet's OBU by testing
    OBUType.fromValue(...) == null. A continuation fragment's leading byte is
    raw OBU payload data, so when its type bits happened to encode a valid
    OBU type the fragment was parsed as a new OBU - and dropped when that
    type was one not carried over RTP (temporal delimiter / tile list /
    padding). Large frames fragmented across multiple packets were silently
    truncated.
    
    Detect continuation from the aggregation header Z bit
    (firstPacketInFrame) on the first element of a payload instead, appending
    its bytes to the prior OBU. A genuinely unrecognized header on a
    non-continuation element now warns and skips its bytes, which also avoids
    a possible NPE in the valid-OBU check when the element list is empty.
    
    Verified by round-tripping a 16054-byte FRAME (14 fragments): previously
    reassembled to 8872 bytes, now reconstructs the full 16054 bytes.
    mondain committed Jun 15, 2026
    Configuration menu
    Copy the full SHA
    cdbf6d4 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    e11a662 View commit details
    Browse the repository at this point in the history
  3. Fix AV1 packetizer length field for 127-byte fragments

    packetize(List) used the 2-byte LEB128 length branch for any fragment
    >= 127 bytes, but 127 fits in a single LEB128 byte (0x7F). For an exactly
    127-byte fragment LEB128.encode returned 0x7F and the 2-byte split wrote
    a malformed length of [0x00, 0x7F]; the depacketizer then read a
    zero-length fragment followed by a spurious second OBU, splitting one OBU
    into two and corrupting the frame.
    
    Use the 2-byte branch only for sizes > 127. Verified: a frame whose final
    fragment is exactly 127 bytes now reconstructs to a single OBU of the
    full length (previously two elements).
    
    Caught by the byte-for-byte AV1 framing self-check added on the consumer
    side.
    mondain committed Jun 15, 2026
    Configuration menu
    Copy the full SHA
    b740b68 View commit details
    Browse the repository at this point in the history

Commits on Jun 16, 2026

  1. Update version to 2.0.40

    mondain committed Jun 16, 2026
    Configuration menu
    Copy the full SHA
    5dab81b View commit details
    Browse the repository at this point in the history
Loading