sensible-cinema 0.25.2 → 0.25.3
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +1 -1
- data/TODO +32 -35
- data/VERSION +1 -1
- data/bin/sensible-cinema +103 -76
- data/bin/sensible-cinema-dependencies.rb +1 -1
- data/change_log_with_feature_list.txt +57 -0
- data/documentation/how_to_get_files_from_dvd.txt +2 -2
- data/lib/edl_parser.rb +21 -4
- data/spec/edl_parser.spec.rb +15 -3
- data/spec/sensible_cinema_gui.spec.rb +8 -7
- data/todo.inventionzy.txt +16 -13
- data/todo.upconvert +6 -14
- data/upconvert.bat +0 -0
- data/zamples/edit_decision_lists/dvds/{edls_being_edited/court_jester.txt → court_jester.txt} +2 -2
- data/zamples/edit_decision_lists/dvds/edls_being_edited/cars_disney.txt +40 -0
- metadata +5 -4
data/Rakefile
CHANGED
@@ -14,7 +14,7 @@ Jeweler::Tasks.new do |s|
|
|
14
14
|
s.add_dependency 'rdp-win32screenshot', '= 0.0.9'
|
15
15
|
s.add_dependency 'mini_magick', '>= 3.1' # for ocr...
|
16
16
|
s.add_dependency 'whichr', '>= 0.3.6'
|
17
|
-
s.add_dependency 'rautomation', '> 0.6.3'
|
17
|
+
s.add_dependency 'rdp-rautomation', '> 0.6.3' # LODO
|
18
18
|
s.add_dependency 'rdp-ruby-wmi' # for windows
|
19
19
|
s.add_dependency 'plist' # for mac
|
20
20
|
s.add_dependency 'ffi' # mouse, etc. needed at least for windows MRI
|
data/TODO
CHANGED
@@ -1,9 +1,11 @@
|
|
1
1
|
== roadmap [for just tasks, see below though] ==
|
2
2
|
|
3
|
-
|
4
|
-
|
3
|
+
netflix instant for OS X
|
4
|
+
upconvert DVD/netflix
|
5
|
+
C EDL
|
5
6
|
|
6
7
|
=== loose ordering/eventually ===
|
8
|
+
compare netflix/blu-ray timings et al
|
7
9
|
linearize [?] hmm...
|
8
10
|
re-update todo/all docu/user feedback etc.
|
9
11
|
create web site/api-ify
|
@@ -16,26 +18,29 @@
|
|
16
18
|
== high prio like blocking bugs ==
|
17
19
|
|
18
20
|
== under next release specific items: ==
|
19
|
-
it can filter out specific profanities even, too :P
|
20
21
|
|
21
22
|
== yes do ordered in conjunction with the above probably ==
|
22
23
|
|
23
24
|
== yes do, un-ordered currently, from the various future release options ==
|
25
|
+
can move the mouse 10 pixels down at the beginning, in order to...put it in the right place.
|
24
26
|
both mute and blank when blanking by default... (add the other type in there, esp. if a man answers)
|
25
|
-
|
27
|
+
make it suck in single EDL from imdb based on a list
|
28
|
+
test court jester :)
|
26
29
|
lightning strike from various outlets...
|
27
30
|
release at some point...Oliver? facebook? (one at a time...)
|
28
|
-
research VOB
|
29
|
-
timesplits?
|
31
|
+
research VOB dirs
|
32
|
+
still needs timesplits? what about in XBMC? what about XBMC with DVD's
|
30
33
|
todo.upconvert
|
31
|
-
netflix quality upconverter
|
34
|
+
netflix quality upconverter, have a go at it
|
35
|
+
finalize screen capture
|
32
36
|
have people test it
|
33
37
|
me test it
|
34
38
|
1x, 2x Sintel
|
35
39
|
snapshots of Sintel "normal", then deploy the various comparison pics
|
36
|
-
netflix instant for OS X
|
37
40
|
add new open button "edit the one for current DVD"
|
41
|
+
"fix" mplayer EDL pausing [?]
|
38
42
|
the open button should open in the "editing" EDL dir.
|
43
|
+
warn against makemkv (and check it, too, and offer a bounty! :)
|
39
44
|
an overlapping mute failure when you hit the "watch edited realtime" should popup.
|
40
45
|
split out the "dependency" code
|
41
46
|
try buy edit lists from all x,y,z [?] offer them money LOL
|
@@ -61,22 +66,19 @@
|
|
61
66
|
oh wait we weren't even using it right to begin with LOL
|
62
67
|
plus it needs to "always just skip instead of mute" for now I guess
|
63
68
|
report XBMC bugs, too.
|
64
|
-
split into various separate windows themselves...
|
65
69
|
consistency for flight of nav. srt? huh?
|
66
70
|
consistency of others, also "DVD reported full-time versus ts time" for others...
|
67
71
|
subtitles: if at beginning of a sub, add extra offset...hmm...why not?
|
68
|
-
say something if the EDL is actually "empty" :)
|
69
72
|
fix released version to downloadable work in mac
|
70
73
|
report ffmpeg bug, mplayer various (as bugs):P
|
71
74
|
"--developer" mode
|
72
|
-
export JSON command line,
|
75
|
+
has "export JSON command line, reload code" , note it in the docu
|
73
76
|
new button "auto-test" a subtitles file for timing :)
|
74
|
-
new upconv button: auto-take some snapshots (just to straight mjpeg or jpeg or the what not)
|
75
|
-
@jruby scan court jester is *so* slow...what the...[mac at least...]
|
77
|
+
new upconv button: auto-take some snapshots (just to straight mjpeg or jpeg or the what not [?])
|
76
78
|
advertise urug again?
|
77
79
|
after works in mac. Why not?
|
78
80
|
advertise virtual audio
|
79
|
-
advertise
|
81
|
+
advertise screen capture
|
80
82
|
mplayer directx patch check it...
|
81
83
|
auto-add largest title to the generator EDL
|
82
84
|
complain if times looks wrong...on playback? sum time
|
@@ -112,13 +114,14 @@
|
|
112
114
|
try out disney digital copy
|
113
115
|
C player:
|
114
116
|
folder, look for title.edl
|
115
|
-
use DVD navigator
|
117
|
+
use DVD navigator (check)
|
116
118
|
just use mplayer EDL syntax, plus a title track (or just detect track change, if long enough, assume... :P) :)
|
117
119
|
http://msdn.microsoft.com/en-us/library/ms787412(VS.85).aspx
|
118
120
|
http://msdn.microsoft.com/en-us/library/dd407175(v=VS.85).aspx can be synchronous? might be a good first pass...
|
119
121
|
PlayPeriodInTitleAutoStop EC_DVD_PLAYPERIOD_AUTOSTOP
|
120
122
|
make it frame accurate output text :)
|
121
123
|
allow it to "just play from X to Y exactly" ...
|
124
|
+
can start fullscreen
|
122
125
|
does this line up right/perfect? can it work, at all?
|
123
126
|
lodo:
|
124
127
|
update its semi-bad error messages...
|
@@ -127,28 +130,25 @@
|
|
127
130
|
note pay for XP http://windows.microsoft.com/en-US/windows/downloads/windows-media-player/plug-ins search for the cheapest
|
128
131
|
note to them windows vista/7: use ac3filter [?]
|
129
132
|
[A,B]
|
133
|
+
once I can jump around, advertise as a phantom editor :)
|
130
134
|
note better to previewer "you are about to preview these specific edits..." ?
|
131
135
|
ask for more beta testers for use, ask for more beta testers for creation, too
|
132
136
|
rinse and repeat with various ppl
|
133
|
-
create a semi-accurate phantom edit EDL
|
137
|
+
create a semi-accurate phantom edit EDL [?] just with splits
|
134
138
|
http://www.chefelf.com/forums/index.php?showtopic=6176
|
135
|
-
inventionzy: blu-ray stuff from todo.inventionzy
|
136
|
-
port to mac OS X
|
137
|
-
ppc dvdid? documentation button? notepad?
|
138
139
|
the final "edited.avi" really "could/should" be playable in WMP...if possible
|
139
140
|
add button "fast preview segment" (from dvd)
|
140
|
-
|
141
|
-
|
142
|
-
test it out (+- with people)
|
143
|
-
propaganda it
|
141
|
+
upconvert
|
142
|
+
test it out (+- with others)
|
144
143
|
investigate WMC "call out to smplayer + EDL" or the like...
|
145
144
|
add to docu
|
146
145
|
be a hero and sync the dvdnav repo's [?] also fix mplayer not being able to startup on some dvd's what the...this is nuts!
|
147
146
|
I'm almost beginning to think VLC for files, DEBUG_C player for DVD's (except on mac, where they just have to live hosed)
|
148
147
|
or maybe...umm...ask the dvdnav people why it might work with one and not the other? ask VLC? huh? what the...
|
149
148
|
call out to VLC on DVDNAV_ERROR occurrence? what the... if can reproduce, submit bug report with trace et al.
|
149
|
+
virtual desktop -> real input
|
150
150
|
|
151
|
-
== other lists to do ==
|
151
|
+
== other lists to not do (duplicate the todo here if want to actually do it though) ==
|
152
152
|
|
153
153
|
todo.upconvert
|
154
154
|
todo.propaganda
|
@@ -161,6 +161,12 @@
|
|
161
161
|
== DVD decide later to move up or down ==
|
162
162
|
|
163
163
|
== DVD+-DVD-realtime backlog (totally unordered, some very low prio, basically all never do) ==
|
164
|
+
inventionzy: blu-ray stuff from todo.inventionzy
|
165
|
+
figure out a way to get to the roku [ps3ms?], +- netflix edited to roku LOL
|
166
|
+
advertise virtual desktop :)
|
167
|
+
port to mac OS X
|
168
|
+
ppc dvdid? documentation button? notepad?
|
169
|
+
say something if the EDL is actually "empty" :)
|
164
170
|
already donated: unlocker, mac fan thing, open office, many sourceforge tops, 7zip, VLC, mplayer, cannot donate: ffmpeg
|
165
171
|
note "you want to optimize your reverse blitting first... :)"
|
166
172
|
if 2 EDL's, still can choose a title track
|
@@ -258,7 +264,6 @@
|
|
258
264
|
@makemkv: wrong title no:Title #0 was added (7 cell(s), 0:14:58)
|
259
265
|
Title #1 was added (8 cell(s), 0:14:57), also give us title no's in the dialog :P
|
260
266
|
@mencoder you lop off the end somehow (dvd rip)
|
261
|
-
@VLC: plugin for EDL maybe? [when opening file/DVD look for .edl file?]
|
262
267
|
blu ray timing
|
263
268
|
my one, others. Are they the same as DVD's? They seem really close...
|
264
269
|
pull in information from thetvdb to the GUI app
|
@@ -431,8 +436,6 @@ take out use_class_name for descriptors
|
|
431
436
|
|
432
437
|
after 2020: DVD Navigator in C++ ?
|
433
438
|
|
434
|
-
it should track "is paused" better (OCR)
|
435
|
-
|
436
439
|
something that works with cable TV, too, somehow?
|
437
440
|
|
438
441
|
if sued, could use straight mplayer -ss (+- one at a time, or possibly in a playlist [?] like VLC can...)
|
@@ -456,10 +459,8 @@ fix:
|
|
456
459
|
|
457
460
|
byu.tv descriptor
|
458
461
|
youtube non full screen: work with all browsers
|
459
|
-
easier "here's how on the command line, BTW"
|
460
462
|
amazon player
|
461
|
-
|
462
|
-
"just choose VLCx55" LOL
|
463
|
+
"just choose VLCx55" LOL
|
463
464
|
|
464
465
|
Just fold if s....
|
465
466
|
|
@@ -566,8 +567,6 @@ control volume programmatically (using mouse) on the player itself.
|
|
566
567
|
control mute programmatically (using mouse) on the player itself.
|
567
568
|
control location programmatically (using mouse) on the player itself.
|
568
569
|
|
569
|
-
compare VLC (and other) timings with a real DVD player, and with netflix instant, etc.
|
570
|
-
|
571
570
|
Have a "list of all known movies (url's)" and be able to open (IE et al) to the correct part, and start playing them, and they work...
|
572
571
|
or known parseable imdb's
|
573
572
|
|
@@ -637,7 +636,7 @@ maybe require them to rip their stuff "through some means or other" and we'll op
|
|
637
636
|
give money to nomachine--wow!
|
638
637
|
|
639
638
|
a boxee api?
|
640
|
-
I *could* record netflix movies, then edit those manually (or mapped-ly)...meh clearplay needs some niche--we don't have each other after all
|
639
|
+
I *could* record netflix movies, then edit those manually (or mapped-ly)...meh clearplay needs some niche--we don't have each other after all, plus legality
|
641
640
|
donate to the top 25 sourceforge's that don't look illegal, esp. if haven't before
|
642
641
|
@mplayer: allow the equals in this: mplayer dvdnav:// -dvd-device=f:
|
643
642
|
|
@@ -651,7 +650,5 @@ RuntimeError: poor width or wrong window 94 1 71
|
|
651
650
|
|
652
651
|
create a "map" of VLC DVD timings to "real" timings via tracking. Hopefully never necessary...
|
653
652
|
|
654
|
-
if it looks paused I should basically pause my tracking [if it looks nothing, then keep going with my tracking]
|
655
653
|
it fails on "friday" tracks 0:48 as 1:48
|
656
654
|
probably at startup should not start at 0, either, wait for first screen trackage
|
657
|
-
figure out a way to get to the roku [ps3ms?], +- netflix edited to roku LOL
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.25.
|
1
|
+
0.25.3
|
data/bin/sensible-cinema
CHANGED
@@ -166,10 +166,18 @@ module SensibleSwing
|
|
166
166
|
add_text_line ''
|
167
167
|
|
168
168
|
end
|
169
|
+
|
170
|
+
def self.new_child_window
|
171
|
+
out = MainWindow.new
|
172
|
+
out.setDefaultCloseOperation(JFrame::DISPOSE_ON_CLOSE)
|
173
|
+
out
|
174
|
+
end
|
169
175
|
|
170
176
|
def add_change_upconvert_options_button
|
171
|
-
@show_upconvert_options = new_jbutton("
|
172
|
-
|
177
|
+
@show_upconvert_options = new_jbutton("Set Playback Upconversion Options") do
|
178
|
+
upconvert_window = MainWindow.new_child_window
|
179
|
+
upconvert_window.add_setup_upconvert_buttons
|
180
|
+
# now join it, oops that isn't possible [?]
|
173
181
|
end
|
174
182
|
@show_upconvert_options.tool_tip= "Allows you to set your upconvert options.\nUpconverting attempts to playback your movie with higher quality on high resolution monitors."
|
175
183
|
end
|
@@ -181,7 +189,7 @@ module SensibleSwing
|
|
181
189
|
end
|
182
190
|
|
183
191
|
def change_upconvert_line_to_current
|
184
|
-
@upconv_line.set_text get_current_upconvert_as_phrase
|
192
|
+
@upconv_line.set_text get_current_upconvert_as_phrase if @upconv_line
|
185
193
|
end
|
186
194
|
|
187
195
|
def select_new_sxs_style
|
@@ -335,8 +343,12 @@ module SensibleSwing
|
|
335
343
|
end
|
336
344
|
|
337
345
|
def setup_advanced_buttons
|
338
|
-
|
339
|
-
|
346
|
+
|
347
|
+
new_jbutton("Display the standard buttons") do
|
348
|
+
setup_normal_buttons
|
349
|
+
end
|
350
|
+
|
351
|
+
add_text_line 'Realtime/Create Options:'
|
340
352
|
|
341
353
|
@create_new_edl_for_current_dvd = new_jbutton("Create new Edit List for a DVD",
|
342
354
|
"If your DVD doesn't have an EDL created for it, this will be your first step--create an EDL file for it.")
|
@@ -345,29 +357,12 @@ module SensibleSwing
|
|
345
357
|
@display_dvd_info.simulate_click # for now...
|
346
358
|
end
|
347
359
|
|
348
|
-
@open_list = new_jbutton("Open/Edit a previously created
|
360
|
+
@open_list = new_jbutton("Open/Edit a previously created Edit List file", "If your DVD has a previously existing EDL for it, you can open it to edit it with this button.")
|
349
361
|
@open_list.on_clicked {
|
350
362
|
filename = new_existing_file_selector_and_select_file( "Pick any file to open in editor", EdlParser::EDL_DIR)
|
351
363
|
open_file_to_edit_it filename
|
352
364
|
}
|
353
365
|
|
354
|
-
|
355
|
-
@create_dot_edl = new_jbutton( "Create a side-by-side moviefilename.edl file")
|
356
|
-
@create_dot_edl.tool_tip = <<-EOL
|
357
|
-
Create a moviefilename.edl file (corresponding to some moviefilename.some_ext file already existing)
|
358
|
-
XBMC/smplayer (smplayer can be used by WMC plugins, etc.) "automagically detect",
|
359
|
-
if it exists, and automatically use it .edl to show that file edited played back.
|
360
|
-
If you use smplayer, note that you'll need to download the "lord mulder mplayer"
|
361
|
-
version (which includes an updated version of mplayer that fixes some bugs in EDL playback)
|
362
|
-
EOL
|
363
|
-
@create_dot_edl.on_clicked {
|
364
|
-
choose_file_and_edl_and_create_sxs_or_play true
|
365
|
-
}
|
366
|
-
|
367
|
-
new_jbutton("Select side by side EDL file style (smplayer vs. XBMC)") do
|
368
|
-
select_new_sxs_style
|
369
|
-
end
|
370
|
-
|
371
366
|
@play_smplayer = new_jbutton( "Watch full DVD unedited (realtime smplayer)")
|
372
367
|
@play_smplayer.tool_tip = <<-EOL
|
373
368
|
This will play the DVD unedited within smplayer.
|
@@ -392,6 +387,34 @@ module SensibleSwing
|
|
392
387
|
@play_mplayer_raw.on_clicked {
|
393
388
|
play_dvd_smplayer_unedited true, true, true
|
394
389
|
}
|
390
|
+
|
391
|
+
@parse_srt = new_jbutton("Scan a subtitle file (.srt) to detect profanity times automatically" )
|
392
|
+
@parse_srt.tool_tip = <<-EOL
|
393
|
+
You can download a .srt file and use it to automatically search for profanities.
|
394
|
+
Basically download it from opensubtitles.org (possibly from other sites, too),
|
395
|
+
(enter dvd name in the search box, click a result, click one from the list with an English flag, then click 'Download(zip)')
|
396
|
+
Once you download the zip, unzip it, and then compare the timestamps in it with those on the DVD (see the button "Watch DVD unedited (realtime mplayer)")
|
397
|
+
NB that you'll first want/need to *carefully* double check your subtitle
|
398
|
+
file with the actual DVD. (ex: smplayer, hit the 'o' button to display
|
399
|
+
the current timestamp, then go to the end, stop at some point with text
|
400
|
+
and hit the '.' key until a subtitle very first displays.
|
401
|
+
Next convert that number to 29.97 fps (using the button given).
|
402
|
+
The numbers should match precisely. If they don't, edit this file
|
403
|
+
so that it will have some offsets given.
|
404
|
+
EOL
|
405
|
+
|
406
|
+
@parse_srt.on_clicked do
|
407
|
+
filename = new_existing_file_selector_and_select_file("Pick srt file to scan for profanity:")
|
408
|
+
add_to_beginning = get_user_input("How much time to subtract from the beginning of each subtitle entry (ex: 1:00 -> 1:01 becomes 0:59 -> 1:01)", "0.0")
|
409
|
+
add_to_end = get_user_input("How much time to add to the end of each subtitle entry (ex: 1:00 -> 1:01 becomes 1:00 -> 1:02)", "0.0")
|
410
|
+
parsed = SubtitleProfanityFinder.edl_output filename, {}, add_to_beginning.to_f, add_to_end.to_f # flight: TODO necessary typically ??? 0.35, 0.25
|
411
|
+
File.write(EdlTempFile, "# add these into your mute section if you deem them mute-worthy\n" + parsed)
|
412
|
+
open_file_to_edit_it filename, true
|
413
|
+
sleep 0.3 if OS.mac? # add delay...
|
414
|
+
open_file_to_edit_it EdlTempFile
|
415
|
+
end
|
416
|
+
|
417
|
+
|
395
418
|
|
396
419
|
@display_dvd_info = new_jbutton( "Display information about current DVD (ID, etc.)" )
|
397
420
|
@display_dvd_info.tool_tip = "This is useful to setup a DVD's 'unique ID' within an EDL for it. \nIf your EDL doesn't have a line like disk_unique_id => \"...\" then you will want to run this to be able to add that line in."
|
@@ -412,27 +435,30 @@ module SensibleSwing
|
|
412
435
|
@convert_seconds_to_ts = new_jbutton( "Convert 3600 <-> 1:00:00 style timestamps" )
|
413
436
|
@convert_seconds_to_ts.on_clicked {
|
414
437
|
input = get_user_input("Enter \"from\" timestamps, like 3600 or 1:40:00:", "1:00:00.1 or 3600.1")
|
415
|
-
|
416
|
-
|
417
|
-
|
418
|
-
|
419
|
-
|
420
|
-
|
438
|
+
while(input)
|
439
|
+
if input =~ /:/
|
440
|
+
output = EdlParser.translate_string_to_seconds input
|
441
|
+
else
|
442
|
+
output = EdlParser.translate_time_to_human_readable input.to_f, true
|
443
|
+
end
|
444
|
+
input = show_copy_pastable_string("Converted:", output)
|
445
|
+
end
|
421
446
|
}
|
422
447
|
|
423
|
-
@convert_timestamp = new_jbutton( "Convert timestamp from DVD player time
|
448
|
+
@convert_timestamp = new_jbutton( "Convert timestamp from DVD player time to EDL time (30->29.97 fps)" )
|
424
449
|
@convert_timestamp.tool_tip=<<-EOL
|
425
|
-
Our EDL's assume 29.97 fps (which is what a DVD
|
426
|
-
|
427
|
-
|
450
|
+
Our EDL's assume 29.97 fps (which is what a DVD actually has). Unfortunately most hardware or commercial DVD players
|
451
|
+
think that the DVD is 30 fps, which means that if you use them for timestamps for your EDL's,
|
452
|
+
you will be slightly off (at the end of a 2 hour film, by 8 seconds). So all your edits will be wrong.
|
428
453
|
How to fix: convert your times from "DVD player" time to "EDL accurate" time by using this button.
|
429
|
-
This is necessary for hardware DVD player timestamps, PowerDVD, Windows Media Player (playing a DVD),
|
430
|
-
|
454
|
+
This is necessary for all hardware DVD player timestamps, PowerDVD player (software), Windows Media Player (playing a DVD),
|
455
|
+
and mplayer's "on screen display" DVD timestamps.
|
456
|
+
It is not necessary for smplayer timestamps (or mplayer's "V: 3600" in the command line), which are already 29.97.
|
431
457
|
smplayer's on-screen-display (the 'o' key) is accurate (and doesn't suffer from dvd_mplayer_splits)
|
432
458
|
but is 30 fps, so timestamps would need to be converted.
|
433
459
|
Dont use VLC for DVD timestamps at all--it can get up to 30s off! VLC playing back a file is usually pretty accurate to 29.97.
|
434
460
|
In general, GUI's like VLC or smplayer are always a tidge off (maybe 0.3s) from the right timestamp, so take that into consideration.
|
435
|
-
Mplayers "V: 3600" is usually right on, however.
|
461
|
+
Mplayers "V: 3600" is usually right on (29.97 fps), however.
|
436
462
|
EOL
|
437
463
|
@convert_timestamp.on_clicked {
|
438
464
|
thirty_fps = get_user_input("Enter your DVD (30 fps) timestamp, I'll convert it to 29.97 (usable in EDL's):", "1:00:00.1")
|
@@ -442,32 +468,37 @@ module SensibleSwing
|
|
442
468
|
show_copy_pastable_string("Sensible cinema usable value (29.97 fps) for #{thirty_fps} would be: ", human_twenty_nine_seven)
|
443
469
|
}
|
444
470
|
|
445
|
-
@
|
446
|
-
@
|
447
|
-
|
448
|
-
|
449
|
-
|
450
|
-
|
451
|
-
|
452
|
-
file with the actual DVD. (ex: smplayer, hit the 'o' button to display
|
453
|
-
the current timestamp, then go to the end, stop at some point with text
|
454
|
-
and hit the '.' key until a subtitle very first displays.
|
455
|
-
Next convert that number to 29.97 fps (using the button given).
|
456
|
-
The numbers should match precisely. If they don't, edit this file
|
457
|
-
so that it will have some offsets given.
|
471
|
+
@create_dot_edl = new_jbutton( "Create a side-by-side moviefilename.edl file")
|
472
|
+
@create_dot_edl.tool_tip = <<-EOL
|
473
|
+
Creates a moviefilename.edl file (corresponding to some moviefilename.some_ext file already existing)
|
474
|
+
XBMC/smplayer (smplayer can be used by WMC plugins, etc.) "automagically detect",
|
475
|
+
if it exists, and automatically use it .edl to show that file edited played back.
|
476
|
+
If you use smplayer, note that you'll need to download the "lord mulder mplayer"
|
477
|
+
version (which includes an updated version of mplayer that fixes some bugs in EDL playback)
|
458
478
|
EOL
|
479
|
+
@create_dot_edl.on_clicked {
|
480
|
+
choose_file_and_edl_and_create_sxs_or_play true
|
481
|
+
}
|
482
|
+
|
483
|
+
# new_jbutton("Select side by side EDL file style (smplayer vs. XBMC)") do
|
484
|
+
# select_new_sxs_style # TODO
|
485
|
+
# end
|
459
486
|
|
460
|
-
|
461
|
-
|
462
|
-
|
463
|
-
|
464
|
-
|
465
|
-
|
466
|
-
open_file_to_edit_it filename, true
|
467
|
-
sleep 0.3 if OS.mac? # add delay...
|
468
|
-
open_file_to_edit_it EdlTempFile
|
487
|
+
|
488
|
+
add_text_line 'Create Options that first create/use a local intermediary file:'
|
489
|
+
|
490
|
+
new_jbutton("Show options that first create/use a local intermediary file") do
|
491
|
+
window = MainWindow.new_child_window
|
492
|
+
window.add_options_that_use_local_files
|
469
493
|
end
|
470
494
|
|
495
|
+
# @reload = new_jbutton("reload bin/sensible-cinema code") do
|
496
|
+
# load $0
|
497
|
+
# end
|
498
|
+
|
499
|
+
end # advanced buttons
|
500
|
+
|
501
|
+
def add_options_that_use_local_files
|
471
502
|
add_text_line 'Create Options that first create/use a local intermediary file:'
|
472
503
|
|
473
504
|
@preview_section = new_jbutton( "Preview a certain time frame from fulli file (edited)" )
|
@@ -507,13 +538,8 @@ module SensibleSwing
|
|
507
538
|
nice_file = wrote_to_here_fulli
|
508
539
|
run_smplayer_blocking nice_file, nil, "-edl #{normalize_path EdlTempFile}", false, true
|
509
540
|
}
|
510
|
-
|
511
|
-
|
512
|
-
load $0
|
513
|
-
end
|
514
|
-
|
515
|
-
end # advanced buttons
|
516
|
-
|
541
|
+
end
|
542
|
+
|
517
543
|
# converts to full path, 8.3 if on doze
|
518
544
|
def normalize_path path
|
519
545
|
path = File.expand_path path
|
@@ -521,7 +547,8 @@ module SensibleSwing
|
|
521
547
|
end
|
522
548
|
|
523
549
|
def setup_normal_buttons
|
524
|
-
|
550
|
+
add_text_line ""
|
551
|
+
|
525
552
|
@mplayer_edl = new_jbutton( "Watch DVD edited (realtime)")
|
526
553
|
@mplayer_edl.tool_tip = "This will watch your DVD in realtime from your computer while skipping/muting questionable scenes."
|
527
554
|
@mplayer_edl.on_clicked {
|
@@ -551,7 +578,7 @@ module SensibleSwing
|
|
551
578
|
add_open_documentation_button
|
552
579
|
end
|
553
580
|
|
554
|
-
add_change_upconvert_options_button
|
581
|
+
add_change_upconvert_options_button
|
555
582
|
|
556
583
|
@progress_bar = JProgressBar.new(0, 100)
|
557
584
|
@progress_bar.set_bounds(44,@starting_button_y,@button_width,23)
|
@@ -592,11 +619,11 @@ module SensibleSwing
|
|
592
619
|
ARGV.index("--upconvert-mode")
|
593
620
|
end
|
594
621
|
|
595
|
-
def initialize
|
622
|
+
def initialize be_visible = true
|
596
623
|
super "Sensible-Cinema #{VERSION} (GPL)"
|
597
624
|
force_accept_license_first
|
598
625
|
|
599
|
-
setDefaultCloseOperation JFrame::EXIT_ON_CLOSE
|
626
|
+
setDefaultCloseOperation JFrame::EXIT_ON_CLOSE # default is exit on close
|
600
627
|
@panel = JPanel.new
|
601
628
|
@buttons = []
|
602
629
|
@panel.set_layout nil
|
@@ -608,26 +635,25 @@ module SensibleSwing
|
|
608
635
|
@starting_button_y += 10 # kinder ugly...
|
609
636
|
add_text_line " Rest mouse over buttons for \"help\" type descriptions (tooltips)."
|
610
637
|
add_text_line ""
|
611
|
-
add_text_line ""
|
612
638
|
|
613
639
|
setIconImage(ImageIcon.new(__DIR__ + "/../vendor/profs.png").getImage())
|
614
640
|
check_for_various_dependencies
|
641
|
+
set_visible be_visible
|
615
642
|
end
|
616
643
|
|
617
|
-
|
618
644
|
def setup_default_buttons
|
619
|
-
|
620
645
|
if we_are_in_upconvert_mode
|
621
646
|
setup_upconvert_buttons
|
622
647
|
else
|
623
|
-
setup_normal_buttons
|
624
648
|
|
625
649
|
if we_are_in_create_mode
|
626
650
|
setup_advanced_buttons
|
627
651
|
add_text_line 'Contact:'
|
652
|
+
else
|
653
|
+
setup_normal_buttons
|
628
654
|
end
|
629
655
|
|
630
|
-
@upload = new_jbutton("Submit
|
656
|
+
@upload = new_jbutton("Submit Feedback/Upload new EDL's/Request Help") # keeps this one last! :)
|
631
657
|
@upload.tool_tip = "We welcome all feedback!\nQuestion, comments, request help.\nAlso if you create a new EDL, please submit it back to us so that others can benefit from it later!"
|
632
658
|
@upload.on_clicked {
|
633
659
|
system_non_blocking("start mailto:sensible-cinema@googlegroups.com")
|
@@ -1098,7 +1124,9 @@ module SensibleSwing
|
|
1098
1124
|
|
1099
1125
|
def get_user_input(message, default = '', cancel_ok = false)
|
1100
1126
|
received = JOptionPane.showInputDialog(message, default)
|
1101
|
-
|
1127
|
+
unless cancel_ok
|
1128
|
+
raise 'user cancelled' unless received
|
1129
|
+
end
|
1102
1130
|
received
|
1103
1131
|
end
|
1104
1132
|
|
@@ -1496,7 +1524,6 @@ if $0 == __FILE__
|
|
1496
1524
|
else
|
1497
1525
|
a = SensibleSwing::MainWindow.new
|
1498
1526
|
a.setup_default_buttons
|
1499
|
-
a.set_visible true
|
1500
1527
|
puts 'Please use the Sensible Cinema GUI window popup...'
|
1501
1528
|
if ARGV.index('--exit-immediately')
|
1502
1529
|
a.dispose
|
@@ -6,7 +6,7 @@ module SensibleSwing
|
|
6
6
|
def self.download full_url, to_here
|
7
7
|
require 'open-uri'
|
8
8
|
require 'openssl'
|
9
|
-
eval("OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE")
|
9
|
+
eval("OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE") if full_url =~ /https/
|
10
10
|
writeOut = open(to_here, "wb")
|
11
11
|
writeOut.write(open(full_url).read)
|
12
12
|
writeOut.close
|
@@ -1,3 +1,60 @@
|
|
1
|
+
== 0.25.3 ==
|
2
|
+
|
3
|
+
Mostly explore some more "inventionzy" ideas.
|
4
|
+
Add abiliy to filter whole categories of content (allow/disallow them), or levels of content, based on
|
5
|
+
user perceived level/user desired, including opposite.
|
6
|
+
|
7
|
+
Note also that we have successfully discovered how to integrate with playing through peoples'
|
8
|
+
portable playing devices/consoles (windows media center--use plugins, XBMC, use its EDL's, ps3ms, use EDL's),
|
9
|
+
see mailing list.
|
10
|
+
|
11
|
+
Also a lot of work has been done on upconverting screen capture, which can also similarly be
|
12
|
+
applied to edited movie content, with DVD and/or/ blu-ray and/or online based streaming media.
|
13
|
+
|
14
|
+
Also we have fairly sophisticated algorithms for determining the correct time to actually do or trust the
|
15
|
+
OCR readout, ex: checking for screen change frequently before doing any actual digit detection,
|
16
|
+
using third party OCR software reader software, checking to coordinate timestamp signatures when
|
17
|
+
"09" goes to "10" or the like. To help the timing needs there. Also we can detect
|
18
|
+
arbitrary players, and warn when detect fails/ceases, and detect when it pauses but doesn't fail, et al.
|
19
|
+
See also more comments below, etc.
|
20
|
+
|
21
|
+
Also sensible cinema has been shown to work with 3rd party "subtitle detection" software, run that against
|
22
|
+
the film, and it works splendidly. There has also been some experimentation with leveraging 3rd party
|
23
|
+
(read: Microsoft) DVD player software/API's/internals in order to effect an appropriate EDL playback,
|
24
|
+
with and without messages being sent back and forth between the two programs.
|
25
|
+
|
26
|
+
We've also experimented with capturing virtual audio (audio out), as well as combining it with
|
27
|
+
virtual camera (desktop screen shot capture), in order to be able to beam out what is playing on the
|
28
|
+
computer to available devices. This also could be made to work for edited content output, ex: netflix instant
|
29
|
+
and since it can select the exact coordinates it needs, it could thus be made to avoid the timestamp
|
30
|
+
signature while still being able to keep it on-screen to OCR while the content edited movie is playing.
|
31
|
+
Also I have experimented slightly with keeping parts of a window "off screen" but still being able to OCR them
|
32
|
+
(windows 7 aero allows this).
|
33
|
+
|
34
|
+
There is also lots of subtitle comparison helpers, etc., and edited movie segment "checking EDL settings"
|
35
|
+
helpers that have been integrated along the way, like a good ol' editing movie software might do.
|
36
|
+
We leverage all sorts of nifty things like bringing windows to the top, internal audio api's, all the
|
37
|
+
good stuff.
|
38
|
+
|
39
|
+
Since we integrate with VLC, we already have edited blu-ray playback implicitly, by playing them back
|
40
|
+
through slysoft hd-dvd.
|
41
|
+
|
42
|
+
Note also that I recently showed demos of how an edited player can jump around/skip to scenes within a movie,
|
43
|
+
not just playback linear "skipping" content.
|
44
|
+
|
45
|
+
We have many timing conversion utility helpers (see source for details).
|
46
|
+
|
47
|
+
Also have ability to auto-generate EDL files based on current DVD et al., and use DVD ID
|
48
|
+
generator software, basically from Microsoft, to auto-recognize inserted DVD's.
|
49
|
+
|
50
|
+
Also note that there was a case recently demoing a new style of skipping: it pauses, then the user
|
51
|
+
basically fast forwards or "skips it forward" themself, thus jumping over the questionable scenes.
|
52
|
+
|
53
|
+
Also note that mine currently allows for "unlimited" levels of detail/categorization of media, it can parse
|
54
|
+
it all, and even use it in a limited manner.
|
55
|
+
|
56
|
+
Note that we can also copy to the clipboard
|
57
|
+
|
1
58
|
== 0.25.2 ==
|
2
59
|
|
3
60
|
It tracks better now if the current OCR tracked player is paused, reverting back to its current timestamp.
|
@@ -17,7 +17,7 @@ Sensible Cinema only accepts raw "unencrypted" movie streams,
|
|
17
17
|
so you're going to have to get the movie file off the DVD somehow first.
|
18
18
|
There are a few options available to you.
|
19
19
|
Some options are described here http://wiki.videolan.org/Rip_DVD#Related
|
20
|
-
(basically, use mplayer, or use both makemkv + tsmuxer).
|
20
|
+
(basically, use mplayer, or use both makemkv + tsmuxer [never makemkv by itself, though, it has wrong timings]).
|
21
21
|
Look for the "title track" setting in the EDL to see which you'll want,
|
22
22
|
usually the longest title.
|
23
23
|
|
@@ -27,4 +27,4 @@ Slysoft AnyDVD might help out somehow, too, though you shouldn't need to.
|
|
27
27
|
|
28
28
|
Report back if you have problems. See README for contact info.
|
29
29
|
|
30
|
-
[1] http://www.archive.org/details/BigBuckBunny
|
30
|
+
[1] http://www.archive.org/details/BigBuckBunny
|
data/lib/edl_parser.rb
CHANGED
@@ -57,16 +57,33 @@ class EdlParser
|
|
57
57
|
raw
|
58
58
|
end
|
59
59
|
|
60
|
-
# converts "blanks" => ["00:00:00", "00", "reason", "01", "01", "02", "02"] into sane arrays, also filters based on category, though disabled
|
60
|
+
# converts "blanks" => ["00:00:00", "00", "reason", "01", "01", "02", "02"] into sane arrays, also filters based on category, though disabled for production
|
61
61
|
def self.convert_to_timestamp_arrays array, ok_categories_array
|
62
62
|
out = []
|
63
63
|
while(single_element = extract_entry!(array))
|
64
|
-
# assume that it
|
64
|
+
# assume that it (could be, at least) start_time, end_time, category, number
|
65
65
|
category = single_element[-2]
|
66
66
|
category_number = single_element[-1]
|
67
|
-
|
68
|
-
|
67
|
+
include = true
|
68
|
+
if ok_categories_array.index([category, category_number])
|
69
|
+
include = false
|
70
|
+
elsif ok_categories_array.index([category])
|
71
|
+
include = false
|
72
|
+
elsif ok_categories_array.detect{|cat, setting| setting.is_a? Fixnum}
|
73
|
+
for cat, setting in ok_categories_array
|
74
|
+
if cat == category && setting.is_a?(Fixnum)
|
75
|
+
# check for a number?
|
76
|
+
if category_number.to_i.to_s == category_number
|
77
|
+
as_number = category_number.to_i
|
78
|
+
if as_number < setting
|
79
|
+
include = false
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
69
85
|
end
|
86
|
+
out << single_element if include
|
70
87
|
end
|
71
88
|
out
|
72
89
|
end
|
data/spec/edl_parser.spec.rb
CHANGED
@@ -76,16 +76,28 @@ describe EdlParser do
|
|
76
76
|
out = <<-EOL
|
77
77
|
"mutes" => [
|
78
78
|
"00:10", "00:15", "test category", "1",
|
79
|
-
"00:20", "00:25", "test category", "2"
|
79
|
+
"00:20", "00:25", "test category", "2",
|
80
|
+
"00:30", "00:35", "test category", "3"
|
80
81
|
]
|
81
82
|
EOL
|
82
83
|
parsed = E.parse_string out, nil
|
83
|
-
parsed["mutes"].length.should ==
|
84
|
+
parsed["mutes"].length.should == 3 # has all of them
|
84
85
|
|
85
86
|
1.upto(2) do |n|
|
86
87
|
parsed = E.parse_string(out, nil, [["test category", n.to_s]] )
|
87
|
-
parsed["mutes"].length.should ==
|
88
|
+
parsed["mutes"].length.should == 2 # excludes one
|
88
89
|
end
|
90
|
+
parsed = E.parse_string(out, nil, [["test category", "1"], ["test category", "2"]] )
|
91
|
+
parsed["mutes"].length.should == 1 # excludes two
|
92
|
+
|
93
|
+
# now with...just saying "this entire category is fine"
|
94
|
+
parsed = E.parse_string(out, nil, [["test category"]])
|
95
|
+
parsed["mutes"].length.should == 0
|
96
|
+
|
97
|
+
# now with...just saying "levels below this are ok"
|
98
|
+
parsed = E.parse_string(out, nil, [["test category", 2]])
|
99
|
+
parsed["mutes"].length.should == 2
|
100
|
+
|
89
101
|
end
|
90
102
|
|
91
103
|
it "should parse mplayer_dvd_splits as floats" do
|
@@ -88,9 +88,11 @@ module SensibleSwing
|
|
88
88
|
end
|
89
89
|
|
90
90
|
before do
|
91
|
-
|
92
|
-
|
93
|
-
|
91
|
+
@subject = MainWindow.new false # false to speedup tests
|
92
|
+
# want lots of buttons :)
|
93
|
+
@subject.setup_advanced_buttons
|
94
|
+
@subject.setup_normal_buttons
|
95
|
+
@subject.add_options_that_use_local_files
|
94
96
|
FileUtils.touch "selected_file.fulli_unedited.tmp.mpg.done" # a few of them need this...
|
95
97
|
FileUtils.touch 'selected_file.avi'
|
96
98
|
@subject.stub!(:choose_dvd_drive_or_file) {
|
@@ -138,6 +140,7 @@ module SensibleSwing
|
|
138
140
|
@subject.stub!(:print) {}
|
139
141
|
@subject.stub!(:p) {}
|
140
142
|
@subject.stub!(:puts) {}
|
143
|
+
EdlParser.stub!(:p) {}
|
141
144
|
end
|
142
145
|
|
143
146
|
@subject.stub(:show_non_blocking_message_dialog) {
|
@@ -552,10 +555,8 @@ module SensibleSwing
|
|
552
555
|
end
|
553
556
|
|
554
557
|
it "should be able to upconvert at all" do
|
555
|
-
|
556
|
-
@subject
|
557
|
-
ARGV.pop
|
558
|
-
click_button(:@show_upconvert_options) # reveal buttons...
|
558
|
+
@subject = MainWindow.new false
|
559
|
+
@subject.add_setup_upconvert_buttons
|
559
560
|
@subject.stub(:display_current_upconvert_setting) {} # no popup ;)
|
560
561
|
@subject.stub(:show_mplayer_instructions_once) {}
|
561
562
|
click_button(:@medium_dvd)
|
data/todo.inventionzy.txt
CHANGED
@@ -1,11 +1,13 @@
|
|
1
1
|
=== patentzy yes actually do vaguely ordered ===
|
2
|
-
make it suck in large list of EDL's from imdb at build time
|
3
2
|
blu-ray OCR
|
4
3
|
more blu-ray stuff: can ID them, can playback (through...mkv? VLC? powerdvd OCr/scripted?)
|
5
4
|
some blu-ray player descriptor somehow
|
5
|
+
can move the mouse 10 pixels down at the beginning, in order to...put it in the right place.
|
6
6
|
|
7
|
-
can
|
7
|
+
can "suck in" a large list of EDL's from imdb at build time, and/or from a wiki (github wiki in this case), and a "resync" button?
|
8
|
+
can handle multiple dvdid's et al (same EDL) (mostly do already though)
|
8
9
|
can overlay over online films too
|
10
|
+
it can pull in a DVD based just on the dvd-id "query id, not local? go get it from online"
|
9
11
|
control VLC RC to overlay a logo dynamically
|
10
12
|
can control volume *and* play other audio
|
11
13
|
can add to to supplement EDL + EDL timestamps
|
@@ -15,7 +17,6 @@
|
|
15
17
|
make it so it can suck in from "another wiki" the DL's, at package time, somehow (just one)
|
16
18
|
or even just suck in any web file, for starters
|
17
19
|
space -> advance from pause until next edit item?
|
18
|
-
add fine grained "new ratings" to some demo EDL
|
19
20
|
amazon player descriptor, just in case ;P
|
20
21
|
can jerk mouse only every so often (cheap would be to just arbitrarily have it from x to y, demo that)
|
21
22
|
can scan several player descriptors to "pick the right one" (kind of already showed this one)
|
@@ -27,24 +28,26 @@
|
|
27
28
|
beep at them/warn when not tracking [?]
|
28
29
|
default on...I think.
|
29
30
|
can jerk mouse more often closer to failure sections...
|
31
|
+
and/or resize the playing/streaming window to match it when the mouse "has been moved recently" +- by us, or not.
|
30
32
|
can pull one from imdb at all, video "show it creates a file"
|
31
|
-
C player: minimize instead of skip :P
|
32
|
-
|
33
|
-
|
33
|
+
C DVD player: minimize instead of skip :P
|
34
|
+
don't mute, just almost mute LOL or almost mute and static-ify
|
35
|
+
or combine the two
|
36
|
+
can suck it in "in realtime" from online, and parse it +- from a user editable wiki
|
34
37
|
a UI to select categories, works
|
35
38
|
edited blu ray movie playback screencast, as that's apparently not in the patent...
|
36
39
|
don't use timecodes, use "% of the movie" and "total length" perhaps?
|
37
|
-
look at their patents for other ideas? [
|
38
|
-
just pause it, tell them how far to fast forward at that point :P
|
40
|
+
look at their patents for other ideas? [+- nissim patents?]
|
41
|
+
just pause it, tell them how far to fast forward at that point :P [somewhat already done]
|
42
|
+
|
39
43
|
have the user forced to tell me what each digit is, themselves :P
|
40
44
|
the online edl stuff itself (its todo list)
|
41
45
|
javascript API
|
42
46
|
phase 2: I can accomodate for pauses, too.
|
43
47
|
phase 3: I can re-train based on events of stoppage
|
44
|
-
phase 4: I can constantly poll and react
|
48
|
+
phase 4: I can constantly poll and react appropriately to current timestamp
|
45
49
|
post video demo of it streaming to a console device
|
46
|
-
|
47
|
-
maybe could just "play from x to y" [no exclude info?]
|
50
|
+
maybe could just "play from x to y" [no exclude info?] instead of "here are the bad parts"
|
48
51
|
stage one: query, auto-download when they hit a netflix movie of some type
|
49
|
-
stage two: chrome plugin for the same :)
|
50
|
-
can insert deleted scenes et al [even external scenes :P] (already showed it)
|
52
|
+
stage two: chrome plugin for the same, auto-detect, auto-user, auto-download, auto-watch edited :)
|
53
|
+
can insert deleted scenes et al [even external scenes :P] (already showed it somewhat)
|
data/todo.upconvert
CHANGED
@@ -15,32 +15,24 @@ do I need double tapping? http://archive2.avsforum.com/avs-vb/showthread.php?s=&
|
|
15
15
|
|
16
16
|
=== netflix/OS screen capture ===
|
17
17
|
|
18
|
-
make it able to grab from a window, and work when dragged too...
|
19
18
|
can I make it look awesome?
|
19
|
+
pushdesktop\TODO high prio
|
20
20
|
|
21
21
|
==== some day ====
|
22
|
-
|
23
|
-
perfect looks of absolutely everything upconverted LOL
|
22
|
+
perfect the looks of absolutely everything upconverted LOL
|
24
23
|
# TODO cut off all black edges too...why not, eh? mplayer has crop detect...
|
25
24
|
make really low q stuff like youtube less than even 360 look good
|
26
|
-
#
|
27
|
-
better benchmarker (windows vs. desktop, just show reverse)
|
28
|
-
the "drag to select window" seter-zy-upperzy
|
25
|
+
# can align better youtube
|
29
26
|
|
30
27
|
is ffplay on avisynth piece of crud compared to the other? vs. mplayer? why only like 10 fps? what the...
|
31
28
|
|
32
|
-
== OS dshow screen tracker ==
|
33
|
-
|
34
|
-
see its TODO, things I actually want to do add here.
|
35
|
-
|
36
29
|
=== some day ===
|
37
|
-
|
38
|
-
can I live with aero wasn't bitblt getting like 800fps *with* aero?
|
30
|
+
bounty multi-thread scaling, iff it seems helpful-er for quad core.
|
39
31
|
|
40
32
|
== never ==
|
41
33
|
|
42
34
|
add another sharpen filter?
|
43
35
|
|
44
|
-
|
36
|
+
create a VLC version?
|
45
37
|
|
46
|
-
|
38
|
+
propaganda: http://ubuntuforums.org/showthread.php?t=804537
|
data/upconvert.bat
CHANGED
Binary file
|
data/zamples/edit_decision_lists/dvds/{edls_being_edited/court_jester.txt → court_jester.txt}
RENAMED
@@ -16,8 +16,8 @@
|
|
16
16
|
"blank_outs" => [
|
17
17
|
# an example line, uncomment the leading "#" to make it active
|
18
18
|
# "00:03:00.0" , "00:04:00.0", "violence", "of some sort",
|
19
|
-
|
20
|
-
|
19
|
+
"758", "852", "kissing scene",
|
20
|
+
"4130", "4237", "pretending to kiss the king",
|
21
21
|
],
|
22
22
|
|
23
23
|
"volume_name" => "JESTER",
|
@@ -0,0 +1,40 @@
|
|
1
|
+
"name" => "cars disney",
|
2
|
+
|
3
|
+
"mutes" => [
|
4
|
+
|
5
|
+
"0:51:00.310" , "0:51:02.312", "profanity", "lo..", "Oh [lo..]",
|
6
|
+
"0:52:41.745" , "0:52:44.289", "profanity", "he..", "'Cause even in hillbilly [he..] we have standards",
|
7
|
+
"00:40:14.957", "00:40:18.126", "profanity", "he..", "I'm in hillbilly [he..]! My IQ's dropping by the second!",
|
8
|
+
|
9
|
+
"0:07:26.363" , "0:07:28.448", "profanity", "idiot", "You need tires you [idiot]",
|
10
|
+
"0:14:57.105" , "0:14:59.274", "profanity", "piss", "That race was a [piss]er You were booking",
|
11
|
+
"0:23:25.991" , "0:23:30.619", "profanity", "moron", "fer dang sake, Turn on your lights you [moron]",
|
12
|
+
"0:35:29.546" , "0:35:33.509", "profanity", "dumb", "Boy we ain't as [dumb] as you think we are",
|
13
|
+
"0:36:00.202" , "0:36:03.038", "profanity", "sex", "I want to get a look at that [sex]y hot rod",
|
14
|
+
"0:49:56.914" , "0:50:00.334", "profanity", "idiot", "Crazy grandpa car What an [idiot]",
|
15
|
+
"0:55:21.321" , "0:55:24.449", "profanity", "dumb", "I swear tractors is so [dumb]",
|
16
|
+
"01:55:37.104" , "01:55:41.775", "profanity", "lo..", "for the love of [deity]",
|
17
|
+
|
18
|
+
"00:30:06.849" , "00:30:10.185", "profanity", "May [deity] have mercy on your soul",
|
19
|
+
"01:28:01.615", "01:28:06.119", "profanity", "Thank the manufacturer",
|
20
|
+
"00:31:42.319", "00:31:46.406", "profanity", "innuendo", "Nah, I'm just kiddin'. She just likes me fer muh body.",
|
21
|
+
"52:52", "52:57", "profanity", "innuendo", "not with me but with me",
|
22
|
+
# 28:30 mumble [?]
|
23
|
+
],
|
24
|
+
|
25
|
+
# sister DVD: CRZ0NNF1 track 21 "disk_unique_id" => "aa06ad1c|e1e62ad0"
|
26
|
+
|
27
|
+
"blank_outs" => [
|
28
|
+
"39:22", "39:29", "lewd", "look honey, von dutch",
|
29
|
+
# an example line, uncomment the leading "#" to make it active
|
30
|
+
# "00:03:00.0" , "00:04:00.0", "violence", "of some sort",
|
31
|
+
],
|
32
|
+
|
33
|
+
"volume_name" => "CRZ0NNW7 ",
|
34
|
+
"disk_unique_id" => "f5751899|2862d307",
|
35
|
+
"dvd_title_track" => "23",
|
36
|
+
"dvd_title_track_length" => "6985.700",
|
37
|
+
# "opensubtitles_number" => "4022054",
|
38
|
+
# "not edited out stuff" => "some violence left in...",
|
39
|
+
# "closing thoughts" => "only did the...",
|
40
|
+
"mplayer_dvd_splits" => ["3767.35", " 6490.35"],
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: sensible-cinema
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.25.
|
5
|
+
version: 0.25.3
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Roger Pack
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-08-
|
13
|
+
date: 2011-08-18 00:00:00 -06:00
|
14
14
|
default_executable:
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
@@ -69,7 +69,7 @@ dependencies:
|
|
69
69
|
type: :runtime
|
70
70
|
version_requirements: *id005
|
71
71
|
- !ruby/object:Gem::Dependency
|
72
|
-
name: rautomation
|
72
|
+
name: rdp-rautomation
|
73
73
|
prerelease: false
|
74
74
|
requirement: &id006 !ruby/object:Gem::Requirement
|
75
75
|
none: false
|
@@ -363,7 +363,8 @@ files:
|
|
363
363
|
- zamples/edit_decision_lists/dvds/bob the builder pets in a pickle.txt
|
364
364
|
- zamples/edit_decision_lists/dvds/bobs_big_plan.txt
|
365
365
|
- zamples/edit_decision_lists/dvds/cool runnings.txt
|
366
|
-
- zamples/edit_decision_lists/dvds/
|
366
|
+
- zamples/edit_decision_lists/dvds/court_jester.txt
|
367
|
+
- zamples/edit_decision_lists/dvds/edls_being_edited/cars_disney.txt
|
367
368
|
- zamples/edit_decision_lists/dvds/edls_being_edited/test_delete_list_for_experimenting_with.txt
|
368
369
|
- zamples/edit_decision_lists/dvds/flight_of_the_navigator.txt
|
369
370
|
- zamples/edit_decision_lists/dvds/happiest baby on the block.txt
|