Beispiel #1
0
        static void Main(string[] args)
        {
            VideoSourceFilterRegistry registry = new VideoSourceFilterRegistry();

            UnregisterAll(registry);
            int width = 1920, height = 1080;
            //int width = 640, height = 480;
            VideoSourceFilter filter = new VideoSourceFilter();

            filter.Live = true;
            filter.SetMediaType(
                //width, height,
                width, -height,
                //"{e436eb7e-524f-11ce-9f53-0020af0ba770}"); // RGB32
                "{773c9ac0-3274-11d0-B724-00aa006c1A01}"); // ARGB32
            //filter.SetMediaTypeRate(50, 1); // 50 fps
            filter.SetMediaTypeRate(25, 1);                // 25 fps
            SourceFilterRegistryItem item;

            //item = registry.Register("Reference Source", filter);
            item = registry.Register("Test (Bottom to Top ARGB32)", filter);
            filter.SetMediaType(
                width, height,
                //width, -height,
                //"{e436eb7e-524f-11ce-9f53-0020af0ba770}"); // RGB32
                "{773c9ac0-3274-11d0-B724-00aa006c1A01}"); // ARGB32
            item = registry.Register("Test (Top to Bottom ARGB32)", filter);
        }
        protected override ITextureFilter MakeInitialFilter()
        {
            DisposeHelper.Dispose(ref m_SourceFilter);
            m_SourceFilter = new VideoSourceFilter(this);

            if (Renderer.InputFormat.IsYuv() && ((TextureSize)Renderer.ChromaSize < Renderer.LumaSize).Any)
            {
                return(m_SourceFilter);
            }

            return(m_SourceFilter.FixComposition());
        }
        protected override ITextureFilter MakeInitialFilter()
        {
            DisposeHelper.Dispose(ref m_SourceFilter);
            m_SourceFilter = new VideoSourceFilter(this);

            if (Renderer.InputFormat.IsYuv() &&
                (Renderer.ChromaSize.Width < Renderer.LumaSize.Width || Renderer.ChromaSize.Height < Renderer.LumaSize.Height))
            {
                return(new CompositionFilter(new YSourceFilter(), new ChromaSourceFilter(), fallback: m_SourceFilter));
            }

            return(m_SourceFilter);
        }
Beispiel #4
0
 public void SetSourceFilter(VideoSourceFilter sourceFilter)
 {
     if (sourceFilter == VideoSourceFilter.DirectShowSource)
     {
         this.SetFilter("SourceFilter", new StringBuilder("DirectShowSource(\"").Append(this.videoInfo.FilePath).Append("\", audio = false)").ToString());
     }
     else if (sourceFilter == VideoSourceFilter.DSS2)
     {
         string[] externalFilters = new string[] { Path.GetFullPath("avss.dll") };
         this.SetImport(externalFilters);
         this.SetFilter("SourceFilter", new StringBuilder("DSS2(\"").Append(this.videoInfo.FilePath).Append("\")").ToString());
     }
     else if (sourceFilter == VideoSourceFilter.FFVideoSource)
     {
         string[] textArray2 = new string[] { Path.GetFullPath("ffms2.dll") };
         this.SetImport(textArray2);
         this.SetFilter("SourceFilter", new StringBuilder("FFVideoSource(\"").Append(this.videoInfo.FilePath).Append("\")").ToString());
     }
     else if (sourceFilter == VideoSourceFilter.None)
     {
         this.RemoveFilter("SourceFilter");
     }
 }
Beispiel #5
0
 private static string GetInternalScalerDesc()
 {
     return(String.Join("\n", VideoSourceFilter.ChromaScaleDescription(Renderer.TargetSize), VideoSourceFilter.LumaScaleDescription(Renderer.TargetSize)));
 }