diff --git a/trunk/src/app/srs_app_recv_thread.cpp b/trunk/src/app/srs_app_recv_thread.cpp index 6550c7def..04abe5e2b 100644 --- a/trunk/src/app/srs_app_recv_thread.cpp +++ b/trunk/src/app/srs_app_recv_thread.cpp @@ -35,7 +35,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. // use the bitrate in kbps to calc the max sleep time. #define SRS_MR_MAX_BITRATE_KBPS 10000 #define SRS_MR_AVERAGE_BITRATE_KBPS 1000 -#define SRS_MR_MIN_BITRATE_KBPS 64 +#define SRS_MR_MIN_BITRATE_KBPS 32 // the max sleep time in ms #define SRS_MR_MAX_SLEEP_MS 3000 // the max small bytes to group diff --git a/trunk/src/rtmp/srs_protocol_buffer.cpp b/trunk/src/rtmp/srs_protocol_buffer.cpp index 72873ac4b..cf17aa1d2 100644 --- a/trunk/src/rtmp/srs_protocol_buffer.cpp +++ b/trunk/src/rtmp/srs_protocol_buffer.cpp @@ -25,6 +25,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include #include +#include // 4KB=4096 // 8KB=8192 @@ -33,6 +34,8 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. // 64KB=65536 // @see https://github.com/winlinvip/simple-rtmp-server/issues/241 #define SOCKET_READ_SIZE 4096 +// the max buffer for user space socket buffer. +#define SOCKET_MAX_BUF 65536 IMergeReadHandler::IMergeReadHandler() { @@ -127,8 +130,11 @@ void SrsBuffer::set_merge_read(bool v, int max_buffer, IMergeReadHandler* handle merged_read = v; _handler = handler; - if (v && max_buffer != nb_buffer) { - reset_buffer(max_buffer); + // limit the max buffer. + int buffer_size = srs_min(max_buffer, SOCKET_MAX_BUF); + + if (v && buffer_size != nb_buffer) { + reset_buffer(buffer_size); } }