Warning, Im not from Apple, nor do I have any insight other than what ive gleaned from working with AVF on desktop and on iOS.My understanding is that mediaserverd handles vending and recieveing IOSurface backed pixel buffers from the camera, video encoder and video decoder, audio, jpeg encoder and png encoder. mediaserverd also handles setting up your camera controls, playing movies and what not.This is why there is asynchronous key value loading and latency, and threading concerns because of the IPC mechanisms being employed for AVFoundation to talk to mediaserverd on your behalf (and to send respondes from mediaserverd back).Ive had issues where ive done stupid things, or maybe found a weird bug in medaiserver accidentally, and had jpeg decoding in my app die because, well, we crashed the hardware decoder, etc.Basically, mediaserverd asyncrhonously conducts media on the device and negotiates between multiple app's encoding, playback and what not sessions.