comparison event_log.c @ 1955:1c7af12efe8b

Fix awful playback latencin in new netplay implementation
author Michael Pavone <pavone@retrodev.com>
date Fri, 01 May 2020 21:17:21 -0700
parents 5a76a7373823
children 275f1c4bdb25
comparison
equal deleted inserted replaced
1954:2fd0a8cb1c80 1955:1c7af12efe8b
379 } else if (reader->buffer.cur_pos >= reader->buffer.size/2 && reader->buffer.size >= reader->storage/2) { 379 } else if (reader->buffer.cur_pos >= reader->buffer.size/2 && reader->buffer.size >= reader->storage/2) {
380 memmove(reader->buffer.data, reader->buffer.data + reader->buffer.cur_pos, reader->buffer.size - reader->buffer.cur_pos); 380 memmove(reader->buffer.data, reader->buffer.data + reader->buffer.cur_pos, reader->buffer.size - reader->buffer.cur_pos);
381 reader->buffer.size -= reader->buffer.cur_pos; 381 reader->buffer.size -= reader->buffer.cur_pos;
382 reader->buffer.cur_pos = 0; 382 reader->buffer.cur_pos = 0;
383 } 383 }
384 int bytes = 128; 384 int bytes = recv(reader->socket, reader->buffer.data + reader->buffer.size, reader->storage - reader->buffer.size, 0);
385 while (bytes > 127 && reader->buffer.size < reader->storage) 385 if (bytes >= 0) {
386 { 386 reader->buffer.size += bytes;
387 bytes = recv(reader->socket, reader->buffer.data + reader->buffer.size, reader->storage - reader->buffer.size, 0); 387 if (blocking && reader->buffer.size - reader->buffer.cur_pos >= 9) {
388 if (bytes >= 0) { 388 socket_blocking(reader->socket, 0);
389 reader->buffer.size += bytes;
390 if (blocking && reader->buffer.size - reader->buffer.cur_pos >= 9) {
391 socket_blocking(reader->socket, 0);
392 }
393 } else if (!socket_error_is_wouldblock()) {
394 printf("Connection closed, error = %X\n", socket_last_error());
395 } 389 }
390 } else if (!socket_error_is_wouldblock()) {
391 printf("Connection closed, error = %X\n", socket_last_error());
396 } 392 }
397 } 393 }
398 uint8_t header = load_int8(&reader->buffer); 394 uint8_t header = load_int8(&reader->buffer);
399 uint8_t ret; 395 uint8_t ret;
400 uint32_t delta; 396 uint32_t delta;