コード例 #1
0
        public MetadataInfoTreeContainer EditInfo(MetadataInfoTreeContainer infoToUpdate, List<MetadataInfoTreeContainer> suppliedInfo)
        {
            infoToUpdate.HasVideo = false;

            infoToUpdate.VideoStream = null;

            return infoToUpdate;
        }
コード例 #2
0
ファイル: Size.cs プロジェクト: kostyll/HudlFfmpeg
        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;
        }
コード例 #3
0
        public MetadataInfoTreeContainer EditInfo(MetadataInfoTreeContainer infoToUpdate, List<MetadataInfoTreeContainer> suppliedInfo)
        {
            if (infoToUpdate.VideoStream.Duration > Length)
            {
                infoToUpdate.VideoStream.Duration = Length;
            }

            return infoToUpdate;
        }
コード例 #4
0
ファイル: AMix.cs プロジェクト: kostyll/HudlFfmpeg
 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();
     }
 }
コード例 #5
0
ファイル: ANullSrc.cs プロジェクト: kostyll/HudlFfmpeg
        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));
        }
コード例 #6
0
ファイル: Concat.cs プロジェクト: kostyll/HudlFfmpeg
        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;
        }
コード例 #7
0
        internal static MetadataInfoTreeContainer Create(IContainer container)
        {
            var instanceOfTreeContainer = new MetadataInfoTreeContainer();

            if (container.Streams.OfType <VideoStream>().Any())
            {
                instanceOfTreeContainer.VideoStream = container.Streams.OfType <VideoStream>().First().Info.Copy();
            }

            if (container.Streams.OfType <AudioStream>().Any())
            {
                instanceOfTreeContainer.AudioStream = container.Streams.OfType <AudioStream>().First().Info.Copy();
            }

            return(instanceOfTreeContainer);
        }
コード例 #8
0
ファイル: Color.cs プロジェクト: kostyll/HudlFfmpeg
        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));
        }
コード例 #9
0
        internal static MetadataInfoTreeContainer Create(IContainer container)
        {
            var instanceOfTreeContainer = new MetadataInfoTreeContainer();

            if (container.Streams.OfType<VideoStream>().Any())
            {
                instanceOfTreeContainer.VideoStream = container.Streams.OfType<VideoStream>().First().Info.Copy();
            }

            if (container.Streams.OfType<AudioStream>().Any())
            {
                instanceOfTreeContainer.AudioStream = container.Streams.OfType<AudioStream>().First().Info.Copy();
            }

            return instanceOfTreeContainer;
        }
コード例 #10
0
ファイル: RemoveAudio.cs プロジェクト: kostyll/HudlFfmpeg
        public MetadataInfoTreeContainer EditInfo(MetadataInfoTreeContainer infoToUpdate, List<MetadataInfoTreeContainer> suppliedInfo)
        {
            infoToUpdate.AudioStream = null;

            return infoToUpdate;
        }
コード例 #11
0
ファイル: BitRateAudio.cs プロジェクト: kostyll/HudlFfmpeg
        public MetadataInfoTreeContainer EditInfo(MetadataInfoTreeContainer infoToUpdate, List<MetadataInfoTreeContainer> suppliedInfo)
        {
            infoToUpdate.AudioStream.AudioMetadata.BitRate = Rate * 1000;

            return infoToUpdate;
        }
コード例 #12
0
 private MetadataInfoTreeSource(IContainer resource, SettingsCollection settings)
 {
     Settings = settings;
     Resource = MetadataInfoTreeContainer.Create(resource);
 }
コード例 #13
0
ファイル: BaseMovie.cs プロジェクト: kostyll/HudlFfmpeg
 public MetadataInfoTreeContainer EditInfo(MetadataInfoTreeContainer infoToUpdate, List<MetadataInfoTreeContainer> suppliedInfo)
 {
     return MetadataInfoTreeContainer.Create(Resource);
 }
コード例 #14
0
ファイル: Overlay.cs プロジェクト: hudl/HudlFfmpeg
        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;
        }
コード例 #15
0
ファイル: Trim.cs プロジェクト: karthik20522/HudlFfmpeg
        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;
        }
コード例 #16
0
ファイル: Size.cs プロジェクト: karthik20522/HudlFfmpeg
        public MetadataInfoTreeContainer EditInfo(MetadataInfoTreeContainer infoToUpdate, List<MetadataInfoTreeContainer> suppliedInfo)
        {
            infoToUpdate.VideoStream.Dimensions = Dimensions;

            return infoToUpdate;
        }
コード例 #17
0
ファイル: SeekTo.cs プロジェクト: kostyll/HudlFfmpeg
        public MetadataInfoTreeContainer EditInfo(MetadataInfoTreeContainer infoToUpdate, List<MetadataInfoTreeContainer> suppliedInfo)
        {
            infoToUpdate.VideoStream.VideoMetadata.Duration = infoToUpdate.VideoStream.VideoMetadata.Duration - Length;

            return infoToUpdate;
        }
コード例 #18
0
ファイル: Blend.cs プロジェクト: kostyll/HudlFfmpeg
        public virtual MetadataInfoTreeContainer EditInfo(MetadataInfoTreeContainer infoToUpdate, List<MetadataInfoTreeContainer> suppliedInfo)
        {
            infoToUpdate.VideoStream.VideoMetadata.Duration = suppliedInfo.Min(r => r.VideoStream.VideoMetadata.Duration);

            return infoToUpdate;
        }