Exemplo n.º 1
0
        protected override void InitInternal()
        {
            OgmOggFileObj = null;

            dataSrc = new FileSource(b, consumerId);

            progressUpdater      = new Thread(ReadBytesUpdater);
            progressUpdater.Name = "Ogg/Ogm ProgressUpdater";
        }
Exemplo n.º 2
0
        protected override void DoWork()
        {
            progressUpdater.Start();
            processingThread = Thread.CurrentThread;

            var ogmOggFile = new OgmOggFile(dataSrc.Length);

            ogmOggFile.Parse(dataSrc);
            OgmOggFileObj = ogmOggFile;
        }
Exemplo n.º 3
0
        public OgmOggProvider(OgmOggFile provider)
        {
            infos         = new InfoCollection();
            this.provider = provider;

            Add(EntryKey.Size, provider.FileSize.ToString(), "byte");
            Add(EntryKey.Overhead, provider.Overhead.ToString(), "byte");

            Add(EntryKey.Duration, provider.Tracks.Max(t => !(t is UnkownTrack) && t.Duration.HasValue ? t.Duration.Value.TotalSeconds : 0).ToString("0.000", CultureInfo.InvariantCulture), "s");

            bool isOgv = true;

            int[] indeces = new int[4];
            foreach (var track in provider.Tracks)
            {
                if (track is VideoTrack)
                {
                    AddStreamInfo(track, StreamType.Video, indeces[0]++);
                    isOgv &= track.CodecName != null && track.CodecName.Equals("Theora");
                }
                else if (track is AudioTrack)
                {
                    AddStreamInfo(track, StreamType.Audio, indeces[1]++);
                    isOgv &= track.CodecName != null && (track.CodecName.Equals("Flac") || track.CodecName.Equals("Vorbis"));
                }
                else if (track is SubtitleTrack)
                {
                    AddStreamInfo(track, StreamType.Text, indeces[2]++);
                    isOgv = false;
                }
                else if (track is UnkownTrack)
                {
                    Add(StreamType.Unkown, indeces[3], EntryKey.Id, () => track.Id.ToString(), null);
                    Add(StreamType.Unkown, indeces[3], EntryKey.Size, () => track.Length.ToString(), "byte");
                    indeces[3]++;
                    isOgv = false;
                }
            }

            if (provider.Tracks.Count == 1 && ((Collection <Track>)provider.Tracks)[0].CodecName.Equals("Vorbis"))
            {
                Add(EntryKey.Extension, "ogg", null);
            }
            else if (isOgv)
            {
                Add(EntryKey.Extension, "ogv", null);
            }
            else
            {
                Add(EntryKey.Extension, "ogm", null);
            }
        }
Exemplo n.º 4
0
        public OgmOggProvider(OgmOggFile provider)
        {
            infos = new InfoCollection();
            this.provider = provider;

            Add(EntryKey.Size, provider.FileSize.ToString(), "byte");
            Add(EntryKey.Overhead, provider.Overhead.ToString(), "byte");

            Add(EntryKey.Duration, provider.Tracks.Max(t => !(t is UnkownTrack) && t.Duration.HasValue ? t.Duration.Value.TotalSeconds : 0).ToString("0.000", CultureInfo.InvariantCulture), "s");

            bool isOgv = true;
            int[] indeces = new int[4];
            foreach(var track in provider.Tracks) {
                if(track is VideoTrack) {
                    AddStreamInfo(track, StreamType.Video, indeces[0]++);
                    isOgv &= track.CodecName != null && track.CodecName.Equals("Theora");
                } else if(track is AudioTrack) {
                    AddStreamInfo(track, StreamType.Audio, indeces[1]++);
                    isOgv &= track.CodecName != null && (track.CodecName.Equals("Flac") || track.CodecName.Equals("Vorbis"));
                } else if(track is SubtitleTrack) {
                    AddStreamInfo(track, StreamType.Text, indeces[2]++);
                    isOgv = false;
                } else if(track is UnkownTrack) {
                    Add(StreamType.Unkown, indeces[3], EntryKey.Id, () => track.Id.ToString(), null);
                    Add(StreamType.Unkown, indeces[3], EntryKey.Size, () => track.Length.ToString(), "byte");
                    indeces[3]++;
                    isOgv = false;
                }
            }

            if(provider.Tracks.Count == 1 && ((Collection<Track>)provider.Tracks)[0].CodecName.Equals("Vorbis")) {
                Add(EntryKey.Extension, "ogg", null);
            } else if(isOgv) {
                Add(EntryKey.Extension, "ogv", null);
            } else {
                Add(EntryKey.Extension, "ogm", null);
            }
        }