winlin

refine the fast buffer to more readable.

@@ -82,17 +82,21 @@ char* SrsFastBuffer::bytes() @@ -82,17 +82,21 @@ char* SrsFastBuffer::bytes()
82 82
83 void SrsFastBuffer::set_buffer(int buffer_size) 83 void SrsFastBuffer::set_buffer(int buffer_size)
84 { 84 {
85 - // the user-space buffer size limit to a max value.  
86 - int nb_resize_buf = srs_min(buffer_size, SRS_MAX_SOCKET_BUFFER); 85 + // never exceed the max size.
87 if (buffer_size > SRS_MAX_SOCKET_BUFFER) { 86 if (buffer_size > SRS_MAX_SOCKET_BUFFER) {
88 - srs_warn("limit the user-space buffer from %d to %d", buffer_size, SRS_MAX_SOCKET_BUFFER); 87 + srs_warn("limit the user-space buffer from %d to %d",
  88 + buffer_size, SRS_MAX_SOCKET_BUFFER);
89 } 89 }
  90 +
  91 + // the user-space buffer size limit to a max value.
  92 + int nb_resize_buf = srs_min(buffer_size, SRS_MAX_SOCKET_BUFFER);
90 93
91 // only realloc when buffer changed bigger 94 // only realloc when buffer changed bigger
92 if (nb_resize_buf <= nb_buffer) { 95 if (nb_resize_buf <= nb_buffer) {
93 return; 96 return;
94 } 97 }
95 98
  99 + // realloc for buffer change bigger.
96 int start = p - buffer; 100 int start = p - buffer;
97 int nb_bytes = end - p; 101 int nb_bytes = end - p;
98 102
@@ -148,6 +152,7 @@ int SrsFastBuffer::grow(ISrsBufferReader* reader, int required_size) @@ -148,6 +152,7 @@ int SrsFastBuffer::grow(ISrsBufferReader* reader, int required_size)
148 srs_assert(nb_exists_bytes >= 0); 152 srs_assert(nb_exists_bytes >= 0);
149 srs_verbose("move fast buffer %d bytes", nb_exists_bytes); 153 srs_verbose("move fast buffer %d bytes", nb_exists_bytes);
150 154
  155 + // reset or move to get more space.
151 if (!nb_exists_bytes) { 156 if (!nb_exists_bytes) {
152 // reset when buffer is empty. 157 // reset when buffer is empty.
153 p = end = buffer; 158 p = end = buffer;
@@ -159,15 +164,15 @@ int SrsFastBuffer::grow(ISrsBufferReader* reader, int required_size) @@ -159,15 +164,15 @@ int SrsFastBuffer::grow(ISrsBufferReader* reader, int required_size)
159 p = buffer; 164 p = buffer;
160 end = p + nb_exists_bytes; 165 end = p + nb_exists_bytes;
161 } 166 }
162 - }  
163 -  
164 - // check whether enough free space in buffer.  
165 - nb_free_space = buffer + nb_buffer - end;  
166 - if (nb_free_space < required_size) {  
167 - ret = ERROR_READER_BUFFER_OVERFLOW;  
168 - srs_error("buffer overflow, required=%d, max=%d, left=%d, ret=%d",  
169 - required_size, nb_buffer, nb_free_space, ret);  
170 - return ret; 167 +
  168 + // check whether enough free space in buffer.
  169 + nb_free_space = buffer + nb_buffer - end;
  170 + if (nb_free_space < required_size) {
  171 + ret = ERROR_READER_BUFFER_OVERFLOW;
  172 + srs_error("buffer overflow, required=%d, max=%d, left=%d, ret=%d",
  173 + required_size, nb_buffer, nb_free_space, ret);
  174 + return ret;
  175 + }
171 } 176 }
172 177
173 // buffer is ok, read required size of bytes. 178 // buffer is ok, read required size of bytes.