Пример #1
0
        void DisplayPixelBuffer(CVPixelBuffer pixelBuffer, double framePTS)
        {
            nint width  = pixelBuffer.Width;
            nint height = pixelBuffer.Height;
            var  f      = View.Frame;

            if (width > f.Width || height > f.Height)
            {
                width  /= 2;
                height /= 2;
            }

            var layer = new EAGLLayer();

            if (Math.Abs(videoPreferredTransform.xx + 1f) < float.Epsilon)
            {
                layer.AffineTransform.Rotate(NMath.PI);
            }
            else if (Math.Abs(videoPreferredTransform.yy) < float.Epsilon)
            {
                layer.AffineTransform.Rotate(NMath.PI / 2);
            }

            layer.Frame            = new CGRect(0f, View.Frame.Height - 50f - height, width, height);
            layer.PresentationRect = new CGSize(width, height);

            layer.TimeCode = framePTS.ToString("0.000");
            layer.SetupGL();

            View.Layer.AddSublayer(layer);
            layer.DisplayPixelBuffer(pixelBuffer);
        }
Пример #2
0
        void DisplayPixelBuffer(CVPixelBuffer pixelBuffer, double framePTS)
        {
            nint width = pixelBuffer.Width;
            nint height = pixelBuffer.Height;
            var f = View.Frame;
            if (width > f.Width || height > f.Height) {
                width /= 2;
                height /= 2;
            }

            var layer = new EAGLLayer ();
            if (Math.Abs (videoPreferredTransform.xx + 1f) < float.Epsilon)
                layer.AffineTransform.Rotate (NMath.PI);
            else if (Math.Abs (videoPreferredTransform.yy) < float.Epsilon)
                layer.AffineTransform.Rotate (NMath.PI / 2);

            layer.Frame = new CGRect (0f, View.Frame.Height - 50f - height, width, height);
            layer.PresentationRect = new CGSize (width, height);

            layer.TimeCode = framePTS.ToString ("0.000");
            layer.SetupGL ();

            View.Layer.AddSublayer (layer);
            layer.DisplayPixelBuffer (pixelBuffer);
        }