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.
Files changed (30) hide show
  1. data/ChangeLog +15 -1
  2. data/LICENSE +46 -35
  3. data/Rakefile +7 -10
  4. data/TODO +61 -67
  5. data/VERSION +1 -1
  6. data/bin/sensible-cinema +195 -113
  7. data/lib/edl_parser.rb +54 -0
  8. data/lib/mencoder_wrapper.rb +8 -9
  9. data/lib/storage.rb +82 -0
  10. data/lib/swing_helpers.rb +19 -1
  11. data/run_sensible_cinema_in_create_mode.bat +5 -0
  12. data/sensible-cinema.gemspec +141 -136
  13. data/spec/edl_parser.spec.rb +76 -0
  14. data/spec/mencoder_wrapper.spec.rb +10 -12
  15. data/spec/sensible_cinema_gui.spec.rb +12 -10
  16. data/vendor/unzip.exe +0 -0
  17. data/zamples/edit_decision_lists/category descriptions.txt +1 -0
  18. data/zamples/edit_decision_lists/dvds/bobs_big_plan.txt +9 -12
  19. data/zamples/edit_decision_lists/dvds/happiest baby on the block.txt +8 -11
  20. data/zamples/edit_decision_lists/dvds/White Christmas.txt b/data/zamples/edit_decision_lists/dvds/old_and_inaccurate/White → Christmas.txt +0 -0
  21. data/zamples/edit_decision_lists/dvds/{all_dogs_go_to_heaven.txt → old_and_inaccurate/all_dogs_go_to_heaven.txt} +0 -0
  22. data/zamples/edit_decision_lists/dvds/{cars_disney.txt → old_and_inaccurate/cars_disney.txt} +0 -0
  23. data/zamples/edit_decision_lists/dvds/{happy_feet.txt → old_and_inaccurate/happy_feet.txt} +0 -0
  24. data/zamples/edit_decision_lists/dvds/{labyrinth.txt → old_and_inaccurate/labyrinth.txt} +0 -0
  25. 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
  26. data/zamples/edit_decision_lists/{star_trek_generations_hulu.txt → dvds/old_and_inaccurate/star_trek_generations_hulu.txt} +0 -0
  27. data/zamples/edit_decision_lists/example_edit_decision_list.txt +36 -20
  28. data/zamples/edit_decision_lists/{youtube → old_not_yet_update/youtube}/gummy_bear_song_youtube.txt +0 -0
  29. data/zamples/edit_decision_lists/{youtube → old_not_yet_update/youtube}/nuki_song_youtube.txt +0 -0
  30. 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 = YAML.load_file "../zamples/edit_decision_lists/dvds/happy_feet.txt"
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 copy .*-ss .* -t /)
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(/smplayer_or_vlc/)
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(10) do |n|
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 raise if you focus down into nothing" do
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'}.should raise_error(/unable/)
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 an EDL if the title matches" do
8
- MainWindow.new.single_edit_list_matches_dvd("BOBS_BIG_PLAN").should_not be nil
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 prompt if two match" do
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', "dvd_drive_label: BOBS_BIG_PLAN")
18
- File.binwrite('b.txt', "dvd_drive_label: BOBS_BIG_PLAN")
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("BOBS_BIG_PLAN").should be nil
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 VLC available" do
25
- ENV['PATH'].should include("VideoLAN")
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
@@ -7,6 +7,7 @@
7
7
 
8
8
  religious reference:
9
9
  1 "L*** have mercy"
10
+ 2 "G.. knows"
10
11
 
11
12
  religious exclamation:
12
13
  1 da**
@@ -1,13 +1,10 @@
1
- mutes:
2
- "1" : "1:07" # theme song is a bit loud at times.
3
- "48:46" : "49:08" # theme song again
4
- "29:14" : "30:46" # theme song again
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
- title: Bob's Big Plan
9
- dvd_drive_label: BOBS_BIG_PLAN
10
- source: DVD (vlc)
11
- dvd_title_track: 1
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" : "6:19.1" # G... knows...
3
- blank_outs:
4
- # none
5
-
6
- title: Happiest baby on the block
7
- dvd_drive_label: HAPPIEST_BABY_ON_THE_BLOCK
8
- source: DVD (vlc)
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."
@@ -1,30 +1,46 @@
1
- # comment and descriptions can go after a # on each line. See http://github.com/rdp/sensible-cinema for complete creation instructions
2
- mutes:
3
- "00:00:01" : "00:00:02" # mute from second 1 to second 2
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" : "00:00:02" # profanity: dang
6
- "01:01:00" : "01:02:00" # mute from one hour one minute to one hour two minutes
7
- # note: items can be out of chronological order
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" : "01:02:00" # "sex scene"
13
- # you can also use fractions, like 3 minutes 3 seconds and a half to 3 minutes 4 seconds and a half:
14
- "00:03:03.5" : "00:03:04.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" : "01:02:00" # "bodily function strong # 1"
18
- # instead of
19
- "01:01:00" : "01:02:00" # s***
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
- # (if it's not there then just write it in your file and I'll add it later, or notify me)
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: "this doesn't list some mild name calling"
26
- title: Forever Strong
27
- source: Hulu
28
- url: http://www.byutv.org/watch/1790-100
29
- possible_new_rating: PG
30
- whatever_else_you_want: "this is the old version of the film"
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
metadata CHANGED
@@ -3,301 +3,306 @@ name: sensible-cinema
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease: false
5
5
  segments:
6
- - 0
7
- - 15
8
- - 0
9
- version: 0.15.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-02 00:00:00 -07:00
17
+ date: 2010-12-03 00:00:00 -07:00
18
18
  default_executable:
19
19
  dependencies:
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
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/fake_blanker.rb
176
- - lib/file_chooser.rb
177
- - lib/keyboard_input.rb
178
- - lib/mencoder_wrapper.rb
179
- - lib/mouse.rb
180
- - lib/mouse_forever.rb
181
- - lib/muter.rb
182
- - lib/ocr.rb
183
- - lib/overlayer.rb
184
- - lib/screen_tracker.rb
185
- - lib/swing_helpers.rb
186
- - lib/vlc_programmer.rb
187
- - never_do
188
- - run_sensible_cinema.bat
189
- - sensible-cinema.gemspec
190
- - spec/blanker.spec.rb
191
- - spec/common.rb
192
- - spec/convert_image.rb
193
- - spec/drive_info.spec.rb
194
- - spec/images/black.bmp
195
- - spec/images/colon.bmp
196
- - spec/images/hulu_0.bmp
197
- - spec/images/hulu_2.bmp
198
- - spec/images/hulu_2_3.bmp
199
- - spec/images/hulu_2_4.bmp
200
- - spec/images/hulu_3.bmp
201
- - spec/images/hulu_3_4.bmp
202
- - spec/images/hulu_4.bmp
203
- - spec/images/hulu_4_4.bmp
204
- - spec/images/hulu_5.bmp
205
- - spec/images/hulu_7.bmp
206
- - spec/images/hulu_8.bmp
207
- - spec/images/hulu_slash.bmp
208
- - spec/images/vlc_0.bmp
209
- - spec/images/vlc_2_4.bmp
210
- - spec/images/vlc_2_6.bmp
211
- - spec/images/vlc_4.bmp
212
- - spec/images/vlc_5.bmp
213
- - spec/images/vlc_6.bmp
214
- - spec/images/vlc_9.bmp
215
- - spec/images/vlc_colon.bmp
216
- - spec/images/youtube_0.bmp
217
- - spec/images/youtube_1.bmp
218
- - spec/images/youtube_2_0.bmp
219
- - spec/images/youtube_2_5.bmp
220
- - spec/images/youtube_2_6.bmp
221
- - spec/images/youtube_3_0.bmp
222
- - spec/images/youtube_4.bmp
223
- - spec/images/youtube_4_0.bmp
224
- - spec/images/youtube_5.bmp
225
- - spec/images/youtube_6.bmp
226
- - spec/images/youtube_light_0.bmp
227
- - spec/images/youtube_light_1_3.bmp
228
- - spec/images/youtube_light_2_1.bmp
229
- - spec/images/youtube_light_2_3.bmp
230
- - spec/images/youtube_light_2_9.bmp
231
- - spec/images/youtube_light_4.bmp
232
- - spec/images/youtube_light_4_3.bmp
233
- - spec/images/youtube_light_5.bmp
234
- - spec/images/youtube_light_5_0.bmp
235
- - spec/images/youtube_light_8.bmp
236
- - spec/images/youtube_light_9.bmp
237
- - spec/images/youtube_small_0.bmp
238
- - spec/images/youtube_small_2.bmp
239
- - spec/images/youtube_small_2_0.bmp
240
- - spec/images/youtube_small_4.bmp
241
- - spec/keyboard_input.spec.rb
242
- - spec/mencoder_wrapper.spec.rb
243
- - spec/mouse.spec.rb
244
- - spec/muter.spec.rb
245
- - spec/ocr.spec.rb
246
- - spec/overlayer.spec.rb
247
- - spec/screen_tracker.spec.rb
248
- - spec/sensible_cinema_gui.spec.rb
249
- - spec/silence.wav
250
- - spec/swing_helpers.spec.rb
251
- - spec/test_yaml.yml
252
- - spec/vlc_programmer.spec.rb
253
- - todo_if_need_speed
254
- - vendor/gocr049.exe
255
- - zamples/edit_decision_lists/category descriptions.txt
256
- - zamples/edit_decision_lists/dvds/White Christmas.txt
257
- - zamples/edit_decision_lists/dvds/all_dogs_go_to_heaven.txt
258
- - zamples/edit_decision_lists/dvds/bobs_big_plan.txt
259
- - zamples/edit_decision_lists/dvds/cars_disney.txt
260
- - zamples/edit_decision_lists/dvds/happiest baby on the block.txt
261
- - zamples/edit_decision_lists/dvds/happy_feet.txt
262
- - zamples/edit_decision_lists/dvds/labyrinth.txt
263
- - zamples/edit_decision_lists/dvds/making marriage work.txt
264
- - zamples/edit_decision_lists/example_edit_decision_list.txt
265
- - zamples/edit_decision_lists/star_trek_generations_hulu.txt
266
- - zamples/edit_decision_lists/youtube/gummy_bear_song_youtube.txt
267
- - zamples/edit_decision_lists/youtube/nuki_song_youtube.txt
268
- - zamples/players/how_to_create_more_players.txt
269
- - zamples/players/hulu/total_length_over_an_hour.txt
270
- - zamples/players/vlc/full_screened_total_length_over_an_hour.txt
271
- - zamples/players/vlc/windowed_total_length_over_an_hour.txt
272
- - zamples/players/vlc/windowed_total_length_under_an_hour.txt
273
- - zamples/players/youtube/full_screened_1024x768.txt
274
- - zamples/players/youtube/full_screened_1152x864.txt
275
- - zamples/players/youtube/full_screened_1680x1050.txt
276
- - zamples/players/youtube/normal_in_youtube.com.chrome.txt
277
- - zamples/players/youtube/note_these_assume_less_than_10_minutes_length.txt
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
- - --charset=UTF-8
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
- - !ruby/object:Gem::Version
291
- segments:
292
- - 0
293
- version: "0"
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
- - !ruby/object:Gem::Version
298
- segments:
299
- - 0
300
- version: "0"
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/keyboard_input.spec.rb
314
- - spec/mencoder_wrapper.spec.rb
315
- - spec/mouse.spec.rb
316
- - spec/muter.spec.rb
317
- - spec/ocr.spec.rb
318
- - spec/overlayer.spec.rb
319
- - spec/screen_tracker.spec.rb
320
- - spec/sensible_cinema_gui.spec.rb
321
- - spec/swing_helpers.spec.rb
322
- - spec/vlc_programmer.spec.rb
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