depix 2.0.0 → 3.0.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.
- data/.travis.yml +4 -0
- data/DPX_HEADER_STRUCTURE.rdoc +5 -5
- data/Gemfile +13 -0
- data/History.txt +14 -0
- data/README.rdoc +15 -3
- data/Rakefile +28 -14
- data/bin/{depix-describe → depix_describe} +5 -4
- data/bin/depix_fix_headers +39 -0
- data/depix.gemspec +93 -0
- data/lib/depix.rb +2 -12
- data/lib/depix/binary/fields.rb +74 -32
- data/lib/depix/binary/{descriptor.rb → rdoc_generator.rb} +5 -1
- data/lib/depix/binary/structure.rb +9 -4
- data/lib/depix/describe.rb +53 -0
- data/lib/depix/reader.rb +15 -40
- data/lib/depix/structs.rb +5 -5
- data/lib/depix/synthetics.rb +12 -2
- data/test/samples/scratch.dpx +0 -0
- data/test/{test_dict.rb → test_binary.rb} +35 -18
- data/test/test_depix.rb +21 -12
- data/test/test_describe.rb +26 -0
- data/test/test_fix_headers.rb +19 -0
- metadata +113 -63
- data/Manifest.txt +0 -28
- data/lib/depix/struct_explainer.rb +0 -59
@@ -0,0 +1,26 @@
|
|
1
|
+
require 'test/unit'
|
2
|
+
require File.dirname(__FILE__) + '/../lib/depix' unless defined?(Depix)
|
3
|
+
require "cli_test"
|
4
|
+
|
5
|
+
class TestDescribe < Test::Unit::TestCase
|
6
|
+
BIN_P = File.dirname(__FILE__) + "/../bin/depix_describe"
|
7
|
+
SAMPLE_DPX = File.dirname(__FILE__) + '/samples/E012_P001_L000002_lin.0001.dpx'
|
8
|
+
|
9
|
+
def test_app
|
10
|
+
s, o, e = CLITest.new(BIN_P).run( File.dirname(__FILE__) + "/samples/gluetools_file_header.dpx")
|
11
|
+
assert s.zero?, "Should exit without error"
|
12
|
+
assert o.include?("03:09:00:17"), "Should include the timecode"
|
13
|
+
end
|
14
|
+
|
15
|
+
def test_describe_class_simple
|
16
|
+
desc = Depix::Describe.new.describe(SAMPLE_DPX)
|
17
|
+
assert_match(/320/, desc)
|
18
|
+
assert_match(/Offset to data for this image element/, desc)
|
19
|
+
end
|
20
|
+
|
21
|
+
def test_describe_synthetics
|
22
|
+
desc = Depix::Describe.new.describe_synthetics(SAMPLE_DPX, false)
|
23
|
+
assert desc.include?("01:15:11:18")
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'test/unit'
|
2
|
+
require File.dirname(__FILE__) + '/../lib/depix' unless defined?(Depix)
|
3
|
+
require "cli_test"
|
4
|
+
|
5
|
+
class TestFixHeaders < Test::Unit::TestCase
|
6
|
+
BIN_P = File.dirname(__FILE__) + "/../bin/depix_fix_headers"
|
7
|
+
|
8
|
+
def test_app
|
9
|
+
from_file = File.expand_path(File.dirname(__FILE__) + "/samples/scratch.dpx")
|
10
|
+
to_file = File.dirname(from_file) + "/_mod.dpx"
|
11
|
+
begin
|
12
|
+
FileUtils.cp(from_file, to_file)
|
13
|
+
s, o, e = CLITest.new(BIN_P).run(to_file)
|
14
|
+
assert s.zero?, "Should exit without error"
|
15
|
+
ensure
|
16
|
+
File.unlink(to_file)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
metadata
CHANGED
@@ -1,68 +1,122 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: depix
|
3
|
-
version: !ruby/object:Gem::Version
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 3.0.0
|
4
5
|
prerelease:
|
5
|
-
version: 2.0.0
|
6
6
|
platform: ruby
|
7
|
-
authors:
|
7
|
+
authors:
|
8
8
|
- Julik Tarkhanov
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
dependencies:
|
16
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2011-11-29 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
17
15
|
name: timecode
|
16
|
+
requirement: &10534200 !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ~>
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '1.0'
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: *10534200
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: progressbar
|
27
|
+
requirement: &10533900 !ruby/object:Gem::Requirement
|
28
|
+
none: false
|
29
|
+
requirements:
|
30
|
+
- - ~>
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0.9'
|
33
|
+
type: :runtime
|
18
34
|
prerelease: false
|
19
|
-
|
35
|
+
version_requirements: *10533900
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: sequencer
|
38
|
+
requirement: &10533550 !ruby/object:Gem::Requirement
|
20
39
|
none: false
|
21
|
-
requirements:
|
22
|
-
- -
|
23
|
-
- !ruby/object:Gem::Version
|
24
|
-
version:
|
40
|
+
requirements:
|
41
|
+
- - ~>
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '1.0'
|
25
44
|
type: :runtime
|
26
|
-
version_requirements: *id001
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: hoe
|
29
45
|
prerelease: false
|
30
|
-
|
46
|
+
version_requirements: *10533550
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: term-ansicolor
|
49
|
+
requirement: &10533130 !ruby/object:Gem::Requirement
|
50
|
+
none: false
|
51
|
+
requirements:
|
52
|
+
- - ! '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
type: :runtime
|
56
|
+
prerelease: false
|
57
|
+
version_requirements: *10533130
|
58
|
+
- !ruby/object:Gem::Dependency
|
59
|
+
name: jeweler
|
60
|
+
requirement: &10532890 !ruby/object:Gem::Requirement
|
61
|
+
none: false
|
62
|
+
requirements:
|
63
|
+
- - ! '>='
|
64
|
+
- !ruby/object:Gem::Version
|
65
|
+
version: '0'
|
66
|
+
type: :development
|
67
|
+
prerelease: false
|
68
|
+
version_requirements: *10532890
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rake
|
71
|
+
requirement: &10532610 !ruby/object:Gem::Requirement
|
31
72
|
none: false
|
32
|
-
requirements:
|
33
|
-
- -
|
34
|
-
- !ruby/object:Gem::Version
|
35
|
-
version:
|
73
|
+
requirements:
|
74
|
+
- - ! '>='
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '0'
|
36
77
|
type: :development
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
78
|
+
prerelease: false
|
79
|
+
version_requirements: *10532610
|
80
|
+
- !ruby/object:Gem::Dependency
|
81
|
+
name: cli_test
|
82
|
+
requirement: &10532240 !ruby/object:Gem::Requirement
|
83
|
+
none: false
|
84
|
+
requirements:
|
85
|
+
- - ~>
|
86
|
+
- !ruby/object:Gem::Version
|
87
|
+
version: '1.0'
|
88
|
+
type: :development
|
89
|
+
prerelease: false
|
90
|
+
version_requirements: *10532240
|
91
|
+
description: Allos you to edit headers and read their contents parsed into Ruby objects
|
92
|
+
email: me@julik.nl
|
93
|
+
executables:
|
94
|
+
- depix_describe
|
95
|
+
- depix_fix_headers
|
43
96
|
extensions: []
|
44
|
-
|
45
|
-
extra_rdoc_files:
|
46
|
-
- History.txt
|
47
|
-
- Manifest.txt
|
97
|
+
extra_rdoc_files:
|
48
98
|
- DPX_HEADER_STRUCTURE.rdoc
|
49
99
|
- README.rdoc
|
50
|
-
files:
|
100
|
+
files:
|
101
|
+
- .gemtest
|
102
|
+
- .travis.yml
|
51
103
|
- DPX_HEADER_STRUCTURE.rdoc
|
104
|
+
- Gemfile
|
52
105
|
- History.txt
|
53
|
-
- Manifest.txt
|
54
106
|
- README.rdoc
|
55
107
|
- Rakefile
|
56
|
-
- bin/
|
108
|
+
- bin/depix_describe
|
109
|
+
- bin/depix_fix_headers
|
110
|
+
- depix.gemspec
|
57
111
|
- lib/depix.rb
|
58
|
-
- lib/depix/binary/descriptor.rb
|
59
112
|
- lib/depix/binary/fields.rb
|
113
|
+
- lib/depix/binary/rdoc_generator.rb
|
60
114
|
- lib/depix/binary/structure.rb
|
61
115
|
- lib/depix/compact_structs.rb
|
116
|
+
- lib/depix/describe.rb
|
62
117
|
- lib/depix/editor.rb
|
63
118
|
- lib/depix/enums.rb
|
64
119
|
- lib/depix/reader.rb
|
65
|
-
- lib/depix/struct_explainer.rb
|
66
120
|
- lib/depix/structs.rb
|
67
121
|
- lib/depix/synthetics.rb
|
68
122
|
- test/samples/026_FROM_HERO_TAPE_5-3-1_MOV.0029.dpx
|
@@ -74,38 +128,34 @@ files:
|
|
74
128
|
- test/samples/gluetools_file_header.dpx
|
75
129
|
- test/samples/little_endian.dpx
|
76
130
|
- test/samples/northlight_tc_mode_mismatch.dpx
|
131
|
+
- test/samples/scratch.dpx
|
132
|
+
- test/test_binary.rb
|
77
133
|
- test/test_depix.rb
|
78
|
-
- test/
|
79
|
-
- .
|
80
|
-
has_rdoc: true
|
134
|
+
- test/test_describe.rb
|
135
|
+
- test/test_fix_headers.rb
|
81
136
|
homepage: http://guerilla-di.org/depix
|
82
|
-
licenses:
|
83
|
-
|
137
|
+
licenses:
|
138
|
+
- MIT
|
84
139
|
post_install_message:
|
85
|
-
rdoc_options:
|
86
|
-
|
87
|
-
- README.rdoc
|
88
|
-
require_paths:
|
140
|
+
rdoc_options: []
|
141
|
+
require_paths:
|
89
142
|
- lib
|
90
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
143
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
91
144
|
none: false
|
92
|
-
requirements:
|
93
|
-
- -
|
94
|
-
- !ruby/object:Gem::Version
|
95
|
-
version:
|
96
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
145
|
+
requirements:
|
146
|
+
- - ! '>='
|
147
|
+
- !ruby/object:Gem::Version
|
148
|
+
version: '0'
|
149
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
97
150
|
none: false
|
98
|
-
requirements:
|
99
|
-
- -
|
100
|
-
- !ruby/object:Gem::Version
|
101
|
-
version:
|
151
|
+
requirements:
|
152
|
+
- - ! '>='
|
153
|
+
- !ruby/object:Gem::Version
|
154
|
+
version: '0'
|
102
155
|
requirements: []
|
103
|
-
|
104
|
-
|
105
|
-
rubygems_version: 1.6.2
|
156
|
+
rubyforge_project:
|
157
|
+
rubygems_version: 1.8.11
|
106
158
|
signing_key:
|
107
159
|
specification_version: 3
|
108
|
-
summary: Read and write DPX file
|
109
|
-
test_files:
|
110
|
-
- test/test_depix.rb
|
111
|
-
- test/test_dict.rb
|
160
|
+
summary: Read and write DPX file headers
|
161
|
+
test_files: []
|
data/Manifest.txt
DELETED
@@ -1,28 +0,0 @@
|
|
1
|
-
DPX_HEADER_STRUCTURE.rdoc
|
2
|
-
History.txt
|
3
|
-
Manifest.txt
|
4
|
-
README.rdoc
|
5
|
-
Rakefile
|
6
|
-
bin/depix-describe
|
7
|
-
lib/depix.rb
|
8
|
-
lib/depix/binary/descriptor.rb
|
9
|
-
lib/depix/binary/fields.rb
|
10
|
-
lib/depix/binary/structure.rb
|
11
|
-
lib/depix/compact_structs.rb
|
12
|
-
lib/depix/editor.rb
|
13
|
-
lib/depix/enums.rb
|
14
|
-
lib/depix/reader.rb
|
15
|
-
lib/depix/struct_explainer.rb
|
16
|
-
lib/depix/structs.rb
|
17
|
-
lib/depix/synthetics.rb
|
18
|
-
test/samples/026_FROM_HERO_TAPE_5-3-1_MOV.0029.dpx
|
19
|
-
test/samples/E012_P001_L000002_lin.0001.dpx
|
20
|
-
test/samples/E012_P001_L000002_lin.0002.dpx
|
21
|
-
test/samples/E012_P001_L000002_log.0001.dpx
|
22
|
-
test/samples/E012_P001_L000002_log.0002.dpx
|
23
|
-
test/samples/from_nuke_no_TC_meta.dpx
|
24
|
-
test/samples/gluetools_file_header.dpx
|
25
|
-
test/samples/little_endian.dpx
|
26
|
-
test/samples/northlight_tc_mode_mismatch.dpx
|
27
|
-
test/test_depix.rb
|
28
|
-
test/test_dict.rb
|
@@ -1,59 +0,0 @@
|
|
1
|
-
# Generates an RDoc description of the DPX structs from the structs.rb file
|
2
|
-
class RdocExplainer #:nodoc:
|
3
|
-
attr_accessor :io, :attr_template, :struct_template
|
4
|
-
|
5
|
-
TPL = <<eof
|
6
|
-
= DPX header structure description
|
7
|
-
|
8
|
-
DPX metadata gets returned as a Depix::DPX object with nested properties.
|
9
|
-
|
10
|
-
meta.file.magic # => "SDPX"
|
11
|
-
|
12
|
-
== Metadata structure
|
13
|
-
|
14
|
-
%s
|
15
|
-
eof
|
16
|
-
|
17
|
-
def initialize
|
18
|
-
@padding = ' '
|
19
|
-
@attr_template = "%s* <tt>%s</tt> %s"
|
20
|
-
@struct_template = "%s* <tt>%s</tt> %s:"
|
21
|
-
@array_template = "%s* <tt>%s</tt> %s:"
|
22
|
-
|
23
|
-
end
|
24
|
-
|
25
|
-
def get_rdoc_for(struct)
|
26
|
-
@io = StringIO.new
|
27
|
-
explain_struct(struct)
|
28
|
-
TPL % @io.string
|
29
|
-
end
|
30
|
-
|
31
|
-
include Depix
|
32
|
-
|
33
|
-
def explain_struct(struct, padding = '') #:nodoc:
|
34
|
-
struct.fields.each do | e |
|
35
|
-
if e.is_a?(InnerField)
|
36
|
-
|
37
|
-
@io.puts( @struct_template % [padding, e.name, e.explain])
|
38
|
-
explain_struct(e.rtype, padding + @padding)
|
39
|
-
|
40
|
-
elsif e.is_a?(ArrayField)
|
41
|
-
|
42
|
-
@io.puts( @array_template % [padding, e.name, e.explain])
|
43
|
-
|
44
|
-
inner_struct = e.members[0]
|
45
|
-
|
46
|
-
if inner_struct.is_a?(InnerField)
|
47
|
-
explain_struct(inner_struct.rtype, padding + @padding)
|
48
|
-
end
|
49
|
-
else
|
50
|
-
explain_attr(padding, e)
|
51
|
-
end
|
52
|
-
end
|
53
|
-
end
|
54
|
-
|
55
|
-
def explain_attr(padding, e)
|
56
|
-
type_name = e.rtype ? "(#{e.rtype})" : nil
|
57
|
-
@io.puts( @attr_template % [padding, e.name, e.explain])
|
58
|
-
end
|
59
|
-
end
|