void DisplayChannel::handle_stream_data(RedPeer::InMessage* message) { SpiceMsgDisplayStreamData* stream_data = (SpiceMsgDisplayStreamData*)message->data(); VideoStream* stream; if (stream_data->id >= _streams.size() || !(stream = _streams[stream_data->id])) { THROW("invalid stream"); } if (message->size() < sizeof(SpiceMsgDisplayStreamData) + stream_data->data_size) { THROW("access violation"); } stream->push_data(stream_data->multi_media_time, stream_data->data_size, stream_data->data); }