format_parser 2.4.4 → 2.5.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 +1 -0
- data/lib/format_parser/version.rb +1 -1
- data/lib/parsers/iso_base_media_file_format/decoder.rb +1 -1
- data/lib/parsers/mp4_parser.rb +3 -1
- metadata +17 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: be6d2146ac8ada9870883998a9d4e93a92b8bb572668c424e28be798b27cc21c
|
4
|
+
data.tar.gz: 5ea4e991625c8b7e1d1414e970efbc9d6fbc4827c4bb9e14ad2140fd0cbd396f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: '079c5c591cfd548ff4df342882048a0ad315c30256fd4dff9333c2944986cec7949ff85472658ef3a5156e4f1553964368257b838e1130664346f486ffde1623'
|
7
|
+
data.tar.gz: a877334ed908a65e03f91dfd83a4b0dc5ff5c569942335038c6b37a6727add95796dc023a7cdac1965ff8a3adfe0b131aefac3d3b30a2c33c4f565e3a60dcbc9
|
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.5.0
|
2
|
+
* Add `avc1` and `xavc` as brand codes in the mp4 format parser to allow more file types to be parsed correctly.
|
3
|
+
|
4
|
+
## 2.4.5
|
5
|
+
* Disable `udta` ISOBMFF box parsing, since their contents are not guaranteed to be consistent with the spec.
|
6
|
+
|
1
7
|
## 2.4.4
|
2
8
|
* Prevent infinite loops when parsing ISOBMFF boxes with size = 0 (meaning that the box extends to the end of the file).
|
3
9
|
|
data/format_parser.gemspec
CHANGED
@@ -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/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.5.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-12 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: exifr
|
@@ -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
|
@@ -315,7 +329,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
315
329
|
- !ruby/object:Gem::Version
|
316
330
|
version: '0'
|
317
331
|
requirements: []
|
318
|
-
rubygems_version: 3.
|
332
|
+
rubygems_version: 3.4.1
|
319
333
|
signing_key:
|
320
334
|
specification_version: 4
|
321
335
|
summary: A library for efficient parsing of file metadata
|