public void GetMediaUri( Profile profile, VideoSourceConfiguration videoSourceConfig, VideoEncoderConfiguration videoEncoderConfig, AudioSourceConfiguration audioSourceConfig, AudioEncoderConfiguration audioEncoderConfig, TransportProtocol protocol) { RunInBackground(new Action(() => { if (profile == null) { profile = CreateProfile(TestMediaProfileName); } ConfigureProfile(profile, videoSourceConfig, videoEncoderConfig, audioSourceConfig, audioEncoderConfig); StreamSetup streamSetup = new StreamSetup(); streamSetup.Transport = new Transport(); streamSetup.Transport.Protocol = protocol; streamSetup.Stream = StreamType.RTPUnicast; MediaUri streamUri = Client.GetStreamUri(streamSetup, profile.token); if (OnMediaUriReceived != null) { OnMediaUriReceived(streamUri, videoEncoderConfig, audioEncoderConfig); } })); }
public static Model Create( string profName, string profToken, VideoSourceConfiguration videoSrcCfg, AudioSourceConfiguration audioSrcCfg, bool isVideoSrcCfgEnabled, bool isAudioSrcCfgEnabled, VideoSourceConfiguration[] videoSrcCfgs, AudioSourceConfiguration[] audioSrcCfgs ) { var _this = new Model(); _this.videoSrcCfgs = videoSrcCfgs; _this.audioSrcCfgs = audioSrcCfgs; _this.origin.profName = profName; _this.origin.profToken = profToken; _this.origin.videoSrcCfg = videoSrcCfg; _this.origin.audioSrcCfg = audioSrcCfg; _this.origin.isVideoSrcCfgEnabled = isVideoSrcCfgEnabled; _this.origin.isAudioSrcCfgEnabled = isAudioSrcCfgEnabled; _this.RevertChanges(); return(_this); }
protected void ConfigureProfile( Profile profile, VideoSourceConfiguration videoSourceConfig, VideoEncoderConfiguration videoEncoderConfig, AudioSourceConfiguration audioSourceConfig, AudioEncoderConfiguration audioEncoderConfig) { if ((profile.VideoSourceConfiguration != null) && (profile.VideoSourceConfiguration.token != videoSourceConfig.token)) { Client.RemoveVideoSourceConfiguration(profile.token); profile.VideoSourceConfiguration = null; } if (profile.VideoSourceConfiguration == null) { Client.AddVideoSourceConfiguration(profile.token, videoSourceConfig.token); } if ((profile.VideoEncoderConfiguration != null) && (profile.VideoEncoderConfiguration.token != videoEncoderConfig.token)) { Client.RemoveVideoEncoderConfiguration(profile.token); profile.VideoEncoderConfiguration = null; } if (profile.VideoEncoderConfiguration == null) { Client.AddVideoEncoderConfiguration(profile.token, videoEncoderConfig.token); } //encoder configuration can be modified - update it Client.SetVideoEncoderConfiguration(videoEncoderConfig, false); if ((profile.AudioSourceConfiguration != null) && ((audioSourceConfig == null) || (profile.AudioSourceConfiguration.token != audioSourceConfig.token))) { Client.RemoveAudioSourceConfiguration(profile.token); profile.AudioSourceConfiguration = null; } if ((profile.AudioSourceConfiguration == null) && (audioSourceConfig != null)) { Client.AddAudioSourceConfiguration(profile.token, audioSourceConfig.token); } if ((profile.AudioEncoderConfiguration != null) && ((audioEncoderConfig == null) || (profile.AudioEncoderConfiguration.token != audioEncoderConfig.token))) { Client.RemoveAudioEncoderConfiguration(profile.token); profile.AudioEncoderConfiguration = null; } if (audioEncoderConfig != null) { if ((profile.AudioEncoderConfiguration == null) && (audioEncoderConfig != null)) { Client.AddAudioEncoderConfiguration(profile.token, audioEncoderConfig.token); } //encoder configuration can be modified - update it Client.SetAudioEncoderConfiguration(audioEncoderConfig, false); } }
/// <summary> /// Get stream uri with specified configurations /// </summary> /// <param name="profile"></param> /// <param name="videoSourceConfig">Video source configuration</param> /// <param name="videoEncoderConfig">Video encoder configuration</param> /// <param name="audioSourceConfig">Audio source configuration</param> /// <param name="audioEncoderConfig">Audio encoder configuration</param> /// <param name="protocol"></param> public void GetMediaUri( Proxies.Onvif.Profile profile, VideoSourceConfiguration videoSourceConfig, VideoEncoderConfiguration videoEncoderConfig, AudioSourceConfiguration audioSourceConfig, AudioEncoderConfiguration audioEncoderConfig, TransportProtocol protocol) { if ((videoEncoderConfig == null) || (videoSourceConfig == null)) { throw new ArgumentNullException(); } string address = View.MediaAddress; _mediaClientWorking = true; InitializeMediaClient(address); _mediaClient.GetMediaUri(profile, videoSourceConfig, videoEncoderConfig, audioSourceConfig, audioEncoderConfig, protocol); }
public void VideoSourceConfigurationConsistencyTest() { RunTest(() => { // VideoSource configurations VideoSourceConfiguration[] configurations = GetVideoSourceConfigurations(); Assert(configurations != null, "DUT did not return any configuration", "Check if the DUT returned configurations"); foreach (VideoSourceConfiguration configuration in configurations) { VideoSourceConfiguration config = GetVideoSourceConfiguration(configuration.token); CompareConfigurations(configuration, config, true); } }); }
private void ok_btn_Click(object sender, RoutedEventArgs e) { if (configs != null) { // Take the video source from the info_config textbox try { VideoSourceConfiguration vsc = JsonConvert.DeserializeObject <VideoSourceConfiguration>(info_config.Text); media.SetVideoSourceConfiguration(vsc); } catch (Exception ex) { error_log.Visibility = Visibility.Visible; error_log.Content = "Error in the JSON format!"; error_log.Foreground = new SolidColorBrush(Colors.Red); return; } ConfigurationRef[] config = { new ConfigurationRef() }; config[0].Type = "VideoSource"; config[0].Token = configs[selectedIndex].token; if (!useProfileToken) { string name = profileName; profileToken = media.CreateProfile(name, config); } else { media.AddConfiguration(profileToken, profileName, config); } this.DialogResult = true; } else { this.DialogResult = false; } this.Close(); }
public void VideoSourceConfiguration() { RunTest(() => { Profile[] profiles = GetProfiles(); string reason; Profile profile; Assert( ValidateProfiles(profiles, out reason, out profile), reason, Resources.StepValidatingProfiles_Title, profile != null ? string.Format(Resources.StepValidatingProfilesDetails_Format, profile.token) : null); VideoSource[] sources = GetVideoSources(); Assert(ValidateVideoSources(sources, out reason), reason, Resources.StepValidatingVideoSources_Title); VideoSourceConfiguration[] configs = GetCompatibleVideoSourceConfigurations(profile.token); Assert(ValidateVideoSourceConfigs(configs, out reason), reason, Resources.StepValidatingVideoSourceConfigs_Title); VideoSourceConfiguration config = configs[0]; configs = GetVideoSourceConfigurations(); Assert(ValidateVideoSourceConfigs(configs, out reason), reason, Resources.StepValidatingVideoSourceConfigs_Title); VideoSourceConfigurationOptions options = GetVideoSourceConfigurationOptions(profile.token, config.token); config.Bounds.width = options.BoundsRange.WidthRange.Max; config.Bounds.height = options.BoundsRange.HeightRange.Max + 1; string details = string.Format("Setting invalid configuration (/VideoSourceConfiguration/Bounds/height = '{0}')", config.Bounds.height); SetInvalidVideoSourceConfiguration(config, false, details); config.Bounds.height = options.BoundsRange.HeightRange.Max; SetVideoSourceConfiguration(config, false); VideoSourceConfiguration newConfig = GetVideoSourceConfiguration(config.token); Assert(EqualConfigurations(config, newConfig, out reason), string.Format(Resources.ErrorVideoConfigNotEqual_Format, reason), Resources.StepCompareVideoSourceConfigs_Title); }); }
public override void SetVideoSourceConfiguration(VideoSourceConfiguration Configuration, bool ForcePersistence, ref System.Xml.XmlElement[] Any) { throw new NotImplementedException(); }
public MediaEndpoint(MediaUri uri, VideoSourceConfiguration config) { Uri = uri; Width = config.Bounds.width; Height = config.Bounds.height; }
public Task SetVideoSourceConfigurationAsync(VideoSourceConfiguration Configuration, bool ForcePersistence) { throw new NotImplementedException(); }
public void VideoSourceConfigurationAndProfileConsistencyTest() { RunTest(() => { Profile[] profiles = GetProfiles(); Assert(profiles != null, "DUT did not return any profile", "Check if the DUT returned media profiles"); // Video source configurations VideoSourceConfiguration[] configurations = GetVideoSourceConfigurations(); Assert(configurations != null, "DUT did not return any configuration", "Check if the DUT returned configurations"); // Check that each VideoSourceConfiguration from GetVideoSourceConfigurationsResponse // message has unique token. List <string> tokens = new List <string>(); List <string> duplicates = new List <string>(); foreach (VideoSourceConfiguration configuration in configurations) { if (!tokens.Contains(configuration.token)) { tokens.Add(configuration.token); } else { if (!duplicates.Contains(configuration.token)) { duplicates.Add(configuration.token); } } } if (duplicates.Count > 0) { StringBuilder sb = new StringBuilder("The following tokens are not unique: "); bool first = true; foreach (string token in duplicates) { sb.Append(first ? token : string.Format(", {0}", token)); first = false; } Assert(false, sb.ToString(), "Validate audio source configurations"); } // Check that each VideoSourceConfigurations from the GetProfilesResponse message // are included in the GetVideoSourceConfigurationsResponse message foreach (Profile profile in profiles) { if (profile.VideoSourceConfiguration != null) { string token = profile.VideoSourceConfiguration.token; VideoSourceConfiguration configuration = configurations.Where(C => C.token == token).FirstOrDefault(); Assert(configuration != null, string.Format("Video source configuration with token '{0}' not found", token), string.Format( "Check that video source configuration for profile with token '{0}' exists", profile.token)); } } // Check that VideoSourceConfiguration parameters are same in GetProfilesResponse // message and in GetAudioSourceConfigurationsResponse message for each // VideoSourceConfiguration foreach (Profile profile in profiles) { if (profile.VideoSourceConfiguration != null) { string token = profile.VideoSourceConfiguration.token; VideoSourceConfiguration configuration = configurations.Where(C => C.token == token).FirstOrDefault(); CompareConfigurations(profile.VideoSourceConfiguration, configuration, true); } } }); }
public override void SetVideoSourceConfiguration(VideoSourceConfiguration Configuration) { throw new NotImplementedException(); }