sensible-cinema 0.15.0 → 0.16.1
Sign up to get free protection for your applications and to get access to all the features.
- data/ChangeLog +15 -1
- data/LICENSE +46 -35
- data/Rakefile +7 -10
- data/TODO +61 -67
- data/VERSION +1 -1
- data/bin/sensible-cinema +195 -113
- data/lib/edl_parser.rb +54 -0
- data/lib/mencoder_wrapper.rb +8 -9
- data/lib/storage.rb +82 -0
- data/lib/swing_helpers.rb +19 -1
- data/run_sensible_cinema_in_create_mode.bat +5 -0
- data/sensible-cinema.gemspec +141 -136
- data/spec/edl_parser.spec.rb +76 -0
- data/spec/mencoder_wrapper.spec.rb +10 -12
- data/spec/sensible_cinema_gui.spec.rb +12 -10
- data/vendor/unzip.exe +0 -0
- data/zamples/edit_decision_lists/category descriptions.txt +1 -0
- data/zamples/edit_decision_lists/dvds/bobs_big_plan.txt +9 -12
- data/zamples/edit_decision_lists/dvds/happiest baby on the block.txt +8 -11
- data/zamples/edit_decision_lists/dvds/White Christmas.txt b/data/zamples/edit_decision_lists/dvds/old_and_inaccurate/White → Christmas.txt +0 -0
- data/zamples/edit_decision_lists/dvds/{all_dogs_go_to_heaven.txt → old_and_inaccurate/all_dogs_go_to_heaven.txt} +0 -0
- data/zamples/edit_decision_lists/dvds/{cars_disney.txt → old_and_inaccurate/cars_disney.txt} +0 -0
- data/zamples/edit_decision_lists/dvds/{happy_feet.txt → old_and_inaccurate/happy_feet.txt} +0 -0
- data/zamples/edit_decision_lists/dvds/{labyrinth.txt → old_and_inaccurate/labyrinth.txt} +0 -0
- data/zamples/edit_decision_lists/dvds/making marriage work.txt b/data/zamples/edit_decision_lists/dvds/old_and_inaccurate/making marriage → work.txt +0 -0
- data/zamples/edit_decision_lists/{star_trek_generations_hulu.txt → dvds/old_and_inaccurate/star_trek_generations_hulu.txt} +0 -0
- data/zamples/edit_decision_lists/example_edit_decision_list.txt +36 -20
- data/zamples/edit_decision_lists/{youtube → old_not_yet_update/youtube}/gummy_bear_song_youtube.txt +0 -0
- data/zamples/edit_decision_lists/{youtube → old_not_yet_update/youtube}/nuki_song_youtube.txt +0 -0
- metadata +291 -285
@@ -0,0 +1,76 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/common')
|
2
|
+
require_relative '../lib/edl_parser'
|
3
|
+
|
4
|
+
describe EdlParser do
|
5
|
+
|
6
|
+
E = EdlParser
|
7
|
+
|
8
|
+
it "should parse" do
|
9
|
+
E.parse_string('"a" => "3"', nil).should == {"a"=>"3", "mutes"=>[], "blank_outs"=>[]}
|
10
|
+
end
|
11
|
+
|
12
|
+
it "should get mutes and blank_outs" do
|
13
|
+
string = File.read(__dir__ + "/../zamples/edit_decision_lists/example_edit_decision_list.txt")
|
14
|
+
expected =
|
15
|
+
{
|
16
|
+
"mutes"=>[["00:00:01", "00:00:02"],
|
17
|
+
["00:00:01", "00:00:02", "profanity", "dang"],
|
18
|
+
["01:01:00", "01:02:00"]],
|
19
|
+
"blank_outs"=>[["01:01:00", "01:02:00", "nudity", "5"],
|
20
|
+
["00:03:03.5", "00:03:04.5"],
|
21
|
+
["01:01:00", "01:02:00", "profanity", "bodily function 1"]],
|
22
|
+
"missing_content"=>"this doesn't list some mild name calling",
|
23
|
+
"title"=>"Forever Strong", "source"=>"Hulu", "url"=>"http://www.byutv.org/watch/1790-100",
|
24
|
+
"whatever_else_you_want"=>"this is the old version of the film"
|
25
|
+
}
|
26
|
+
E.parse_string(string, nil).should == expected
|
27
|
+
end
|
28
|
+
|
29
|
+
it "should extract digits well" do
|
30
|
+
out = ["00:00:01.1", "00:00:01"]
|
31
|
+
EdlParser.extract_entry!(out).should == ["00:00:01.1", "00:00:01"]
|
32
|
+
out.should == []
|
33
|
+
end
|
34
|
+
|
35
|
+
it "should extract digits plus 'stuff' well" do
|
36
|
+
out = ["1:01", "1:01", "a", "2:01", "2:02", "b"]
|
37
|
+
EdlParser.extract_entry!(out).should == ["1:01", "1:01", "a"]
|
38
|
+
EdlParser.extract_entry!(out).should == ["2:01", "2:02", "b"]
|
39
|
+
end
|
40
|
+
|
41
|
+
it "should raise if the first two aren't digits" do
|
42
|
+
proc { EdlParser.extract_entry!(["a"])}.should raise_exception
|
43
|
+
end
|
44
|
+
|
45
|
+
it "should detect timestamps well" do
|
46
|
+
t = EdlParser::TimeStamp
|
47
|
+
"2:01".should match(t)
|
48
|
+
"1:01.5".should match(t)
|
49
|
+
"00:00:00.5".should match(t)
|
50
|
+
"00:00:00".should match(t)
|
51
|
+
"5".should_not match(t)
|
52
|
+
"category".should_not match(t)
|
53
|
+
end
|
54
|
+
|
55
|
+
it "should parse a real file" do
|
56
|
+
E.parse_file(File.expand_path(__dir__) + "/../zamples/edit_decision_lists/dvds/bobs_big_plan.txt").should ==
|
57
|
+
{"mutes"=>[["00:03.8", "01:03", "theme song is a bit raucous at times"], ["48:46", "49:08", "theme song again"], ["29:14", "30:46", "theme song again"]], "title"=>"Bob's Big Plan", "dvd_drive_label"=>"BOBS_BIG_PLAN", "source"=>"DVD", "dvd_title_track"=>1, "other notes"=>"could use more nit-picking of the song, as some parts seem all right in the end", "blank_outs"=>[]}
|
58
|
+
end
|
59
|
+
|
60
|
+
it "should be able to use personal preferences to decide which edits to make" do
|
61
|
+
out = <<-EOL
|
62
|
+
"mutes" => [
|
63
|
+
"00:10", "00:15", "test category", "1",
|
64
|
+
"00:20", "00:25", "test category", "2"
|
65
|
+
]
|
66
|
+
EOL
|
67
|
+
parsed = E.parse_string out, nil
|
68
|
+
parsed["mutes"].length.should == 2 # has them both
|
69
|
+
|
70
|
+
1.upto(2) do |n|
|
71
|
+
parsed = E.parse_string(out, nil, [["test category", n.to_s]] )
|
72
|
+
parsed["mutes"].length.should == 1 # has them both
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
end
|
@@ -1,12 +1,13 @@
|
|
1
1
|
require File.dirname(__FILE__) + "/common"
|
2
2
|
require_relative '../lib/mencoder_wrapper'
|
3
|
+
require_relative '../lib/edl_parser'
|
3
4
|
|
4
5
|
describe MencoderWrapper do
|
5
6
|
|
6
7
|
before do
|
7
8
|
FileUtils.rm 'to_here.fulli.tmp.avi.done' rescue nil
|
8
9
|
FileUtils.rm 'to_here.fulli.tmp.avi' rescue nil
|
9
|
-
@a =
|
10
|
+
@a = EdlParser.parse_file "../zamples/edit_decision_lists/dvds/bobs_big_plan.txt"
|
10
11
|
@out = MencoderWrapper.get_bat_commands @a, "e:\\", 'to_here'
|
11
12
|
end
|
12
13
|
|
@@ -52,7 +53,8 @@ describe MencoderWrapper do
|
|
52
53
|
|
53
54
|
it "should have what looks like a working ffmpeg style split commands" do
|
54
55
|
# ffmpeg -i from_here.avi -vcodec copy -acodec copy -ss 1:00 -t 1:00 out.avi
|
55
|
-
@out.should match(/ffmpeg -i to_here.*vcodec copy -acodec
|
56
|
+
@out.should match(/ffmpeg -i to_here.*vcodec copy -acodec ac3 .*-ss .* -t /)
|
57
|
+
@out.should_not match(/acodec copy.*vol 0/)
|
56
58
|
end
|
57
59
|
|
58
60
|
it "should accomodate for mutes the ffmpeg way" do
|
@@ -76,7 +78,7 @@ describe MencoderWrapper do
|
|
76
78
|
end
|
77
79
|
|
78
80
|
it "should create a large conglom file" do
|
79
|
-
@out.should match(/
|
81
|
+
@out.should match(/mencoder.*-o to_here.avi -ovc copy -oac copy/)
|
80
82
|
end
|
81
83
|
|
82
84
|
it "should delete any large, grabbed tmp file" do
|
@@ -84,7 +86,7 @@ describe MencoderWrapper do
|
|
84
86
|
end
|
85
87
|
|
86
88
|
it "should delete all partials" do
|
87
|
-
1.upto(
|
89
|
+
1.upto(7) do |n|
|
88
90
|
@out.should match(Regexp.new(/del.*#{n}/))
|
89
91
|
end
|
90
92
|
# should delete the right numbers, too, which starts at 1
|
@@ -96,8 +98,8 @@ describe MencoderWrapper do
|
|
96
98
|
@out.should match(/del to_here.3.avi$/)
|
97
99
|
end
|
98
100
|
|
99
|
-
it "should echo that it is done" do
|
100
|
-
@out.should include("echo wrote")
|
101
|
+
it "should echo that it is done, with the right filename" do
|
102
|
+
@out.should include("echo wrote to to_here.avi")
|
101
103
|
end
|
102
104
|
|
103
105
|
def setup
|
@@ -149,13 +151,9 @@ describe MencoderWrapper do
|
|
149
151
|
@out.should include("-ss 15.0 -t 4.999")
|
150
152
|
end
|
151
153
|
|
152
|
-
it "should
|
154
|
+
it "should allow you to play something even if there's no edit list, just for examination sake" do
|
153
155
|
setup
|
154
|
-
proc { MencoderWrapper.get_bat_commands @settings, "e:\\", 'to_here', '00:14', '00:15'}.
|
155
|
-
end
|
156
|
-
|
157
|
-
it "should create a temp file" do
|
158
|
-
|
156
|
+
proc { MencoderWrapper.get_bat_commands @settings, "e:\\", 'to_here', '00:14', '00:15'}.should_not raise_error(/unable/)
|
159
157
|
end
|
160
158
|
|
161
159
|
end
|
@@ -4,27 +4,29 @@ load '../bin/sensible-cinema'
|
|
4
4
|
module SensibleSwing
|
5
5
|
describe MainWindow do
|
6
6
|
|
7
|
-
it "should auto-select
|
8
|
-
MainWindow.new.single_edit_list_matches_dvd("
|
7
|
+
it "should auto-select a EDL if it matches a DVD's title" do
|
8
|
+
MainWindow.new.single_edit_list_matches_dvd("d41d8cd98f00b204e9800998ecf8427e").should_not be nil
|
9
9
|
end
|
10
10
|
|
11
|
-
it "should
|
11
|
+
it "should not auto-select if you pass it nil" do
|
12
|
+
MainWindow.new.single_edit_list_matches_dvd(nil).should be nil
|
13
|
+
end
|
14
|
+
|
15
|
+
it "should prompt if two EDL's match a DVD title" do
|
12
16
|
MainWindow.const_set(:EDL_DIR, 'temp')
|
13
17
|
FileUtils.rm_rf 'temp'
|
14
18
|
Dir.mkdir 'temp'
|
15
19
|
MainWindow.new.single_edit_list_matches_dvd("BOBS_BIG_PLAN").should be nil
|
16
20
|
Dir.chdir 'temp' do
|
17
|
-
File.binwrite('a.txt', "
|
18
|
-
File.binwrite('b.txt', "
|
21
|
+
File.binwrite('a.txt', "\"disk_unique_id\" => \"abcdef1234\"")
|
22
|
+
File.binwrite('b.txt', "\"disk_unique_id\" => \"abcdef1234\"")
|
19
23
|
end
|
20
|
-
MainWindow.new.single_edit_list_matches_dvd("
|
21
|
-
|
24
|
+
MainWindow.new.single_edit_list_matches_dvd("abcdef1234").should be nil
|
22
25
|
end
|
23
26
|
|
24
|
-
it "should modify path to have
|
25
|
-
ENV['PATH'].should include("
|
27
|
+
it "should modify path to have mencder available, and ffmpeg, and download them on the fly" do
|
28
|
+
ENV['PATH'].should include("mencoder")
|
26
29
|
end
|
27
30
|
|
28
|
-
|
29
31
|
end
|
30
32
|
end
|
data/vendor/unzip.exe
ADDED
Binary file
|
@@ -1,13 +1,10 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
blank_outs:
|
6
|
-
# none
|
1
|
+
"title" => "Bob's Big Plan",
|
2
|
+
"disk_unique_id" => "d41d8cd98f00b204e9800998ecf8427e",
|
3
|
+
"dvd_title_track" => 1,
|
4
|
+
"other notes" => "could use more nit-picking of the song, as some parts seem all right in the end",
|
7
5
|
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
other_notes: could use more differentiation during the song, as I don't dislike *all* the music.
|
6
|
+
"mutes" => [
|
7
|
+
"00:03.8" , "01:03", "theme song is a bit raucous at times",
|
8
|
+
"28:13.5" , "29:40", "theme song again",
|
9
|
+
"48:46" , "49:08", "theme song again"
|
10
|
+
]
|
@@ -1,11 +1,8 @@
|
|
1
|
-
mutes
|
2
|
-
"6:18"
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
dvd_title_track: 1
|
10
|
-
|
11
|
-
other_notes: has a couple (modest) shots of nursing moms which aren't edited.
|
1
|
+
"mutes" => [
|
2
|
+
"6:18" , "6:19.1", "religious reference", "religious reference", "2"
|
3
|
+
],
|
4
|
+
"title" => "Happiest baby on the block",
|
5
|
+
"dvd_drive_label" => "HAPPIEST_BABY_ON_THE_BLOCK",
|
6
|
+
"source" => "DVD",
|
7
|
+
"dvd_title_track" => 1,
|
8
|
+
"other notes" => "has a couple (modest) shots of nursing moms which aren't cut."
|
File without changes
|
File without changes
|
data/zamples/edit_decision_lists/dvds/{cars_disney.txt → old_and_inaccurate/cars_disney.txt}
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -1,30 +1,46 @@
|
|
1
|
-
#
|
2
|
-
|
3
|
-
|
1
|
+
# comments can go after a # on each line.
|
2
|
+
|
3
|
+
"mutes" => [
|
4
|
+
"00:00:01", "00:00:02", # mute from second 1 to second 2
|
4
5
|
# so an example would be:
|
5
|
-
"00:00:01"
|
6
|
-
"01:01:00"
|
7
|
-
|
6
|
+
"00:00:01", "00:00:02", "profanity", "dang",
|
7
|
+
"01:01:00", "01:02:00" # another example:mute from one hour one minute to one hour two minutes
|
8
|
+
],
|
9
|
+
|
10
|
+
# So it would like like this:
|
11
|
+
|
12
|
+
"mutes" => [
|
13
|
+
"00:00:01", "00:00:02",
|
14
|
+
"00:00:01", "00:00:02", "profanity", "dang",
|
15
|
+
"01:01:00", "01:02:00"
|
16
|
+
],
|
17
|
+
|
18
|
+
# note: items can be out of chronological order, that's ok
|
19
|
+
|
20
|
+
# you can also have blank outs
|
21
|
+
# and you can also refer to a category, instead of having to write out the real word.
|
22
|
+
# example:
|
8
23
|
|
9
|
-
blank_outs
|
24
|
+
"blank_outs" => [
|
10
25
|
# this first one blanks (by overlaying *over* the video, a black window)
|
11
26
|
# from one hour one minute to one hour two minutes, like:
|
12
|
-
"01:01:00"
|
13
|
-
# you can also use
|
14
|
-
"00:03:03.5"
|
27
|
+
"01:01:00" , "01:02:00", "nudity", "5",
|
28
|
+
# you can also use decimals, like 3 minutes 3 seconds and a half to 3 minutes 4 seconds and a half (one second blank out):
|
29
|
+
"00:03:03.5", "00:03:04.5",
|
15
30
|
# if you don't want to be explicit, you can reference a *number*
|
16
31
|
# from the category descriptions.yml file, like
|
17
|
-
"01:01:00"
|
18
|
-
# instead of
|
19
|
-
|
32
|
+
"01:01:00", "01:02:00", "profanity", "bodily function 1",
|
33
|
+
# (instead of "01:01:00", "01:02:00", "s***")
|
34
|
+
],
|
20
35
|
|
21
|
-
|
36
|
+
# (if something's not categorized yet then just write it in your file and I'll add it later, or just notify me)
|
22
37
|
|
23
38
|
# you can also add other notes, too, like title, source, whatever you want
|
24
39
|
# these are basically free form and not used for anything else yet
|
25
|
-
missing_content
|
26
|
-
title
|
27
|
-
source
|
28
|
-
url
|
29
|
-
|
30
|
-
|
40
|
+
"missing_content" => "this doesn't list some mild name calling",
|
41
|
+
"title" => "Forever Strong",
|
42
|
+
"source" => "Hulu",
|
43
|
+
"url" => "http://www.byutv.org/watch/1790-100",
|
44
|
+
"whatever_else_you_want" => "this is the old version of the film"
|
45
|
+
|
46
|
+
# NB that you have to put commas just about everywhere. That might help
|
data/zamples/edit_decision_lists/{youtube → old_not_yet_update/youtube}/gummy_bear_song_youtube.txt
RENAMED
File without changes
|
data/zamples/edit_decision_lists/{youtube → old_not_yet_update/youtube}/nuki_song_youtube.txt
RENAMED
File without changes
|
metadata
CHANGED
@@ -3,301 +3,306 @@ name: sensible-cinema
|
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease: false
|
5
5
|
segments:
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
version: 0.
|
6
|
+
- 0
|
7
|
+
- 16
|
8
|
+
- 1
|
9
|
+
version: 0.16.1
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
|
-
- Roger Pack
|
12
|
+
- Roger Pack
|
13
13
|
autorequire:
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2010-12-
|
17
|
+
date: 2010-12-03 00:00:00 -07:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
|
-
- !ruby/object:Gem::Dependency
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
- !ruby/object:Gem::Dependency
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
- !ruby/object:Gem::Dependency
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
- !ruby/object:Gem::Dependency
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
- !ruby/object:Gem::Dependency
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
- !ruby/object:Gem::Dependency
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
- !ruby/object:Gem::Dependency
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
- !ruby/object:Gem::Dependency
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
- !ruby/object:Gem::Dependency
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
- !ruby/object:Gem::Dependency
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
20
|
+
- !ruby/object:Gem::Dependency
|
21
|
+
name: sane
|
22
|
+
prerelease: false
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
24
|
+
requirements:
|
25
|
+
- - ">="
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
segments:
|
28
|
+
- 0
|
29
|
+
- 22
|
30
|
+
- 0
|
31
|
+
version: 0.22.0
|
32
|
+
type: :runtime
|
33
|
+
version_requirements: *id001
|
34
|
+
- !ruby/object:Gem::Dependency
|
35
|
+
name: rdp-win32screenshot
|
36
|
+
prerelease: false
|
37
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
38
|
+
requirements:
|
39
|
+
- - ">="
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
segments:
|
42
|
+
- 0
|
43
|
+
- 0
|
44
|
+
- 7
|
45
|
+
- 3
|
46
|
+
version: 0.0.7.3
|
47
|
+
type: :runtime
|
48
|
+
version_requirements: *id002
|
49
|
+
- !ruby/object:Gem::Dependency
|
50
|
+
name: mini_magick
|
51
|
+
prerelease: false
|
52
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
53
|
+
requirements:
|
54
|
+
- - ">="
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
segments:
|
57
|
+
- 3
|
58
|
+
- 1
|
59
|
+
version: "3.1"
|
60
|
+
type: :runtime
|
61
|
+
version_requirements: *id003
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: whichr
|
64
|
+
prerelease: false
|
65
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
66
|
+
requirements:
|
67
|
+
- - ">="
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
segments:
|
70
|
+
- 0
|
71
|
+
- 3
|
72
|
+
- 6
|
73
|
+
version: 0.3.6
|
74
|
+
type: :runtime
|
75
|
+
version_requirements: *id004
|
76
|
+
- !ruby/object:Gem::Dependency
|
77
|
+
name: jruby-win32ole
|
78
|
+
prerelease: false
|
79
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
80
|
+
requirements:
|
81
|
+
- - ">="
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
segments:
|
84
|
+
- 0
|
85
|
+
version: "0"
|
86
|
+
type: :runtime
|
87
|
+
version_requirements: *id005
|
88
|
+
- !ruby/object:Gem::Dependency
|
89
|
+
name: rdp-ruby-wmi
|
90
|
+
prerelease: false
|
91
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
92
|
+
requirements:
|
93
|
+
- - ">="
|
94
|
+
- !ruby/object:Gem::Version
|
95
|
+
segments:
|
96
|
+
- 0
|
97
|
+
version: "0"
|
98
|
+
type: :runtime
|
99
|
+
version_requirements: *id006
|
100
|
+
- !ruby/object:Gem::Dependency
|
101
|
+
name: ffi
|
102
|
+
prerelease: false
|
103
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
104
|
+
requirements:
|
105
|
+
- - ">="
|
106
|
+
- !ruby/object:Gem::Version
|
107
|
+
segments:
|
108
|
+
- 0
|
109
|
+
version: "0"
|
110
|
+
type: :runtime
|
111
|
+
version_requirements: *id007
|
112
|
+
- !ruby/object:Gem::Dependency
|
113
|
+
name: rspec
|
114
|
+
prerelease: false
|
115
|
+
requirement: &id008 !ruby/object:Gem::Requirement
|
116
|
+
requirements:
|
117
|
+
- - ">="
|
118
|
+
- !ruby/object:Gem::Version
|
119
|
+
segments:
|
120
|
+
- 0
|
121
|
+
version: "0"
|
122
|
+
type: :development
|
123
|
+
version_requirements: *id008
|
124
|
+
- !ruby/object:Gem::Dependency
|
125
|
+
name: jeweler
|
126
|
+
prerelease: false
|
127
|
+
requirement: &id009 !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - ">="
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
segments:
|
132
|
+
- 0
|
133
|
+
version: "0"
|
134
|
+
type: :development
|
135
|
+
version_requirements: *id009
|
136
|
+
- !ruby/object:Gem::Dependency
|
137
|
+
name: hitimes
|
138
|
+
prerelease: false
|
139
|
+
requirement: &id010 !ruby/object:Gem::Requirement
|
140
|
+
requirements:
|
141
|
+
- - ">="
|
142
|
+
- !ruby/object:Gem::Version
|
143
|
+
segments:
|
144
|
+
- 0
|
145
|
+
version: "0"
|
146
|
+
type: :development
|
147
|
+
version_requirements: *id010
|
148
148
|
description:
|
149
149
|
email: rogerdpack@gmail.com
|
150
150
|
executables:
|
151
|
-
- sensible-cinema
|
152
|
-
- sensible-cinema-cli
|
151
|
+
- sensible-cinema
|
152
|
+
- sensible-cinema-cli
|
153
153
|
extensions:
|
154
|
-
- ext/mkrf_conf.rb
|
154
|
+
- ext/mkrf_conf.rb
|
155
155
|
extra_rdoc_files:
|
156
|
-
- ChangeLog
|
157
|
-
- LICENSE
|
158
|
-
- README
|
159
|
-
- TODO
|
156
|
+
- ChangeLog
|
157
|
+
- LICENSE
|
158
|
+
- README
|
159
|
+
- TODO
|
160
160
|
files:
|
161
|
-
- ChangeLog
|
162
|
-
- LICENSE
|
163
|
-
- README
|
164
|
-
- Rakefile
|
165
|
-
- TODO
|
166
|
-
- VERSION
|
167
|
-
- bin/sensible-cinema
|
168
|
-
- bin/sensible-cinema-cli
|
169
|
-
- experimental_readme.txt
|
170
|
-
- ext/mkrf_conf.rb
|
171
|
-
- gplv3.txt
|
172
|
-
- lib/add_any_bundled_gems_to_load_path.rb
|
173
|
-
- lib/blanker.rb
|
174
|
-
- lib/drive_info.rb
|
175
|
-
- lib/
|
176
|
-
- lib/
|
177
|
-
- lib/
|
178
|
-
- lib/
|
179
|
-
- lib/
|
180
|
-
- lib/
|
181
|
-
- lib/
|
182
|
-
- lib/
|
183
|
-
- lib/
|
184
|
-
- lib/
|
185
|
-
- lib/
|
186
|
-
- lib/
|
187
|
-
-
|
188
|
-
-
|
189
|
-
-
|
190
|
-
-
|
191
|
-
-
|
192
|
-
-
|
193
|
-
- spec/
|
194
|
-
- spec/
|
195
|
-
- spec/
|
196
|
-
- spec/
|
197
|
-
- spec/
|
198
|
-
- spec/images/
|
199
|
-
- spec/images/
|
200
|
-
- spec/images/
|
201
|
-
- spec/images/
|
202
|
-
- spec/images/
|
203
|
-
- spec/images/
|
204
|
-
- spec/images/
|
205
|
-
- spec/images/
|
206
|
-
- spec/images/
|
207
|
-
- spec/images/
|
208
|
-
- spec/images/
|
209
|
-
- spec/images/
|
210
|
-
- spec/images/
|
211
|
-
- spec/images/
|
212
|
-
- spec/images/
|
213
|
-
- spec/images/
|
214
|
-
- spec/images/
|
215
|
-
- spec/images/
|
216
|
-
- spec/images/
|
217
|
-
- spec/images/
|
218
|
-
- spec/images/
|
219
|
-
- spec/images/
|
220
|
-
- spec/images/
|
221
|
-
- spec/images/
|
222
|
-
- spec/images/
|
223
|
-
- spec/images/
|
224
|
-
- spec/images/
|
225
|
-
- spec/images/
|
226
|
-
- spec/images/
|
227
|
-
- spec/images/
|
228
|
-
- spec/images/
|
229
|
-
- spec/images/
|
230
|
-
- spec/images/
|
231
|
-
- spec/images/
|
232
|
-
- spec/images/
|
233
|
-
- spec/images/
|
234
|
-
- spec/images/
|
235
|
-
- spec/images/
|
236
|
-
- spec/images/
|
237
|
-
- spec/images/
|
238
|
-
- spec/images/
|
239
|
-
- spec/images/
|
240
|
-
- spec/images/
|
241
|
-
- spec/
|
242
|
-
- spec/
|
243
|
-
- spec/
|
244
|
-
- spec/
|
245
|
-
- spec/
|
246
|
-
- spec/
|
247
|
-
- spec/
|
248
|
-
- spec/
|
249
|
-
- spec/
|
250
|
-
- spec/
|
251
|
-
- spec/
|
252
|
-
- spec/
|
253
|
-
-
|
254
|
-
-
|
255
|
-
-
|
256
|
-
-
|
257
|
-
-
|
258
|
-
-
|
259
|
-
-
|
260
|
-
- zamples/edit_decision_lists/
|
261
|
-
- zamples/edit_decision_lists/dvds/
|
262
|
-
- zamples/edit_decision_lists/dvds/
|
263
|
-
- zamples/edit_decision_lists/dvds/
|
264
|
-
- zamples/edit_decision_lists/
|
265
|
-
- zamples/edit_decision_lists/
|
266
|
-
- zamples/edit_decision_lists/
|
267
|
-
- zamples/edit_decision_lists/
|
268
|
-
- zamples/
|
269
|
-
- zamples/
|
270
|
-
- zamples/
|
271
|
-
- zamples/
|
272
|
-
- zamples/
|
273
|
-
- zamples/players/
|
274
|
-
- zamples/players/
|
275
|
-
- zamples/players/
|
276
|
-
- zamples/players/
|
277
|
-
- zamples/players/
|
161
|
+
- ChangeLog
|
162
|
+
- LICENSE
|
163
|
+
- README
|
164
|
+
- Rakefile
|
165
|
+
- TODO
|
166
|
+
- VERSION
|
167
|
+
- bin/sensible-cinema
|
168
|
+
- bin/sensible-cinema-cli
|
169
|
+
- experimental_readme.txt
|
170
|
+
- ext/mkrf_conf.rb
|
171
|
+
- gplv3.txt
|
172
|
+
- lib/add_any_bundled_gems_to_load_path.rb
|
173
|
+
- lib/blanker.rb
|
174
|
+
- lib/drive_info.rb
|
175
|
+
- lib/edl_parser.rb
|
176
|
+
- lib/fake_blanker.rb
|
177
|
+
- lib/file_chooser.rb
|
178
|
+
- lib/keyboard_input.rb
|
179
|
+
- lib/mencoder_wrapper.rb
|
180
|
+
- lib/mouse.rb
|
181
|
+
- lib/mouse_forever.rb
|
182
|
+
- lib/muter.rb
|
183
|
+
- lib/ocr.rb
|
184
|
+
- lib/overlayer.rb
|
185
|
+
- lib/screen_tracker.rb
|
186
|
+
- lib/storage.rb
|
187
|
+
- lib/swing_helpers.rb
|
188
|
+
- lib/vlc_programmer.rb
|
189
|
+
- never_do
|
190
|
+
- run_sensible_cinema.bat
|
191
|
+
- run_sensible_cinema_in_create_mode.bat
|
192
|
+
- sensible-cinema.gemspec
|
193
|
+
- spec/blanker.spec.rb
|
194
|
+
- spec/common.rb
|
195
|
+
- spec/convert_image.rb
|
196
|
+
- spec/drive_info.spec.rb
|
197
|
+
- spec/edl_parser.spec.rb
|
198
|
+
- spec/images/black.bmp
|
199
|
+
- spec/images/colon.bmp
|
200
|
+
- spec/images/hulu_0.bmp
|
201
|
+
- spec/images/hulu_2.bmp
|
202
|
+
- spec/images/hulu_2_3.bmp
|
203
|
+
- spec/images/hulu_2_4.bmp
|
204
|
+
- spec/images/hulu_3.bmp
|
205
|
+
- spec/images/hulu_3_4.bmp
|
206
|
+
- spec/images/hulu_4.bmp
|
207
|
+
- spec/images/hulu_4_4.bmp
|
208
|
+
- spec/images/hulu_5.bmp
|
209
|
+
- spec/images/hulu_7.bmp
|
210
|
+
- spec/images/hulu_8.bmp
|
211
|
+
- spec/images/hulu_slash.bmp
|
212
|
+
- spec/images/vlc_0.bmp
|
213
|
+
- spec/images/vlc_2_4.bmp
|
214
|
+
- spec/images/vlc_2_6.bmp
|
215
|
+
- spec/images/vlc_4.bmp
|
216
|
+
- spec/images/vlc_5.bmp
|
217
|
+
- spec/images/vlc_6.bmp
|
218
|
+
- spec/images/vlc_9.bmp
|
219
|
+
- spec/images/vlc_colon.bmp
|
220
|
+
- spec/images/youtube_0.bmp
|
221
|
+
- spec/images/youtube_1.bmp
|
222
|
+
- spec/images/youtube_2_0.bmp
|
223
|
+
- spec/images/youtube_2_5.bmp
|
224
|
+
- spec/images/youtube_2_6.bmp
|
225
|
+
- spec/images/youtube_3_0.bmp
|
226
|
+
- spec/images/youtube_4.bmp
|
227
|
+
- spec/images/youtube_4_0.bmp
|
228
|
+
- spec/images/youtube_5.bmp
|
229
|
+
- spec/images/youtube_6.bmp
|
230
|
+
- spec/images/youtube_light_0.bmp
|
231
|
+
- spec/images/youtube_light_1_3.bmp
|
232
|
+
- spec/images/youtube_light_2_1.bmp
|
233
|
+
- spec/images/youtube_light_2_3.bmp
|
234
|
+
- spec/images/youtube_light_2_9.bmp
|
235
|
+
- spec/images/youtube_light_4.bmp
|
236
|
+
- spec/images/youtube_light_4_3.bmp
|
237
|
+
- spec/images/youtube_light_5.bmp
|
238
|
+
- spec/images/youtube_light_5_0.bmp
|
239
|
+
- spec/images/youtube_light_8.bmp
|
240
|
+
- spec/images/youtube_light_9.bmp
|
241
|
+
- spec/images/youtube_small_0.bmp
|
242
|
+
- spec/images/youtube_small_2.bmp
|
243
|
+
- spec/images/youtube_small_2_0.bmp
|
244
|
+
- spec/images/youtube_small_4.bmp
|
245
|
+
- spec/keyboard_input.spec.rb
|
246
|
+
- spec/mencoder_wrapper.spec.rb
|
247
|
+
- spec/mouse.spec.rb
|
248
|
+
- spec/muter.spec.rb
|
249
|
+
- spec/ocr.spec.rb
|
250
|
+
- spec/overlayer.spec.rb
|
251
|
+
- spec/screen_tracker.spec.rb
|
252
|
+
- spec/sensible_cinema_gui.spec.rb
|
253
|
+
- spec/silence.wav
|
254
|
+
- spec/swing_helpers.spec.rb
|
255
|
+
- spec/test_yaml.yml
|
256
|
+
- spec/vlc_programmer.spec.rb
|
257
|
+
- todo_if_need_speed
|
258
|
+
- vendor/gocr049.exe
|
259
|
+
- vendor/unzip.exe
|
260
|
+
- zamples/edit_decision_lists/category descriptions.txt
|
261
|
+
- zamples/edit_decision_lists/dvds/bobs_big_plan.txt
|
262
|
+
- zamples/edit_decision_lists/dvds/happiest baby on the block.txt
|
263
|
+
- zamples/edit_decision_lists/dvds/old_and_inaccurate/White Christmas.txt
|
264
|
+
- zamples/edit_decision_lists/dvds/old_and_inaccurate/all_dogs_go_to_heaven.txt
|
265
|
+
- zamples/edit_decision_lists/dvds/old_and_inaccurate/cars_disney.txt
|
266
|
+
- zamples/edit_decision_lists/dvds/old_and_inaccurate/happy_feet.txt
|
267
|
+
- zamples/edit_decision_lists/dvds/old_and_inaccurate/labyrinth.txt
|
268
|
+
- zamples/edit_decision_lists/dvds/old_and_inaccurate/making marriage work.txt
|
269
|
+
- zamples/edit_decision_lists/dvds/old_and_inaccurate/star_trek_generations_hulu.txt
|
270
|
+
- zamples/edit_decision_lists/example_edit_decision_list.txt
|
271
|
+
- zamples/edit_decision_lists/old_not_yet_update/youtube/gummy_bear_song_youtube.txt
|
272
|
+
- zamples/edit_decision_lists/old_not_yet_update/youtube/nuki_song_youtube.txt
|
273
|
+
- zamples/players/how_to_create_more_players.txt
|
274
|
+
- zamples/players/hulu/total_length_over_an_hour.txt
|
275
|
+
- zamples/players/vlc/full_screened_total_length_over_an_hour.txt
|
276
|
+
- zamples/players/vlc/windowed_total_length_over_an_hour.txt
|
277
|
+
- zamples/players/vlc/windowed_total_length_under_an_hour.txt
|
278
|
+
- zamples/players/youtube/full_screened_1024x768.txt
|
279
|
+
- zamples/players/youtube/full_screened_1152x864.txt
|
280
|
+
- zamples/players/youtube/full_screened_1680x1050.txt
|
281
|
+
- zamples/players/youtube/normal_in_youtube.com.chrome.txt
|
282
|
+
- zamples/players/youtube/note_these_assume_less_than_10_minutes_length.txt
|
278
283
|
has_rdoc: true
|
279
284
|
homepage: http://github.com/rdp
|
280
285
|
licenses: []
|
281
286
|
|
282
287
|
post_install_message:
|
283
|
-
rdoc_options:
|
284
|
-
|
288
|
+
rdoc_options: []
|
289
|
+
|
285
290
|
require_paths:
|
286
|
-
- lib
|
291
|
+
- lib
|
287
292
|
required_ruby_version: !ruby/object:Gem::Requirement
|
288
293
|
requirements:
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
|
293
|
-
|
294
|
+
- - ">="
|
295
|
+
- !ruby/object:Gem::Version
|
296
|
+
segments:
|
297
|
+
- 0
|
298
|
+
version: "0"
|
294
299
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
295
300
|
requirements:
|
296
|
-
|
297
|
-
|
298
|
-
|
299
|
-
|
300
|
-
|
301
|
+
- - ">="
|
302
|
+
- !ruby/object:Gem::Version
|
303
|
+
segments:
|
304
|
+
- 0
|
305
|
+
version: "0"
|
301
306
|
requirements: []
|
302
307
|
|
303
308
|
rubyforge_project:
|
@@ -306,17 +311,18 @@ signing_key:
|
|
306
311
|
specification_version: 3
|
307
312
|
summary: an EDL scene-selector/bleeper that works with online players like hulu
|
308
313
|
test_files:
|
309
|
-
- spec/blanker.spec.rb
|
310
|
-
- spec/common.rb
|
311
|
-
- spec/convert_image.rb
|
312
|
-
- spec/drive_info.spec.rb
|
313
|
-
- spec/
|
314
|
-
- spec/
|
315
|
-
- spec/
|
316
|
-
- spec/
|
317
|
-
- spec/
|
318
|
-
- spec/
|
319
|
-
- spec/
|
320
|
-
- spec/
|
321
|
-
- spec/
|
322
|
-
- spec/
|
314
|
+
- spec/blanker.spec.rb
|
315
|
+
- spec/common.rb
|
316
|
+
- spec/convert_image.rb
|
317
|
+
- spec/drive_info.spec.rb
|
318
|
+
- spec/edl_parser.spec.rb
|
319
|
+
- spec/keyboard_input.spec.rb
|
320
|
+
- spec/mencoder_wrapper.spec.rb
|
321
|
+
- spec/mouse.spec.rb
|
322
|
+
- spec/muter.spec.rb
|
323
|
+
- spec/ocr.spec.rb
|
324
|
+
- spec/overlayer.spec.rb
|
325
|
+
- spec/screen_tracker.spec.rb
|
326
|
+
- spec/sensible_cinema_gui.spec.rb
|
327
|
+
- spec/swing_helpers.spec.rb
|
328
|
+
- spec/vlc_programmer.spec.rb
|