コード例 #1
0
        public async Task <OnVifCameraProfile> getVideoEncodingInternalAsync(int nProfileIdx)
        {
            OnVifCameraProfile profile = getOnVifProfile(nProfileIdx);

            if (profile == null)
            {
                return(profile);
            }


            if (this.m_OnVif1Media != null)
            {
                Profile cameaProfile = getCamera1Profile(nProfileIdx);
                if (cameaProfile == null)
                {
                    return(profile);
                }
                if (cameaProfile.VideoEncoderConfiguration == null)
                {
                    return(profile);
                }

                var videoEncoderConfiguration = await this.m_OnVif1Media.getVideoEncodingsAsync(cameaProfile.VideoEncoderConfiguration.token);

                if (videoEncoderConfiguration != null)
                {
                    profile.VideoProfileEncoding.VideoEncoderConfiguration  = videoEncoderConfiguration;
                    profile.VideoProfileEncoding.VideoEncoder2Configuration = null;
                }
            }
            else if (this.m_OnVif2Media != null)
            {
                MediaProfile cameaProfile = getCamera2Profile(nProfileIdx);
                if (cameaProfile == null)
                {
                    return(profile);
                }
                if (cameaProfile.Configurations == null)
                {
                    return(profile);
                }
                if (cameaProfile.Configurations.VideoEncoder == null)
                {
                    return(profile);
                }

                //                var videoEncoderConfiguration = await this.m_OnVif2Media.getVideoEncodingsAsync(cameaProfile.Configurations.VideoEncoder.token);
                var videoEncoderConfiguration = await this.m_OnVif2Media.getVideoEncodingsAsync(cameaProfile.Configurations.VideoEncoder.token, cameaProfile.token);

                if (videoEncoderConfiguration != null)
                {
                    profile.VideoProfileEncoding.VideoEncoderConfiguration  = null;
                    profile.VideoProfileEncoding.VideoEncoder2Configuration = videoEncoderConfiguration.Configurations;
                }
            }



            return(profile);
        }
コード例 #2
0
        public async Task <OnVifCameraProfile> getVideoEncodingConfigurationOptionsInternalAsync(int nProfileIdx)
        {
            OnVifCameraProfile profile = getOnVifProfile(nProfileIdx);

            if (profile == null)
            {
                return(profile);
            }


            if (this.m_OnVif1Media != null)
            {
                Profile cameaProfile = getCamera1Profile(nProfileIdx);
                if (cameaProfile == null)
                {
                    return(profile);
                }
                if (cameaProfile.VideoEncoderConfiguration == null)
                {
                    return(profile);
                }

                var videoEncoderConfiguration = await this.m_OnVif1Media.getVideoEncodingConfigurationOptionsAsync(cameaProfile.VideoEncoderConfiguration.token);

                if (videoEncoderConfiguration != null)
                {
                    profile.VideoProfileEncodingConfiguration.VideoEncoder2ConfigurationOptions = null;
                    profile.VideoProfileEncodingConfiguration.VideoEncoderConfigurationOptions  = videoEncoderConfiguration;
                    profile.VideoProfileEncodingConfiguration = profile.VideoProfileEncodingConfiguration; // for updating RaisePropertyChanged
                }
            }
            else if (this.m_OnVif2Media != null)
            {
                MediaProfile cameaProfile = getCamera2Profile(nProfileIdx);
                if (cameaProfile == null)
                {
                    return(profile);
                }
                if (cameaProfile.Configurations == null)
                {
                    return(profile);
                }
                if (cameaProfile.Configurations.VideoEncoder == null)
                {
                    return(profile);
                }
                var videoEncoderConfiguration = await this.m_OnVif2Media.getVideoEncodingConfigurationOptionsAsync(cameaProfile.Configurations.VideoEncoder.token, cameaProfile.token);

                if (videoEncoderConfiguration != null)
                {
                    profile.VideoProfileEncodingConfiguration.VideoEncoder2ConfigurationOptions = videoEncoderConfiguration.Options;
                    profile.VideoProfileEncodingConfiguration.VideoEncoderConfigurationOptions  = null;
                    profile.VideoProfileEncodingConfiguration = profile.VideoProfileEncodingConfiguration; // for updating RaisePropertyChanged
                }
            }



            return(profile);
        }
コード例 #3
0
        public async Task <OnVifCameraProfile> getAudioEncodingConfigurationOptionsInternalAsync(int nProfileIdx)
        {
            OnVifCameraProfile profile = getOnVifProfile(nProfileIdx);

            if (profile == null)
            {
                return(profile);
            }


            if (this.m_OnVif1Media != null)
            {
                Profile cameaProfile = getCamera1Profile(nProfileIdx);
                if (cameaProfile == null)
                {
                    return(profile);
                }
                if (cameaProfile.AudioEncoderConfiguration == null)
                {
                    return(profile);
                }

                var AudioEncoderConfiguration = await m_OnVif1Media.getAudioEncodingConfigurationOptionsAsync(cameaProfile.AudioEncoderConfiguration.token);

                if (AudioEncoderConfiguration != null)
                {
                    profile.AudioProfileEncodingConfiguration.Options  = AudioEncoderConfiguration.Options;
                    profile.AudioProfileEncodingConfiguration.Options2 = null;;
                }
            }
            else if (this.m_OnVif2Media != null)
            {
                MediaProfile cameaProfile = getCamera2Profile(nProfileIdx);
                if (cameaProfile == null)
                {
                    return(profile);
                }
                if (cameaProfile.Configurations == null)
                {
                    return(profile);
                }
                if (cameaProfile.Configurations.AudioEncoder == null)
                {
                    return(profile);
                }
                var AudioEncoderConfiguration = await m_OnVif2Media.getAudioEncodingConfigurationOptionsAsync(cameaProfile.Configurations.AudioEncoder.token, cameaProfile.token);

                if (AudioEncoderConfiguration != null)
                {
                    profile.AudioProfileEncodingConfiguration.Options  = null;
                    profile.AudioProfileEncodingConfiguration.Options2 = AudioEncoderConfiguration.Options;
                }
            }



            return(profile);
        }
コード例 #4
0
        public OnVifCameraProfile getOnVifProfile(int nProfileIdx)
        {
            OnVifCameraProfile profile = null;

            if (nProfileIdx < this.m_ProfileEncodings.Count)
            {
                profile = this.m_ProfileEncodings[nProfileIdx];
            }
            return(profile);
        }
コード例 #5
0
        public IList <OnVifCameraProfile> createProfiles()
        {
            this.m_ProfileEncodings.Clear();

            for (int i = 0; i < this.getNummberOfProfileTokens(); i++)
            {
                OnVifCameraProfile profile = new OnVifCameraProfile(i);
                this.m_ProfileEncodings.Add(profile);
            }

            return(this.m_ProfileEncodings);
        }
コード例 #6
0
        public async Task <IDictionary <string, IList <string> > > ReadMediaUrisAsync(int nProfileIdx)
        {
            Dictionary <string, IList <string> > profileUrls = new Dictionary <string, IList <string> >();
            OnVifCameraProfile profile = getOnVifProfile(nProfileIdx);

            if (profile == null)
            {
                return(profileUrls);
            }


            if (this.m_OnVif1Media != null)
            {
                Profile cameaProfile = getCamera1Profile(nProfileIdx);
                if (cameaProfile == null)
                {
                    return(profileUrls);
                }

                IList <string> urlList = await this.m_OnVif1Media.getStreamURIAsync(cameaProfile.token);

                if (urlList != null)
                {
                    profileUrls.Add(cameaProfile.Name, urlList);
                }
            }
            else if (this.m_OnVif2Media != null)
            {
                MediaProfile cameaProfile = getCamera2Profile(nProfileIdx);
                if (cameaProfile == null)
                {
                    return(profileUrls);
                }

                IList <string> urlList = await this.m_OnVif2Media.getStreamURIAsync(cameaProfile.token);

                if (urlList != null)
                {
                    profileUrls.Add(cameaProfile.Name, urlList);
                }
            }


            return(profileUrls);
        }
コード例 #7
0
        public async Task <Boolean> writeAudioEncodingInternalAsync(int nProfileIdx)
        {
            OnVifCameraProfile profile = getOnVifProfile(nProfileIdx);

            if (profile == null)
            {
                return(false);
            }

            Boolean written = false;

            if (this.m_OnVif1Media != null)
            {
                Profile cameaProfile = getCamera1Profile(nProfileIdx);
                if (cameaProfile == null)
                {
                    return(false);
                }
                if (cameaProfile.VideoEncoderConfiguration == null)
                {
                    return(false);
                }

                var AudioEncoderConfiguration = await this.m_OnVif1Media.getAudioEncodingsAsync(cameaProfile.VideoEncoderConfiguration.token);

                if (AudioEncoderConfiguration != null)
                {
                    AudioEncoderConfiguration.Bitrate    = profile.AudioProfileEncoding.Bitrate;
                    AudioEncoderConfiguration.SampleRate = profile.AudioProfileEncoding.SampleRate;

                    written = await this.m_OnVif1Media.SetAudioEncodingsAsync(AudioEncoderConfiguration);

                    profile.IsVideoProfileChanged = written;
                }
            }
            else if (this.m_OnVif2Media != null)
            {
                MediaProfile cameaProfile = getCamera2Profile(nProfileIdx);
                if (cameaProfile == null)
                {
                    return(false);
                }
                if (cameaProfile.Configurations == null)
                {
                    return(false);
                }
                if (cameaProfile.Configurations.AudioEncoder == null)
                {
                    return(false);
                }

                var AudioEncoderConfiguration = await this.m_OnVif2Media.getAudioEncodingsAsync(cameaProfile.Configurations.AudioEncoder.token, cameaProfile.token);

                if (AudioEncoderConfiguration != null)
                {
                    OnVifServices.OnvifMedia20.AudioEncoder2Configuration findencoding = null;
                    if (AudioEncoderConfiguration.Configurations.Length > 0)
                    {
                        findencoding = AudioEncoderConfiguration.Configurations[0];
                    }

                    if (findencoding != null)
                    {
                        findencoding.Bitrate    = profile.AudioProfileEncoding.Bitrate;
                        findencoding.SampleRate = profile.AudioProfileEncoding.SampleRate;
                        written = await this.m_OnVif2Media.SetAudioEncodingsAsync(findencoding);

                        profile.IsAudioProfileChanged = written;
                    }
                }
            }



            return(written);
        }
コード例 #8
0
        public async Task <Boolean> writeVideoEncodingInternalAsync(int nProfileIdx)
        {
            OnVifCameraProfile profile = getOnVifProfile(nProfileIdx);

            if (profile == null)
            {
                return(false);
            }

            Boolean written = false;

            if (this.m_OnVif1Media != null)
            {
                Profile cameaProfile = getCamera1Profile(nProfileIdx);
                if (cameaProfile == null)
                {
                    return(false);
                }

                var videoEncoderConfiguration = await this.m_OnVif1Media.getVideoEncodingsAsync(cameaProfile.VideoEncoderConfiguration.token);

                if (videoEncoderConfiguration != null)
                {
                    videoEncoderConfiguration.Resolution.Height = profile.VideoProfileEncoding.Resolution.Height;
                    videoEncoderConfiguration.Resolution.Width  = profile.VideoProfileEncoding.Resolution.Width;

                    videoEncoderConfiguration.RateControl.BitrateLimit     = profile.VideoProfileEncoding.BitrateLimit;
                    videoEncoderConfiguration.RateControl.FrameRateLimit   = (int)profile.VideoProfileEncoding.FrameRateLimit;
                    videoEncoderConfiguration.RateControl.EncodingInterval = profile.VideoProfileEncoding.EncodingInterval;

                    written = await this.m_OnVif1Media.SetVideoEncodingsAsync(videoEncoderConfiguration);

                    profile.IsVideoProfileChanged = !written;
                }
            }
            else if (this.m_OnVif2Media != null)
            {
                MediaProfile cameaProfile = getCamera2Profile(nProfileIdx);
                if (cameaProfile == null)
                {
                    return(false);
                }
                if (cameaProfile.Configurations == null)
                {
                    return(false);
                }
                if (cameaProfile.Configurations.VideoEncoder == null)
                {
                    return(false);
                }

                var videoEncoderConfiguration = await this.m_OnVif2Media.getVideoEncodingsAsync(cameaProfile.Configurations.VideoEncoder.token, cameaProfile.token);

                if (videoEncoderConfiguration != null)
                {
                    OnVifServices.OnvifMedia20.VideoEncoder2Configuration findencoding = null;
                    if (videoEncoderConfiguration.Configurations.Length > 0)
                    {
                        findencoding = videoEncoderConfiguration.Configurations[0];
                    }

                    if (findencoding != null)
                    {
                        findencoding.GovLength          = profile.VideoProfileEncoding.GovLength;
                        findencoding.GovLengthSpecified = profile.VideoProfileEncoding.GovLengthSpecified;
                        findencoding.Resolution.Height  = profile.VideoProfileEncoding.Resolution.Height;
                        findencoding.Resolution.Width   = profile.VideoProfileEncoding.Resolution.Width;

                        findencoding.RateControl.ConstantBitRateSpecified = profile.VideoProfileEncoding.ConstantBitRateSpecified;
                        findencoding.RateControl.ConstantBitRate          = profile.VideoProfileEncoding.ConstantBitRate;
                        findencoding.RateControl.BitrateLimit             = profile.VideoProfileEncoding.BitrateLimit;
                        findencoding.RateControl.FrameRateLimit           = profile.VideoProfileEncoding.FrameRateLimit;

                        findencoding.Resolution.Height = profile.VideoProfileEncoding.Resolution.Height;
                        findencoding.Resolution.Width  = profile.VideoProfileEncoding.Resolution.Width;

                        written = await this.m_OnVif2Media.SetVideoEncodingsAsync(findencoding);

                        profile.IsVideoProfileChanged = !written;
                    }
                }
            }



            return(written);
        }