static void on_sub_render_frame(IntPtr publisher, IntPtr userdata, IntPtr frame)
        {
            GCHandle           handle = (GCHandle)userdata;
            MainViewController v      = (handle.Target as MainViewController);

            v.DoRenderFrame(v.subscriber, frame);
        }
        //
        // This method is invoked when the application has loaded and is ready to run. In this
        // method you should instantiate the window, load the UI into it and then make the window
        // visible.
        //
        // You have 17 seconds to return from this method, or iOS will terminate your application.
        //
        public override bool FinishedLaunching(UIApplication app, NSDictionary options)
        {
            // create a new window instance based on the screen size
            window = new UIWindow(UIScreen.MainScreen.Bounds);

            // If you have defined a root view controller, set it here:
            rootVc = new MainViewController();
            window.RootViewController = rootVc;

            // make the window visible
            window.MakeKeyAndVisible();

            return(true);
        }