format_parser 2.4.5 → 2.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/main.yml +7 -7
- data/CHANGELOG.md +6 -0
- data/format_parser.gemspec +2 -1
- data/lib/format_parser/version.rb +1 -1
- data/lib/parsers/exif_parser.rb +1 -1
- data/lib/parsers/mp4_parser.rb +3 -1
- metadata +18 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4ce8a7c3fd258ccf2abcee6ea8731c0337e7255dfb189ccfb5fdfc02e9dd9b36
|
4
|
+
data.tar.gz: a6ff6ea6e771f2636e30cfee70b3c22584cb85e7020a97483f66e2c482048444
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e27bd51913d3a3b3d061ec27379acc4a15fa19ee2e16cccdbf5a0aec4daf8fe26cdfc0062115119616384ded92c645e4a88a6d0244b47b33c5fc79903ccd3906
|
7
|
+
data.tar.gz: 024756cdb460347f36cd1aa247b04f5468982b4c502cf049e8c8abd5cb1020f960006f552c7659770c6149ff6ed3a61def2beb44160236f35fe35533579f6c31
|
data/.github/workflows/main.yml
CHANGED
@@ -20,13 +20,13 @@ jobs:
|
|
20
20
|
- jruby
|
21
21
|
steps:
|
22
22
|
- name: Checkout
|
23
|
-
uses: actions/checkout@
|
23
|
+
uses: actions/checkout@v3
|
24
24
|
- name: Setup Ruby
|
25
25
|
uses: ruby/setup-ruby@v1
|
26
26
|
with:
|
27
27
|
ruby-version: ${{ matrix.ruby }}
|
28
28
|
- name: Gemfile Cache
|
29
|
-
uses: actions/cache@
|
29
|
+
uses: actions/cache@v3
|
30
30
|
with:
|
31
31
|
path: Gemfile.lock
|
32
32
|
key: ${{ runner.os }}-gemlock-${{ matrix.ruby }}-${{ hashFiles('Gemfile', 'format_parser.gemspec') }}
|
@@ -34,7 +34,7 @@ jobs:
|
|
34
34
|
${{ runner.os }}-gemlock-${{ matrix.ruby }}-
|
35
35
|
- name: Bundle Cache
|
36
36
|
id: cache-gems
|
37
|
-
uses: actions/cache@
|
37
|
+
uses: actions/cache@v3
|
38
38
|
with:
|
39
39
|
path: vendor/bundle
|
40
40
|
key: ${{ runner.os }}-gems-${{ matrix.ruby }}-${{ hashFiles('Gemfile', 'Gemfile.lock', 'format_parser.gemspec') }}
|
@@ -45,7 +45,7 @@ jobs:
|
|
45
45
|
if: steps.cache-gems.outputs.cache-hit != 'true'
|
46
46
|
run: bundle install --jobs 4 --retry 3
|
47
47
|
- name: Rubocop Cache
|
48
|
-
uses: actions/cache@
|
48
|
+
uses: actions/cache@v3
|
49
49
|
with:
|
50
50
|
path: ~/.cache/rubocop_cache
|
51
51
|
key: ${{ runner.os }}-rubocop-${{ hashFiles('.rubocop.yml') }}
|
@@ -68,13 +68,13 @@ jobs:
|
|
68
68
|
experimental: [false]
|
69
69
|
steps:
|
70
70
|
- name: Checkout
|
71
|
-
uses: actions/checkout@
|
71
|
+
uses: actions/checkout@v3
|
72
72
|
- name: Setup Ruby
|
73
73
|
uses: ruby/setup-ruby@v1
|
74
74
|
with:
|
75
75
|
ruby-version: ${{ matrix.ruby }}
|
76
76
|
- name: Gemfile Cache
|
77
|
-
uses: actions/cache@
|
77
|
+
uses: actions/cache@v3
|
78
78
|
with:
|
79
79
|
path: Gemfile.lock
|
80
80
|
key: ${{ runner.os }}-gemlock-${{ matrix.ruby }}-${{ hashFiles('Gemfile', 'format_parser.gemspec') }}
|
@@ -82,7 +82,7 @@ jobs:
|
|
82
82
|
${{ runner.os }}-gemlock-${{ matrix.ruby }}-
|
83
83
|
- name: Bundle Cache
|
84
84
|
id: cache-gems
|
85
|
-
uses: actions/cache@
|
85
|
+
uses: actions/cache@v3
|
86
86
|
with:
|
87
87
|
path: vendor/bundle
|
88
88
|
key: ${{ runner.os }}-gems-${{ matrix.ruby }}-${{ hashFiles('Gemfile', 'Gemfile.lock', 'format_parser.gemspec') }}
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,9 @@
|
|
1
|
+
## 2.6.0
|
2
|
+
* Prevent the default loading of thumbnails on TIFF-based formats to improve I/O.
|
3
|
+
|
4
|
+
## 2.5.0
|
5
|
+
* Add `avc1` and `xavc` as brand codes in the mp4 format parser to allow more file types to be parsed correctly.
|
6
|
+
|
1
7
|
## 2.4.5
|
2
8
|
* Disable `udta` ISOBMFF box parsing, since their contents are not guaranteed to be consistent with the spec.
|
3
9
|
|
data/format_parser.gemspec
CHANGED
@@ -32,7 +32,7 @@ Gem::Specification.new do |spec|
|
|
32
32
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
33
33
|
spec.require_paths = ['lib']
|
34
34
|
|
35
|
-
spec.add_dependency 'exifr', '>= 1.
|
35
|
+
spec.add_dependency 'exifr', '>= 1.4.0'
|
36
36
|
spec.add_dependency 'id3tag', '>= 0.14.2'
|
37
37
|
spec.add_dependency 'matrix'
|
38
38
|
spec.add_dependency 'measurometer'
|
@@ -42,6 +42,7 @@ Gem::Specification.new do |spec|
|
|
42
42
|
spec.add_development_dependency 'rspec'
|
43
43
|
spec.add_development_dependency 'simplecov'
|
44
44
|
spec.add_development_dependency 'webmock'
|
45
|
+
spec.add_development_dependency 'webrick'
|
45
46
|
spec.add_development_dependency 'wetransfer_style', '1.0.0'
|
46
47
|
spec.add_development_dependency 'yard'
|
47
48
|
end
|
data/lib/parsers/exif_parser.rb
CHANGED
@@ -175,7 +175,7 @@ module FormatParser::EXIFParser
|
|
175
175
|
def exif_from_tiff_io(constrained_io, should_include_sub_ifds = false)
|
176
176
|
Measurometer.instrument('format_parser.exif_parser.exif_from_tiff_io') do
|
177
177
|
extended_io = IOExt.new(constrained_io)
|
178
|
-
exif_raw_data = EXIFR::TIFF.new(extended_io)
|
178
|
+
exif_raw_data = EXIFR::TIFF.new(extended_io, load_thumbnails: false)
|
179
179
|
|
180
180
|
return unless exif_raw_data
|
181
181
|
|
data/lib/parsers/mp4_parser.rb
CHANGED
@@ -5,13 +5,15 @@ class FormatParser::MP4Parser
|
|
5
5
|
include FormatParser::ISOBaseMediaFileFormat
|
6
6
|
include FormatParser::ISOBaseMediaFileFormat::Utils
|
7
7
|
|
8
|
-
MAGIC_BYTES = /^ftyp(iso[m2]|mp4[12]|m4[abprv] )$/i
|
8
|
+
MAGIC_BYTES = /^ftyp(iso[m2]|mp4[12]|m4[abprv] |avc1|xavc)$/i
|
9
9
|
|
10
10
|
BRAND_FORMATS = {
|
11
11
|
'isom' => :mp4, # Prohibited as a major brand by ISO/IEC 14496-12 sec 6.3 paragraph 2, but occasionally used.
|
12
12
|
'iso2' => :mp4, # Prohibited as a major brand by ISO/IEC 14496-12 sec 6.3 paragraph 2, but occasionally used.
|
13
13
|
'mp41' => :mp4,
|
14
14
|
'mp42' => :mp4,
|
15
|
+
'avc1' => :mp4,
|
16
|
+
'xavc' => :mp4, # Sony XAVC S
|
15
17
|
'm4a ' => :m4a,
|
16
18
|
'm4b ' => :m4b, # iTunes audiobooks
|
17
19
|
'm4p ' => :m4p, # iTunes audio
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: format_parser
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Noah Berman
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: exe
|
11
11
|
cert_chain: []
|
12
|
-
date: 2023-
|
12
|
+
date: 2023-05-31 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: exifr
|
@@ -17,14 +17,14 @@ dependencies:
|
|
17
17
|
requirements:
|
18
18
|
- - ">="
|
19
19
|
- !ruby/object:Gem::Version
|
20
|
-
version: 1.
|
20
|
+
version: 1.4.0
|
21
21
|
type: :runtime
|
22
22
|
prerelease: false
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
24
24
|
requirements:
|
25
25
|
- - ">="
|
26
26
|
- !ruby/object:Gem::Version
|
27
|
-
version: 1.
|
27
|
+
version: 1.4.0
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: id3tag
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
@@ -137,6 +137,20 @@ dependencies:
|
|
137
137
|
- - ">="
|
138
138
|
- !ruby/object:Gem::Version
|
139
139
|
version: '0'
|
140
|
+
- !ruby/object:Gem::Dependency
|
141
|
+
name: webrick
|
142
|
+
requirement: !ruby/object:Gem::Requirement
|
143
|
+
requirements:
|
144
|
+
- - ">="
|
145
|
+
- !ruby/object:Gem::Version
|
146
|
+
version: '0'
|
147
|
+
type: :development
|
148
|
+
prerelease: false
|
149
|
+
version_requirements: !ruby/object:Gem::Requirement
|
150
|
+
requirements:
|
151
|
+
- - ">="
|
152
|
+
- !ruby/object:Gem::Version
|
153
|
+
version: '0'
|
140
154
|
- !ruby/object:Gem::Dependency
|
141
155
|
name: wetransfer_style
|
142
156
|
requirement: !ruby/object:Gem::Requirement
|