>>2
He should be looking into DirectShow, but his question is pointless in general, because C# is a language and what he wants to do is very platform-specific: it would have to be done differently in Windows/CLR (using either DirectShow, ActiveMovie or one of the newer interfaces, or some crappy portable renderer which does not output directly to the GPU, or one that just uses OpenGL instead), Linux (ffmpeg+vdpau), Mac OS X (QuickTime, GStreamer, ...). Even within specific platforms, there's countless ways to achieve it. It is however preferable, that you do use the platform's facilities as they tend to integrate better with the hardware and give the user more flexibility (for example, with DirectShow, the user may be able to control what filter decodes the video or even change the renderer or how the video is processed, how RGB conversion is performed and much more).
tl;dr: You should be asking how to display video in general on a specific platform, not how to do it in some specific language.