예제 #1
0
 public IngestOperationViewModel(IIngestOperation operation, IEngine engine)
     : base(operation, engine.MediaManager)
 {
     _operation                         = operation;
     _engine                            = engine;
     _destMediaVideoFormat              = operation.Source.VideoFormat;
     DestMediaName                      = FileUtils.GetFileNameWithoutExtension(operation.Source.MediaName, operation.Source.MediaType);
     _duration                          = operation.Source.Duration;
     _startTc                           = operation.Source.TcStart;
     _destCategory                      = ((IIngestDirectory)operation.Source.Directory).MediaCategory;
     IsMovie                            = operation.Source.MediaType == TMediaType.Unknown || operation.Source.MediaType == TMediaType.Movie;
     IsStill                            = operation.Source.MediaType == TMediaType.Still;
     _audioChannelMappingConversion     = operation.AudioChannelMappingConversion;
     _aspectConversion                  = operation.AspectConversion;
     _audioVolume                       = operation.AudioVolume;
     _sourceFieldOrderEnforceConversion = operation.SourceFieldOrderEnforceConversion;
     _loudnessCheck                     = operation.LoudnessCheck;
     operation.Source.PropertyChanged  += OnSourceMediaPropertyChanged;
     AspectConversionsEnforce           = new TAspectConversion[3];
     Array.Copy(AspectConversions, AspectConversionsEnforce, 3);
     if (engine.Preview != null)
     {
         _preview = new PreviewViewmodel(engine.Preview, true, false)
         {
             SelectedIngestOperation = operation
         }
     }
     ;
     CommandRemove = new UiCommand(o => Removed?.Invoke(this, EventArgs.Empty));
 }
예제 #2
0
        public IMedia Capture(IPlayoutServerChannel channel, TimeSpan tcIn, TimeSpan tcOut, bool narrowMode, string mediaName, string fileName)
        {
            _tcFormat = channel.VideoFormat;
            var directory = (ServerDirectory)_ownerServer.MediaDirectory;
            var newMedia  = new ServerMedia(directory, Guid.NewGuid(), 0, ArchiveDirectory)
            {
                FileName    = fileName,
                MediaName   = mediaName,
                TcStart     = tcIn,
                TcPlay      = tcIn,
                Duration    = tcOut - tcIn,
                MediaStatus = TMediaStatus.Copying,
                LastUpdated = DateTime.UtcNow,
                MediaType   = TMediaType.Movie
            };

            if (_recorder?.Capture(channel.Id, tcIn.ToSMPTETimecodeString(channel.VideoFormat), tcOut.ToSMPTETimecodeString(channel.VideoFormat), narrowMode, fileName) == true)
            {
                RecordingMedia = newMedia;
                Logger.Debug("Started recording from {0} file {1} TcIn {2} TcOut {3}", channel.ChannelName, fileName, tcIn, tcOut);
                return(newMedia);
            }
            Logger.Error("Unsuccessfull recording from {0} file {1} TcIn {2} TcOut {3}", channel.ChannelName, fileName, tcIn, tcOut);
            return(null);
        }
예제 #3
0
 public static long ToSMPTEFrames(this TimeSpan t, TVideoFormat format)
 {
     if (!Enum.IsDefined(typeof(TVideoFormat), format))
     {
         format = TVideoFormat.PAL_FHA;
     }
     return(t.ToSMPTEFrames(VideoFormatDescription.Descriptions[format].FrameRate));
 }
예제 #4
0
 public static TimeSpan SMPTEFramesToTimeSpan(this long totalFrames, TVideoFormat format)
 {
     if (!Enum.IsDefined(typeof(TVideoFormat), format))
     {
         format = TVideoFormat.PAL_FHA;
     }
     return(totalFrames.SMPTEFramesToTimeSpan(VideoFormatDescription.Descriptions[format].FrameRate));
 }
 public MediaSegmentViewmodel(IPersistentMedia media, IMediaSegment mediaSegment)
 {
     MediaSegment = mediaSegment;
     Media        = media;
     _videoFormat = media.VideoFormat;
     mediaSegment.PropertyChanged += OnPropertyChanged;
     Load();
 }
 public static bool IsValidSmpteTimecode(this string timeCode, TVideoFormat format)
 {
     if (!Enum.IsDefined(typeof(TVideoFormat), format))
     {
         format = TVideoFormat.PAL_FHA;
     }
     return(IsValidSmpteTimecode(timeCode, VideoFormatDescription.Descriptions[format].FrameRate));
 }
예제 #7
0
 public static TimeSpan SMPTETimecodeToTimeSpan(this string timeCode, TVideoFormat format)
 {
     if (!Enum.IsDefined(typeof(TVideoFormat), format))
     {
         format = TVideoFormat.PAL_FHA;
     }
     return(SMPTETimecodeToTimeSpan(timeCode, VideoFormatDescription.Descriptions[format].FrameRate));
 }
 private VideoFormatDescription(Size imageSize, RationalNumber frameRate, RationalNumber sar, bool interlaced)
 {
     Format       = TVideoFormat.Other;
     Interlaced   = interlaced;
     ImageSize    = imageSize;
     FrameRate    = frameRate;
     SAR          = sar;
     IsWideScreen = true;
 }
예제 #9
0
 /// <summary>
 /// Constructor for root event
 /// </summary>
 /// <param name="engineViewmodel"></param>
 protected EventPanelViewmodelBase(EngineViewmodel engineViewmodel)
 {
     EngineViewmodel = engineViewmodel;
     Engine          = engineViewmodel.Engine;
     Level           = 0;
     _isExpanded     = true;
     _videoFormat    = engineViewmodel.VideoFormat;
     Root            = (EventPanelRootViewmodel)this;
 }
 /// <summary>
 /// Constructor for root event
 /// </summary>
 /// <param name="engineViewmodel"></param>
 public EventPanelViewmodelBase(EngineViewmodel engineViewmodel) : base()
 {
     _engineViewmodel = engineViewmodel;
     _engine          = engineViewmodel.Engine;
     _level           = 0;
     _isExpanded      = true;
     _videoFormat     = engineViewmodel.VideoFormat;
     _root            = (EventPanelRootViewmodel)this;
 }
예제 #11
0
 public TemplatedEditViewmodel(ITemplated model, bool isFieldListReadOnly, bool displayCgMethod, TVideoFormat videoFormat) : base(model)
 {
     IsDisplayCgMethod      = displayCgMethod;
     VideoFormat            = videoFormat;
     IsFieldListReadOnly    = isFieldListReadOnly;
     Model.PropertyChanged += Model_PropertyChanged;
     CommandAddField        = new UiCommand(_addField, _canAddField);
     CommandDeleteField     = new UiCommand(_deleteField, _canDeleteField);
     CommandEditField       = new UiCommand(_editField, _canDeleteField);
 }
예제 #12
0
        public static RationalNumber FrameRate(this IMedia media)
        {
            TVideoFormat format = media.VideoFormat;

            if (!Enum.IsDefined(typeof(TVideoFormat), format))
            {
                format = TVideoFormat.Other;
            }
            return(VideoFormatDescription.Descriptions[format].FrameRate);
        }
예제 #13
0
        public static VideoFormatDescription FormatDescription(this IMedia media)
        {
            TVideoFormat format = media.VideoFormat;

            if (!Enum.IsDefined(typeof(TVideoFormat), format))
            {
                format = TVideoFormat.Other;
            }
            return(VideoFormatDescription.Descriptions[format]);
        }
예제 #14
0
 public void ArchiveSave(Media media, TVideoFormat outputFormat, bool deleteAfterSuccess)
 {
     ArchiveMedia toMedia = GetArchiveMedia(media);
     if (media is ServerMedia)
     {
         _archiveCopy(media, toMedia, deleteAfterSuccess, false);
     }
     if (media is IngestMedia)
     {
         FileManager.Queue(new ConvertOperation { SourceMedia = media, DestMedia = toMedia, SuccessCallback = GetVolumeInfo, OutputFormat = outputFormat});
     }
 }
 public TemplatedEditViewmodel(ITemplated model, bool isFieldListReadOnly, bool displayCgMethod, TVideoFormat videoFormat) : base(model)
 {
     IsDisplayCgMethod      = displayCgMethod;
     VideoFormat            = videoFormat;
     IsFieldListReadOnly    = isFieldListReadOnly;
     Model.PropertyChanged += TemplatedEditViewmodel_PropertyChanged;
     CommandAddField        = new UICommand {
         ExecuteDelegate = _addField, CanExecuteDelegate = _canAddField
     };
     CommandDeleteField = new UICommand {
         ExecuteDelegate = _deleteField, CanExecuteDelegate = _canDeleteField
     };
     CommandEditField = new UICommand {
         ExecuteDelegate = _editField, CanExecuteDelegate = _canDeleteField
     };
 }
        public IMedia Capture(IPlayoutServerChannel channel, TimeSpan timeLimit, bool narrowMode, string fileName)
        {
            _tcFormat = channel.VideoFormat;
            var directory = (ServerDirectory)_ownerServer.MediaDirectory;
            var newMedia  = new ServerMedia(directory, Guid.NewGuid(), 0, ArchiveDirectory)
            {
                FileName = fileName, MediaName = fileName, TcStart = TimeSpan.Zero, TcPlay = TimeSpan.Zero, Duration = timeLimit, MediaStatus = TMediaStatus.Copying, LastUpdated = DateTime.UtcNow, MediaType = TMediaType.Movie
            };

            if (_recorder?.Capture(channel.Id, timeLimit.ToSMPTEFrames(channel.VideoFormat), narrowMode, fileName) == true)
            {
                RecordingMedia    = newMedia;
                CaptureFileName   = fileName;
                CaptureTcIn       = TimeSpan.Zero;
                CaptureTcOut      = TimeSpan.Zero;
                CaptureTimeLimit  = timeLimit;
                CaptureNarrowMode = narrowMode;
                return(newMedia);
            }
            return(null);
        }
예제 #17
0
 /// <summary>
 /// Constructor for child events
 /// </summary>
 /// <param name="aEvent"></param>
 /// <param name="parent"></param>
 protected EventPanelViewmodelBase(IEvent aEvent, EventPanelViewmodelBase parent)
 {
     if (aEvent == null) // dummy child
     {
         return;
     }
     Engine       = aEvent.Engine;
     _videoFormat = Engine.VideoFormat;
     Event        = aEvent;
     if (parent != null)
     {
         _parent         = parent;
         Root            = parent.Root;
         EngineViewmodel = parent.EngineViewmodel;
         Level           = parent.Level + 1;
         if (aEvent.SubEventsCount > 0)
         {
             Childrens.Add(DummyChild);
         }
     }
     Event.PropertyChanged += OnEventPropertyChanged;
 }
 /// <summary>
 /// Constructor for child events
 /// </summary>
 /// <param name="aEvent"></param>
 /// <param name="parent"></param>
 protected EventPanelViewmodelBase(IEvent aEvent, EventPanelViewmodelBase parent) : base()
 {
     if (aEvent == null) // dummy child
     {
         return;
     }
     _engine      = aEvent.Engine;
     _videoFormat = _engine.VideoFormat;
     _event       = aEvent;
     if (parent != null)
     {
         _parent          = parent;
         _root            = parent._root;
         _engineViewmodel = parent._engineViewmodel;
         _level           = (_parent == null) ? 0 : _parent._level + 1;
         if (aEvent.SubEventsCount > 0)
         {
             _childrens.Add(DummyChild);
         }
     }
     _event.PropertyChanged += OnEventPropertyChanged;
     _event.SubEventChanged += OnSubeventChanged;
     _event.Relocated       += OnRelocated;
 }
 private VideoFormatDescription(TVideoFormat format)
 {
     this.Format = format;
     switch (format)
     {
         case TVideoFormat.PAL_FHA:
             Interlaced = true;
             ImageSize = new Size(720, 576);
             FrameRate = new RationalNumber(25, 1);
             SAR = new RationalNumber(64, 45);
             break;
         case TVideoFormat.PAL:
             Interlaced = true;
             ImageSize = new Size(720, 576);
             FrameRate = new RationalNumber(25, 1);
             SAR = new RationalNumber(16, 15);
             break;
         case TVideoFormat.PAL_FHA_P:
             Interlaced = false;
             ImageSize = new Size(720, 576);
             FrameRate = new RationalNumber(25, 1);
             SAR = new RationalNumber(64, 45);
             break;
         case TVideoFormat.PAL_P:
             Interlaced = false;
             ImageSize = new Size(720, 576);
             FrameRate = new RationalNumber(25, 1);
             SAR = new RationalNumber(16, 15);
             break;
         case TVideoFormat.NTSC_FHA:
             Interlaced = true;
             ImageSize = new Size(640, 486);
             FrameRate = new RationalNumber(30, 1);
             SAR = new RationalNumber(40, 33);
             break;
         case TVideoFormat.NTSC:
             Interlaced = true;
             ImageSize = new Size(640, 486);
             FrameRate = new RationalNumber(30, 1);
             SAR = new RationalNumber(10, 11);
             break;
         case TVideoFormat.HD1080i5000:
             Interlaced = true;
             ImageSize = new Size(1920, 1080);
             FrameRate = new RationalNumber(25, 1);
             SAR = new RationalNumber(1, 1);
             break;
         case TVideoFormat.HD1080i5994:
             Interlaced = true;
             ImageSize = new Size(1920, 1080);
             FrameRate = new RationalNumber(2997, 100);
             SAR = new RationalNumber(1, 1);
             break;
         case TVideoFormat.HD1080i6000:
             Interlaced = true;
             ImageSize = new Size(1920, 1080);
             FrameRate = new RationalNumber(30, 1);
             SAR = new RationalNumber(1, 1);
             break;
         case TVideoFormat.HD1080p2398:
             Interlaced = false;
             ImageSize = new Size(1920, 1080);
             FrameRate = new RationalNumber(2398, 100);
             SAR = new RationalNumber(1, 1);
             break;
         case TVideoFormat.HD1080p2400:
             Interlaced = false;
             ImageSize = new Size(1920, 1080);
             FrameRate = new RationalNumber(24, 1);
             SAR = new RationalNumber(1, 1);
             break;
         case TVideoFormat.HD1080p2500:
             Interlaced = false;
             ImageSize = new Size(1920, 1080);
             FrameRate = new RationalNumber(25, 1);
             SAR = new RationalNumber(1, 1);
             break;
         case TVideoFormat.HD1080p2997:
             Interlaced = false;
             ImageSize = new Size(1920, 1080);
             FrameRate = new RationalNumber(2997, 100);
             SAR = new RationalNumber(1, 1);
             break;
         case TVideoFormat.HD1080p3000:
             Interlaced = false;
             ImageSize = new Size(1920, 1080);
             FrameRate = new RationalNumber(30, 1);
             SAR = new RationalNumber(1, 1);
             break;
         case TVideoFormat.HD1080p5000:
             Interlaced = false;
             ImageSize = new Size(1920, 1080);
             FrameRate = new RationalNumber(50, 1);
             SAR = new RationalNumber(1, 1);
             break;
         case TVideoFormat.HD1080p5994:
             Interlaced = false;
             ImageSize = new Size(1920, 1080);
             FrameRate = new RationalNumber(5994, 100);
             SAR = new RationalNumber(1, 1);
             break;
         case TVideoFormat.HD1080p6000:
             Interlaced = false;
             ImageSize = new Size(1920, 1080);
             FrameRate = new RationalNumber(60, 1);
             SAR = new RationalNumber(1, 1);
             break;
         case TVideoFormat.HD2160p2398:
             Interlaced = false;
             ImageSize = new Size(3840, 2160);
             FrameRate = new RationalNumber(2398, 100);
             SAR = new RationalNumber(1, 1);
             break;
         case TVideoFormat.HD2160p2400:
             Interlaced = false;
             ImageSize = new Size(3840, 2160);
             FrameRate = new RationalNumber(24, 1);
             SAR = new RationalNumber(1, 1);
             break;
         case TVideoFormat.HD2160p2500:
             Interlaced = false;
             ImageSize = new Size(3840, 2160);
             FrameRate = new RationalNumber(25, 1);
             SAR = new RationalNumber(1, 1);
             break;
         case TVideoFormat.HD2160p2997:
             Interlaced = false;
             ImageSize = new Size(3840, 2160);
             FrameRate = new RationalNumber(2997, 100);
             SAR = new RationalNumber(1, 1);
             break;
         case TVideoFormat.HD2160p3000:
             Interlaced = false;
             ImageSize = new Size(3840, 2160);
             FrameRate = new RationalNumber(30, 1);
             SAR = new RationalNumber(1, 1);
             break;
         case TVideoFormat.HD720p2500:
             Interlaced = false;
             ImageSize = new Size(1440, 720);
             FrameRate = new RationalNumber(25, 1);
             SAR = new RationalNumber(1, 1);
             break;
         case TVideoFormat.HD720p5000:
             Interlaced = false;
             ImageSize = new Size(1440, 720);
             FrameRate = new RationalNumber(50, 1);
             SAR = new RationalNumber(1, 1);
             break;
         case TVideoFormat.HD720p5994:
             Interlaced = false;
             ImageSize = new Size(1440, 720);
             FrameRate = new RationalNumber(5994, 100);
             SAR = new RationalNumber(1, 1);
             break;
         case TVideoFormat.HD720p6000:
             Interlaced = false;
             ImageSize = new Size(1440, 720);
             FrameRate = new RationalNumber(60, 1);
             SAR = new RationalNumber(1, 1);
             break;
     }
 }
예제 #20
0
 public void GoToTimecode(TimeSpan tc, TVideoFormat format)
 {
     _recorder?.GotoTimecode(tc.ToSMPTETimecodeString(format));
 }
예제 #21
0
 public void GoToTimecode(TimeSpan tc, TVideoFormat format)
 {
     Invoke(parameters: new { tc, format });
 }
예제 #22
0
        internal IConvertOperation CreateConvertOperation(IMedia sourceMedia, IMediaProperties destMediaProperties, IMediaDirectory destDirectory, TVideoFormat outputFormat, decimal audioVolume, TFieldOrder sourceFieldOrderEnforceConversion, TAspectConversion aspectConversion, bool loudnessCheck)
        {
            IConvertOperation result = _fileManager.CreateConvertOperation();

            result.SourceMedia         = sourceMedia;
            result.DestMediaProperties = destMediaProperties;
            result.DestDirectory       = destDirectory;
            result.AudioVolume         = audioVolume;
            result.SourceFieldOrderEnforceConversion = sourceFieldOrderEnforceConversion;
            result.AspectConversion = aspectConversion;
            result.StartTC          = sourceMedia.TcPlay;
            result.Duration         = sourceMedia.DurationPlay;
            result.LoudnessCheck    = loudnessCheck;
            return(result);
        }
 public static bool IsWideScreen(this TVideoFormat videoFormat)
 {
     return(videoFormat != TVideoFormat.NTSC &&
            videoFormat != TVideoFormat.PAL &&
            videoFormat != TVideoFormat.PAL_P);
 }
 private VideoFormatDescription(Size imageSize, RationalNumber frameRate, RationalNumber sar, bool interlaced)
 {
     Format = TVideoFormat.Other;
     Interlaced = interlaced;
     ImageSize = imageSize;
     FrameRate = frameRate;
     SAR = sar;
 }
        public MediaSearchViewmodel(EngineViewmodel engineVM, TMediaType mediaType, bool closeAfterAdd, TVideoFormat? videoFormat)
        {
            _manager = engineVM.Engine.MediaManager;
            _previewViewmodel = engineVM.PreviewViewmodel;
            if (_previewViewmodel != null)
                _previewViewmodel.PropertyChanged += OnPreviewPropertyChanged;
            _mediaType = mediaType;
            if (mediaType == TMediaType.AnimationFlash)
                _searchDirectory = _manager.AnimationDirectoryPGM;
            else
                _searchDirectory = _manager.MediaDirectoryPGM;
            _searchDirectory.MediaAdded += new EventHandler<MediaEventArgs>(_searchDirectory_MediaAdded);
            _searchDirectory.MediaRemoved += new EventHandler<MediaEventArgs>(_searchDirectory_MediaRemoved);
            _searchDirectory.MediaVerified += new EventHandler<MediaEventArgs>(_searchDirectory_MediaVerified);

            _videoFormat = videoFormat;
            _closeAfterAdd = closeAfterAdd;
            _mediaCategory = MediaCategories.FirstOrDefault();
            NewEventStartType = TStartType.After;
            if (!closeAfterAdd)
                OkButtonText = Properties.Resources._button_Add;
            _createCommands();
            _items = new ObservableCollection<MediaViewViewmodel>(_searchDirectory.Files
                .Where(m=> m.MediaType == mediaType && (videoFormat == null || m.VideoFormat == videoFormat))
                .Select(m => new MediaViewViewmodel(m)));
            _itemsView = CollectionViewSource.GetDefaultView(_items);
            _itemsView.SortDescriptions.Add(new SortDescription("MediaName", ListSortDirection.Ascending));
            _itemsView.Filter += _itemsFilter;

            _window = new MediaSearchView();
            _window.Owner = App.Current.MainWindow;
            _window.DataContext = this;
            _window.Closed += _windowClosed;
            _window.Show();
            //_window.Topmost = true;
        }
예제 #26
0
        private VideoFormatDescription(TVideoFormat format)
        {
            Format = format;
            switch (format)
            {
            case TVideoFormat.Other:
            case TVideoFormat.PAL_FHA:
                Interlaced   = true;
                ImageSize    = new Size(720, 576);
                FrameRate    = new RationalNumber(25, 1);
                SAR          = new RationalNumber(64, 45);
                IsWideScreen = true;
                break;

            case TVideoFormat.PAL:
                Interlaced   = true;
                ImageSize    = new Size(720, 576);
                FrameRate    = new RationalNumber(25, 1);
                SAR          = new RationalNumber(16, 15);
                IsWideScreen = false;
                break;

            case TVideoFormat.PAL_FHA_P:
                Interlaced   = false;
                ImageSize    = new Size(720, 576);
                FrameRate    = new RationalNumber(25, 1);
                SAR          = new RationalNumber(64, 45);
                IsWideScreen = true;
                break;

            case TVideoFormat.PAL_P:
                Interlaced   = false;
                ImageSize    = new Size(720, 576);
                FrameRate    = new RationalNumber(25, 1);
                SAR          = new RationalNumber(16, 15);
                IsWideScreen = false;
                break;

            case TVideoFormat.NTSC_FHA:
                Interlaced   = true;
                ImageSize    = new Size(720, 480);
                FrameRate    = new RationalNumber(30000, 1001);
                SAR          = new RationalNumber(32, 27);
                IsWideScreen = true;
                break;

            case TVideoFormat.NTSC:
                Interlaced   = true;
                ImageSize    = new Size(720, 480);
                FrameRate    = new RationalNumber(30000, 1001);
                SAR          = new RationalNumber(8, 9);
                IsWideScreen = false;
                break;

            case TVideoFormat.HD1080i5000:
                Interlaced   = true;
                ImageSize    = new Size(1920, 1080);
                FrameRate    = new RationalNumber(25, 1);
                SAR          = new RationalNumber(1, 1);
                IsWideScreen = true;
                break;

            case TVideoFormat.HD1080i5994:
                Interlaced   = true;
                ImageSize    = new Size(1920, 1080);
                FrameRate    = new RationalNumber(30000, 1001);
                SAR          = new RationalNumber(1, 1);
                IsWideScreen = true;
                break;

            case TVideoFormat.HD1080i6000:
                Interlaced   = true;
                ImageSize    = new Size(1920, 1080);
                FrameRate    = new RationalNumber(30, 1);
                SAR          = new RationalNumber(1, 1);
                IsWideScreen = true;
                break;

            case TVideoFormat.HD1080p2398:
                Interlaced   = false;
                ImageSize    = new Size(1920, 1080);
                FrameRate    = new RationalNumber(2398, 100);
                SAR          = new RationalNumber(1, 1);
                IsWideScreen = true;
                break;

            case TVideoFormat.HD1080p2400:
                Interlaced   = false;
                ImageSize    = new Size(1920, 1080);
                FrameRate    = new RationalNumber(24, 1);
                SAR          = new RationalNumber(1, 1);
                IsWideScreen = true;
                break;

            case TVideoFormat.HD1080p2500:
                Interlaced   = false;
                ImageSize    = new Size(1920, 1080);
                FrameRate    = new RationalNumber(25, 1);
                SAR          = new RationalNumber(1, 1);
                IsWideScreen = true;
                break;

            case TVideoFormat.HD1080p2997:
                Interlaced   = false;
                ImageSize    = new Size(1920, 1080);
                FrameRate    = new RationalNumber(30000, 1001);
                SAR          = new RationalNumber(1, 1);
                IsWideScreen = true;
                break;

            case TVideoFormat.HD1080p3000:
                Interlaced   = false;
                ImageSize    = new Size(1920, 1080);
                FrameRate    = new RationalNumber(30, 1);
                SAR          = new RationalNumber(1, 1);
                IsWideScreen = true;
                break;

            case TVideoFormat.HD1080p5000:
                Interlaced   = false;
                ImageSize    = new Size(1920, 1080);
                FrameRate    = new RationalNumber(50, 1);
                SAR          = new RationalNumber(1, 1);
                IsWideScreen = true;
                break;

            case TVideoFormat.HD1080p5994:
                Interlaced   = false;
                ImageSize    = new Size(1920, 1080);
                FrameRate    = new RationalNumber(5994, 100);
                SAR          = new RationalNumber(1, 1);
                IsWideScreen = true;
                break;

            case TVideoFormat.HD1080p6000:
                Interlaced   = false;
                ImageSize    = new Size(1920, 1080);
                FrameRate    = new RationalNumber(60, 1);
                SAR          = new RationalNumber(1, 1);
                IsWideScreen = true;
                break;

            case TVideoFormat.HD2160p2398:
                Interlaced   = false;
                ImageSize    = new Size(3840, 2160);
                FrameRate    = new RationalNumber(2398, 100);
                SAR          = new RationalNumber(1, 1);
                IsWideScreen = true;
                break;

            case TVideoFormat.HD2160p2400:
                Interlaced   = false;
                ImageSize    = new Size(3840, 2160);
                FrameRate    = new RationalNumber(24, 1);
                SAR          = new RationalNumber(1, 1);
                IsWideScreen = true;
                break;

            case TVideoFormat.HD2160p2500:
                Interlaced   = false;
                ImageSize    = new Size(3840, 2160);
                FrameRate    = new RationalNumber(25, 1);
                SAR          = new RationalNumber(1, 1);
                IsWideScreen = true;
                break;

            case TVideoFormat.HD2160p2997:
                Interlaced   = false;
                ImageSize    = new Size(3840, 2160);
                FrameRate    = new RationalNumber(30000, 1001);
                SAR          = new RationalNumber(1, 1);
                IsWideScreen = true;
                break;

            case TVideoFormat.HD2160p3000:
                Interlaced   = false;
                ImageSize    = new Size(3840, 2160);
                FrameRate    = new RationalNumber(30, 1);
                SAR          = new RationalNumber(1, 1);
                IsWideScreen = true;
                break;

            case TVideoFormat.HD2160p5000:
                Interlaced   = false;
                ImageSize    = new Size(3840, 2160);
                FrameRate    = new RationalNumber(50, 1);
                SAR          = new RationalNumber(1, 1);
                IsWideScreen = true;
                break;

            case TVideoFormat.HD2160p5994:
                Interlaced   = false;
                ImageSize    = new Size(3840, 2160);
                FrameRate    = new RationalNumber(5994, 100);
                SAR          = new RationalNumber(1, 1);
                IsWideScreen = true;
                break;

            case TVideoFormat.HD2160p6000:
                Interlaced   = false;
                ImageSize    = new Size(3840, 2160);
                FrameRate    = new RationalNumber(60, 1);
                SAR          = new RationalNumber(1, 1);
                IsWideScreen = true;
                break;

            case TVideoFormat.HD720p2500:
                Interlaced   = false;
                ImageSize    = new Size(1440, 720);
                FrameRate    = new RationalNumber(25, 1);
                SAR          = new RationalNumber(1, 1);
                IsWideScreen = true;
                break;

            case TVideoFormat.HD720p5000:
                Interlaced   = false;
                ImageSize    = new Size(1440, 720);
                FrameRate    = new RationalNumber(50, 1);
                SAR          = new RationalNumber(1, 1);
                IsWideScreen = true;
                break;

            case TVideoFormat.HD720p5994:
                Interlaced   = false;
                ImageSize    = new Size(1440, 720);
                FrameRate    = new RationalNumber(5994, 100);
                SAR          = new RationalNumber(1, 1);
                IsWideScreen = true;
                break;

            case TVideoFormat.HD720p6000:
                Interlaced   = false;
                ImageSize    = new Size(1440, 720);
                FrameRate    = new RationalNumber(60, 1);
                SAR          = new RationalNumber(1, 1);
                IsWideScreen = true;
                break;
            }
        }