28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
# File 'lib/brs/option.rb', line 28
def self.get_compressor_options(options, buffer_length_names)
Validation.validate_hash options
buffer_length_defaults = buffer_length_names.each_with_object({}) { |name, defaults| defaults[name] = DEFAULT_BUFFER_LENGTH }
options = COMPRESSOR_DEFAULTS.merge(buffer_length_defaults).merge options
buffer_length_names.each { |name| Validation.validate_not_negative_integer options[name] }
mode = options[:mode]
unless mode.nil?
Validation.validate_symbol mode
raise ValidateError, "invalid mode" unless MODES.include? mode
end
quality = options[:quality]
Validation.validate_not_negative_integer quality unless quality.nil?
lgwin = options[:lgwin]
Validation.validate_not_negative_integer lgwin unless lgwin.nil?
lgblock = options[:lgblock]
Validation.validate_not_negative_integer lgblock unless lgblock.nil?
disable_literal_context_modeling = options[:disable_literal_context_modeling]
Validation.validate_bool disable_literal_context_modeling unless disable_literal_context_modeling.nil?
size_hint = options[:size_hint]
Validation.validate_not_negative_integer size_hint unless size_hint.nil?
large_window = options[:large_window]
Validation.validate_bool large_window unless large_window.nil?
options
end
|