format_parser 2.4.5 → 2.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|