// // VideoTrack.cs - represents a video track in a video file // // Author: // Michael Becker // // Copyright (c) 2011-2020 Mike Becker's Software // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . using System; using System.Collections.ObjectModel; namespace UniversalEditor.ObjectModels.Multimedia.Video { /// /// Represents a video track in a video file. /// public class VideoTrack : ICloneable { public class VideoTrackCollection : Collection { } /// /// Gets or sets the name of this . /// /// The name of this . public string Name { get; set; } = string.Empty; /// /// Gets a collection of instances representing the individual frames in this . /// /// The frames in this . public VideoFrame.VideoFrameCollection Frames { get; } = new VideoFrame.VideoFrameCollection(); /// /// Gets or sets the frame rate in frames per second for s in this . /// /// The frame rate. public int FrameRate { get; set; } = 24; public int BlockDimension { get; set; } = 8; public int SubBlockDimension { get; set; } = 4; /// /// Gets or sets the width of a in this . /// /// The width of a in this . public int Width { get; set; } = 320; /// /// Gets or sets the height of a in this . /// /// The height of a in this . public int Height { get; set; } = 240; public object Clone() { return new VideoTrack { Name = this.Name, Height = this.Height, Width = this.Width, BlockDimension = this.BlockDimension, FrameRate = this.FrameRate, SubBlockDimension = this.SubBlockDimension }; } } }