hornetseye-ffmpeg 0.5.2 → 0.5.3
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 +3 -3
- data/ext/avinput.cc +23 -0
- data/ext/avinput.hh +2 -0
- data/lib/hornetseye-ffmpeg/avinput.rb +6 -0
- metadata +3 -3
data/Rakefile
CHANGED
@@ -7,7 +7,7 @@ require 'rake/loaders/makefile'
|
|
7
7
|
require 'rbconfig'
|
8
8
|
|
9
9
|
PKG_NAME = 'hornetseye-ffmpeg'
|
10
|
-
PKG_VERSION = '0.5.
|
10
|
+
PKG_VERSION = '0.5.3'
|
11
11
|
CXX = ENV[ 'CXX' ] || 'g++'
|
12
12
|
STRIP = ENV[ 'STRIP' ] || 'strip'
|
13
13
|
RB_FILES = FileList[ 'lib/**/*.rb' ]
|
@@ -33,7 +33,7 @@ if RbConfig::CONFIG[ 'rubyhdrdir' ]
|
|
33
33
|
$CXXFLAGS = "#{$CXXFLAGS} -I#{RbConfig::CONFIG[ 'rubyhdrdir' ]} " +
|
34
34
|
"-I#{RbConfig::CONFIG[ 'rubyhdrdir' ]}/#{RbConfig::CONFIG[ 'arch' ]}"
|
35
35
|
else
|
36
|
-
$CXXFLAGS
|
36
|
+
$CXXFLAGS = "#{$CXXFLAGS} -I#{RbConfig::CONFIG[ 'archdir' ]}"
|
37
37
|
end
|
38
38
|
$LIBRUBYARG = RbConfig::CONFIG[ 'LIBRUBYARG' ]
|
39
39
|
$SITELIBDIR = RbConfig::CONFIG[ 'sitelibdir' ]
|
@@ -113,7 +113,7 @@ file 'ext/config.h' do |t|
|
|
113
113
|
elsif check_c_header 'ffmpeg/avformat.h'
|
114
114
|
s << "#undef HAVE_LIBAVFORMAT_INCDIR\n"
|
115
115
|
else
|
116
|
-
raise 'Cannot find
|
116
|
+
raise 'Cannot find avformat.h header file'
|
117
117
|
end
|
118
118
|
have_libavformat_alloc_context = check_program do |c|
|
119
119
|
c.puts <<EOS
|
data/ext/avinput.cc
CHANGED
@@ -241,6 +241,13 @@ AVRational AVInput::frameRate(void) throw (Error)
|
|
241
241
|
return m_ic->streams[ m_videoStream ]->r_frame_rate;
|
242
242
|
}
|
243
243
|
|
244
|
+
AVRational AVInput::aspectRatio(void) throw (Error)
|
245
|
+
{
|
246
|
+
ERRORMACRO( m_ic != NULL, Error, , "Video \"" << m_mrl << "\" is not open. "
|
247
|
+
"Did you call \"close\" before?" );
|
248
|
+
return m_ic->streams[ m_videoStream ]->sample_aspect_ratio;
|
249
|
+
}
|
250
|
+
|
244
251
|
int AVInput::sampleRate(void) throw (Error)
|
245
252
|
{
|
246
253
|
ERRORMACRO( m_audioDec != NULL, Error, , "Audio \"" << m_mrl << "\" is not open. "
|
@@ -307,6 +314,8 @@ VALUE AVInput::registerRubyClass( VALUE rbModule )
|
|
307
314
|
rb_define_method( cRubyClass, "audio_time_base",
|
308
315
|
RUBY_METHOD_FUNC( wrapAudioTimeBase ), 0 );
|
309
316
|
rb_define_method( cRubyClass, "frame_rate", RUBY_METHOD_FUNC( wrapFrameRate ), 0 );
|
317
|
+
rb_define_method( cRubyClass, "aspect_ratio",
|
318
|
+
RUBY_METHOD_FUNC( wrapAspectRatio ), 0 );
|
310
319
|
rb_define_method( cRubyClass, "sample_rate", RUBY_METHOD_FUNC( wrapSampleRate ), 0 );
|
311
320
|
rb_define_method( cRubyClass, "channels", RUBY_METHOD_FUNC( wrapChannels ), 0 );
|
312
321
|
rb_define_method( cRubyClass, "duration", RUBY_METHOD_FUNC( wrapDuration ), 0 );
|
@@ -415,6 +424,20 @@ VALUE AVInput::wrapFrameRate( VALUE rbSelf )
|
|
415
424
|
return retVal;
|
416
425
|
}
|
417
426
|
|
427
|
+
VALUE AVInput::wrapAspectRatio( VALUE rbSelf )
|
428
|
+
{
|
429
|
+
VALUE retVal = Qnil;
|
430
|
+
try {
|
431
|
+
AVInputPtr *self; Data_Get_Struct( rbSelf, AVInputPtr, self );
|
432
|
+
AVRational aspectRatio = (*self)->aspectRatio();
|
433
|
+
retVal = rb_funcall( rb_cObject, rb_intern( "Rational" ), 2,
|
434
|
+
INT2NUM( aspectRatio.num ), INT2NUM( aspectRatio.den ) );
|
435
|
+
} catch( exception &e ) {
|
436
|
+
rb_raise( rb_eRuntimeError, "%s", e.what() );
|
437
|
+
};
|
438
|
+
return retVal;
|
439
|
+
}
|
440
|
+
|
418
441
|
VALUE AVInput::wrapSampleRate( VALUE rbSelf )
|
419
442
|
{
|
420
443
|
VALUE retVal = Qnil;
|
data/ext/avinput.hh
CHANGED
@@ -51,6 +51,7 @@ public:
|
|
51
51
|
AVRational videoTimeBase(void) throw (Error);
|
52
52
|
AVRational audioTimeBase(void) throw (Error);
|
53
53
|
AVRational frameRate(void) throw (Error);
|
54
|
+
AVRational aspectRatio(void) throw (Error);
|
54
55
|
int sampleRate(void) throw (Error);
|
55
56
|
int channels(void) throw (Error);
|
56
57
|
long long duration(void) throw (Error);
|
@@ -69,6 +70,7 @@ public:
|
|
69
70
|
static VALUE wrapVideoTimeBase( VALUE rbSelf );
|
70
71
|
static VALUE wrapAudioTimeBase( VALUE rbSelf );
|
71
72
|
static VALUE wrapFrameRate( VALUE rbSelf );
|
73
|
+
static VALUE wrapAspectRatio( VALUE rbSelf );
|
72
74
|
static VALUE wrapSampleRate( VALUE rbSelf );
|
73
75
|
static VALUE wrapChannels( VALUE rbSelf );
|
74
76
|
static VALUE wrapDuration( VALUE rbSelf );
|
@@ -99,6 +99,12 @@ module Hornetseye
|
|
99
99
|
orig_start_time == AV_NOPTS_VALUE ? nil : orig_start_time * video_time_base
|
100
100
|
end
|
101
101
|
|
102
|
+
alias_method :orig_aspect_ratio, :aspect_ratio
|
103
|
+
|
104
|
+
def aspect_ratio
|
105
|
+
orig_aspect_ratio == 0 ? 1 : orig_aspect_ratio
|
106
|
+
end
|
107
|
+
|
102
108
|
end
|
103
109
|
|
104
110
|
end
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 5
|
8
|
-
-
|
9
|
-
version: 0.5.
|
8
|
+
- 3
|
9
|
+
version: 0.5.3
|
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-21 00:00:00 +01:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|