예제 #1
0
        public static void Init(Action <LogType, string, string, Exception> onLog)
        {
            QueryPerformanceFrequency(out s_performanceFrequency);

            s_onLog = onLog;
            s_onLogCallbackFunction = new LogCallbackFunction((s, p, m) => onLog((LogType)s, p, "  -" + m.TrimEnd('\n'), null));
            StreamerConstants c = new StreamerConstants();

            Core_Init(Marshal.GetFunctionPointerForDelegate(s_onLogCallbackFunction), ref c);
            Const  = c;
            Const2 = new StreamerConstants2(c);

            ExtensionsManager.Init();
        }
        public StreamerConstants2(StreamerConstants c)
        {
            Yuv420 = new PixelFormatGroup
            {
                BlendType      = 0,
                MainFormats    = new[] { c.PIX_FMT_YUV420P, c.PIX_FMT_YUVJ420P, c.PIX_FMT_YUVA420P, c.PIX_FMT_NV12, c.PIX_FMT_NV21 },
                OverlayFormats = new[] { c.PIX_FMT_YUVA420P }
            };
            Yuv420.ConcatFormats = Yuv420.MainFormats.Union(Yuv420.OverlayFormats).ToArray();

            Rgb = new PixelFormatGroup
            {
                BlendType      = 1,
                MainFormats    = new[] { c.PIX_FMT_BGR24, c.PIX_FMT_RGB24, c.PIX_FMT_ARGB, c.PIX_FMT_RGBA, c.PIX_FMT_ABGR, c.PIX_FMT_BGRA },
                OverlayFormats = new[] { c.PIX_FMT_ARGB, c.PIX_FMT_RGBA, c.PIX_FMT_ABGR, c.PIX_FMT_BGRA }
            };
            Rgb.ConcatFormats = Rgb.MainFormats.Union(Rgb.OverlayFormats).ToArray();
        }
예제 #3
0
 private static extern void Core_Init(IntPtr logCallbackFunction, ref StreamerConstants streamerConstants);