正在显示
2 个修改的文件
包含
16 行增加
和
7 行删除
| @@ -42,6 +42,9 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | @@ -42,6 +42,9 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||
| 42 | #define SRS_MR_SMALL_BYTES 64 | 42 | #define SRS_MR_SMALL_BYTES 64 |
| 43 | // the percent of buffer to set as small bytes | 43 | // the percent of buffer to set as small bytes |
| 44 | #define SRS_MR_SMALL_PERCENT 100 | 44 | #define SRS_MR_SMALL_PERCENT 100 |
| 45 | +// set the socket buffer to specified KB. | ||
| 46 | +// the underlayer api will set to 2*SRS_MR_SOCKET_BUFFER KB. | ||
| 47 | +#define SRS_MR_SOCKET_BUFFER 32 | ||
| 45 | 48 | ||
| 46 | ISrsMessageHandler::ISrsMessageHandler() | 49 | ISrsMessageHandler::ISrsMessageHandler() |
| 47 | { | 50 | { |
| @@ -296,14 +299,16 @@ void SrsPublishRecvThread::on_thread_start() | @@ -296,14 +299,16 @@ void SrsPublishRecvThread::on_thread_start() | ||
| 296 | // we donot set the auto response to false, | 299 | // we donot set the auto response to false, |
| 297 | // for the main thread never send message. | 300 | // for the main thread never send message. |
| 298 | 301 | ||
| 299 | - // 128KB recv buffer. | ||
| 300 | - int nb_rbuf = 128 * 1024; | 302 | + // socket recv buffer. |
| 303 | + int nb_rbuf = SRS_MR_SOCKET_BUFFER * 1024; | ||
| 301 | socklen_t sock_buf_size = sizeof(int); | 304 | socklen_t sock_buf_size = sizeof(int); |
| 302 | if (setsockopt(mr_fd, SOL_SOCKET, SO_RCVBUF, &nb_rbuf, sock_buf_size) < 0) { | 305 | if (setsockopt(mr_fd, SOL_SOCKET, SO_RCVBUF, &nb_rbuf, sock_buf_size) < 0) { |
| 303 | srs_warn("set sock SO_RCVBUF=%d failed.", nb_rbuf); | 306 | srs_warn("set sock SO_RCVBUF=%d failed.", nb_rbuf); |
| 304 | } | 307 | } |
| 305 | getsockopt(mr_fd, SOL_SOCKET, SO_RCVBUF, &nb_rbuf, &sock_buf_size); | 308 | getsockopt(mr_fd, SOL_SOCKET, SO_RCVBUF, &nb_rbuf, &sock_buf_size); |
| 306 | 309 | ||
| 310 | + srs_trace("set socket buffer to %d, actual %d KB", SRS_MR_SOCKET_BUFFER, nb_rbuf / 1024); | ||
| 311 | + | ||
| 307 | // enable the merge read | 312 | // enable the merge read |
| 308 | // @see https://github.com/winlinvip/simple-rtmp-server/issues/241 | 313 | // @see https://github.com/winlinvip/simple-rtmp-server/issues/241 |
| 309 | rtmp->set_merge_read(true, nb_rbuf, this); | 314 | 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. | @@ -33,7 +33,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||
| 33 | // 32KB=32768 | 33 | // 32KB=32768 |
| 34 | // 64KB=65536 | 34 | // 64KB=65536 |
| 35 | // @see https://github.com/winlinvip/simple-rtmp-server/issues/241 | 35 | // @see https://github.com/winlinvip/simple-rtmp-server/issues/241 |
| 36 | -#define SOCKET_READ_SIZE 4096 | 36 | +#define SOCKET_READ_SIZE 65536 |
| 37 | // the max buffer for user space socket buffer. | 37 | // the max buffer for user space socket buffer. |
| 38 | #define SOCKET_MAX_BUF 65536 | 38 | #define SOCKET_MAX_BUF 65536 |
| 39 | 39 | ||
| @@ -136,6 +136,10 @@ void SrsBuffer::set_merge_read(bool v, int max_buffer, IMergeReadHandler* handle | @@ -136,6 +136,10 @@ void SrsBuffer::set_merge_read(bool v, int max_buffer, IMergeReadHandler* handle | ||
| 136 | if (v && buffer_size != nb_buffer) { | 136 | if (v && buffer_size != nb_buffer) { |
| 137 | reset_buffer(buffer_size); | 137 | reset_buffer(buffer_size); |
| 138 | } | 138 | } |
| 139 | + | ||
| 140 | + if (_handler) { | ||
| 141 | + _handler->on_buffer_change(nb_buffer); | ||
| 142 | + } | ||
| 139 | } | 143 | } |
| 140 | 144 | ||
| 141 | void SrsBuffer::on_chunk_size(int32_t chunk_size) | 145 | void SrsBuffer::on_chunk_size(int32_t chunk_size) |
| @@ -145,6 +149,10 @@ void SrsBuffer::on_chunk_size(int32_t chunk_size) | @@ -145,6 +149,10 @@ void SrsBuffer::on_chunk_size(int32_t chunk_size) | ||
| 145 | } | 149 | } |
| 146 | 150 | ||
| 147 | reset_buffer(chunk_size); | 151 | reset_buffer(chunk_size); |
| 152 | + | ||
| 153 | + if (_handler) { | ||
| 154 | + _handler->on_buffer_change(nb_buffer); | ||
| 155 | + } | ||
| 148 | } | 156 | } |
| 149 | 157 | ||
| 150 | int SrsBuffer::buffer_size() | 158 | int SrsBuffer::buffer_size() |
| @@ -158,8 +166,4 @@ void SrsBuffer::reset_buffer(int size) | @@ -158,8 +166,4 @@ void SrsBuffer::reset_buffer(int size) | ||
| 158 | 166 | ||
| 159 | nb_buffer = size; | 167 | nb_buffer = size; |
| 160 | buffer = new char[nb_buffer]; | 168 | buffer = new char[nb_buffer]; |
| 161 | - | ||
| 162 | - if (_handler) { | ||
| 163 | - _handler->on_buffer_change(nb_buffer); | ||
| 164 | - } | ||
| 165 | } | 169 | } |
-
请 注册 或 登录 后发表评论