}
case Client::WAITING_FOR_KEYFRAME: {
Stream *stream = client->stream;
- if (ssize_t(client->stream_pos) > stream->last_suitable_starting_point) {
+ if (stream->suitable_starting_points.empty() ||
+ client->stream_pos > stream->suitable_starting_points.back()) {
// We haven't received a keyframe since this stream started waiting,
// so keep on waiting for one.
// This is postcondition #3.
stream->put_client_to_sleep(client);
return;
}
- client->stream_pos = stream->last_suitable_starting_point;
+ client->stream_pos = stream->suitable_starting_points.back();
client->state = Client::PREBUFFERING;
// Fall through.
}