mirror of
https://github.com/ossrs/srs.git
synced 2025-02-13 03:41:55 +00:00
for bug #241, refine the socket max buffer.
This commit is contained in:
parent
4785f882d4
commit
5791ed59fd
2 changed files with 16 additions and 7 deletions
|
@ -42,6 +42,9 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|||
#define SRS_MR_SMALL_BYTES 64
|
||||
// the percent of buffer to set as small bytes
|
||||
#define SRS_MR_SMALL_PERCENT 100
|
||||
// set the socket buffer to specified KB.
|
||||
// the underlayer api will set to 2*SRS_MR_SOCKET_BUFFER KB.
|
||||
#define SRS_MR_SOCKET_BUFFER 32
|
||||
|
||||
ISrsMessageHandler::ISrsMessageHandler()
|
||||
{
|
||||
|
@ -296,14 +299,16 @@ void SrsPublishRecvThread::on_thread_start()
|
|||
// we donot set the auto response to false,
|
||||
// for the main thread never send message.
|
||||
|
||||
// 128KB recv buffer.
|
||||
int nb_rbuf = 128 * 1024;
|
||||
// socket recv buffer.
|
||||
int nb_rbuf = SRS_MR_SOCKET_BUFFER * 1024;
|
||||
socklen_t sock_buf_size = sizeof(int);
|
||||
if (setsockopt(mr_fd, SOL_SOCKET, SO_RCVBUF, &nb_rbuf, sock_buf_size) < 0) {
|
||||
srs_warn("set sock SO_RCVBUF=%d failed.", nb_rbuf);
|
||||
}
|
||||
getsockopt(mr_fd, SOL_SOCKET, SO_RCVBUF, &nb_rbuf, &sock_buf_size);
|
||||
|
||||
srs_trace("set socket buffer to %d, actual %d KB", SRS_MR_SOCKET_BUFFER, nb_rbuf / 1024);
|
||||
|
||||
// enable the merge read
|
||||
// @see https://github.com/winlinvip/simple-rtmp-server/issues/241
|
||||
rtmp->set_merge_read(true, nb_rbuf, this);
|
||||
|
|
|
@ -33,7 +33,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|||
// 32KB=32768
|
||||
// 64KB=65536
|
||||
// @see https://github.com/winlinvip/simple-rtmp-server/issues/241
|
||||
#define SOCKET_READ_SIZE 4096
|
||||
#define SOCKET_READ_SIZE 65536
|
||||
// the max buffer for user space socket buffer.
|
||||
#define SOCKET_MAX_BUF 65536
|
||||
|
||||
|
@ -136,6 +136,10 @@ void SrsBuffer::set_merge_read(bool v, int max_buffer, IMergeReadHandler* handle
|
|||
if (v && buffer_size != nb_buffer) {
|
||||
reset_buffer(buffer_size);
|
||||
}
|
||||
|
||||
if (_handler) {
|
||||
_handler->on_buffer_change(nb_buffer);
|
||||
}
|
||||
}
|
||||
|
||||
void SrsBuffer::on_chunk_size(int32_t chunk_size)
|
||||
|
@ -145,6 +149,10 @@ void SrsBuffer::on_chunk_size(int32_t chunk_size)
|
|||
}
|
||||
|
||||
reset_buffer(chunk_size);
|
||||
|
||||
if (_handler) {
|
||||
_handler->on_buffer_change(nb_buffer);
|
||||
}
|
||||
}
|
||||
|
||||
int SrsBuffer::buffer_size()
|
||||
|
@ -158,8 +166,4 @@ void SrsBuffer::reset_buffer(int size)
|
|||
|
||||
nb_buffer = size;
|
||||
buffer = new char[nb_buffer];
|
||||
|
||||
if (_handler) {
|
||||
_handler->on_buffer_change(nb_buffer);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue