private SubtitleInterval AggregateInterval(List <SubtitleInterval> list, int start, int end)
        {
            SubtitleInterval aggregated = list[start];

            for (int i = start + 1; i <= end; i++)
            {
                aggregated = MergeInterval(aggregated, list[i]);
            }
            return(aggregated);
        }
 private SubtitleInterval MergeInterval(SubtitleInterval a, SubtitleInterval b)
 {
     return(new SubtitleInterval
     {
         Index = a.Index,
         Lines = a.Lines.Concat(b.Lines).ToList(),
         TimeFrame = new TimeFrame
         {
             Start = a.TimeFrame.Start,
             End = b.TimeFrame.End,
         }
     });
 }
Beispiel #3
0
 public static double EndError(SubtitleInterval a, SubtitleInterval b)
 {
     return(Math.Abs((a.TimeFrame.End - b.TimeFrame.End).TotalSeconds));
 }
Beispiel #4
0
 public static double StartError(SubtitleInterval a, SubtitleInterval b)
 {
     return(Math.Abs((a.TimeFrame.Start - b.TimeFrame.Start).TotalSeconds));
 }
Beispiel #5
0
 public static double Error(SubtitleInterval a, SubtitleInterval b)
 {
     return(StartError(a, b) + EndError(a, b));
 }
Beispiel #6
0
 public double EndError(SubtitleInterval b)
 {
     return(EndError(this, b));
 }
Beispiel #7
0
 public double StartError(SubtitleInterval b)
 {
     return(StartError(this, b));
 }