hornetseye-frame 0.3.0 → 0.5.0
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +5 -3
- data/ext/colourspace.cc +2 -2
- data/ext/frame.cc +10 -3
- data/ext/frame.hh +1 -0
- data/lib/hornetseye-frame/frame.rb +4 -0
- data/lib/hornetseye-frame/shortcuts.rb +71 -0
- data/lib/hornetseye_frame_ext.rb +2 -0
- metadata +4 -3
data/Rakefile
CHANGED
@@ -7,12 +7,12 @@ require 'rake/loaders/makefile'
|
|
7
7
|
require 'rbconfig'
|
8
8
|
|
9
9
|
PKG_NAME = 'hornetseye-frame'
|
10
|
-
PKG_VERSION = '0.
|
10
|
+
PKG_VERSION = '0.5.0'
|
11
11
|
CXX = ENV[ 'CXX' ] || 'g++'
|
12
12
|
STRIP = ENV[ 'STRIP' ] || 'strip'
|
13
13
|
RB_FILES = FileList[ 'lib/**/*.rb' ]
|
14
14
|
CC_FILES = FileList[ 'ext/*.cc' ]
|
15
|
-
HH_FILES = FileList[ 'ext/*.hh' ]
|
15
|
+
HH_FILES = FileList[ 'ext/*.hh' ] + FileList[ 'ext/*.tcc' ]
|
16
16
|
TC_FILES = FileList[ 'test/tc_*.rb' ]
|
17
17
|
TS_FILES = FileList[ 'test/ts_*.rb' ]
|
18
18
|
SO_FILE = "ext/#{PKG_NAME.tr '\-', '_'}.so"
|
@@ -169,7 +169,9 @@ rule '.o' => '.cc' do |t|
|
|
169
169
|
end
|
170
170
|
|
171
171
|
file ".depends.mf" do |t|
|
172
|
-
sh "
|
172
|
+
sh "g++ -MM #{$CXXFLAGS} #{CC_FILES.join ' '} | " +
|
173
|
+
"sed -e :a -e N -e 's/\\n/\\$/g' -e ta | " +
|
174
|
+
"sed -e 's/ *\\\\\\$ */ /g' -e 's/\\$/\\n/g' | sed -e 's/^/ext\\//' > #{t.name}"
|
173
175
|
end
|
174
176
|
CC_FILES.each do |t|
|
175
177
|
file t.ext(".o") => t
|
data/ext/colourspace.cc
CHANGED
@@ -60,8 +60,8 @@ static void setupFormat( const string &typecode, int width, int height, char *me
|
|
60
60
|
width2 = width / 2,
|
61
61
|
height2 = height / 2;
|
62
62
|
data[ 0 ] = (uint8_t *)memory;
|
63
|
-
data[
|
64
|
-
data[
|
63
|
+
data[ 1 ] = (uint8_t *)memory + width * height;
|
64
|
+
data[ 2 ] = (uint8_t *)data[ 1 ] + width2 * height2;
|
65
65
|
lineSize[ 0 ] = width;
|
66
66
|
lineSize[ 1 ] = width2;
|
67
67
|
lineSize[ 2 ] = width2;
|
data/ext/frame.cc
CHANGED
@@ -23,9 +23,7 @@ Frame::Frame( const string &typecode, int width, int height, char *data ):
|
|
23
23
|
VALUE mModule = rb_define_module( "Hornetseye" );
|
24
24
|
VALUE cMalloc = rb_define_class_under( mModule, "Malloc", rb_cObject );
|
25
25
|
VALUE cFrame = rb_define_class_under( mModule, "Frame", rb_cObject );
|
26
|
-
VALUE rbSize =
|
27
|
-
rb_const_get( mModule, rb_intern( typecode.c_str() ) ),
|
28
|
-
INT2NUM( width ), INT2NUM( height ) );
|
26
|
+
VALUE rbSize = INT2NUM( storageSize( typecode, width, height ) );
|
29
27
|
VALUE rbMemory;
|
30
28
|
if ( data != NULL ) {
|
31
29
|
rbMemory = Data_Wrap_Struct( cMalloc, 0, 0, (void *)data );
|
@@ -67,3 +65,12 @@ void Frame::markRubyMember(void)
|
|
67
65
|
rb_gc_mark( m_frame );
|
68
66
|
}
|
69
67
|
|
68
|
+
int Frame::storageSize( const std::string &typecode, int width, int height )
|
69
|
+
{
|
70
|
+
VALUE mModule = rb_define_module( "Hornetseye" );
|
71
|
+
VALUE cFrame = rb_define_class_under( mModule, "Frame", rb_cObject );
|
72
|
+
return NUM2INT( rb_funcall( cFrame, rb_intern( "storage_size" ), 3,
|
73
|
+
rb_const_get( mModule, rb_intern( typecode.c_str() ) ),
|
74
|
+
INT2NUM( width ), INT2NUM( height ) ) );
|
75
|
+
}
|
76
|
+
|
data/ext/frame.hh
CHANGED
@@ -0,0 +1,71 @@
|
|
1
|
+
# multiarray - Lazy multi-dimensional arrays for Ruby
|
2
|
+
# Copyright (C) 2010 Jan Wedekind
|
3
|
+
#
|
4
|
+
# This program is free software: you can redistribute it and/or modify
|
5
|
+
# it under the terms of the GNU General Public License as published by
|
6
|
+
# the Free Software Foundation, either version 3 of the License, or
|
7
|
+
# (at your option) any later version.
|
8
|
+
#
|
9
|
+
# This program is distributed in the hope that it will be useful,
|
10
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
11
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
12
|
+
# GNU General Public License for more details.
|
13
|
+
#
|
14
|
+
# You should have received a copy of the GNU General Public License
|
15
|
+
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
16
|
+
|
17
|
+
# Namespace of Hornetseye computer vision library
|
18
|
+
module Hornetseye
|
19
|
+
|
20
|
+
module FrameConstructor
|
21
|
+
|
22
|
+
def method_missing( name, *args )
|
23
|
+
if name.to_s =~ /^[a-z0-9]+$/
|
24
|
+
target = name.to_s.upcase
|
25
|
+
if Hornetseye.const_defined? target
|
26
|
+
target = Hornetseye.const_get target
|
27
|
+
if target.is_a? FourCC
|
28
|
+
new target, *args
|
29
|
+
else
|
30
|
+
super name, *args
|
31
|
+
end
|
32
|
+
else
|
33
|
+
super name, *args
|
34
|
+
end
|
35
|
+
else
|
36
|
+
super name, *args
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
end
|
41
|
+
|
42
|
+
Frame.extend FrameConstructor
|
43
|
+
|
44
|
+
module FrameConversion
|
45
|
+
|
46
|
+
def method_missing( name, *args )
|
47
|
+
if name.to_s =~ /^to_[a-z0-9]+$/
|
48
|
+
target = name.to_s[ 3 .. -1 ].upcase
|
49
|
+
if Hornetseye.const_defined? target
|
50
|
+
target = Hornetseye.const_get target
|
51
|
+
if ( target.is_a? Class and target < Element ) or target.is_a? FourCC
|
52
|
+
to_type target, *args
|
53
|
+
else
|
54
|
+
super target, *args
|
55
|
+
end
|
56
|
+
else
|
57
|
+
super name, *args
|
58
|
+
end
|
59
|
+
else
|
60
|
+
super name, *args
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
end
|
65
|
+
|
66
|
+
Frame_.class_eval { include FrameConversion }
|
67
|
+
|
68
|
+
Node.class_eval { include FrameConversion }
|
69
|
+
|
70
|
+
end
|
71
|
+
|
data/lib/hornetseye_frame_ext.rb
CHANGED
metadata
CHANGED
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
|
|
4
4
|
prerelease: false
|
5
5
|
segments:
|
6
6
|
- 0
|
7
|
-
-
|
7
|
+
- 5
|
8
8
|
- 0
|
9
|
-
version: 0.
|
9
|
+
version: 0.5.0
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Jan Wedekind
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2010-10-
|
17
|
+
date: 2010-10-07 00:00:00 +01:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
@@ -71,6 +71,7 @@ files:
|
|
71
71
|
- README.md
|
72
72
|
- COPYING
|
73
73
|
- .document
|
74
|
+
- lib/hornetseye-frame/shortcuts.rb
|
74
75
|
- lib/hornetseye-frame/fourcc.rb
|
75
76
|
- lib/hornetseye-frame/frame.rb
|
76
77
|
- lib/hornetseye-frame/node.rb
|