正在显示
2 个修改的文件
包含
9 行增加
和
2 行删除
| @@ -26,6 +26,12 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | @@ -26,6 +26,12 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||
| 26 | #include <srs_kernel_error.hpp> | 26 | #include <srs_kernel_error.hpp> |
| 27 | #include <srs_kernel_log.hpp> | 27 | #include <srs_kernel_log.hpp> |
| 28 | 28 | ||
| 29 | +// 4KB=4096 | ||
| 30 | +// 8KB=8192 | ||
| 31 | +// 16KB=16384 | ||
| 32 | +// 32KB=32768 | ||
| 33 | +// 64KB=65536 | ||
| 34 | +// @see https://github.com/winlinvip/simple-rtmp-server/issues/241 | ||
| 29 | #define SOCKET_READ_SIZE 4096 | 35 | #define SOCKET_READ_SIZE 4096 |
| 30 | 36 | ||
| 31 | ISrsBufferReader::ISrsBufferReader() | 37 | ISrsBufferReader::ISrsBufferReader() |
| @@ -38,10 +44,12 @@ ISrsBufferReader::~ISrsBufferReader() | @@ -38,10 +44,12 @@ ISrsBufferReader::~ISrsBufferReader() | ||
| 38 | 44 | ||
| 39 | SrsBuffer::SrsBuffer() | 45 | SrsBuffer::SrsBuffer() |
| 40 | { | 46 | { |
| 47 | + buffer = new char[SOCKET_READ_SIZE]; | ||
| 41 | } | 48 | } |
| 42 | 49 | ||
| 43 | SrsBuffer::~SrsBuffer() | 50 | SrsBuffer::~SrsBuffer() |
| 44 | { | 51 | { |
| 52 | + srs_freep(buffer); | ||
| 45 | } | 53 | } |
| 46 | 54 | ||
| 47 | int SrsBuffer::length() | 55 | int SrsBuffer::length() |
| @@ -88,8 +96,6 @@ int SrsBuffer::grow(ISrsBufferReader* reader, int required_size) | @@ -88,8 +96,6 @@ int SrsBuffer::grow(ISrsBufferReader* reader, int required_size) | ||
| 88 | } | 96 | } |
| 89 | 97 | ||
| 90 | while (length() < required_size) { | 98 | while (length() < required_size) { |
| 91 | - char buffer[SOCKET_READ_SIZE]; | ||
| 92 | - | ||
| 93 | ssize_t nread; | 99 | ssize_t nread; |
| 94 | if ((ret = reader->read(buffer, SOCKET_READ_SIZE, &nread)) != ERROR_SUCCESS) { | 100 | if ((ret = reader->read(buffer, SOCKET_READ_SIZE, &nread)) != ERROR_SUCCESS) { |
| 95 | return ret; | 101 | return ret; |
-
请 注册 或 登录 后发表评论