diff --git a/panda/src/downloader/downloader.cxx b/panda/src/downloader/downloader.cxx index 1455cb8f1b..23fb35c8ea 100644 --- a/panda/src/downloader/downloader.cxx +++ b/panda/src/downloader/downloader.cxx @@ -371,6 +371,9 @@ run(void) { // Recompute the buffer size if necessary if (_recompute_buffer == true) { + if (downloader_cat.is_debug()) + downloader_cat.debug() + << "Downloader::run() - Recomputing the buffer" << endl; // Flush the current buffer if it holds any data if (_current_status->_bytes_in_buffer > 0) { @@ -381,12 +384,14 @@ run(void) { } // Allocate a new buffer - _buffer.clear(); - _receive_size = (int)ceil(_frequency * _byte_rate); + _buffer.clear(); + _receive_size = _frequency * _byte_rate; _disk_buffer_size = _receive_size * _disk_write_frequency; _buffer = new Buffer(_disk_buffer_size); _current_status->_buffer = _buffer->_buffer; _current_status->reset(); + // Reset the flag + _recompute_buffer = false; } else if (_current_status->_bytes_in_buffer + _receive_size > _disk_buffer_size) { diff --git a/panda/src/downloader/downloader.h b/panda/src/downloader/downloader.h index 8308b3fbc0..d15df81ee2 100644 --- a/panda/src/downloader/downloader.h +++ b/panda/src/downloader/downloader.h @@ -101,7 +101,7 @@ private: int _disk_write_frequency; float _frequency; float _byte_rate; - int _receive_size; + ulong _receive_size; int _disk_buffer_size; ofstream _dest_stream; bool _recompute_buffer;