Beispiel #1
0
        public override List <ChapterInfo> GetStreams(string location)
        {
            List <ChapterInfo> mpls = new List <ChapterInfo>();
            string             path = Path.Combine(Path.Combine(location, "BDMV"), "PLAYLIST");

            if (!Directory.Exists(path))
            {
                throw new FileNotFoundException("Could not find PLAYLIST folder on BluRay disc.");
            }

            ChapterExtractor ex = new BDInfoExtractor();

            ex.StreamDetected += (sender, args) => OnStreamDetected(args.ProgramChain);
            ex.ChaptersLoaded += (sender, args) => OnChaptersLoaded(args.ProgramChain);

            foreach (string file in Directory.GetFiles(path, "*.mpls"))
            {
                ChapterInfo pl = ex.GetStreams(file)[0];
                pl.SourceName = Path.GetFileName(file);
                mpls.Add(pl);
            }

            mpls = mpls.OrderByDescending(p => p.Duration).ToList();
            OnExtractionComplete();
            return(mpls);
        }
Beispiel #2
0
        public override List <ChapterInfo> GetStreams(string location)
        {
            List <ChapterInfo> mpls = new List <ChapterInfo>();

            string path = FileUtil.GetBlurayPath(location);

            if (!Directory.Exists(path))
            {
                return(mpls);
            }

            ChapterExtractor ex = new BDInfoExtractor();

            ex.StreamDetected += (sender, args) => OnStreamDetected(args.ProgramChain);
            ex.ChaptersLoaded += (sender, args) => OnChaptersLoaded(args.ProgramChain);

            foreach (string file in Directory.GetFiles(path, "*.mpls"))
            {
                ChapterInfo pl = ex.GetStreams(file)[0];
                if (pl == null)
                {
                    continue;
                }

                pl.SourceFilePath = file;
                pl.SourceType     = "Blu-Ray";
                mpls.Add(pl);
            }

            mpls = mpls.OrderByDescending(p => p.Duration).ToList();
            OnExtractionComplete();
            return(mpls);
        }