sensible-cinema 0.16.3 → 0.16.5
Sign up to get free protection for your applications and to get access to all the features.
- data/LICENSE +55 -53
- data/README +9 -12
- data/TODO +16 -9
- data/VERSION +1 -1
- data/bin/sensible-cinema +72 -26
- data/how_to_create +35 -0
- data/lib/drive_info.rb +1 -1
- data/lib/mencoder_wrapper.rb +1 -1
- data/lib/swing_helpers.rb +9 -2
- data/sensible-cinema.gemspec +3 -1
- data/spec/mencoder_wrapper.spec.rb +1 -0
- data/zamples/edit_decision_lists/dvds/bob the builder pets in a pickle.txt +9 -0
- data/zamples/edit_decision_lists/dvds/happiest baby on the block.txt +1 -1
- data/zamples/edit_decision_lists/example_edit_decision_list.txt +4 -10
- metadata +4 -2
data/LICENSE
CHANGED
@@ -1,53 +1,55 @@
|
|
1
|
-
All files
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
In
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
1
|
+
All files (c) Roger Pack 2010
|
2
|
+
All files are released under the GPLv3 license [1] unless otherwise specified. Ping me if you want/need this changed.
|
3
|
+
|
4
|
+
May contain some 3rd party libraries/executables under their own (separate, open source) licenses.
|
5
|
+
|
6
|
+
Is this legal?
|
7
|
+
|
8
|
+
Unclear. In general ripping personal DVD's is fine.
|
9
|
+
It is controversial to use open source software to play/rip DVD's.
|
10
|
+
There are a few conflicting views.
|
11
|
+
Sensible-cinema doesn't actually do any decryption or decoding, nor has any knowledge of it,
|
12
|
+
but calls out to another separate program to rip. It doesn't even have knowledge
|
13
|
+
as to whether it is ripping something encrypted or not. We don't distribute sensible-cinema with
|
14
|
+
that program, either.
|
15
|
+
You can ask the authors of that program if it is legal. Apparently
|
16
|
+
libdvdcss that it uses has never been challenged in court, and uses a slightly different algorithm
|
17
|
+
than those that have.
|
18
|
+
Note also that fair use does allow one to "record" things (especially things that they own)
|
19
|
+
for personal use/backup.
|
20
|
+
Using sensible-cinema is probably not any more unethical than ripping your DVD collection to your hard
|
21
|
+
drive so you can keep your DVD's all in one place. It's about the same as ripping a DVD, editing
|
22
|
+
it in Windows Movie Maker to take out the bad scenes, then watching that.
|
23
|
+
Also note that if you watch an edited DVD, your are using a DVD player that conforms
|
24
|
+
with DMCA specifications, so that might have some influence.
|
25
|
+
|
26
|
+
In general, you are responsible for your actions and use of this program.
|
27
|
+
It is possible that the authors of sensible-cinema are not cupable of anything
|
28
|
+
regarding its use themselves, since they re-distribute no edited media,
|
29
|
+
nor distribute cracking codes. In general, check your country's rules first.
|
30
|
+
|
31
|
+
In terms of copyright, it could be legal under the The Family Home Movie Act of 2005,
|
32
|
+
at least in the United States, when viewed using the "playlist" option (v 0.10'ish, then later removed).
|
33
|
+
In general, if I have the original DVD sitting next to my TV, I don't feel bad about watching
|
34
|
+
its edited copy at the same time, but please consult a laywer first if you have any concerns.
|
35
|
+
|
36
|
+
Do not redistribute copied commercial DVD's. We have learned from clean flicks that
|
37
|
+
redistributing edited commercial DVD's is illegal in the US. We hope that sensible-cinema
|
38
|
+
is more legal, since you can get the DVD's from wherever you want, and it doesn't change their
|
39
|
+
structure at all. Please don't redistribute.
|
40
|
+
|
41
|
+
DO NOT MAKE ILLEGAL COPIES.
|
42
|
+
|
43
|
+
Note that this software might well be legal in the EU,
|
44
|
+
as it is only software and therefore thus possibly not subject to patents (see "What about patent licenses?" in [2]).
|
45
|
+
If it's not legal in your country, don't use it!
|
46
|
+
|
47
|
+
A more ancient history of various related thoughts was described here:
|
48
|
+
http://betterlogic.com/roger/?p=2618
|
49
|
+
|
50
|
+
Also note that several ideas have been released in the code that are disabled in the final release. Please see the blog
|
51
|
+
for release notes http://betterlogic.com/roger, as well as http://ruby-forum.com (ruby talk ML there), and rubygems.org
|
52
|
+
which lists the various releases, and github.com/rdp/sensible-cinema which lists commits and changes and releases.
|
53
|
+
|
54
|
+
[1] http://www.gnu.org/licenses/gpl.html, also gplv3 file.
|
55
|
+
[2] http://www.videolan.org/support/faq.html
|
data/README
CHANGED
@@ -15,11 +15,6 @@ To program sensible-cinema, you create an edit decision list it can use.
|
|
15
15
|
|
16
16
|
An Edit List looks something like this example:
|
17
17
|
|
18
|
-
mutes:
|
19
|
-
"01:00:00" : "01:01:02.5" # mute from exactly one hour to one hour, one minute, two seconds and a half will be muted.
|
20
|
-
blank_outs:
|
21
|
-
"01:00:00" : "01:01:02.5" # also blank out (overlay with blank window) the same.
|
22
|
-
|
23
18
|
Here's one with more detail
|
24
19
|
|
25
20
|
https://github.com/rdp/sensible-cinema/blob/master/zamples/edit_decision_lists/example_edit_decision_list.txt
|
@@ -33,10 +28,10 @@ Once you're done then you can contribute your scene descriptions file if desired
|
|
33
28
|
|
34
29
|
== FAQ ==
|
35
30
|
|
36
|
-
Q. How do I watch these on my
|
37
|
-
A. You can burn a DVD with it. First create
|
38
|
-
Dvd Flick
|
39
|
-
For OS X iDVD might work well.
|
31
|
+
Q. How do I watch these on my TV?
|
32
|
+
A. You can burn a DVD with it. First create it on your hard drive. Then use
|
33
|
+
Dvd Flick ()a good one for windows) (here's a screencast of using it within http://rogerdpack.t28.net/sensible-cinema)
|
34
|
+
For OS X : iDVD might work well.
|
40
35
|
You might be able to "beam" it to your PS3 and play it from there, using PS3 media server (or windows media player), or put it on a flash drive and play it from that.
|
41
36
|
|
42
37
|
== Caveats ==
|
@@ -48,7 +43,8 @@ You can employ somebody to do it, or do it yourself, then submit it.
|
|
48
43
|
|
49
44
|
== License ==
|
50
45
|
|
51
|
-
See the LICENSE file for licensing, usage terms (basically gplv3).
|
46
|
+
See the LICENSE file for licensing, usage terms (basically gplv3 for all the source).
|
47
|
+
(c) 2010 Roger Pack
|
52
48
|
|
53
49
|
== Related ==
|
54
50
|
|
@@ -80,6 +76,7 @@ http://superuser.com/questions/85278/how-can-i-cut-scenes-out-of-a-dvd
|
|
80
76
|
|
81
77
|
== Feedback ==
|
82
78
|
|
83
|
-
Feedback, including feature requests, welcome.
|
79
|
+
Feedback, including feature requests, comments, welcome.
|
84
80
|
|
85
|
-
http://github.com/rdp/sensible-cinema (message me or create an issue for feedback/any requests/bugs)
|
81
|
+
http://github.com/rdp/sensible-cinema (message me or create an issue for feedback/any requests/bugs)
|
82
|
+
rogerdpack@gmail.com
|
data/TODO
CHANGED
@@ -1,27 +1,33 @@
|
|
1
1
|
== medium ==
|
2
2
|
|
3
3
|
== probably next up+low prio ==
|
4
|
-
|
5
|
-
compare computer DVD playback with physical player...
|
6
|
-
release .zip
|
7
|
-
|
4
|
+
|
8
5
|
== slightly lower than that ==
|
9
6
|
|
10
|
-
make sure no subtitles on national treasure...
|
11
7
|
partner for filters (Jon, Karlie if interested...give beta)
|
12
8
|
lotsa filters somehow
|
9
|
+
my dvd's
|
13
10
|
beta release/rinse and repeat with various ppl (once it's releasable...)
|
14
11
|
can generate mplayer EDL's and play them...hmm...smplayer them?
|
15
12
|
update license too...
|
16
13
|
a real'ish website
|
17
|
-
"run create mode" button (?)
|
18
14
|
license the first time they run it (gplv3)
|
15
|
+
checkbox for other license or something?
|
19
16
|
bring that window to the top! (before done dialog...)
|
17
|
+
assert that at least one drive has a DVD in it...
|
18
|
+
compare computer DVD playback with physical player...
|
19
|
+
just run previews in smplayer :P
|
20
|
+
ffmpeg easier
|
20
21
|
|
21
22
|
== DVD backlog (unordered, some very low prio) ==
|
22
23
|
|
23
|
-
|
24
|
-
|
24
|
+
smaller .zip
|
25
|
+
bundle 7z [?]
|
26
|
+
remove note about it
|
27
|
+
using, burning, creating "howto's"
|
28
|
+
better
|
29
|
+
usability test?
|
30
|
+
|
25
31
|
using+burning screencast
|
26
32
|
editing screencast
|
27
33
|
instructions on how to do their own (private) EDL or do one and submit it (public), or email their friends :P
|
@@ -29,8 +35,9 @@
|
|
29
35
|
add a way to get the label rather easily...
|
30
36
|
add an option "just save full disk (unedited) to hard drive..."
|
31
37
|
note to people: can edit those to your liking
|
32
|
-
a real DVD player...plz? smplayer chokes on bob's big plan...chokes in a bad way...
|
33
38
|
|
39
|
+
DRY up dependency installation code
|
40
|
+
install them to cache2 or something...so I can cleanup the deploy code...
|
34
41
|
advertise urug, ruby flow :)
|
35
42
|
"Re-run most recent" disabled when there isn't one [?]
|
36
43
|
unit test the GUI
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.16.
|
1
|
+
0.16.5
|
data/bin/sensible-cinema
CHANGED
@@ -24,13 +24,12 @@ module SensibleSwing
|
|
24
24
|
setDefaultCloseOperation JFrame::EXIT_ON_CLOSE
|
25
25
|
panel = JPanel.new
|
26
26
|
panel.set_layout nil
|
27
|
-
setSize 350,400
|
28
27
|
add panel # why can't I just slap these down?
|
29
28
|
|
30
29
|
jlabel = JLabel.new 'Welcome to Sensible Cinema!'
|
31
30
|
happy = Font.new("Tahoma", Font::PLAIN, 11)
|
32
31
|
jlabel.setFont(happy)
|
33
|
-
jlabel.set_bounds(44,44,
|
32
|
+
jlabel.set_bounds(44,44,160,14)
|
34
33
|
panel.add jlabel
|
35
34
|
|
36
35
|
button_width = 270
|
@@ -42,7 +41,7 @@ module SensibleSwing
|
|
42
41
|
c.set_bounds(44,120,button_width,23)
|
43
42
|
panel.add c
|
44
43
|
|
45
|
-
b = JButton.new("Watch
|
44
|
+
b = JButton.new("Watch DVD from hard drive unedited") # LODO watch in realtime option--then rippers and watchers can combine
|
46
45
|
b.on_clicked {
|
47
46
|
ENV['PATH'] = ENV['PATH'] + ";d:\\Program Files\\SMPlayer;c:\\Program Files\\SMPlayer"
|
48
47
|
path = RubyWhich.new.which('smplayer')
|
@@ -50,13 +49,20 @@ module SensibleSwing
|
|
50
49
|
JOptionPane.showMessageDialog(self, "It appears that you need to install a dependency: SMPlayer.\n
|
51
50
|
Click ok to be directed to its download website.
|
52
51
|
Also note that if it ever hangs, kill the process, and then use VLC instead
|
53
|
-
(though VLC only has approximate timings).", "Lacking dependency", JOptionPane::ERROR_MESSAGE)
|
52
|
+
(though VLC only has approximate timings).", "Lacking dependency", JOptionPane::ERROR_MESSAGE)
|
54
53
|
system("start http://smplayer.sourceforge.net/downloads.php")
|
55
54
|
else
|
56
|
-
wrote_to_here_fulli = do_copy_dvd_to_hard_drive false, true
|
55
|
+
success_no_run, wrote_to_here_fulli = do_copy_dvd_to_hard_drive false, true
|
57
56
|
command = "smplayer #{wrote_to_here_fulli}"
|
58
|
-
|
59
|
-
|
57
|
+
on_success = proc {
|
58
|
+
puts command
|
59
|
+
Thread.new { system(command) }
|
60
|
+
}
|
61
|
+
if success_no_run
|
62
|
+
on_success.call
|
63
|
+
else
|
64
|
+
@after_success_once = on_success # shenanigans to be able to let this thread run...
|
65
|
+
end
|
60
66
|
end
|
61
67
|
}
|
62
68
|
b.set_bounds(44,150,button_width,23)
|
@@ -75,8 +81,8 @@ module SensibleSwing
|
|
75
81
|
dialog = FileDialog.new(self, "Pick file to edit")
|
76
82
|
dialog.set_directory EDL_DIR
|
77
83
|
filename = dialog.go
|
78
|
-
|
79
|
-
|
84
|
+
open_file_to_edit_it filename if filename
|
85
|
+
}
|
80
86
|
f.set_bounds(44,260,button_width,23)
|
81
87
|
panel.add f if ARGV.index("--create-mode")
|
82
88
|
|
@@ -98,17 +104,44 @@ module SensibleSwing
|
|
98
104
|
reload.set_bounds(44,290,button_width,20)
|
99
105
|
panel.add reload if ARGV.index("--create-mode")
|
100
106
|
|
107
|
+
@progress_bar = JProgressBar.new(0, 100)
|
108
|
+
@progress_bar.set_bounds(44,280,button_width,23)
|
109
|
+
@progress_bar.visible = false
|
110
|
+
panel.add @progress_bar
|
111
|
+
|
112
|
+
g = JButton.new("Create New Edit List for current DVD")
|
113
|
+
g.on_clicked do
|
114
|
+
drive, volume, md5 = choose_dvd_drive
|
115
|
+
input = <<-EOL
|
116
|
+
# comments can go after a # on any line.
|
117
|
+
"mutes" => [
|
118
|
+
#"00:00:01", "00:00:02",
|
119
|
+
],
|
120
|
+
|
121
|
+
"blank_outs" => [
|
122
|
+
#"01:01:00" , "01:02:00"
|
123
|
+
],
|
124
|
+
"disk_unique_id" => "#{md5}",
|
125
|
+
"title" => "#{volume}",
|
126
|
+
EOL
|
127
|
+
puts input
|
128
|
+
filename = volume.gsub(' ', '_') + '.txt'
|
129
|
+
File.write(filename, input) unless File.exist?(filename) # lodo let them choose name (?)
|
130
|
+
open_file_to_edit_it filename
|
131
|
+
|
132
|
+
end
|
133
|
+
g.set_bounds(44,320,button_width,20)
|
134
|
+
panel.add g if ARGV.index("--create-mode")
|
135
|
+
|
101
136
|
@exit = JButton.new("Exit").on_clicked {
|
102
137
|
self.close
|
103
138
|
}
|
104
|
-
@exit.set_bounds(44,
|
139
|
+
@exit.set_bounds(44,350,button_width,23)
|
105
140
|
panel.add @exit
|
141
|
+
|
142
|
+
setSize 350,430
|
106
143
|
|
107
|
-
@
|
108
|
-
@progress_bar.set_bounds(44,280,button_width,23)
|
109
|
-
@progress_bar.visible = false
|
110
|
-
panel.add @progress_bar
|
111
|
-
@buttons = [b,c,d,e,f,reload,@exit]
|
144
|
+
@buttons = [b,c,d,e,reload,@exit]
|
112
145
|
check_for_dependencies
|
113
146
|
end
|
114
147
|
|
@@ -153,7 +186,11 @@ module SensibleSwing
|
|
153
186
|
end
|
154
187
|
end
|
155
188
|
end
|
156
|
-
|
189
|
+
|
190
|
+
def open_file_to_edit_it filename
|
191
|
+
Thread.new { system("notepad \"#{filename}\"")} # blocks otherwise...
|
192
|
+
end
|
193
|
+
|
157
194
|
def single_edit_list_matches_dvd md5
|
158
195
|
return unless md5 # ignore nil searches, where it wasn't set in the .txt file
|
159
196
|
matching = Dir[EDL_DIR + '/*.txt'].select{|file|
|
@@ -214,16 +251,19 @@ module SensibleSwing
|
|
214
251
|
# how does save_to map to fulli?
|
215
252
|
fulli = save_to + ".fulli.tmp.avi"
|
216
253
|
if want_full_list
|
254
|
+
# make it create a dummy response file for us :)
|
255
|
+
start_time = "00:00"
|
256
|
+
end_time = "00:01"
|
217
257
|
if File.exist? fulli + ".done"
|
218
258
|
# just return the full path early...
|
219
|
-
return fulli
|
259
|
+
return [true, fulli]
|
220
260
|
end
|
221
261
|
end
|
222
262
|
generate_and_run_bat_file save_to, edit_list_path, descriptors, drive, dvd_title, start_time, end_time, dvd_title_track
|
223
|
-
fulli
|
224
|
-
|
263
|
+
[false, fulli]
|
264
|
+
end
|
225
265
|
|
226
|
-
|
266
|
+
def generate_and_run_bat_file save_to, edit_list_path, descriptors, drive, dvd_title, start_time, end_time, dvd_title_track
|
227
267
|
Storage['last_params'] = [save_to, edit_list_path, descriptors, drive, dvd_title, start_time, end_time, dvd_title_track]
|
228
268
|
bat_file = MencoderWrapper.get_bat_commands descriptors, drive, save_to, start_time, end_time, dvd_title_track
|
229
269
|
temp_dir = Dir.tmpdir
|
@@ -265,12 +305,18 @@ module SensibleSwing
|
|
265
305
|
}
|
266
306
|
@progress_bar.visible=false
|
267
307
|
@buttons.each{|b| b.set_enabled true}
|
268
|
-
if success
|
269
|
-
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
|
308
|
+
if true#success
|
309
|
+
if @after_success_once
|
310
|
+
procy = @after_success_once
|
311
|
+
@after_success_once = nil
|
312
|
+
procy.call
|
313
|
+
else
|
314
|
+
saved_to = save_to + '.avi' # LODO pass this out?
|
315
|
+
JOptionPane.showMessageDialog(nil, " Done--you may now watch file #{saved_to} in SMPlayer or VLC player", "Done!", JOptionPane::INFORMATION_MESSAGE)
|
316
|
+
show_file = "explorer /e,/select,\"#{File.expand_path(saved_to).to_filename}\""
|
317
|
+
system show_file
|
318
|
+
#self.close # ?
|
319
|
+
end
|
274
320
|
else
|
275
321
|
JOptionPane.showMessageDialog(nil, " Failed--please examine screen output and report back!", "Failed", JOptionPane::ERROR_MESSAGE)
|
276
322
|
end
|
data/how_to_create
ADDED
@@ -0,0 +1,35 @@
|
|
1
|
+
first play it in VLC, discover which title is the main title:
|
2
|
+
|
3
|
+
now open Sensible cinema in create mode
|
4
|
+
|
5
|
+
click "open ripped version of DVD unedited", right click, create new file, name it something.txt, right click, "open", and then select it.
|
6
|
+
|
7
|
+
it will rip that fella to the hard drive (for the save to filename, use the default).
|
8
|
+
It will take quite awhile, but will get everything set up for quick editing after that.
|
9
|
+
|
10
|
+
In the meantime, make your file look like this:
|
11
|
+
|
12
|
+
https://github.com/rdp/sensible-cinema/blob/master/zamples/edit_decision_lists/example_edit_decision_list.txt
|
13
|
+
|
14
|
+
After it finishes ripping it, it will start you watching it in mplayer, which should give you a reasonable view of good timestamps.
|
15
|
+
|
16
|
+
Add timestamps to your file as necessary, then (exit smplayer and) click "Preview edited section of current DVD" (use the default filename always),
|
17
|
+
give it a range "around" the edit you just added, then it will give you an .avi file with just that segment.
|
18
|
+
Watch it (in VLC or smplayer), and see if your edit worked. If it didn't, edit it, hit "re-run most recent preview"
|
19
|
+
If it did, then click "Open ripped version of DVD" again, and continue playing from where you were before.
|
20
|
+
|
21
|
+
When you're done finally, then click "Create edited copy of DVD on your hard drive".
|
22
|
+
It will re-rip and do it all (will take forever), but will give you your final product.
|
23
|
+
Alternatively, you could get a final product by clicking "Preview edited section of current DVD" and putting in a start timestamp of
|
24
|
+
00:00 and an end timestamp of 9999 or what not. Same deal, but will take you less time.
|
25
|
+
|
26
|
+
Also after you're done, you can delete any left over files that are still there.
|
27
|
+
|
28
|
+
Also after you're done, you can submit it back to the project by emailing me with an attachment: rogerdpack@gmail.com
|
29
|
+
|
30
|
+
Also if you want sensible-cinema to be able to auto-choose your EDL, then include its unique id (click the "Get a disk's unique id" button).
|
31
|
+
|
32
|
+
A few pointers:
|
33
|
+
You can just watch the DVD (using any DVD player), and get timestamps that way, before starting this.
|
34
|
+
You can watch the DVD using VLC Player, which has a "fast forward" button, just recognize that VLC's timestamps are slightly off,
|
35
|
+
so they'll only be approximate, but it might still help.
|
data/lib/drive_info.rb
CHANGED
data/lib/mencoder_wrapper.rb
CHANGED
@@ -13,7 +13,7 @@ class MencoderWrapper
|
|
13
13
|
if File.exist?(@big_temp) && File.exist?(@big_temp + '.done')
|
14
14
|
''
|
15
15
|
else
|
16
|
-
"call mencoder dvd://#{@dvd_title_track} -oac copy -lavcopts keyint=1 -ovc lavc -o #{@big_temp} -dvd-device #{this_drive} && echo got_file > #{@big_temp}.done\n"
|
16
|
+
"call mencoder dvd://#{@dvd_title_track} -sid 1000 -oac copy -lavcopts keyint=1 -ovc lavc -o #{@big_temp} -dvd-device #{this_drive} && echo got_file > #{@big_temp}.done\n"
|
17
17
|
end
|
18
18
|
end
|
19
19
|
|
data/lib/swing_helpers.rb
CHANGED
@@ -8,7 +8,8 @@ module SensibleSwing
|
|
8
8
|
include_class java.awt.event.ActionListener
|
9
9
|
JFile = java.io.File
|
10
10
|
include_class java.awt.FileDialog
|
11
|
-
|
11
|
+
include_class java.lang.System
|
12
|
+
|
12
13
|
class JButton
|
13
14
|
def initialize *args
|
14
15
|
super *args
|
@@ -18,7 +19,13 @@ module SensibleSwing
|
|
18
19
|
def on_clicked &block
|
19
20
|
raise unless block
|
20
21
|
add_action_listener do |e|
|
21
|
-
|
22
|
+
begin
|
23
|
+
block.call
|
24
|
+
rescue Exception => e
|
25
|
+
puts 'got fatal exception', e
|
26
|
+
puts e.backtrace.join("\n")
|
27
|
+
System.exit(1) # LODO no exit
|
28
|
+
end
|
22
29
|
end
|
23
30
|
self
|
24
31
|
end
|
data/sensible-cinema.gemspec
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{sensible-cinema}
|
8
|
-
s.version = "0.16.
|
8
|
+
s.version = "0.16.5"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Roger Pack"]
|
@@ -31,6 +31,7 @@ Gem::Specification.new do |s|
|
|
31
31
|
"experimental_readme.txt",
|
32
32
|
"ext/mkrf_conf.rb",
|
33
33
|
"gplv3.txt",
|
34
|
+
"how_to_create",
|
34
35
|
"lib/add_any_bundled_gems_to_load_path.rb",
|
35
36
|
"lib/blanker.rb",
|
36
37
|
"lib/drive_info.rb",
|
@@ -120,6 +121,7 @@ Gem::Specification.new do |s|
|
|
120
121
|
"vendor/gocr049.exe",
|
121
122
|
"vendor/unzip.exe",
|
122
123
|
"zamples/edit_decision_lists/category descriptions.txt",
|
124
|
+
"zamples/edit_decision_lists/dvds/bob the builder pets in a pickle.txt",
|
123
125
|
"zamples/edit_decision_lists/dvds/bobs_big_plan.txt",
|
124
126
|
"zamples/edit_decision_lists/dvds/happiest baby on the block.txt",
|
125
127
|
"zamples/edit_decision_lists/dvds/old_and_inaccurate/White Christmas.txt",
|
@@ -1,8 +1,8 @@
|
|
1
1
|
"mutes" => [
|
2
2
|
"6:18" , "6:19.1", "religious reference", "religious reference", "2"
|
3
3
|
],
|
4
|
+
"disk_unique_id" => "19d121ae8dc40cdd70b57ab7e8c74f76",
|
4
5
|
"title" => "Happiest baby on the block",
|
5
|
-
"dvd_drive_label" => "HAPPIEST_BABY_ON_THE_BLOCK",
|
6
6
|
"source" => "DVD",
|
7
7
|
"dvd_title_track" => 1,
|
8
8
|
"other notes" => "has a couple (modest) shots of nursing moms which aren't cut."
|
@@ -18,29 +18,23 @@
|
|
18
18
|
# note: items can be out of chronological order, that's ok
|
19
19
|
|
20
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
21
|
# example:
|
23
22
|
|
24
23
|
"blank_outs" => [
|
25
24
|
# this first one blanks (by overlaying *over* the video, a black window)
|
26
25
|
# from one hour one minute to one hour two minutes, like:
|
27
|
-
"01:01:00" , "01:02:00", "nudity", "
|
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):
|
26
|
+
"01:01:00" , "01:02:00", "nudity", "Kate Winslet's...",
|
27
|
+
# you can also always optionally use decimals, like 3 minutes 3 seconds and a half to 3 minutes 4 seconds and a half (one second blank out):
|
29
28
|
"00:03:03.5", "00:03:04.5",
|
30
|
-
# if you don't want to be explicit, you can reference a *number*
|
31
|
-
# from the category descriptions.yml file, like
|
32
|
-
"01:01:00", "01:02:00", "profanity", "bodily function 1",
|
33
|
-
# (instead of "01:01:00", "01:02:00", "s***")
|
34
29
|
],
|
35
30
|
|
36
|
-
# (if something's not categorized yet then just write it in your file and I'll add it later, or just notify me)
|
37
|
-
|
38
31
|
# you can also add other notes, too, like title, source, whatever you want
|
39
32
|
# these are basically free form and not used for anything else yet
|
40
33
|
"missing_content" => "this doesn't list some mild name calling",
|
41
34
|
"title" => "Forever Strong",
|
42
35
|
"source" => "Hulu",
|
43
36
|
"url" => "http://www.byutv.org/watch/1790-100",
|
44
|
-
"whatever_else_you_want" => "this is the old version of the film"
|
37
|
+
"whatever_else_you_want" => "this is the old version of the film",
|
38
|
+
"disk_unique_id" => "19d121ae8dc40cdd70b57ab7e8c74f76", # for DVD's to be able to differentiate (and auto select) themselves.
|
45
39
|
|
46
40
|
# NB that you have to put commas just about everywhere. That might help
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 16
|
8
|
-
-
|
9
|
-
version: 0.16.
|
8
|
+
- 5
|
9
|
+
version: 0.16.5
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Roger Pack
|
@@ -169,6 +169,7 @@ files:
|
|
169
169
|
- experimental_readme.txt
|
170
170
|
- ext/mkrf_conf.rb
|
171
171
|
- gplv3.txt
|
172
|
+
- how_to_create
|
172
173
|
- lib/add_any_bundled_gems_to_load_path.rb
|
173
174
|
- lib/blanker.rb
|
174
175
|
- lib/drive_info.rb
|
@@ -258,6 +259,7 @@ files:
|
|
258
259
|
- vendor/gocr049.exe
|
259
260
|
- vendor/unzip.exe
|
260
261
|
- zamples/edit_decision_lists/category descriptions.txt
|
262
|
+
- zamples/edit_decision_lists/dvds/bob the builder pets in a pickle.txt
|
261
263
|
- zamples/edit_decision_lists/dvds/bobs_big_plan.txt
|
262
264
|
- zamples/edit_decision_lists/dvds/happiest baby on the block.txt
|
263
265
|
- zamples/edit_decision_lists/dvds/old_and_inaccurate/White Christmas.txt
|