From e7bdcb0d3d8c021438c139d122c52ad1bb4c24e9 Mon Sep 17 00:00:00 2001 From: Ulrik Date: Tue, 3 May 2022 14:24:47 +0200 Subject: [PATCH] BaseRTMPClientHandler.onChunkSize:Don't update writeChunkSize The RTMP specification states clearly, that "The maximum chunk size is maintained independently for each direction". That means that our peer updating its chunkSize, does not affect our outgoing chunkSize. A change in writeChunkSize must be accompanied by a SetChunkSize message of our own, otherwise our peer have no reliable way to know what chunksize to use for each message. https://rtmp.veriskope.com/docs/spec/?#541set-chunk-size-1 --- .../java/org/red5/client/net/rtmp/BaseRTMPClientHandler.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/red5/client/net/rtmp/BaseRTMPClientHandler.java b/src/main/java/org/red5/client/net/rtmp/BaseRTMPClientHandler.java index b1dd0bf..c072d1a 100644 --- a/src/main/java/org/red5/client/net/rtmp/BaseRTMPClientHandler.java +++ b/src/main/java/org/red5/client/net/rtmp/BaseRTMPClientHandler.java @@ -347,11 +347,10 @@ public IClientSharedObject getSharedObject(String name, boolean persistent) { @Override protected void onChunkSize(RTMPConnection conn, Channel channel, Header source, ChunkSize chunkSize) { log.debug("onChunkSize"); - // set read and write chunk sizes + // chunkSize was updated by peer, update our read-chunksize RTMP state = conn.getState(); state.setReadChunkSize(chunkSize.getSize()); - state.setWriteChunkSize(chunkSize.getSize()); - log.info("ChunkSize configured: {}", chunkSize); + log.info("Incoming chunkSize configured: {}", chunkSize); } /** {@inheritDoc} */