sensible-cinema 0.23.0 → 0.23.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/README +24 -25
- data/Rakefile +5 -10
- data/TODO +32 -29
- data/VERSION +1 -1
- data/bin/sensible-cinema +216 -102
- data/change_log_with_feature_list.txt +5 -0
- data/go.sh +1 -1
- data/how_to_get_files_from_dvd.txt +24 -0
- data/is_it_legal_to_copy_dvds.txt +12 -12
- data/lib/drive_info.rb +11 -8
- data/lib/edl_parser.rb +9 -8
- data/lib/file_chooser.rb +1 -3
- data/lib/mencoder_wrapper.rb +6 -6
- data/lib/subtitle_profanity_finder.rb +0 -4
- data/lib/swing_helpers.rb +17 -6
- data/sensible-cinema.gemspec +8 -4
- data/spec/edl_parser.spec.rb +5 -6
- data/spec/mencoder_wrapper.spec.rb +6 -5
- data/spec/notes +7 -1
- data/spec/sensible_cinema_gui.spec.rb +62 -29
- data/todo.inventionzy.txt +1 -0
- data/todo.open_edl_list_org.txt +2 -0
- data/todo.propaganda +1 -0
- data/www/index.html +2 -1
- data/zamples/edit_decision_lists/dvds/COOL_RUNNINGS.txt b/data/zamples/edit_decision_lists/dvds/cool → runnings.txt +0 -0
- data/zamples/edit_decision_lists/dvds/edl_for_unit_tests.txt +19 -0
- data/zamples/edit_decision_lists/dvds/sintel_open_source_blender.txt +3 -3
- data/zamples/edit_decision_lists/{netflix → netflix_instant}/greatest_story_ever_told_netflix.txt +0 -0
- metadata +43 -31
- data/lib/edl_converter.rb +0 -34
data/todo.inventionzy.txt
CHANGED
data/todo.open_edl_list_org.txt
CHANGED
data/todo.propaganda
CHANGED
data/www/index.html
CHANGED
|
@@ -22,6 +22,7 @@
|
|
|
22
22
|
<html>
|
|
23
23
|
<pre>
|
|
24
24
|
Welcome to the (work in progress) home page of Sensible Cinema, the free video scene skipper/muter.
|
|
25
|
+
It Allows you watch edited movies by applying delete lists (EDL's) (i.e. "mute out" or "cut out" questionable scenes) to DVD's.
|
|
25
26
|
|
|
26
27
|
A description and history/background of sensible-cinema can be found <a href="https://github.com/rdp/sensible-cinema/blob/master/README">here</a>. Don't forget to come back to this page to download it, though (see below).
|
|
27
28
|
|
|
@@ -64,7 +65,7 @@ Sensible cinema is currently windows only, ping me if you want this changed.
|
|
|
64
65
|
|
|
65
66
|
You can see the <a href="source/change_log_with_feature_list.txt">change log with feature list</a> and also on github.
|
|
66
67
|
|
|
67
|
-
<div id="comments2" style="display:none;">You can find an old list of older releases, as well as the MS based C <a href="releases/c_player">DVD
|
|
68
|
+
<div id="comments2" style="display:none;">You can find an old list of older releases, as well as the MS based C <a href="releases/c_player">DVD player</a> listed <a href="releases">in the archives</a>.
|
|
68
69
|
|
|
69
70
|
</div>
|
|
70
71
|
</pre>
|
|
File without changes
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# comments can go after a # on any line, for example this one.
|
|
2
|
+
|
|
3
|
+
"mutes" => [
|
|
4
|
+
"6:18" , "6:19.1", "type", "details"
|
|
5
|
+
],
|
|
6
|
+
|
|
7
|
+
"blank_outs" => [
|
|
8
|
+
"00:01:10.0" , "00:01:13.0", "violence", "stabbing",
|
|
9
|
+
],
|
|
10
|
+
|
|
11
|
+
"name" => "sintel open source blender",
|
|
12
|
+
"volume_name" => "An Awesome Test DVD",
|
|
13
|
+
|
|
14
|
+
"disk_unique_id" => "deadbeef|8b27d001",
|
|
15
|
+
|
|
16
|
+
"dvd_title_track" => "2",
|
|
17
|
+
"not edited out stuff" => "some violence",
|
|
18
|
+
# "closing thoughts" => "still...",
|
|
19
|
+
"mplayer_dvd_splits" => [], # these are where, in mplayer, the DVD timestamp "resets" to zero for some reason (bug) http://goo.gl/yMfqX . [] is a valid option, if there are none.
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
# comments can go after a # on any line, for example this one.
|
|
2
2
|
|
|
3
3
|
"mutes" => [
|
|
4
|
-
"00:00:56.0" , "00:00:57.0", "violence", "stabbing",
|
|
5
4
|
],
|
|
6
5
|
|
|
7
6
|
"blank_outs" => [
|
|
8
|
-
"00:
|
|
7
|
+
"00:00:56.0" , "00:00:57.0", "violence", "knife stabbing",
|
|
8
|
+
"00:01:05.0" , "00:01:14.5", "violence", "stab through",
|
|
9
9
|
],
|
|
10
10
|
|
|
11
11
|
"name" => "sintel open source blender",
|
|
@@ -14,6 +14,6 @@
|
|
|
14
14
|
"disk_unique_id" => "79df7b12|8b27d001",
|
|
15
15
|
|
|
16
16
|
"dvd_title_track" => "2",
|
|
17
|
-
"not edited out stuff" => "
|
|
17
|
+
"not edited out stuff" => "quite a bit of violence",
|
|
18
18
|
# "closing thoughts" => "still...",
|
|
19
19
|
"mplayer_dvd_splits" => [], # these are where, in mplayer, the DVD timestamp "resets" to zero for some reason (bug) http://goo.gl/yMfqX . [] is a valid option, if there are none.
|
data/zamples/edit_decision_lists/{netflix → netflix_instant}/greatest_story_ever_told_netflix.txt
RENAMED
|
File without changes
|
metadata
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: sensible-cinema
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
4
|
prerelease:
|
|
5
|
-
version: 0.23.
|
|
5
|
+
version: 0.23.1
|
|
6
6
|
platform: ruby
|
|
7
7
|
authors:
|
|
8
8
|
- Roger Pack
|
|
@@ -14,62 +14,62 @@ date: 2011-06-27 00:00:00 -06:00
|
|
|
14
14
|
default_executable:
|
|
15
15
|
dependencies:
|
|
16
16
|
- !ruby/object:Gem::Dependency
|
|
17
|
-
name:
|
|
17
|
+
name: os
|
|
18
18
|
prerelease: false
|
|
19
19
|
requirement: &id001 !ruby/object:Gem::Requirement
|
|
20
20
|
none: false
|
|
21
21
|
requirements:
|
|
22
22
|
- - ">="
|
|
23
23
|
- !ruby/object:Gem::Version
|
|
24
|
-
version: 0.
|
|
24
|
+
version: 0.9.3
|
|
25
25
|
type: :runtime
|
|
26
26
|
version_requirements: *id001
|
|
27
27
|
- !ruby/object:Gem::Dependency
|
|
28
|
-
name:
|
|
28
|
+
name: sane
|
|
29
29
|
prerelease: false
|
|
30
30
|
requirement: &id002 !ruby/object:Gem::Requirement
|
|
31
31
|
none: false
|
|
32
32
|
requirements:
|
|
33
33
|
- - ">="
|
|
34
34
|
- !ruby/object:Gem::Version
|
|
35
|
-
version: 0.0
|
|
35
|
+
version: 0.22.0
|
|
36
36
|
type: :runtime
|
|
37
37
|
version_requirements: *id002
|
|
38
38
|
- !ruby/object:Gem::Dependency
|
|
39
|
-
name:
|
|
39
|
+
name: rdp-win32screenshot
|
|
40
40
|
prerelease: false
|
|
41
41
|
requirement: &id003 !ruby/object:Gem::Requirement
|
|
42
42
|
none: false
|
|
43
43
|
requirements:
|
|
44
44
|
- - ">="
|
|
45
45
|
- !ruby/object:Gem::Version
|
|
46
|
-
version:
|
|
46
|
+
version: 0.0.7.3
|
|
47
47
|
type: :runtime
|
|
48
48
|
version_requirements: *id003
|
|
49
49
|
- !ruby/object:Gem::Dependency
|
|
50
|
-
name:
|
|
50
|
+
name: mini_magick
|
|
51
51
|
prerelease: false
|
|
52
52
|
requirement: &id004 !ruby/object:Gem::Requirement
|
|
53
53
|
none: false
|
|
54
54
|
requirements:
|
|
55
55
|
- - ">="
|
|
56
56
|
- !ruby/object:Gem::Version
|
|
57
|
-
version:
|
|
57
|
+
version: "3.1"
|
|
58
58
|
type: :runtime
|
|
59
59
|
version_requirements: *id004
|
|
60
60
|
- !ruby/object:Gem::Dependency
|
|
61
|
-
name:
|
|
61
|
+
name: whichr
|
|
62
62
|
prerelease: false
|
|
63
63
|
requirement: &id005 !ruby/object:Gem::Requirement
|
|
64
64
|
none: false
|
|
65
65
|
requirements:
|
|
66
66
|
- - ">="
|
|
67
67
|
- !ruby/object:Gem::Version
|
|
68
|
-
version:
|
|
68
|
+
version: 0.3.6
|
|
69
69
|
type: :runtime
|
|
70
70
|
version_requirements: *id005
|
|
71
71
|
- !ruby/object:Gem::Dependency
|
|
72
|
-
name:
|
|
72
|
+
name: jruby-win32ole
|
|
73
73
|
prerelease: false
|
|
74
74
|
requirement: &id006 !ruby/object:Gem::Requirement
|
|
75
75
|
none: false
|
|
@@ -80,7 +80,7 @@ dependencies:
|
|
|
80
80
|
type: :runtime
|
|
81
81
|
version_requirements: *id006
|
|
82
82
|
- !ruby/object:Gem::Dependency
|
|
83
|
-
name:
|
|
83
|
+
name: rdp-ruby-wmi
|
|
84
84
|
prerelease: false
|
|
85
85
|
requirement: &id007 !ruby/object:Gem::Requirement
|
|
86
86
|
none: false
|
|
@@ -91,7 +91,7 @@ dependencies:
|
|
|
91
91
|
type: :runtime
|
|
92
92
|
version_requirements: *id007
|
|
93
93
|
- !ruby/object:Gem::Dependency
|
|
94
|
-
name:
|
|
94
|
+
name: plist
|
|
95
95
|
prerelease: false
|
|
96
96
|
requirement: &id008 !ruby/object:Gem::Requirement
|
|
97
97
|
none: false
|
|
@@ -102,7 +102,7 @@ dependencies:
|
|
|
102
102
|
type: :runtime
|
|
103
103
|
version_requirements: *id008
|
|
104
104
|
- !ruby/object:Gem::Dependency
|
|
105
|
-
name:
|
|
105
|
+
name: ffi
|
|
106
106
|
prerelease: false
|
|
107
107
|
requirement: &id009 !ruby/object:Gem::Requirement
|
|
108
108
|
none: false
|
|
@@ -110,32 +110,32 @@ dependencies:
|
|
|
110
110
|
- - ">="
|
|
111
111
|
- !ruby/object:Gem::Version
|
|
112
112
|
version: "0"
|
|
113
|
-
type: :
|
|
113
|
+
type: :runtime
|
|
114
114
|
version_requirements: *id009
|
|
115
115
|
- !ruby/object:Gem::Dependency
|
|
116
|
-
name:
|
|
116
|
+
name: hitimes
|
|
117
117
|
prerelease: false
|
|
118
118
|
requirement: &id010 !ruby/object:Gem::Requirement
|
|
119
119
|
none: false
|
|
120
120
|
requirements:
|
|
121
|
-
- - "
|
|
121
|
+
- - ">="
|
|
122
122
|
- !ruby/object:Gem::Version
|
|
123
|
-
version: "
|
|
123
|
+
version: "0"
|
|
124
124
|
type: :development
|
|
125
125
|
version_requirements: *id010
|
|
126
126
|
- !ruby/object:Gem::Dependency
|
|
127
|
-
name:
|
|
127
|
+
name: rspec
|
|
128
128
|
prerelease: false
|
|
129
129
|
requirement: &id011 !ruby/object:Gem::Requirement
|
|
130
130
|
none: false
|
|
131
131
|
requirements:
|
|
132
|
-
- - "
|
|
132
|
+
- - ">"
|
|
133
133
|
- !ruby/object:Gem::Version
|
|
134
|
-
version: "
|
|
134
|
+
version: "2"
|
|
135
135
|
type: :development
|
|
136
136
|
version_requirements: *id011
|
|
137
137
|
- !ruby/object:Gem::Dependency
|
|
138
|
-
name:
|
|
138
|
+
name: jeweler
|
|
139
139
|
prerelease: false
|
|
140
140
|
requirement: &id012 !ruby/object:Gem::Requirement
|
|
141
141
|
none: false
|
|
@@ -146,7 +146,7 @@ dependencies:
|
|
|
146
146
|
type: :development
|
|
147
147
|
version_requirements: *id012
|
|
148
148
|
- !ruby/object:Gem::Dependency
|
|
149
|
-
name:
|
|
149
|
+
name: rake
|
|
150
150
|
prerelease: false
|
|
151
151
|
requirement: &id013 !ruby/object:Gem::Requirement
|
|
152
152
|
none: false
|
|
@@ -154,10 +154,10 @@ dependencies:
|
|
|
154
154
|
- - ">="
|
|
155
155
|
- !ruby/object:Gem::Version
|
|
156
156
|
version: "0"
|
|
157
|
-
type: :
|
|
157
|
+
type: :development
|
|
158
158
|
version_requirements: *id013
|
|
159
159
|
- !ruby/object:Gem::Dependency
|
|
160
|
-
name:
|
|
160
|
+
name: hitimes
|
|
161
161
|
prerelease: false
|
|
162
162
|
requirement: &id014 !ruby/object:Gem::Requirement
|
|
163
163
|
none: false
|
|
@@ -168,7 +168,7 @@ dependencies:
|
|
|
168
168
|
type: :runtime
|
|
169
169
|
version_requirements: *id014
|
|
170
170
|
- !ruby/object:Gem::Dependency
|
|
171
|
-
name:
|
|
171
|
+
name: rspec
|
|
172
172
|
prerelease: false
|
|
173
173
|
requirement: &id015 !ruby/object:Gem::Requirement
|
|
174
174
|
none: false
|
|
@@ -179,7 +179,7 @@ dependencies:
|
|
|
179
179
|
type: :runtime
|
|
180
180
|
version_requirements: *id015
|
|
181
181
|
- !ruby/object:Gem::Dependency
|
|
182
|
-
name:
|
|
182
|
+
name: jeweler
|
|
183
183
|
prerelease: false
|
|
184
184
|
requirement: &id016 !ruby/object:Gem::Requirement
|
|
185
185
|
none: false
|
|
@@ -189,6 +189,17 @@ dependencies:
|
|
|
189
189
|
version: "0"
|
|
190
190
|
type: :runtime
|
|
191
191
|
version_requirements: *id016
|
|
192
|
+
- !ruby/object:Gem::Dependency
|
|
193
|
+
name: rake
|
|
194
|
+
prerelease: false
|
|
195
|
+
requirement: &id017 !ruby/object:Gem::Requirement
|
|
196
|
+
none: false
|
|
197
|
+
requirements:
|
|
198
|
+
- - ">="
|
|
199
|
+
- !ruby/object:Gem::Version
|
|
200
|
+
version: "0"
|
|
201
|
+
type: :runtime
|
|
202
|
+
version_requirements: *id017
|
|
192
203
|
description:
|
|
193
204
|
email: rogerdpack@gmail.com
|
|
194
205
|
executables:
|
|
@@ -219,6 +230,7 @@ files:
|
|
|
219
230
|
- goc.bat
|
|
220
231
|
- gplv3.txt
|
|
221
232
|
- how_to_create_your_own_delete_lists.txt
|
|
233
|
+
- how_to_get_files_from_dvd.txt
|
|
222
234
|
- is_it_legal_to_copy_dvds.txt
|
|
223
235
|
- legal/md5s.txt
|
|
224
236
|
- legal/transcript_mute_vlc.txt
|
|
@@ -229,7 +241,6 @@ files:
|
|
|
229
241
|
- lib/check_installed_mac.rb
|
|
230
242
|
- lib/count_down_timer_jruby_swing.rb
|
|
231
243
|
- lib/drive_info.rb
|
|
232
|
-
- lib/edl_converter.rb
|
|
233
244
|
- lib/edl_parser.rb
|
|
234
245
|
- lib/fake_blanker.rb
|
|
235
246
|
- lib/file_chooser.rb
|
|
@@ -297,12 +308,13 @@ files:
|
|
|
297
308
|
- vendor/readme.txt
|
|
298
309
|
- www/index.html
|
|
299
310
|
- zamples/edit_decision_lists/category descriptions.txt
|
|
300
|
-
- zamples/edit_decision_lists/dvds/COOL_RUNNINGS.txt
|
|
301
311
|
- zamples/edit_decision_lists/dvds/Harry Potter 2.txt
|
|
302
312
|
- zamples/edit_decision_lists/dvds/bambi.txt
|
|
303
313
|
- zamples/edit_decision_lists/dvds/big_buck_bunny_dvd.txt
|
|
304
314
|
- zamples/edit_decision_lists/dvds/bob the builder pets in a pickle.txt
|
|
305
315
|
- zamples/edit_decision_lists/dvds/bobs_big_plan.txt
|
|
316
|
+
- zamples/edit_decision_lists/dvds/cool runnings.txt
|
|
317
|
+
- zamples/edit_decision_lists/dvds/edl_for_unit_tests.txt
|
|
306
318
|
- zamples/edit_decision_lists/dvds/example_delete_list.txt
|
|
307
319
|
- zamples/edit_decision_lists/dvds/happiest baby on the block.txt
|
|
308
320
|
- zamples/edit_decision_lists/dvds/how_to_train_your_dragon.txt
|
|
@@ -322,7 +334,7 @@ files:
|
|
|
322
334
|
- zamples/edit_decision_lists/dvds/tron_legacy.txt
|
|
323
335
|
- zamples/edit_decision_lists/dvds/turn_around_alma_younger.txt
|
|
324
336
|
- zamples/edit_decision_lists/dvds/zz_example_delete_list_that_has_no_cuts_in_it.txt
|
|
325
|
-
- zamples/edit_decision_lists/
|
|
337
|
+
- zamples/edit_decision_lists/netflix_instant/greatest_story_ever_told_netflix.txt
|
|
326
338
|
- zamples/edit_decision_lists/old_not_yet_updated/example_edit_decision_list.txt
|
|
327
339
|
- zamples/edit_decision_lists/old_not_yet_updated/youtube/gummy_bear_song_youtube.txt
|
|
328
340
|
- zamples/edit_decision_lists/youtube/demo_mutes.txt
|
data/lib/edl_converter.rb
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
#from: https://gist.github.com/52f5c6386fc67e9e6b6b
|
|
2
|
-
require 'rubygems'
|
|
3
|
-
require 'timecode' # from http://guerilla-di.org/timecode
|
|
4
|
-
require 'json'
|
|
5
|
-
|
|
6
|
-
class MplayerEdl
|
|
7
|
-
attr_reader :edl
|
|
8
|
-
|
|
9
|
-
def initialize(edl)
|
|
10
|
-
@edl = edl
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
def to_s
|
|
14
|
-
out = []
|
|
15
|
-
edl['events'].each do |event|
|
|
16
|
-
out << ("%0.1f\t%0.1f\t%d" % [
|
|
17
|
-
event['source_in'].to_seconds,
|
|
18
|
-
event['source_out'].to_seconds,
|
|
19
|
-
(event['transition'] == 'cut') ? 0 : 1
|
|
20
|
-
])
|
|
21
|
-
end
|
|
22
|
-
out.join("\n")
|
|
23
|
-
end
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
edl = JSON.load(IO.read("All Dogs Go To Heaven.json"))
|
|
27
|
-
edl['events'].map! do |event|
|
|
28
|
-
event['source_in'] = Timecode.parse(event['source_in'], edl['film_fps'])
|
|
29
|
-
event['source_out'] = Timecode.parse(event['source_out'], edl['film_fps'])
|
|
30
|
-
event
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
m = MplayerEdl.new(edl)
|
|
34
|
-
puts m.to_s
|