public void ShouldRemoveAudioStreamFromSequenceAudioStreamsWhenExecutingAudioSequenceSelectionChangedCommandWithPreviouslySelectedAudio() { var viewModel = this.CreateViewModel(); SmoothStreamingVideoAsset smoothStreamingVideoAsset = new SmoothStreamingVideoAsset(); var spanishAudioStream = new AudioStream("audio_es", false); var englishAudioStream = new AudioStream("audio_en", false); smoothStreamingVideoAsset.AudioStreams.Add(spanishAudioStream); smoothStreamingVideoAsset.AudioStreams.Add(englishAudioStream); VideoAssetInOut videoInOut = new VideoAssetInOut(smoothStreamingVideoAsset); viewModel.VideoAssetInOut = videoInOut; viewModel.Asset = smoothStreamingVideoAsset; Assert.AreEqual(1, viewModel.VideoAssetInOut.SequenceAudioStreams.Count); viewModel.AudioSequenceSelectionChangedCommand.Execute( new StreamOption { Name = "audio_en", SequenceSelected = true }); Assert.AreEqual(2, viewModel.VideoAssetInOut.SequenceAudioStreams.Count); viewModel.AudioSequenceSelectionChangedCommand.Execute(new StreamOption { Name = "audio_en", SequenceSelected = false }); Assert.AreEqual(1, viewModel.VideoAssetInOut.SequenceAudioStreams.Count); }
public void ShouldChangeVideoAssetInOutPreviewAudioStreamWhenExecutingAudioPreviewSelectionChangedCommand() { var viewModel = this.CreateViewModel(); VideoAssetInOut videoInOut = new VideoAssetInOut(new VideoAsset()); SmoothStreamingVideoAsset smoothStreamingVideoAsset = new SmoothStreamingVideoAsset(); AudioStream spanishPreviewStream = new AudioStream("audio_es", true); AudioStream englishPreviewStream = new AudioStream("audio_es", true); smoothStreamingVideoAsset.AudioStreams.Add(spanishPreviewStream); smoothStreamingVideoAsset.AudioStreams.Add(englishPreviewStream); viewModel.VideoAssetInOut = videoInOut; viewModel.Asset = smoothStreamingVideoAsset; Assert.AreSame(spanishPreviewStream, viewModel.VideoAssetInOut.PreviewAudioStream); viewModel.AudioPreviewSelectionChangedCommand.Execute( new StreamOption { Name = "audio_es", PreviewSelected = false }); Assert.IsNotNull(viewModel.VideoAssetInOut.PreviewAudioStream); Assert.AreEqual("audio_es", viewModel.VideoAssetInOut.PreviewAudioStream.Name); Assert.IsTrue(viewModel.VideoAssetInOut.PreviewAudioStream.IsStereo); }
public void BeginManifestGeneration(Action <IDictionary <Track, string> > callback) { bool downloadIsInProgress = false; this.actionCallback = callback; this.startedAllDownloads = false; if (this.sequenceRegistry.CurrentSequenceModel != null) { if (!this.treatGapsAsError && !this.streamsByUri.ContainsKey(this.gapUri)) { this.pendingDownloads.Add(this.gapUri); this.downloaderManager.DownloadManifestAsync(this.gapUri, true, null); downloadIsInProgress = true; } var tracks = this.sequenceRegistry.CurrentSequenceModel.Tracks.Where( t => (t.TrackType == TrackType.Visual || t.TrackType == TrackType.Audio) && t.Shots.Count > 0); // for each track get all elements and start downloading. foreach (var track in tracks) { foreach (TimelineElement shot in track.Shots) { VideoAssetInOut assetInOut = shot.Asset as VideoAssetInOut; bool canProcess = (assetInOut != null) ? (assetInOut.VideoAsset is SmoothStreamingVideoAsset) : (shot.Asset is SmoothStreamingVideoAsset || shot.Asset is SmoothStreamingAudioAsset); if (!(this.streamsByUri.ContainsKey(shot.Asset.Source) || this.pendingDownloads.Contains(shot.Asset.Source)) && canProcess) { this.pendingDownloads.Add(shot.Asset.Source); this.downloaderManager.DownloadManifestAsync(shot.Asset.Source, true, null); downloadIsInProgress = true; } } } } this.startedAllDownloads = true; if (this.CanGenerateManifest() && !downloadIsInProgress) { this.GenerateManifest(); } }
/// <summary> /// Adds the asset to timeline. /// </summary> private void AddAssetToTimeline() { Asset selectedAsset = this.AssetsList.SelectedItem as Asset; if (selectedAsset != null && !(selectedAsset is FolderAsset)) { if (selectedAsset is VideoAsset) { // VideoPreview preview = this.AssetsList.GetChildControls<VideoPreview>().Where(x => x.Asset == selectedAsset).Single(); VideoPreview preview = this.AssetsList.GetChildControls <VideoPreview>().Where(x => x.Asset == selectedAsset).Single(); VideoAsset videoAsset = selectedAsset as VideoAsset; VideoAssetInOut videoAssetInOut = new VideoAssetInOut(videoAsset); this.Model.AddAssetToTimeline(videoAssetInOut); } else { this.Model.AddAssetToTimeline(selectedAsset); } } }
public void ShouldAddMultipleAudioStreamsToSequenceAudioStreamsWhenExecutingAudioSequenceSelectionChangedCommandWithDifferentAudios() { var viewModel = this.CreateViewModel(); SmoothStreamingVideoAsset smoothStreamingVideoAsset = new SmoothStreamingVideoAsset(); VideoAssetInOut videoInOut = new VideoAssetInOut(smoothStreamingVideoAsset); viewModel.VideoAssetInOut = videoInOut; var audioStreamEs = new AudioStream("audio_es", false); var audioStreamEn = new AudioStream("audio_en", false); var audioStreamDirector = new AudioStream("audio_director", false); smoothStreamingVideoAsset.AudioStreams.Add(audioStreamEs); smoothStreamingVideoAsset.AudioStreams.Add(audioStreamEn); smoothStreamingVideoAsset.AudioStreams.Add(audioStreamDirector); viewModel.Asset = smoothStreamingVideoAsset; Assert.AreEqual(1, viewModel.VideoAssetInOut.SequenceAudioStreams.Count); viewModel.AudioSequenceSelectionChangedCommand.Execute( new StreamOption { Name = "audio_en", SequenceSelected = true }); Assert.AreEqual(2, viewModel.VideoAssetInOut.SequenceAudioStreams.Count); Assert.AreSame(audioStreamEn, viewModel.VideoAssetInOut.SequenceAudioStreams[1]); viewModel.AudioSequenceSelectionChangedCommand.Execute(new StreamOption { Name = "audio_director", SequenceSelected = true }); Assert.AreEqual(3, viewModel.VideoAssetInOut.SequenceAudioStreams.Count); Assert.AreSame(audioStreamDirector, viewModel.VideoAssetInOut.SequenceAudioStreams[2]); }
public void ShouldChangeSequenceVideoWhenExecutingVideoSequenceSelectionChangedCommand() { var viewModel = this.CreateViewModel(); SmoothStreamingVideoAsset smoothStreamingVideoAsset = new SmoothStreamingVideoAsset(); VideoAssetInOut videoInOut = new VideoAssetInOut(smoothStreamingVideoAsset); viewModel.VideoAssetInOut = videoInOut; smoothStreamingVideoAsset.VideoStreams.Add("camera1"); smoothStreamingVideoAsset.VideoStreams.Add("camera2"); viewModel.Asset = smoothStreamingVideoAsset; Assert.AreEqual("camera1", viewModel.VideoAssetInOut.SequenceVideoCamera); viewModel.VideoSequenceSelectionChangedCommand.Execute(new StreamOption { Name = "camera2" }); Assert.IsNotNull(viewModel.VideoAssetInOut.SequenceVideoCamera); Assert.AreEqual("camera2", viewModel.VideoAssetInOut.SequenceVideoCamera); }