activevlc 0.0.1 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +6 -0
- data/README.md +81 -26
- data/Rakefile +5 -0
- data/TODO.md +0 -1
- data/activevlc.gemspec +3 -2
- data/examples/basic.rb +14 -0
- data/examples/duplicate.rb +18 -0
- data/examples/duplicate_then_transcode.rb +29 -0
- data/examples/transcode_and_display.rb +25 -0
- data/examples/transcode_and_display_with_options.rb +36 -0
- data/lib/activevlc/cli.rb +25 -6
- data/lib/activevlc/libvlc/api.rb +196 -0
- data/lib/activevlc/libvlc/event_manager.rb +53 -0
- data/lib/activevlc/libvlc/instance.rb +71 -0
- data/lib/activevlc/libvlc/media.rb +32 -0
- data/lib/activevlc/libvlc/media_list.rb +55 -0
- data/lib/activevlc/libvlc/media_list_player.rb +64 -0
- data/lib/activevlc/libvlc/media_player.rb +63 -0
- data/lib/activevlc/libvlc.rb +33 -0
- data/lib/activevlc/pipeline.rb +4 -2
- data/lib/activevlc/pipeline_dump.rb +0 -2
- data/lib/activevlc/runner.rb +71 -0
- data/lib/activevlc/stage/input.rb +1 -0
- data/lib/activevlc/syntactic_sugar.rb +11 -0
- data/lib/activevlc/version.rb +1 -1
- data/lib/activevlc.rb +6 -3
- data/spec/event_manager_spec.rb +81 -0
- data/spec/libvlc_spec.rb +93 -0
- data/spec/pipeline_spec.rb +20 -1
- data/spec/pipes/no_input.rb +20 -0
- data/spec/pipes/transcode_and_display.rb +1 -1
- data/spec/runner_spec.rb +34 -0
- data/spec/samples/click.wav +0 -0
- data/spec/spec_helper.rb +24 -11
- metadata +34 -9
- data/examples/design.rb +0 -84
data/spec/runner_spec.rb
ADDED
@@ -0,0 +1,34 @@
|
|
1
|
+
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
describe ActiveVlc::Runner do
|
5
|
+
it 'can be created' do
|
6
|
+
pipe = ActiveVlc.parse('spec/pipes/no_input.rb')
|
7
|
+
runner = ActiveVlc::Runner.new(pipe, "--play-and-exit")
|
8
|
+
runner.should be_a_kind_of(ActiveVlc::Runner)
|
9
|
+
end
|
10
|
+
|
11
|
+
it 'can be ran' do
|
12
|
+
out = "output.ogg"
|
13
|
+
pipe = ActiveVlc.parse('spec/pipes/no_input.rb')
|
14
|
+
runner = ActiveVlc::Runner.new(pipe)
|
15
|
+
pipe.input << 'spec/samples/click.wav'
|
16
|
+
|
17
|
+
`rm -f #{out}`
|
18
|
+
runner.run
|
19
|
+
File.exist?(out).should be_true
|
20
|
+
`rm -f #{out}`
|
21
|
+
end
|
22
|
+
|
23
|
+
it 'can be ran in a separate process' do
|
24
|
+
out = "output.ogg"
|
25
|
+
pipe = ActiveVlc.parse('spec/pipes/no_input.rb')
|
26
|
+
runner = ActiveVlc::Runner.new(pipe)
|
27
|
+
pipe.input << 'spec/samples/click.wav'
|
28
|
+
|
29
|
+
`rm -f #{out}`
|
30
|
+
runner.run
|
31
|
+
File.exist?(out).should be_true
|
32
|
+
`rm -f #{out}`
|
33
|
+
end
|
34
|
+
end
|
Binary file
|
data/spec/spec_helper.rb
CHANGED
@@ -9,29 +9,42 @@
|
|
9
9
|
##
|
10
10
|
## Copyright (C) 2013 Lta Akr
|
11
11
|
|
12
|
-
|
13
|
-
|
14
|
-
|
12
|
+
unless ENV['NO_COVERAGE']
|
13
|
+
require 'simplecov'
|
14
|
+
SimpleCov.start do
|
15
|
+
add_filter '/spec/'
|
15
16
|
|
16
|
-
|
17
|
-
|
17
|
+
add_group "Stages", '/stage/'
|
18
|
+
add_group "DSL", '/dsl/'
|
19
|
+
add_group "LibVlc", '/libvlc/'
|
20
|
+
end
|
18
21
|
end
|
19
22
|
|
20
23
|
require 'activevlc'
|
21
24
|
|
22
25
|
RSpec.configure do |config|
|
23
|
-
|
26
|
+
config.order_groups do |groups|
|
27
|
+
groups.shuffle!
|
28
|
+
runner = groups.index { |g| g.described_class == ActiveVlc::Runner }
|
29
|
+
if runner
|
30
|
+
runner = groups.delete_at runner
|
31
|
+
groups.unshift runner
|
32
|
+
end
|
33
|
+
groups
|
34
|
+
end
|
24
35
|
#
|
25
|
-
#
|
36
|
+
# We force the run order of the specs to ensure runner_specs get executed first.
|
37
|
+
# This is important because libvlc seems to creates some internal state that
|
38
|
+
# leads to a deadlock when executed last
|
26
39
|
#
|
27
|
-
# config.
|
28
|
-
#
|
29
|
-
#
|
40
|
+
# files = config.instance_variable_get(:@files_to_run)
|
41
|
+
# puts files
|
42
|
+
# files.delete ''
|
30
43
|
|
31
44
|
# Run specs in random order to surface order dependencies. If you find an
|
32
45
|
# order dependency and want to debug it, you can fix the order by providing
|
33
46
|
# the seed, which is printed after each run.
|
34
47
|
# --seed 1234
|
35
|
-
config.order = "random"
|
48
|
+
#config.order = "random"
|
36
49
|
end
|
37
50
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: activevlc
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Julien 'Lta' BALLET
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-09-
|
11
|
+
date: 2013-09-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -30,14 +30,14 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - ~>
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '2.
|
33
|
+
version: '2.14'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - ~>
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '2.
|
40
|
+
version: '2.14'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: simplecov
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -67,13 +67,13 @@ dependencies:
|
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
70
|
+
name: thor
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
73
|
- - '>='
|
74
74
|
- !ruby/object:Gem::Version
|
75
75
|
version: '0'
|
76
|
-
type: :
|
76
|
+
type: :runtime
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
@@ -81,7 +81,7 @@ dependencies:
|
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
|
-
name:
|
84
|
+
name: activesupport
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
87
|
- - '>='
|
@@ -95,7 +95,7 @@ dependencies:
|
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '0'
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
|
-
name:
|
98
|
+
name: ffi
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
101
|
- - '>='
|
@@ -119,6 +119,7 @@ extra_rdoc_files: []
|
|
119
119
|
files:
|
120
120
|
- .gitignore
|
121
121
|
- .rspec
|
122
|
+
- .travis.yml
|
122
123
|
- Gemfile
|
123
124
|
- LICENSE.txt
|
124
125
|
- README.md
|
@@ -126,7 +127,11 @@ files:
|
|
126
127
|
- TODO.md
|
127
128
|
- activevlc.gemspec
|
128
129
|
- bin/activevlc
|
129
|
-
- examples/
|
130
|
+
- examples/basic.rb
|
131
|
+
- examples/duplicate.rb
|
132
|
+
- examples/duplicate_then_transcode.rb
|
133
|
+
- examples/transcode_and_display.rb
|
134
|
+
- examples/transcode_and_display_with_options.rb
|
130
135
|
- lib/activevlc.rb
|
131
136
|
- lib/activevlc/cli.rb
|
132
137
|
- lib/activevlc/cli/vlc.rb
|
@@ -136,8 +141,17 @@ files:
|
|
136
141
|
- lib/activevlc/dsl/pipeline.rb
|
137
142
|
- lib/activevlc/dsl/stream.rb
|
138
143
|
- lib/activevlc/dsl/transcode.rb
|
144
|
+
- lib/activevlc/libvlc.rb
|
145
|
+
- lib/activevlc/libvlc/api.rb
|
146
|
+
- lib/activevlc/libvlc/event_manager.rb
|
147
|
+
- lib/activevlc/libvlc/instance.rb
|
148
|
+
- lib/activevlc/libvlc/media.rb
|
149
|
+
- lib/activevlc/libvlc/media_list.rb
|
150
|
+
- lib/activevlc/libvlc/media_list_player.rb
|
151
|
+
- lib/activevlc/libvlc/media_player.rb
|
139
152
|
- lib/activevlc/pipeline.rb
|
140
153
|
- lib/activevlc/pipeline_dump.rb
|
154
|
+
- lib/activevlc/runner.rb
|
141
155
|
- lib/activevlc/stage.rb
|
142
156
|
- lib/activevlc/stage/base.rb
|
143
157
|
- lib/activevlc/stage/chain.rb
|
@@ -146,16 +160,22 @@ files:
|
|
146
160
|
- lib/activevlc/stage/input.rb
|
147
161
|
- lib/activevlc/stage/stream.rb
|
148
162
|
- lib/activevlc/stage/transcode.rb
|
163
|
+
- lib/activevlc/syntactic_sugar.rb
|
149
164
|
- lib/activevlc/version.rb
|
150
165
|
- spec/basic_pipe_spec.rb
|
151
166
|
- spec/basic_spec.rb
|
167
|
+
- spec/event_manager_spec.rb
|
168
|
+
- spec/libvlc_spec.rb
|
152
169
|
- spec/pipeline_dump_spec.rb
|
153
170
|
- spec/pipeline_spec.rb
|
154
171
|
- spec/pipes/basic.rb
|
155
172
|
- spec/pipes/duplicate.rb
|
156
173
|
- spec/pipes/duplicate_then_transcode.rb
|
174
|
+
- spec/pipes/no_input.rb
|
157
175
|
- spec/pipes/transcode_and_display.rb
|
158
176
|
- spec/pipes/transcode_and_display_with_options.rb
|
177
|
+
- spec/runner_spec.rb
|
178
|
+
- spec/samples/click.wav
|
159
179
|
- spec/spec_helper.rb
|
160
180
|
- spec/stage_spec.rb
|
161
181
|
homepage: http://github.com/elthariel/activevlc
|
@@ -185,12 +205,17 @@ summary: DSL for building VLC pipelines
|
|
185
205
|
test_files:
|
186
206
|
- spec/basic_pipe_spec.rb
|
187
207
|
- spec/basic_spec.rb
|
208
|
+
- spec/event_manager_spec.rb
|
209
|
+
- spec/libvlc_spec.rb
|
188
210
|
- spec/pipeline_dump_spec.rb
|
189
211
|
- spec/pipeline_spec.rb
|
190
212
|
- spec/pipes/basic.rb
|
191
213
|
- spec/pipes/duplicate.rb
|
192
214
|
- spec/pipes/duplicate_then_transcode.rb
|
215
|
+
- spec/pipes/no_input.rb
|
193
216
|
- spec/pipes/transcode_and_display.rb
|
194
217
|
- spec/pipes/transcode_and_display_with_options.rb
|
218
|
+
- spec/runner_spec.rb
|
219
|
+
- spec/samples/click.wav
|
195
220
|
- spec/spec_helper.rb
|
196
221
|
- spec/stage_spec.rb
|
data/examples/design.rb
DELETED
@@ -1,84 +0,0 @@
|
|
1
|
-
##
|
2
|
-
## design.rb
|
3
|
-
## Login : <lta@still>
|
4
|
-
## Started on Wed Jun 12 01:18:11 2013 Lta Akr
|
5
|
-
##
|
6
|
-
## Author(s):
|
7
|
-
## - Julien 'Lta' BALLET <contact@lta.io>
|
8
|
-
##
|
9
|
-
## Copyright (C) 2013 Julien 'Lta' BALLET
|
10
|
-
|
11
|
-
# This example isn't supposed to work yet. It justs document what it's
|
12
|
-
# supposed to look like when it's ready
|
13
|
-
|
14
|
-
pipe_for 'file.mp4' do |pipe|
|
15
|
-
transcode do
|
16
|
-
audio do
|
17
|
-
codec :aac do
|
18
|
-
rc_method :vbr
|
19
|
-
psy_model :test1
|
20
|
-
end
|
21
|
-
bitrate 256
|
22
|
-
end
|
23
|
-
video :h264 do
|
24
|
-
encoder :qsv
|
25
|
-
async_depth 6
|
26
|
-
h264_level '5.1'
|
27
|
-
end
|
28
|
-
end
|
29
|
-
deinterlace
|
30
|
-
|
31
|
-
duplicate do
|
32
|
-
to :dst do
|
33
|
-
caching 300
|
34
|
-
muxer 'mp4'
|
35
|
-
path '/tmp/test.mp4'
|
36
|
-
end
|
37
|
-
to :rtp do
|
38
|
-
caching 1500
|
39
|
-
muxer :ts
|
40
|
-
dst '192.168.0.1:4567'
|
41
|
-
end
|
42
|
-
to_display
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
#
|
49
|
-
# Kind of memory representation of the next pipeline
|
50
|
-
# Pipeline
|
51
|
-
# @stages =
|
52
|
-
# - Stage (@type = :transcode)
|
53
|
-
# @options = {
|
54
|
-
# acodec = {
|
55
|
-
# _this_: :aac,
|
56
|
-
# opt1: 'test',
|
57
|
-
# opt1: 'test',
|
58
|
-
# }
|
59
|
-
# }
|
60
|
-
# - DuplicateStage (@type = :duplicate)
|
61
|
-
# @substages =
|
62
|
-
# - Stage (@type = :standard)
|
63
|
-
# @options = {
|
64
|
-
# mux: 'mp4'
|
65
|
-
# dst: 'output.mp4'
|
66
|
-
# }
|
67
|
-
#
|
68
|
-
ActiveVlc::pipe_for 'input.mp4' do
|
69
|
-
transcode do
|
70
|
-
audio :aac do
|
71
|
-
opt1 'test'
|
72
|
-
opt2 'caca'
|
73
|
-
opt3 42
|
74
|
-
end
|
75
|
-
video :h264
|
76
|
-
end
|
77
|
-
duplicate do
|
78
|
-
to :file do
|
79
|
-
mux :mp4
|
80
|
-
dst 'output.mp4'
|
81
|
-
end
|
82
|
-
to :display
|
83
|
-
end
|
84
|
-
end
|