- if (client->state == Client::SENDING_DATA &&
- client->stream_pos == 0) {
+ if (client->state == Client::WAITING_FOR_KEYFRAME ||
+ (client->state == Client::SENDING_DATA &&
+ client->stream_pos == 0)) {
void Server::add_data_deferred(int stream_index, const char *data, size_t bytes, StreamStartSuitability suitable_for_stream_start)
{
void Server::add_data_deferred(int stream_index, const char *data, size_t bytes, StreamStartSuitability suitable_for_stream_start)
{
assert(stream_index >= 0 && stream_index < ssize_t(streams.size()));
streams[stream_index]->add_data_deferred(data, bytes, suitable_for_stream_start);
}
assert(stream_index >= 0 && stream_index < ssize_t(streams.size()));
streams[stream_index]->add_data_deferred(data, bytes, suitable_for_stream_start);
}
- for (size_t i = 0; i < queued_add_clients.size(); ++i) {
- add_client(queued_add_clients[i]);
+ for (size_t i = 0; i < queued_add_clients.size(); ++i) {
+ add_client(queued_add_clients[i]);
+ }
+ queued_add_clients.clear();