1
0
Fork 0
mirror of https://github.com/ossrs/srs.git synced 2025-03-09 15:49:59 +00:00

update performance to 4k, when mr_sleep to 2000ms. 2.0.52

This commit is contained in:
winlin 2014-12-04 18:46:08 +08:00
parent f1192a8302
commit 72fa33d9fb
2 changed files with 12 additions and 5 deletions

View file

@ -165,17 +165,23 @@ int SrsFastBuffer::grow(ISrsBufferReader* reader, int required_size)
}
// when read payload and need to grow, reset buffer.
if (end - p < required_size && required_size > SRS_RTMP_MAX_MESSAGE_HEADER) {
// or there is no space to read.
int max_to_read = buffer + nb_buffer - end;
if (end - p < required_size
&& (required_size > SRS_RTMP_MAX_MESSAGE_HEADER || max_to_read < required_size)
) {
int nb_cap = end - p;
srs_verbose("move fast buffer %d bytes", nb_cap);
buffer = (char*)memmove(buffer, p, nb_cap);
p = buffer;
end = p + nb_cap;
if (nb_cap < nb_buffer) {
buffer = (char*)memmove(buffer, p, nb_cap);
p = buffer;
end = p + nb_cap;
}
}
while (end - p < required_size) {
// the max to read is the left bytes.
size_t max_to_read = buffer + nb_buffer - end;
max_to_read = buffer + nb_buffer - end;
if (max_to_read <= 0) {
ret = ERROR_RTMP_BUFFER_OVERFLOW;