hornetseye-frame 0.8.0 → 0.8.1
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/Rakefile +14 -14
- data/ext/colourspace.cc +5 -6
- data/lib/hornetseye-frame/frame.rb +7 -2
- data/test/tc_frame.rb +7 -0
- metadata +3 -3
data/Rakefile
CHANGED
@@ -8,15 +8,15 @@ require 'rbconfig'
|
|
8
8
|
require 'tempfile'
|
9
9
|
|
10
10
|
PKG_NAME = 'hornetseye-frame'
|
11
|
-
PKG_VERSION = '0.8.
|
11
|
+
PKG_VERSION = '0.8.1'
|
12
|
+
CFG = RbConfig::CONFIG
|
12
13
|
CXX = ENV[ 'CXX' ] || 'g++'
|
13
|
-
STRIP = ENV[ 'STRIP' ] || 'strip'
|
14
14
|
RB_FILES = FileList[ 'lib/**/*.rb' ]
|
15
15
|
CC_FILES = FileList[ 'ext/*.cc' ]
|
16
16
|
HH_FILES = FileList[ 'ext/*.hh' ] + FileList[ 'ext/*.tcc' ]
|
17
17
|
TC_FILES = FileList[ 'test/tc_*.rb' ]
|
18
18
|
TS_FILES = FileList[ 'test/ts_*.rb' ]
|
19
|
-
SO_FILE = "ext/#{PKG_NAME.tr '\-', '_'}
|
19
|
+
SO_FILE = "ext/#{PKG_NAME.tr '\-', '_'}.#{CFG[ 'DLEXT' ]}"
|
20
20
|
PKG_FILES = [ 'Rakefile', 'README.md', 'COPYING', '.document' ] +
|
21
21
|
RB_FILES + CC_FILES + HH_FILES + TS_FILES + TC_FILES
|
22
22
|
BIN_FILES = [ 'README.md', 'COPYING', '.document', SO_FILE ] +
|
@@ -28,17 +28,18 @@ EMAIL = %q{jan@wedesoft.de}
|
|
28
28
|
HOMEPAGE = %q{http://wedesoft.github.com/hornetseye-frame/}
|
29
29
|
|
30
30
|
OBJ = CC_FILES.ext 'o'
|
31
|
-
$CXXFLAGS =
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
"-I#{RbConfig::CONFIG[ 'rubyhdrdir' ]}/#{RbConfig::CONFIG[ 'arch' ]}"
|
31
|
+
$CXXFLAGS = "-DNDEBUG -DHAVE_CONFIG_H #{CFG[ 'CPPFLAGS' ]} #{CFG[ 'CFLAGS' ]}"
|
32
|
+
if CFG[ 'rubyhdrdir' ]
|
33
|
+
$CXXFLAGS = "#{$CXXFLAGS} -I#{CFG[ 'rubyhdrdir' ]} " +
|
34
|
+
"-I#{CFG[ 'rubyhdrdir' ]}/#{CFG[ 'arch' ]}"
|
36
35
|
else
|
37
|
-
$CXXFLAGS = "#{$CXXFLAGS} -I#{
|
36
|
+
$CXXFLAGS = "#{$CXXFLAGS} -I#{CFG[ 'archdir' ]}"
|
38
37
|
end
|
39
|
-
$LIBRUBYARG =
|
40
|
-
|
41
|
-
$
|
38
|
+
$LIBRUBYARG = "-L#{CFG[ 'libdir' ]} #{CFG[ 'LIBRUBYARG' ]} #{CFG[ 'LDFLAGS' ]} " +
|
39
|
+
"#{CFG[ 'SOLIBS' ]} #{CFG[ 'DLDLIBS' ]}"
|
40
|
+
$SITELIBDIR = CFG[ 'sitelibdir' ]
|
41
|
+
$SITEARCHDIR = CFG[ 'sitearchdir' ]
|
42
|
+
$LDSHARED = CFG[ 'LDSHARED' ][ CFG[ 'LDSHARED' ].index( ' ' ) .. -1 ]
|
42
43
|
|
43
44
|
task :default => :all
|
44
45
|
|
@@ -47,7 +48,6 @@ task :all => [ SO_FILE ]
|
|
47
48
|
|
48
49
|
file SO_FILE => OBJ do |t|
|
49
50
|
sh "#{CXX} -shared -o #{t.name} #{OBJ} -lswscale #{$LIBRUBYARG}"
|
50
|
-
sh "#{STRIP} --strip-all #{t.name}"
|
51
51
|
end
|
52
52
|
|
53
53
|
task :test => [ SO_FILE ]
|
@@ -208,7 +208,7 @@ rule '.o' => '.cc' do |t|
|
|
208
208
|
end
|
209
209
|
|
210
210
|
file ".depends.mf" => :config_h do |t|
|
211
|
-
sh "g++ -MM #{
|
211
|
+
sh "g++ -MM #{CC_FILES.join ' '} | " +
|
212
212
|
"sed -e :a -e N -e 's/\\n/\\$/g' -e ta | " +
|
213
213
|
"sed -e 's/ *\\\\\\$ */ /g' -e 's/\\$/\\n/g' | sed -e 's/^/ext\\//' > #{t.name}"
|
214
214
|
end
|
data/ext/colourspace.cc
CHANGED
@@ -59,13 +59,13 @@ static void setupFormat( const string &typecode, int width, int height, char *me
|
|
59
59
|
data[ 2 ] = (uint8_t *)memory + widtha * height;
|
60
60
|
data[ 1 ] = (uint8_t *)data[ 2 ] + width2a * height2;
|
61
61
|
lineSize[ 0 ] = widtha;
|
62
|
-
lineSize[ 1 ] =
|
63
|
-
lineSize[ 2 ] =
|
62
|
+
lineSize[ 1 ] = width2a;
|
63
|
+
lineSize[ 2 ] = width2a;
|
64
64
|
} else if ( typecode == "I420" ) {
|
65
65
|
*format = PIX_FMT_YUV420P;
|
66
66
|
int
|
67
|
-
width2 = width / 2,
|
68
|
-
height2 = height / 2;
|
67
|
+
width2 = ( width + 1 ) / 2,
|
68
|
+
height2 = ( height + 1 ) / 2;
|
69
69
|
data[ 0 ] = (uint8_t *)memory;
|
70
70
|
data[ 1 ] = (uint8_t *)memory + width * height;
|
71
71
|
data[ 2 ] = (uint8_t *)data[ 1 ] + width2 * height2;
|
@@ -75,13 +75,12 @@ static void setupFormat( const string &typecode, int width, int height, char *me
|
|
75
75
|
} else if ( typecode == "YUY2" ) {
|
76
76
|
*format = PIX_FMT_YUYV422;
|
77
77
|
int
|
78
|
-
width2 = ( width + 1 ) / 2,
|
79
78
|
widtha = ( width + 3 ) & ~0x3;
|
80
79
|
data[ 0 ] = (uint8_t *)memory;
|
81
80
|
lineSize[ 0 ] = 2 * widtha;
|
82
81
|
} else if ( typecode == "UYVY" ) {
|
83
82
|
*format = PIX_FMT_UYVY422;
|
84
|
-
int widtha = ( width +
|
83
|
+
int widtha = ( width + 3 ) & ~0x3;
|
85
84
|
data[ 0 ] = (uint8_t *)memory;
|
86
85
|
lineSize[ 0 ] = 2 * widtha;
|
87
86
|
} else {
|
@@ -42,12 +42,17 @@ module Hornetseye
|
|
42
42
|
when BGRA
|
43
43
|
width * height * 4
|
44
44
|
when UYVY
|
45
|
-
width
|
45
|
+
widtha = ( width + 3 ) & ~0x3
|
46
|
+
widtha * height * 2
|
46
47
|
when YUY2
|
47
48
|
widtha = ( width + 3 ) & ~0x3
|
48
49
|
widtha * height * 2
|
49
50
|
when YV12
|
50
|
-
|
51
|
+
width2 = ( width + 1 ) / 2
|
52
|
+
height2 = ( height + 1 ) / 2
|
53
|
+
widtha = ( width + 7 ) & ~0x7
|
54
|
+
width2a = ( width2 + 7 ) & ~0x7
|
55
|
+
widtha * height + 2 * width2a * height2
|
51
56
|
when I420
|
52
57
|
width * height * 3 / 2
|
53
58
|
when MJPG
|
data/test/tc_frame.rb
CHANGED
@@ -69,6 +69,13 @@ class TC_Frame < Test::Unit::TestCase
|
|
69
69
|
assert_equal [ 320, 240 ], F( YV12, 320, 240 ).shape
|
70
70
|
end
|
71
71
|
|
72
|
+
def test_frame_equal
|
73
|
+
assert_equal F( YV12, 320, 240 ), F( YV12, 320, 240 )
|
74
|
+
assert_not_equal F( YV12, 320, 240 ), F( YV12, 320, 200 )
|
75
|
+
assert_not_equal F( YV12, 320, 240 ), F( YV12, 240, 240 )
|
76
|
+
assert_not_equal F( YV12, 320, 240 ), F( I420, 320, 240 )
|
77
|
+
end
|
78
|
+
|
72
79
|
def test_typecode
|
73
80
|
assert_equal YV12, F.new( YV12, 320, 240 ).typecode
|
74
81
|
end
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 8
|
8
|
-
-
|
9
|
-
version: 0.8.
|
8
|
+
- 1
|
9
|
+
version: 0.8.1
|
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-
|
17
|
+
date: 2010-11-13 00:00:00 +00:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|