protected override void InitInternal() { OgmOggFileObj = null; dataSrc = new FileSource(b, consumerId); progressUpdater = new Thread(ReadBytesUpdater); progressUpdater.Name = "Ogg/Ogm ProgressUpdater"; }
protected override void DoWork() { progressUpdater.Start(); processingThread = Thread.CurrentThread; var ogmOggFile = new OgmOggFile(dataSrc.Length); ogmOggFile.Parse(dataSrc); OgmOggFileObj = ogmOggFile; }
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); } }
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); } }