示例#1
0
        /// <summary>
        /// Gets the description value of encoding enum
        /// </summary>
        /// <param name="value">value</param>
        /// <returns>description name of an enum value</returns>
        private string GetDescription(AmsEncoding value)
        {
            var encodingtype = value.GetType();
            var encoding     = encodingtype.GetField(value.ToString());
            var descriptions = encoding.GetCustomAttributes(typeof(DescriptionAttribute), false) as DescriptionAttribute[];

            return(descriptions.Length > 0 ? descriptions[0].Description : value.ToString());
        }
示例#2
0
        /// <summary>
        /// Encodes an Asset
        /// </summary>
        /// <param name="asset">asset </param>
        /// <param name="encoding">encoding request params </param>
        /// <returns>encoded asset</returns>
        private void ConfigureEncodeAssetTask(EncodingRequest encoding, IJob job)
        {
            AmsEncoding     amsEncoding  = encoding.EncodingBitrate;
            string          encodingType = GetDescription(amsEncoding);
            IMediaProcessor processor    = GetLatestMediaProcessorByName(_amsConfigurations.MediaProcessor);

            if (processor == null)
            {
                throw new Exception("Please check the configuration values, some configuration values are not matching.");
            }
            ITask task = job.Tasks.AddNew(_processedAssetName + " encoding task", processor, encodingType, TaskOptions.None);

            // Specify the input asset to be encoded.
            task.InputAssets.Add(asset);
            task.OutputAssets.AddNew(asset.Name + " media streaming", AssetCreationOptions.None);
        }