Example #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);
        }
Example #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);
        }
Example #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);
        }
        public async Task <IActionResult> CreatePost(MediaProfileViewModel model, string submit)
        {
            if (!await _authorizationService.AuthorizeAsync(User, Permissions.ManageMediaProfiles))
            {
                return(Forbid());
            }

            if (ModelState.IsValid)
            {
                if (String.IsNullOrWhiteSpace(model.Name))
                {
                    ModelState.AddModelError(nameof(MediaProfileViewModel.Name), S["The name is mandatory."]);
                }
                else
                {
                    var mediaProfilesDocument = await _mediaProfilesManager.GetMediaProfilesDocumentAsync();

                    if (mediaProfilesDocument.MediaProfiles.ContainsKey(model.Name))
                    {
                        ModelState.AddModelError(nameof(MediaProfileViewModel.Name), S["A profile with the same name already exists."]);
                    }
                }
            }

            if (ModelState.IsValid)
            {
                var isCustomWidth  = model.SelectedWidth != 0 && Array.BinarySearch <int>(_mediaOptions.SupportedSizes, model.SelectedWidth) < 0;
                var isCustomHeight = model.SelectedHeight != 0 && Array.BinarySearch <int>(_mediaOptions.SupportedSizes, model.SelectedHeight) < 0;

                var mediaProfile = new MediaProfile
                {
                    Hint            = model.Hint,
                    Width           = isCustomWidth ? model.CustomWidth : model.SelectedWidth,
                    Height          = isCustomHeight ? model.CustomHeight : model.SelectedHeight,
                    Mode            = model.SelectedMode,
                    Format          = model.SelectedFormat,
                    Quality         = model.Quality,
                    BackgroundColor = model.BackgroundColor
                };

                await _mediaProfilesManager.UpdateMediaProfileAsync(model.Name, mediaProfile);

                if (submit == "SaveAndContinue")
                {
                    return(RedirectToAction(nameof(Edit), new { name = model.Name }));
                }
                else
                {
                    return(RedirectToAction(nameof(Index)));
                }
            }

            // If we got this far, something failed, redisplay form
            BuildViewModel(model);

            return(View(model));
        }
Example #5
0
        private void MoveMediaFile(MediaProfile media)
        {
            var path = media.ArchivePath.StartsWith("/") ? media.ArchivePath : string.Format("{0}/{1}", _uploadFolder, media.ArchivePath);

            _mediaArchive.EnsureFolderExists(path, MediaArchiveImpl.DefaultFolderTemplate);
            var targetFolder = _mediaArchive.GetFolder(path);

            _mediaArchive.MoveFile(media.File.SystemId, targetFolder);
        }
Example #6
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="media"></param>
        /// <returns>true if all products was updates successfully, otherwise false</returns>
        private bool UpdateProducts(MediaProfile media)
        {
            if (media.MediaEntityMappings == null)
            {
                return(true);
            }

            foreach (var mapping in media.MediaEntityMappings)
            {
                var productFieldUpdate = Policy.Handle <DataException>()
                                         .WaitAndRetry(MaximumProductUpdateRetries, (retryCount) => TimeSpan.FromSeconds(retryCount))
                                         .ExecuteAndCapture(() => {
                    if (mapping.EntityType == EntityTypeEnum.Variant)
                    {
                        var variant = _variantService.Get(mapping.EntityId)?.MakeWritableClone();
                        if (variant != null)
                        {
                            SetField(variant.Fields, mapping.FieldId, media.File);
                            _variantService.Update(variant);
                        }
                    }
                    else if (mapping.EntityType == EntityTypeEnum.BaseProduct)
                    {
                        var product = _baseProductService.Get(mapping.EntityId)?.MakeWritableClone();
                        if (product != null)
                        {
                            SetField(product.Fields, mapping.FieldId, media.File);
                            _baseProductService.Update(product);
                        }
                    }
                });

                if (productFieldUpdate.Outcome == OutcomeType.Failure)
                {
                    this.Log().ForContext("FileID", media.File.SystemId)
                    .ForContext("FieldID", mapping.FieldId)
                    .ForContext("Filename", media.File.Name)
                    .ForContext("EntityType", mapping.EntityType.ToString())
                    .ForContext("EntityId", mapping.EntityId)
                    .Error(productFieldUpdate.FinalException, "Could not map media file");
                    return(false);
                }
            }

            return(true);
        }
Example #7
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);
        }
Example #8
0
        public void Erase(EraseSettings settings)
        {
            if (null == m_device)
            {
                throw new BurnerException(NO_DEVICE, NO_DEVICE_TEXT);
            }

            MediaProfile mp = m_device.MediaProfile;

            if (MediaProfile.DvdMinusRwSeq != mp && MediaProfile.DvdMinusRwRo != mp && MediaProfile.CdRw != mp)
            {
                throw new BurnerException(ERASE_NOT_SUPPORTED, ERASE_NOT_SUPPORTED_TEXT);
            }

            if (m_device.MediaIsBlank && !settings.Force)
            {
                return;
            }

            m_device.OnErase += new EventHandler <DeviceEraseEventArgs>(Device_Erase);

            EraseType et = EraseType.Minimal;

            if (settings.Quick)
            {
                et = EraseType.Minimal;
            }
            else
            {
                et = EraseType.Disc;
            }

            bool bRes = m_device.Erase(et);

            m_device.OnErase -= Device_Erase;

            if (!bRes)
            {
                throw new BurnerException(m_device.Error);
            }

            // Refresh to reload disc information
            m_device.Refresh();
        }
Example #9
0
 public string getProfileName(int nProfileIdx)
 {
     if (this.m_OnVif1Media != null)
     {
         if (nProfileIdx < this.m_OnVif1Media.ProfilesResponse.Profiles.Length)
         {
             Profile ProfileResponse = this.m_OnVif1Media.ProfilesResponse.Profiles[nProfileIdx];
             return(ProfileResponse.Name);
         }
     }
     else if (this.m_OnVif2Media != null)
     {
         if (nProfileIdx < this.m_OnVif2Media.ProfilesResponse.Profiles.Length)
         {
             MediaProfile ProfileResponse = this.m_OnVif2Media.ProfilesResponse.Profiles[nProfileIdx];
             return(ProfileResponse.Name);
         }
     }
     return(""); // empty
 }
Example #10
0
        public void Format(FormatSettings settings)
        {
            if (null == m_device)
            {
                throw new BurnerException(NO_DEVICE, NO_DEVICE_TEXT);
            }

            MediaProfile mp = m_device.MediaProfile;

            if (MediaProfile.DvdMinusRwSeq != mp && MediaProfile.DvdMinusRwRo != mp && MediaProfile.DvdPlusRw != mp)
            {
                throw new BurnerException(FORMAT_NOT_SUPPORTED, FORMAT_NOT_SUPPORTED_TEXT);
            }

            m_device.OnFormat += new EventHandler <DeviceFormatEventArgs>(Device_Format);

            bool bRes = true;

            switch (mp)
            {
            case MediaProfile.DvdMinusRwRo:
                if (settings.Quick)
                {
                    bRes = m_device.Format(FormatType.DvdMinusRwQuick);
                }
                else
                {
                    bRes = m_device.Format(FormatType.DvdMinusRwFull);
                }
                break;

            case MediaProfile.DvdMinusRwSeq:
                if (settings.Quick)
                {
                    bRes = m_device.Format(FormatType.DvdMinusRwQuick);
                }
                else
                {
                    bRes = m_device.Format(FormatType.DvdMinusRwFull);
                }
                break;

            case MediaProfile.DvdPlusRw:
            {
                BgFormatStatus fmt = m_device.BgFormatStatus;
                switch (fmt)
                {
                case BgFormatStatus.Completed:
                    if (settings.Force)
                    {
                        bRes = m_device.Format(FormatType.DvdPlusRwFull, 0, !settings.Quick);
                    }
                    break;

                case BgFormatStatus.NotFormatted:
                    bRes = m_device.Format(FormatType.DvdPlusRwFull, 0, !settings.Quick);
                    break;

                case BgFormatStatus.Partial:
                    bRes = m_device.Format(FormatType.DvdPlusRwRestart, 0, !settings.Quick);
                    break;
                }
            }
            break;
            }

            m_device.OnFormat -= Device_Format;

            if (!bRes)
            {
                throw new BurnerException(m_device.Error);
            }

            // Refresh to reload disc information
            m_device.Refresh();
        }
Example #11
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);
        }
Example #12
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);
        }