Exemple #1
0
        private static int CompressStream(ref CompressionParameters parameters, ISequentialStream input, ISequentialStream output)
        {
            if (IntPtr.Size == 4)
            {
                return(CompressStream86(ref parameters, input, output));
            }

            return(CompressStream64(ref parameters, input, output));
        }
Exemple #2
0
        public static CompressionParameters CreateDefaultParameters()
        {
            var parameters = new CompressionParameters();

            parameters.Quality               = 11;
            parameters.LgWin                 = 22;
            parameters.EnableDictionary      = true;
            parameters.EnableContextModeling = true;
            return(parameters);
        }
Exemple #3
0
        public static CompressionParameters CreateDefaultParameters()
        {
            var parameters = new CompressionParameters
            {
                Quality               = 11,
                LgWin                 = 22,
                EnableDictionary      = true,
                EnableContextModeling = true
            };

            return(parameters);
        }
Exemple #4
0
        private static void ValidateParameters(CompressionParameters parameters)
        {
            if (parameters.Quality < 0 || parameters.Quality > 11)
            {
                throw new BrotliException("Invalid parameter. Quality range is 0 to 11.");
            }

            if (parameters.LgWin < 10 || parameters.LgWin > 24)
            {
                throw new BrotliException("Invalid parameter. LgWin range is 10 to 24.");
            }

            if (parameters.LgBlock != 0 && (parameters.LgBlock < 16 || parameters.LgBlock > 24))
            {
                throw new BrotliException("Invalid parameter. LgBlock range is 0 or 16 to 24.");
            }
        }
Exemple #5
0
        public static void Compress(CompressionParameters parameters, string inputFilePath, string outputFilePath)
        {
            if (inputFilePath == null)
            {
                throw new ArgumentNullException(nameof(inputFilePath));
            }

            if (outputFilePath == null)
            {
                throw new ArgumentNullException(nameof(outputFilePath));
            }

            using (var input = new FileStream(inputFilePath, FileMode.Open, FileAccess.Read, FileShare.Write))
            {
                using (var output = new FileStream(outputFilePath, FileMode.Create, FileAccess.Write, FileShare.None))
                {
                    Compress(parameters, input, output);
                }
            }
        }
Exemple #6
0
        public static void Compress(CompressionParameters parameters, Stream input, Stream output)
        {
            if (input == null)
            {
                throw new ArgumentNullException(nameof(input));
            }

            if (output == null)
            {
                throw new ArgumentNullException(nameof(output));
            }

            ValidateParameters(parameters);
            var inputStream  = new SequentialStream(input);
            var outputStream = new SequentialStream(output);
            int ok           = CompressStream(ref parameters, inputStream, outputStream);

            if (ok == 0)
            {
                throw new BrotliException();
            }
        }
Exemple #7
0
 private static extern int CompressStream64(ref CompressionParameters parameters, ISequentialStream input, ISequentialStream output);