mediainfo-native 0.2.4 → 0.2.8
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 +5 -5
- data/lib/mediainfo-native/attr_readers.rb +10 -17
- data/lib/mediainfo-native/base_stream.rb +1 -1
- data/lib/mediainfo-native/mediainfo.rb +6 -0
- data/lib/mediainfo-native/streams/audio.rb +2 -0
- data/lib/mediainfo-native/streams/general.rb +3 -0
- data/lib/mediainfo-native/streams/other.rb +1 -2
- data/lib/mediainfo-native/version.rb +1 -1
- metadata +6 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 7872bbea265d1cc562d8684dceabc2624364550bdc74e07362e7ad5a696a0523
|
4
|
+
data.tar.gz: d5feba86a2c1404029c0843b5d82c4f763296d7b8965726e16e9d637bec946c0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ad9a1b66cc3b84134615e300b523c13092a0d8a4f647c722b474405bafa1b5bcd3d5a7131146e9baeae9b8f24956443a3c45e7de353dc1b090bb08664cd30716
|
7
|
+
data.tar.gz: f1e0a56e056e6b296c8f7195fa6f2e73c5323828a011a3d0c81916d64209ba201b3db212f9d538ecb5057b05ac111d0f174923ae9644cd32e383e23f1c464778
|
@@ -9,43 +9,36 @@ module MediaInfoNative
|
|
9
9
|
@supported_attributes || []
|
10
10
|
end
|
11
11
|
|
12
|
-
def mediainfo_attr_reader(attribute, mediainfo_key)
|
12
|
+
def mediainfo_attr_reader(attribute, mediainfo_key)
|
13
13
|
attribute_before_type_cast = "#{attribute}_before_type_cast"
|
14
|
-
|
14
|
+
|
15
15
|
define_method attribute_before_type_cast do
|
16
16
|
instance_variable_get("@#{attribute_before_type_cast}") || instance_variable_set("@#{attribute_before_type_cast}", lookup(mediainfo_key))
|
17
17
|
end
|
18
|
-
|
18
|
+
|
19
19
|
define_method attribute do
|
20
20
|
if v = instance_variable_get("@#{attribute}")
|
21
21
|
v
|
22
22
|
else
|
23
23
|
v = send(attribute_before_type_cast)
|
24
24
|
v = yield v if v and block_given?
|
25
|
-
|
25
|
+
|
26
26
|
instance_variable_set("@#{attribute}", v)
|
27
27
|
end
|
28
28
|
end
|
29
29
|
|
30
30
|
supported_attribute(attribute)
|
31
31
|
end
|
32
|
-
|
32
|
+
|
33
33
|
def mediainfo_duration_reader(*a)
|
34
|
-
mediainfo_attr_reader
|
34
|
+
mediainfo_attr_reader(*a) do |v|
|
35
35
|
case
|
36
|
-
when v.include?(":")
|
37
|
-
# If it is like 00:20:30.600
|
38
|
-
splitted = v.split(/:|\./)
|
39
|
-
(splitted[0].to_i * 60 * 60 * 1000) +
|
40
|
-
(splitted[1].to_i * 60 * 1000) +
|
41
|
-
(splitted[2].to_i * 1000) +
|
42
|
-
(splitted[3].to_i)
|
43
36
|
when v.include?('ms')
|
44
37
|
# If it is like '20mn 30s 600ms'
|
45
38
|
t = 0
|
46
39
|
v.split(/\s+/).each do |tf|
|
47
40
|
case tf
|
48
|
-
# TODO: Haven't actually seen how they represent hours yet
|
41
|
+
# TODO: Haven't actually seen how they represent hours yet
|
49
42
|
# but hopefully this is ok.. :\
|
50
43
|
when /\d+h/ then t += tf.to_i * 60 * 60 * 1000
|
51
44
|
when /\d+mn/ then t += tf.to_i * 60 * 1000
|
@@ -65,7 +58,7 @@ module MediaInfoNative
|
|
65
58
|
end
|
66
59
|
end
|
67
60
|
end
|
68
|
-
|
61
|
+
|
69
62
|
def mediainfo_date_reader(*a)
|
70
63
|
# Mediainfo can return wrong timestamps, so we have to correct them before
|
71
64
|
# we let ruby try to parse.
|
@@ -78,9 +71,9 @@ module MediaInfoNative
|
|
78
71
|
end
|
79
72
|
end
|
80
73
|
end
|
81
|
-
|
74
|
+
|
82
75
|
def mediainfo_int_reader(*a)
|
83
|
-
mediainfo_attr_reader(*a) { |v| v.gsub(
|
76
|
+
mediainfo_attr_reader(*a) { |v| v.gsub(/[^\d.]+/, "").to_i }
|
84
77
|
end
|
85
78
|
end
|
86
79
|
end
|
@@ -35,6 +35,8 @@ module MediaInfoNative
|
|
35
35
|
end
|
36
36
|
|
37
37
|
class StreamProxy
|
38
|
+
include Enumerable
|
39
|
+
|
38
40
|
def initialize(streams)
|
39
41
|
@streams = streams
|
40
42
|
end
|
@@ -46,6 +48,10 @@ module MediaInfoNative
|
|
46
48
|
def [](idx); @streams[idx]; end
|
47
49
|
def count; @streams.size; end
|
48
50
|
|
51
|
+
def each(&blk)
|
52
|
+
@streams.each(&blk)
|
53
|
+
end
|
54
|
+
|
49
55
|
def respond_to?(meth, include_all = false)
|
50
56
|
begin
|
51
57
|
case @streams.size
|
@@ -28,6 +28,8 @@ module MediaInfoNative
|
|
28
28
|
mediainfo_attr_reader :codec, 'Codec'
|
29
29
|
mediainfo_attr_reader :codec_id_hint, 'CodecID/Hint'
|
30
30
|
mediainfo_attr_reader :channel_positions, 'ChannelPositions'
|
31
|
+
mediainfo_attr_reader :muxing_mode, 'MuxingMode'
|
32
|
+
mediainfo_attr_reader :muxing_mode_info, 'MuxingMode_MoreInfo'
|
31
33
|
|
32
34
|
mediainfo_int_reader :channels, 'Channel(s)'
|
33
35
|
def stereo?; 2 == channels; end
|
@@ -12,6 +12,9 @@ module MediaInfoNative
|
|
12
12
|
mediainfo_attr_reader :overall_bit_rate, 'OverallBitRate'
|
13
13
|
mediainfo_attr_reader :encoded_application_string, 'Encoded_Application/String'
|
14
14
|
mediainfo_attr_reader :encoded_application, 'Encoded_Application'
|
15
|
+
mediainfo_int_reader :headersize, 'HeaderSize'
|
16
|
+
mediainfo_int_reader :datasize, 'DataSize'
|
17
|
+
mediainfo_int_reader :footersize, 'FooterSize'
|
15
18
|
alias_method :writing_application, :encoded_application_string
|
16
19
|
|
17
20
|
# Since MediaInfo v0.7.76 encoded_application is replaced by
|
@@ -2,7 +2,6 @@ module MediaInfoNative
|
|
2
2
|
class OtherStream < BaseStream
|
3
3
|
mediainfo_attr_reader :stream_id, 'ID'
|
4
4
|
mediainfo_attr_reader :type, 'Type'
|
5
|
-
|
6
|
-
alias_method :timecode, :timestamp_firstframe
|
5
|
+
mediainfo_attr_reader :timecode, 'TimeCode_FirstFrame'
|
7
6
|
end
|
8
7
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mediainfo-native
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
-
|
7
|
+
- Projective Technology GmbH
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-01-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake-compiler
|
@@ -39,7 +39,7 @@ dependencies:
|
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '3.0'
|
41
41
|
description: Extracts metadata from media files with mediainfo shared library
|
42
|
-
email: technology@
|
42
|
+
email: technology@projective.io
|
43
43
|
executables: []
|
44
44
|
extensions:
|
45
45
|
- ext/mediainfo_native/extconf.rb
|
@@ -66,7 +66,7 @@ files:
|
|
66
66
|
- lib/mediainfo-native/streams/text.rb
|
67
67
|
- lib/mediainfo-native/streams/video.rb
|
68
68
|
- lib/mediainfo-native/version.rb
|
69
|
-
homepage:
|
69
|
+
homepage: https://github.com/projectivetech/mediainfo-native
|
70
70
|
licenses:
|
71
71
|
- MIT
|
72
72
|
metadata: {}
|
@@ -85,8 +85,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
85
85
|
- !ruby/object:Gem::Version
|
86
86
|
version: '0'
|
87
87
|
requirements: []
|
88
|
-
|
89
|
-
rubygems_version: 2.5.2
|
88
|
+
rubygems_version: 3.2.15
|
90
89
|
signing_key:
|
91
90
|
specification_version: 4
|
92
91
|
summary: Native bindings for mediainfo
|