public MetadataInfoTreeContainer EditInfo(MetadataInfoTreeContainer infoToUpdate, List <MetadataInfoTreeContainer> suppliedInfo) { infoToUpdate.HasAudio = false; infoToUpdate.AudioStream = null; return(infoToUpdate); }
public MetadataInfoTreeContainer EditInfo(MetadataInfoTreeContainer infoToUpdate, List <MetadataInfoTreeContainer> suppliedInfo) { if (infoToUpdate.VideoStream.Duration > Length) { infoToUpdate.VideoStream.Duration = Length; } return(infoToUpdate); }
public MetadataInfoTreeContainer EditInfo(MetadataInfoTreeContainer infoToUpdate, List <MetadataInfoTreeContainer> suppliedInfo) { infoToUpdate.VideoStream.VideoMetadata.Width = Width.GetValueOrDefault(); infoToUpdate.VideoStream.VideoMetadata.Height = Height.GetValueOrDefault(); infoToUpdate.VideoStream.VideoMetadata.CodedWidth = Width.GetValueOrDefault(); infoToUpdate.VideoStream.VideoMetadata.CodedHeight = Height.GetValueOrDefault(); return(infoToUpdate); }
public MetadataInfoTreeContainer EditInfo(MetadataInfoTreeContainer infoToUpdate, List <MetadataInfoTreeContainer> suppliedInfo) { var emptyMetadataInfo = MetadataInfo.Create(); emptyMetadataInfo.AudioMetadata = new AudioStreamMetadata { SampleRate = SampleRate ?? 44100, Duration = TimeSpan.MaxValue, DurationTs = long.MaxValue, }; return(MetadataInfoTreeContainer.Create(AudioStream.Create(emptyMetadataInfo))); }
public MetadataInfoTreeContainer EditInfo(MetadataInfoTreeContainer infoToUpdate, List <MetadataInfoTreeContainer> suppliedInfo) { if (Shortest) { return(suppliedInfo.OrderBy(r => r.VideoStream.VideoMetadata.Duration).FirstOrDefault()); } var mainMetadataInfo = suppliedInfo.ElementAt(0); var overlayMetadataInfo = suppliedInfo.ElementAt(1); return(EofAction == OverlayEofActionType.EndAll ? overlayMetadataInfo : mainMetadataInfo); }
public MetadataInfoTreeContainer EditInfo(MetadataInfoTreeContainer infoToUpdate, List <MetadataInfoTreeContainer> suppliedInfo) { switch (Duration) { case DurationType.First: return(suppliedInfo.FirstOrDefault()); case DurationType.Shortest: return(suppliedInfo.OrderBy(r => r.AudioStream.AudioMetadata.Duration).FirstOrDefault()); default: return(suppliedInfo.OrderByDescending(r => r.AudioStream.AudioMetadata.Duration).FirstOrDefault()); } }
public MetadataInfoTreeContainer EditInfo(MetadataInfoTreeContainer infoToUpdate, List <MetadataInfoTreeContainer> suppliedInfo) { if (NumberOfAudioOut > 0) { infoToUpdate.AudioStream.AudioMetadata.Duration = TimeSpan.FromSeconds(suppliedInfo.Sum(i => i.AudioStream.AudioMetadata.Duration.TotalSeconds)); } if (NumberOfVideoOut > 0) { infoToUpdate.VideoStream.VideoMetadata.Duration = TimeSpan.FromSeconds(suppliedInfo.Sum(i => i.VideoStream.VideoMetadata.Duration.TotalSeconds)); } return(infoToUpdate); }
public MetadataInfoTreeContainer EditInfo(MetadataInfoTreeContainer infoToUpdate, List <MetadataInfoTreeContainer> suppliedInfo) { if (infoToUpdate.HasVideo && infoToUpdate.VideoStream.VideoMetadata.Duration > Length) { infoToUpdate.VideoStream.VideoMetadata.Duration = infoToUpdate.VideoStream.VideoMetadata.Duration - Length; } if (infoToUpdate.HasAudio && infoToUpdate.AudioStream.AudioMetadata.Duration > Length) { infoToUpdate.AudioStream.AudioMetadata.Duration = infoToUpdate.AudioStream.AudioMetadata.Duration - Length; } return(infoToUpdate); }
public MetadataInfoTreeContainer EditInfo(MetadataInfoTreeContainer infoToUpdate, List <MetadataInfoTreeContainer> suppliedInfo) { var emptyMetadataInfo = MetadataInfo.Create(); emptyMetadataInfo.VideoMetadata = new VideoStreamMetadata { Width = Size.HasValue ? Size.Value.Width : 320, Height = Size.HasValue ? Size.Value.Height : 240, AverageFrameRate = Fraction.Create(FrameRate ?? 25, 1), RFrameRate = Fraction.Create(FrameRate ?? 25, 1), Duration = Duration ?? TimeSpan.MaxValue, DurationTs = long.MaxValue, }; return(MetadataInfoTreeContainer.Create(VideoStream.Create(emptyMetadataInfo))); }
public MetadataInfoTreeContainer EditInfo(MetadataInfoTreeContainer infoToUpdate, List <MetadataInfoTreeContainer> suppliedInfo) { var startTimeInSeconds = 0D; var endTimeInSeconds = infoToUpdate.VideoStream.Duration.TotalSeconds; if (End.HasValue) { endTimeInSeconds = End.Value; } else if (EndFrame.HasValue) { endTimeInSeconds = (double)EndFrame.Value / (double)infoToUpdate.VideoStream.FrameRate.ToDouble(); } else if (EndPts.HasValue) { endTimeInSeconds = (double)EndPts.Value / (double)infoToUpdate.VideoStream.Timebase.ToDouble(); } if (Start.HasValue) { startTimeInSeconds = Start.Value; } else if (StartFrame.HasValue) { startTimeInSeconds = (double)StartFrame.Value / (double)infoToUpdate.VideoStream.FrameRate.ToDouble(); } else if (StartPts.HasValue) { startTimeInSeconds = (double)StartPts.Value / (double)infoToUpdate.VideoStream.Timebase.ToDouble(); } var timeInSecondsAfterTrim = endTimeInSeconds - startTimeInSeconds; if (timeInSecondsAfterTrim < 0) { timeInSecondsAfterTrim = 0; } infoToUpdate.VideoStream.Duration = TimeSpan.FromSeconds(timeInSecondsAfterTrim); return(infoToUpdate); }
public MetadataInfoTreeContainer EditInfo(MetadataInfoTreeContainer infoToUpdate, List <MetadataInfoTreeContainer> suppliedInfo) { return(MetadataInfoTreeContainer.Create(Resource)); }
public MetadataInfoTreeContainer EditInfo(MetadataInfoTreeContainer infoToUpdate, List<MetadataInfoTreeContainer> suppliedInfo) { infoToUpdate.VideoStream.VideoMetadata.Duration = infoToUpdate.VideoStream.VideoMetadata.Duration - Length; return infoToUpdate; }
public MetadataInfoTreeContainer EditInfo(MetadataInfoTreeContainer infoToUpdate, List <MetadataInfoTreeContainer> suppliedInfo) { infoToUpdate.VideoStream.Dimensions = Dimensions; return(infoToUpdate); }
public MetadataInfoTreeContainer EditInfo(MetadataInfoTreeContainer infoToUpdate, List <MetadataInfoTreeContainer> suppliedInfo) { infoToUpdate.VideoStream.BitRate = Rate * 1000; return(infoToUpdate); }
public MetadataInfoTreeContainer EditInfo(MetadataInfoTreeContainer infoToUpdate, List <MetadataInfoTreeContainer> suppliedInfo) { long?videoStartTime = null, audioStartTime = null, videoStartTimeTs = null, audioStartTimeTs = null, minStartTime = null, minStartTimeTs = null; if (infoToUpdate.HasVideo) { videoStartTime = infoToUpdate.VideoStream.VideoMetadata.StartTime.Ticks; videoStartTimeTs = infoToUpdate.VideoStream.VideoMetadata.StartTimeTs; minStartTime = videoStartTime; minStartTimeTs = videoStartTimeTs; } if (infoToUpdate.HasAudio) { audioStartTime = infoToUpdate.AudioStream.AudioMetadata.StartTime.Ticks; audioStartTimeTs = infoToUpdate.AudioStream.AudioMetadata.StartTimeTs; minStartTime = audioStartTime; minStartTimeTs = audioStartTimeTs; } if (infoToUpdate.HasVideo && infoToUpdate.HasAudio) { minStartTime = Math.Min(videoStartTime.Value, audioStartTime.Value); minStartTimeTs = Math.Min(videoStartTimeTs.Value, audioStartTimeTs.Value); } switch (Type) { case AvoidNegativeTimestampsType.MakeNonNegative: if (minStartTimeTs < 0) { if (infoToUpdate.HasVideo) { infoToUpdate.VideoStream.VideoMetadata.StartTime = TimeSpan.FromTicks(videoStartTime.Value - minStartTime.Value); infoToUpdate.VideoStream.VideoMetadata.StartTimeTs = videoStartTimeTs.Value - minStartTimeTs.Value; } if (infoToUpdate.HasAudio) { infoToUpdate.AudioStream.AudioMetadata.StartTime = TimeSpan.FromTicks(audioStartTime.Value - minStartTime.Value); infoToUpdate.AudioStream.AudioMetadata.StartTimeTs = audioStartTimeTs.Value - minStartTimeTs.Value; } } break; case AvoidNegativeTimestampsType.MakeZero: if (minStartTimeTs != 0) { if (infoToUpdate.HasVideo) { infoToUpdate.VideoStream.VideoMetadata.StartTime = TimeSpan.FromTicks(videoStartTime.Value - minStartTime.Value); infoToUpdate.VideoStream.VideoMetadata.StartTimeTs = videoStartTimeTs.Value - minStartTimeTs.Value; } if (infoToUpdate.HasAudio) { infoToUpdate.AudioStream.AudioMetadata.StartTime = TimeSpan.FromTicks(audioStartTime.Value - minStartTime.Value); infoToUpdate.AudioStream.AudioMetadata.StartTimeTs = audioStartTimeTs.Value - minStartTimeTs.Value; } } break; } return(infoToUpdate); }
public virtual MetadataInfoTreeContainer EditInfo(MetadataInfoTreeContainer infoToUpdate, List <MetadataInfoTreeContainer> suppliedInfo) { infoToUpdate.VideoStream.VideoMetadata.Duration = suppliedInfo.Min(r => r.VideoStream.VideoMetadata.Duration); return(infoToUpdate); }