コード例 #1
0
        protected override void ProcessOptimize(ProcessorArgs args)
        {
            if (_supportedExtensionsLookup.Contains(args.InputStream.Extension))
            {
                if (args.ResultStream == null)
                {
                    // MakeStreamSeekable will buffer the stream if its not seekable
                    args.InputStream.MakeStreamSeekable();
                    args.InputStream.Stream.Seek(0, SeekOrigin.Begin);
                }

                var sourceStream = args.ResultStream ?? args.InputStream.Stream;

                var optimizerArgs = new OptimizerArgs(sourceStream, args.MediaOptions);

                CorePipeline.Run(Pipeline, optimizerArgs);

                args.IsOptimized  = optimizerArgs.IsOptimized;
                args.Extension    = optimizerArgs.Extension;
                args.ResultStream = optimizerArgs.Stream;

                if (!string.IsNullOrEmpty(optimizerArgs.Message))
                {
                    args.AddMessage(optimizerArgs.Message);
                }

                if (optimizerArgs.Aborted)
                {
                    args.AbortPipeline();
                }
            }
        }