Redesign plugin interface and extract video plugin from base code.