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)); }
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); }
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)); }
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)); }
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; }
/// <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; }
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); }
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); }
public static VideoFormatDescription FormatDescription(this IMedia media) { TVideoFormat format = media.VideoFormat; if (!Enum.IsDefined(typeof(TVideoFormat), format)) { format = TVideoFormat.Other; } return(VideoFormatDescription.Descriptions[format]); }
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); }
/// <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; } }
public void GoToTimecode(TimeSpan tc, TVideoFormat format) { _recorder?.GotoTimecode(tc.ToSMPTETimecodeString(format)); }
public void GoToTimecode(TimeSpan tc, TVideoFormat format) { Invoke(parameters: new { tc, format }); }
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; }
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; } }