sensible-cinema 0.19.7 → 0.20.0
Sign up to get free protection for your applications and to get access to all the features.
- data/ChangeLog +4 -0
- data/TODO +63 -90
- data/VERSION +1 -1
- data/bin/sensible-cinema +50 -19
- data/how_to_create.txt +2 -1
- data/lib/mencoder_wrapper.rb +1 -1
- data/sensible-cinema.gemspec +2 -2
- data/spec/notes +6 -0
- data/spec/sensible_cinema_gui.spec.rb +17 -9
- data/zamples/edit_decision_lists/dvds/COOL_RUNNINGS.txt +34 -27
- metadata +4 -4
data/ChangeLog
CHANGED
data/TODO
CHANGED
@@ -2,22 +2,27 @@
|
|
2
2
|
|
3
3
|
== up next release ==
|
4
4
|
|
5
|
-
edl straight
|
6
|
-
|
7
|
-
clear runnings
|
5
|
+
edl straight DVD replay: work HP
|
6
|
+
work cars
|
7
|
+
clear runnings
|
8
8
|
have ben and chris test it out
|
9
9
|
|
10
10
|
== slightly lower than that, somewhat ordered ==
|
11
11
|
|
12
|
+
the 0.5 offset only is applying to mutes currently [fix]
|
13
|
+
also note that the beginning offset is wrong-o [?]
|
14
|
+
"watch edited while grabbing"
|
15
|
+
don't exit program if they don't select a disk :)
|
16
|
+
if they type in a "new" start time, use that as the default end time input
|
12
17
|
linearize edl's
|
13
18
|
don't use them linear, just linearize
|
14
19
|
mpeg is lossy (at least my current one pass conversion still is...) and smplayer can't play it right unedited
|
15
20
|
frame accurate splitter naive
|
16
|
-
more
|
21
|
+
more DL's
|
17
22
|
my dvd's (loose timestamps...)
|
18
23
|
cars backport real EDL :)
|
19
24
|
enlist chris' help
|
20
|
-
need mac port [?]
|
25
|
+
first need mac port [?]
|
21
26
|
friend dvd's, me DL
|
22
27
|
partner for filters (Jon, Karlie if interested...give beta)
|
23
28
|
all only after linearize, new year, frame accurate
|
@@ -37,16 +42,22 @@
|
|
37
42
|
blogs that have ever mentioned clearplay :P
|
38
43
|
free google adwords (?)
|
39
44
|
advertise urug, ruby flow :)
|
40
|
-
only after new year
|
41
|
-
|
45
|
+
only after new year, new LLC
|
46
|
+
use DVD navigator ?
|
47
|
+
http://msdn.microsoft.com/en-us/library/dd388584(v=VS.85).aspx
|
48
|
+
with an avi file sink?
|
42
49
|
|
43
50
|
== DVD backlog (unordered, some very low prio, basically all never do) ==
|
44
51
|
|
52
|
+
@mplayer: why you can't play it when VLC can? huh? (audio sync)
|
53
|
+
can watch conference like a music video :)
|
54
|
+
can play "this section then that, with this one's audio
|
55
|
+
add they 'play from unedited from grab till it hits the first bad spot', if useful [?]
|
45
56
|
@smplayer: unable to seek in cars (once I figure out if this is specific to a particular DVD)
|
46
|
-
|
57
|
+
@mplayer: edl disworks after a certain timestamp (after...)
|
47
58
|
disallow:
|
48
|
-
"0:45:00.0" , "00:450:10.0", # second 2700
|
49
|
-
issues
|
59
|
+
"0:45:00.0" , "00:450:10.0", # second 2700
|
60
|
+
all github issues
|
50
61
|
a website that gives you a "wholesome meter"
|
51
62
|
md5 and verify the fulli version... [?]
|
52
63
|
only useful once I get the frame accurate stuff done, and any audio tweakage, etc.
|
@@ -55,7 +66,7 @@
|
|
55
66
|
can I combine commands onto one command line for a quicker anything?
|
56
67
|
can I get the original audio tracks back?
|
57
68
|
show them how to use smplayer with subtitles
|
58
|
-
can overlay with an image
|
69
|
+
can overlay with an image (DVD edited file)
|
59
70
|
can you forceidx on the original copy and have mplayer replay EDL in realtime accurately or not, with audio?
|
60
71
|
if not somehow, wait till video falls through, then see if I can...do something here with audio...yipers..
|
61
72
|
sound accurate?
|
@@ -63,33 +74,26 @@
|
|
63
74
|
calculating disk's unique id... -> gui somewhere
|
64
75
|
@dvd flick: auto-detect the aspect ratio, if possible (?)
|
65
76
|
ffmpeg handle 3F2R audio [sigh] [cars, should work with temple at lavc, too, bob dvd's are dual, I think...hmm...]
|
66
|
-
|
67
|
-
|
68
|
-
dvdnav versus dvd for mplayer edl?
|
77
|
+
an 'always blank not skip the mutes' option for paranoia
|
78
|
+
dvdnav versus dvd for mplayer edl? (report)
|
69
79
|
disallow choosing empty drive? fail more gracefully? (issue 11)
|
70
|
-
some status bar that shows which DVD is in currently, how many match it, et al (pre button)
|
71
|
-
splitter abs. coords option
|
72
80
|
video on how to use imdb
|
73
81
|
if times match DVD players
|
74
|
-
alternate endings
|
75
|
-
@ffmpeg there's no audio when going mpg -> mpg with copy!
|
82
|
+
alternate endings et al
|
76
83
|
@mplayer you *die* with edl's on many DVD's... ex: on bunny one
|
77
84
|
vendor\cache\mencoder\mplayer dvdnav://2 -nocache -edl C:\Users\packrd\AppData\Local\Temp\mplayer.temp.edl -dvd-device f:\
|
78
85
|
with "preview segment" can't you preview it once it has passed that segment?
|
79
86
|
can pull from imdb at package time [?]
|
80
|
-
delete fulli file
|
87
|
+
delete fulli file automatically
|
81
88
|
except if it's a specific scene run...
|
82
|
-
mencoder harddup useful?
|
83
89
|
.exe installer
|
84
90
|
just unzips, runs the .bat file for them [?] :)
|
85
91
|
full msi
|
86
92
|
ask if you can somehow more easily grab to "mostly the same" exact codec (ffmpeg, mencoder mailing lists)
|
87
|
-
split EDL's somehow into their own project/LLC...
|
93
|
+
split EDL's themselves somehow into their own project/LLC...
|
88
94
|
add md5 "warning" when something (anything) had failed disc fails doesn't match because of read failure...
|
89
95
|
not loop on preview view (smplayer)
|
90
|
-
LLC before ever pay anyone, if I ever do
|
91
|
-
@DVD flick: support multi-track audio/subtitles (if they're already in the streams...)
|
92
|
-
note the mplayer/smplayer as a player fast forward feature...
|
96
|
+
LLC before ever pay anyone anything, if I ever do
|
93
97
|
several "play now" options...without a navigator of course :)
|
94
98
|
visualbasic-like playlist
|
95
99
|
one line at a time :P
|
@@ -108,97 +112,65 @@
|
|
108
112
|
maybe one that is watching the extraction (get info, get info, get info...)...as it includes scene x, it adds it edited to the end of the final output file...
|
109
113
|
This seems like the only real way.
|
110
114
|
one that's "we're ripping, but play from that via EDL or playlist"
|
111
|
-
whichr: return nil
|
112
115
|
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
add an option "just save full disk (unedited) to hard drive..."
|
119
|
-
note to people: can edit those to your liking
|
120
|
-
|
116
|
+
using+burning screencast
|
117
|
+
editing screencast
|
118
|
+
instructions on how to do their own (private) DL or do one and submit it (public), or email their friends :P
|
119
|
+
add an option "just save full disk (unedited) to hard drive..."
|
120
|
+
note to people: can edit these to your liking, resubmit
|
121
121
|
imagemagick (ffmpeg) easier install...
|
122
122
|
DRY up dependency installation code
|
123
|
-
install dep's to cache2 or something...so I can
|
123
|
+
install dep's to cache2 or something...so I can avoid redownload after a release...
|
124
124
|
"Re-run most recent" disabled when there isn't one [?]
|
125
|
-
re-do DVD EDL's that need it :P
|
126
125
|
warn when labels exist and don't match...
|
127
|
-
check all the many options to see if there's a "cross platform way to split files accurately" besides my hacky kludge.
|
128
126
|
can rip from a DVD-like local folder (would anybody ever need this?)
|
129
|
-
|
130
|
-
plus I do some copy, some ac3 audio codec? huh? avoidable?
|
131
|
-
@dvd flick do you need that frequent of i-frames?
|
132
|
-
rename bat as template.bat
|
133
|
-
add a developer readme
|
127
|
+
rename bats as template.bats
|
134
128
|
can parse IMDB (require they put in the URL by hand fer now)
|
135
129
|
add stuffs to imdb hmmm
|
136
130
|
IMDB easy mapping
|
137
131
|
can blank out the video, with audio continuing through...
|
138
|
-
|
139
|
-
|
140
|
-
@VLC: hard crash when ripping that one DVD...long one, about the constitution...
|
141
|
-
in general, fine tune burning with various things...
|
142
|
-
|
143
|
-
@rspec: it appears to *undo* my stub's after the test, so background threads choke (take out after...)
|
144
|
-
|
145
|
-
make sure can work with very large DVD's...
|
146
|
-
can use a fast temp drive, save through it to another :P
|
147
|
-
(when they have two...)
|
148
|
-
can have collaborators re-selling EDL's
|
149
|
-
good license for their stuff like "public domain" or what not :P Can't be a hypocrite now, can I?
|
150
|
-
a real website that looks good
|
151
|
-
k9 might preserve/shrink well...hmm...auto calculation may be possible...hmm...
|
152
|
-
better .exe icon...
|
153
|
-
blu-ray support somehow (real-time? rip?)
|
154
|
-
use DVD navigator ?
|
155
|
-
http://msdn.microsoft.com/en-us/library/dd388584(v=VS.85).aspx
|
156
|
-
with an avi file sink?
|
157
|
-
double buffering hard drive/incoming copying from DVD might speed things, if your HD is fast.
|
158
|
-
might not work for all modes tho...
|
159
|
-
make the progress bar map "better" to the actual time that each section should take...
|
160
|
-
|
161
|
-
Note to people: clean your disks!
|
162
|
-
in an exception
|
163
|
-
|
164
|
-
@mencoder: cannot rip from dvd with -ovc copy -oac copy (tearing)
|
132
|
+
@VLC: hard crash when ripping that one DVD...long one, about the constitution...
|
133
|
+
in general, fine tune burning with various things...
|
165
134
|
|
166
|
-
|
167
|
-
|
135
|
+
can use a fast temp drive, save through it to another :P
|
136
|
+
(when they have two...)
|
137
|
+
better .exe icon...
|
138
|
+
blu-ray support somehow (real-time? rip?)
|
139
|
+
double buffering hard drive/incoming copying from DVD might speed things, if your HD is fast.
|
140
|
+
might not work for all modes tho...
|
141
|
+
make the progress bar map "better" to the actual time that each section should take...
|
142
|
+
|
143
|
+
@mencoder: cannot rip from dvd with -ovc copy -oac copy (tearing)
|
144
|
+
|
145
|
+
@ffmpeg: rip to fulli mpeg -> ffmpeg -ovc copy -oac copy out.mpg -> no audio!
|
146
|
+
and to .avi sometimes works, sometimes it results in static!
|
168
147
|
|
169
148
|
burnable to DVD/CD/multi DVD automagically... (auto-burn insert your new disk!)
|
170
149
|
can *re-use* original navigation stuffs, less the profanity (is that possible? VobBlanker help, perhaps?)
|
171
150
|
can lop off sections to save space (?)
|
172
151
|
can burn extras from the DVD, too?
|
173
152
|
optionally ?
|
174
|
-
transcode to condense..?
|
175
|
-
split to allow?
|
176
|
-
try to compile transcode in cygwin (yipes)
|
177
153
|
|
178
154
|
@smplayer: right click on DVD...
|
179
155
|
the ac3 thing (I have to specify it...is this necessary? is it always ac3?)
|
180
|
-
can have different volume settings
|
156
|
+
can have different volume settings, like low volume instead of 0 [?]
|
181
157
|
ask VLC "fuzzy menus on the happiest baby dvd expected?"
|
182
|
-
right click on DVD player, rip edited with SC?
|
183
|
-
@mplayer and VLC "you should seek better, like the ogg vorbis fellas recommend..."
|
184
158
|
report to jruby "when one thread dies, the GUI becomes unresponsive" (and others already previously reported to ruby-forum.com...)
|
185
159
|
DVD's (right click on DVD player, play with SC?)
|
186
|
-
use spiffy differentiation for DVD's on windows
|
187
160
|
a "certified clean" list
|
188
161
|
advertise my "splitting joining" google doc page. also test the various options there for accurateness :)
|
189
|
-
check for "newer version available" or not...
|
162
|
+
a check for "newer version available" or not...
|
190
163
|
buy blu-ray decrypter, and drive, try it out.
|
164
|
+
a single netflix descriptor, just in case
|
191
165
|
|
192
166
|
== random non-DVD backlog ... note: just plow forward, to "grab" available ideas...except that for now, just what *I* plan on needing for myself (filters for what I need/want). ==
|
193
|
-
|
194
|
-
copy to one drive, write to another, for speedup
|
167
|
+
|
195
168
|
fade in/fade out volume, video
|
196
169
|
make the other stuff work again, since I no longer use YAML...
|
197
170
|
|
198
|
-
pass unit tests again jruby
|
171
|
+
pass all unit tests again jruby
|
199
172
|
|
200
173
|
speed up slow unit tests
|
201
|
-
can "watch as it is being ripped" (concat, watching it as it grows faster than you watch...)
|
202
174
|
make the overlay window uncloseable (?)
|
203
175
|
note that youtube can be downloaded then a local edited copy created, from that download. (mb add downloading ability?)
|
204
176
|
screencast of things helpful (use, creation...).
|
@@ -206,7 +178,7 @@ tune up the levels...
|
|
206
178
|
prototypes of the experimental stuff (overlay, track time while recording -> map file, specifiable levels, more?)
|
207
179
|
|
208
180
|
fix:
|
209
|
-
0:01:01.9 next will be at 0:01:02.0s (r [or q to quit]):
|
181
|
+
0:01:01.9 next will be at 0:01:02.0s (r [or q to quit]):
|
210
182
|
0:01:04.0 next will be at 0:01:06.5s (blanked) (r [or q to quit]): "warning--unable to track screen time for some reason" # *of course you can't track it now!*
|
211
183
|
|
212
184
|
byu.tv descriptor
|
@@ -345,12 +317,12 @@ OCR the captioning as an auto profanity filter? (or perhaps download subtitles t
|
|
345
317
|
|
346
318
|
--server? optionally higher prio?
|
347
319
|
|
348
|
-
irb(main):001:0> a = File.open('big1', 'w')
|
349
|
-
=> #<File:big1>
|
350
|
-
irb(main):002:0> a.seek 10_000_000_000
|
351
|
-
=> 0
|
352
|
-
irb(main):003:0> a.write 'b'
|
353
|
-
=> 1
|
320
|
+
irb(main):001:0> a = File.open('big1', 'w')
|
321
|
+
=> #<File:big1>
|
322
|
+
irb(main):002:0> a.seek 10_000_000_000
|
323
|
+
=> 0
|
324
|
+
irb(main):003:0> a.write 'b'
|
325
|
+
=> 1
|
354
326
|
irb(main):004:0> a.close # freeze mri 1.9.2
|
355
327
|
=======
|
356
328
|
take out all require 'rubygems'ses...
|
@@ -372,4 +344,5 @@ donate money to several projects I use/like :)
|
|
372
344
|
|
373
345
|
@mencoder: ripping like this results in an (avidemux, VLC) fourcc of 'ugh': mencoder2 dvdnav://1 -oac copy -ovc copy -o D:\raw_rip_mpeg_example.avi -endpos 20 -dvd-device E:\
|
374
346
|
|
375
|
-
@jruby: system("mencoder") from a button doesn't get interrupted by an exception [!]
|
347
|
+
@jruby: system("mencoder") from a button doesn't get interrupted by an exception [!]
|
348
|
+
@vlc: replay mp4's are too dark.
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.20.0
|
data/bin/sensible-cinema
CHANGED
@@ -109,21 +109,7 @@ module SensibleSwing
|
|
109
109
|
|
110
110
|
@mplayer_edl = new_jbutton( "Watch DVD on computer edited realtime (not always be accurate)", false )
|
111
111
|
@mplayer_edl.on_clicked {
|
112
|
-
|
113
|
-
descriptors = EdlParser.parse_file edl_path
|
114
|
-
temp_dir = Dir.tmpdir
|
115
|
-
temp_file = temp_dir + '/mplayer.temp.edl'
|
116
|
-
edl_contents = MplayerEdl.convert_to_edl descriptors, 1.75 # add a sec to mutes to accomodate for mplayer's oddness...
|
117
|
-
File.write(temp_file, edl_contents)
|
118
|
-
title_track = get_title_track(descriptors)
|
119
|
-
# oh the insanity of the console UI...LODO more user friendly player
|
120
|
-
@popup ||= NonBlockingDialog.new("Running mplayer. To control it, use space for pause.\n
|
121
|
-
Also right and left arrows to seek, F key for full screen,
|
122
|
-
q to quit.")
|
123
|
-
# LODO dry up mplayer dvd opts...
|
124
|
-
command = "mplayer dvd://#{title_track} -nocache -alang en -sid 1000 -edl #{File.expand_path temp_file} -dvd-device #{drive}"
|
125
|
-
p command
|
126
|
-
Thread.new { system_blocking command; @popup.dispose }
|
112
|
+
do_mplayer_edl nil, 0, 0.5
|
127
113
|
}
|
128
114
|
|
129
115
|
@watch_unedited = new_jbutton("Watch a DVD unedited (while grabbing to hard drive)", true)
|
@@ -146,7 +132,31 @@ module SensibleSwing
|
|
146
132
|
|
147
133
|
@rerun_preview = new_jbutton( "Re-run most recently watched preview time frame", true )
|
148
134
|
@rerun_preview.on_clicked {
|
149
|
-
repeat_last_copy_dvd_to_hard_drive
|
135
|
+
repeat_last_copy_dvd_to_hard_drive
|
136
|
+
}
|
137
|
+
|
138
|
+
@fast_preview = new_jbutton( "preview section fast mode", true).on_clicked {
|
139
|
+
success, wrote_to_here_fulli = do_copy_dvd_to_hard_drive false, true
|
140
|
+
sleep 0.5 # lodo take out ???
|
141
|
+
background_thread.join if background_thread # let it write out the original fulli, if necessary [?]
|
142
|
+
nice_file = wrote_to_here_fulli + ".fast.mpg"
|
143
|
+
if !File.exist?(nice_file)
|
144
|
+
p = NonBlockingDialog.new("Creating quick lookup file--NB that for each changed deletion, you'll need to restart the fast preview SMplayer")
|
145
|
+
raise 'create failed' unless system_blocking("ffmpeg -i #{wrote_to_here_fulli} -target ntsc-dvd #{nice_file}")
|
146
|
+
p.dispose # it will be there for sure
|
147
|
+
end
|
148
|
+
smplayer_prefs_file = File.expand_path("~/.smplayer/smplayer.ini")
|
149
|
+
old_prefs = File.read(smplayer_prefs_file)
|
150
|
+
new_prefs = old_prefs.gsub(/mplayer_additional_options=.*/, "mplayer_additional_options=-edl #{EdlTempFile}")
|
151
|
+
File.write(smplayer_prefs_file, new_prefs)
|
152
|
+
thread = do_mplayer_edl( "smplayer #{nice_file}", 0, 0.5)
|
153
|
+
Thread.new { # XX do we need this?
|
154
|
+
begin
|
155
|
+
thread.join
|
156
|
+
ensure
|
157
|
+
File.write(smplayer_prefs_file, old_prefs)
|
158
|
+
end
|
159
|
+
}
|
150
160
|
}
|
151
161
|
|
152
162
|
@open_list = new_jbutton("Open/Edit a Delete List", true)
|
@@ -227,6 +237,25 @@ EOL
|
|
227
237
|
writeOut.close
|
228
238
|
end
|
229
239
|
|
240
|
+
EdlTempFile = Dir.tmpdir + '/mplayer.temp.edl'
|
241
|
+
|
242
|
+
def do_mplayer_edl play_this_start, add_secs_end, add_secs_beginning
|
243
|
+
drive, dvd_volume_name, md5sum, edl_path, descriptors = choose_dvd_and_edl_for_it
|
244
|
+
descriptors = EdlParser.parse_file edl_path
|
245
|
+
edl_contents = MplayerEdl.convert_to_edl descriptors, add_secs_end, add_secs_beginning # add a sec to mutes to accomodate for mplayer's oddness...
|
246
|
+
File.write(EdlTempFile, edl_contents)
|
247
|
+
title_track = get_title_track(descriptors)
|
248
|
+
# oh the insanity of the console UI...LODO more user friendly player
|
249
|
+
@popup ||= NonBlockingDialog.new("Running mplayer. To control it, use space for pause.\n
|
250
|
+
Also right and left arrows to seek, F key for full screen, [, ] to control playback speed.
|
251
|
+
q to quit.")
|
252
|
+
# LODO dry up mplayer dvd opts...
|
253
|
+
play_this_start ||= "mplayer dvd://#{title_track}"
|
254
|
+
command = "#{play_this_start} -nocache -alang en -sid 1000 -edl #{File.expand_path EdlTempFile} -dvd-device #{drive}"
|
255
|
+
p command
|
256
|
+
Thread.new { system_blocking command; @popup.dispose }
|
257
|
+
end
|
258
|
+
|
230
259
|
def show_blocking_license_accept_dialog program, license_name, license_url_should_also_be_embedded_by_you_in_message, title = 'Confirm Acceptance of License Agreement', message = nil
|
231
260
|
puts 'Please confirm license agreement in open window'
|
232
261
|
old = ['no', 'yes', 'ok'].map{|name| 'OptionPane.' + name + 'ButtonText'}.map{|name| [name, UIManager.get(name)]}
|
@@ -345,7 +374,7 @@ EOL
|
|
345
374
|
end
|
346
375
|
|
347
376
|
def get_freespace path
|
348
|
-
JFile.new(path).get_usable_space
|
377
|
+
JFile.new(File.dirname(path)).get_usable_space
|
349
378
|
end
|
350
379
|
|
351
380
|
def choose_dvd_and_edl_for_it
|
@@ -393,8 +422,10 @@ EOL
|
|
393
422
|
a = File.open(File.dirname(save_to) + "/test_file_to_see_if_we_have_permission_to_write_to_this_folder", "w")
|
394
423
|
a.close
|
395
424
|
File.delete a.path
|
396
|
-
|
397
|
-
|
425
|
+
freespace = get_freespace(save_to)
|
426
|
+
if freespace < 16_000_000_000
|
427
|
+
show_blocking_message_dialog("Warning: there may not be enough space on the disk for #{save_to}
|
428
|
+
(depending on DVD size, you may need like 16G free, but typically will need around 10GB free--you only have #{freespace/1_000_000_000}GB free). Click OK to continue.")
|
398
429
|
end
|
399
430
|
save_to
|
400
431
|
end
|
data/how_to_create.txt
CHANGED
@@ -35,6 +35,7 @@ A few pointers:
|
|
35
35
|
I typically like to make two delete lists per DVD. One that takes out swearing, sex, and gruesome violence, and another
|
36
36
|
"more paranoid" version that takes out basically anything that could be offensive to anybody :) ("dang", "fetch", "too tense" of scenes...)
|
37
37
|
You can just watch the DVD (using any DVD player), and get timestamps that way, before starting this.
|
38
|
-
A good one is "smplayer" (the [ and ] keys control playback speed
|
38
|
+
A good one is "smplayer" (the [ and ] keys control playback speed, right and left, page up and page down control seeking),
|
39
|
+
and you can turn on subtitles to help locae profanity (as also in VLC).
|
39
40
|
You can watch the DVD using VLC Player, which has a "fast forward" button, just recognize that VLC's timestamps are always slightly off,
|
40
41
|
so they'll only be approximate, but it might be close.
|
data/lib/mencoder_wrapper.rb
CHANGED
@@ -88,7 +88,7 @@ class MencoderWrapper
|
|
88
88
|
end
|
89
89
|
|
90
90
|
def get_section start, endy, should_mute, to_here_final_file
|
91
|
-
raise if start == endy # should never actually happen...
|
91
|
+
raise 'start == end' if start == endy # should never actually happen...
|
92
92
|
# delete 0.001 as per wiki's suggestion.
|
93
93
|
endy = endy - start - 0.001
|
94
94
|
# very decreased volume is like muting :)
|
data/sensible-cinema.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{sensible-cinema}
|
8
|
-
s.version = "0.
|
8
|
+
s.version = "0.20.0"
|
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"]
|
12
|
-
s.date = %q{
|
12
|
+
s.date = %q{2011-01-03}
|
13
13
|
s.email = %q{rogerdpack@gmail.com}
|
14
14
|
s.executables = ["sensible-cinema", "sensible-cinema-cli"]
|
15
15
|
s.extensions = ["ext/mkrf_conf.rb"]
|
data/spec/notes
CHANGED
@@ -1,3 +1,9 @@
|
|
1
|
+
$ to fix mplayer out of sync audio:
|
2
|
+
$ ffmpeg -i HP_AND_THE_CHAMBER_OF_SECRETS_edited_version.fulli_unedited.tmp.mpg -target ntsc-dvd -t 1600 yo.mpg
|
3
|
+
seemed to be as good as adding a harddup via mplayer. except...umm...VLC can play it right so why can't mplayer? Hopefully all doesn't matter [?]
|
4
|
+
|
5
|
+
ffmpeg "copy copy" on HP fulli seemed to not have audio when that was replayed via mplayer.
|
6
|
+
|
1
7
|
monsters inc. overlaps at 25 minutes, 50'ish, 70, "when they land" and there's like 30 'select scenes' (chapters) in that time frame...
|
2
8
|
|
3
9
|
bob "they will come" has no mplayer overlap (45 minutes long)
|
@@ -24,7 +24,7 @@ module SensibleSwing
|
|
24
24
|
describe MainWindow do
|
25
25
|
|
26
26
|
it "should be able to start up" do
|
27
|
-
MainWindow.new.dispose#
|
27
|
+
MainWindow.new.dispose# doesn't crash :)
|
28
28
|
end
|
29
29
|
|
30
30
|
it "should auto-select a EDL if it matches a DVD's title" do
|
@@ -55,6 +55,7 @@ module SensibleSwing
|
|
55
55
|
|
56
56
|
it "should warn if you don't have enough disk space" do
|
57
57
|
@subject.get_freespace('.').should be > 0
|
58
|
+
@subject.get_freespace("c:\\nonexistent").should be > 0
|
58
59
|
@subject.stub!(:get_freespace) {
|
59
60
|
0
|
60
61
|
}
|
@@ -133,7 +134,7 @@ module SensibleSwing
|
|
133
134
|
}
|
134
135
|
|
135
136
|
@subject.stub!(:system_non_blocking) { |command|
|
136
|
-
@
|
137
|
+
@system_non_blocking_command = command
|
137
138
|
Thread.new {} # fake out the return...
|
138
139
|
}
|
139
140
|
@subject.stub!(:open_file_to_edit_it) {}
|
@@ -201,8 +202,8 @@ module SensibleSwing
|
|
201
202
|
join_background_thread
|
202
203
|
@args[-2].should == 1
|
203
204
|
@args[-3].should == "01:00"
|
204
|
-
@
|
205
|
-
@
|
205
|
+
@system_non_blocking_command.should match /smplayer/
|
206
|
+
@system_non_blocking_command.should_not match /fulli/
|
206
207
|
end
|
207
208
|
|
208
209
|
def prompt_for_start_and_end_times
|
@@ -210,7 +211,7 @@ module SensibleSwing
|
|
210
211
|
join_background_thread
|
211
212
|
@args[-2].should == 1
|
212
213
|
@args[-3].should == "01:00"
|
213
|
-
@
|
214
|
+
@system_non_blocking_command.should match /smplayer/
|
214
215
|
end
|
215
216
|
|
216
217
|
it "should prompt for start and end times" do
|
@@ -227,11 +228,18 @@ module SensibleSwing
|
|
227
228
|
@subject.stub!(:get_user_input).and_return('06:00', '07:00')
|
228
229
|
@subject.unstub!(:get_mencoder_commands)
|
229
230
|
click_button(:@preview_section_unedited)
|
230
|
-
join_background_thread
|
231
|
+
join_background_thread # scary timing spec
|
231
232
|
temp_file = temp_dir + '/vlc.temp.bat'
|
232
233
|
File.read(temp_file).should include("59.99")
|
233
234
|
end
|
234
235
|
|
236
|
+
it "should call something for fast preview" do
|
237
|
+
click_button(:@fast_preview)
|
238
|
+
# pending ... @system_non_blocking_command.should =~ /ffmpeg.*ntsc-dvd/
|
239
|
+
join_background_thread
|
240
|
+
@system_blocking_command.should =~ /mplayer.*fast/ # pending, smplayer
|
241
|
+
end
|
242
|
+
|
235
243
|
it "should be able to rerun the latest start and end times with the rerun button" do
|
236
244
|
prompt_for_start_and_end_times
|
237
245
|
old_args = @args
|
@@ -239,7 +247,7 @@ module SensibleSwing
|
|
239
247
|
@args = nil
|
240
248
|
click_button(:@rerun_preview).join
|
241
249
|
@args.should == old_args
|
242
|
-
@
|
250
|
+
@system_non_blocking_command.should match(/smplayer/)
|
243
251
|
end
|
244
252
|
|
245
253
|
it "should not die if you pass it the same start and end time frames--graceful acceptance" do
|
@@ -272,7 +280,7 @@ module SensibleSwing
|
|
272
280
|
it "if the .done files exists, watch unedited should call smplayer ja" do
|
273
281
|
FileUtils.touch "abc.fulli_unedited.tmp.mpg.done"
|
274
282
|
@subject.instance_variable_get(:@watch_unedited).simulate_click
|
275
|
-
@
|
283
|
+
@system_non_blocking_command.should == "smplayer abc.fulli_unedited.tmp.mpg"
|
276
284
|
FileUtils.rm "abc.fulli_unedited.tmp.mpg.done"
|
277
285
|
end
|
278
286
|
|
@@ -392,7 +400,7 @@ module SensibleSwing
|
|
392
400
|
it "should not show the normal buttons in create mode" do
|
393
401
|
MainWindow.new.buttons.length.should == 3 # exit button, two normal buttons
|
394
402
|
ARGV << "--create-mode"
|
395
|
-
MainWindow.new.buttons.length.should ==
|
403
|
+
MainWindow.new.buttons.length.should == 10
|
396
404
|
ARGV.pop # test cleanup--why not :)
|
397
405
|
end
|
398
406
|
|
@@ -1,46 +1,53 @@
|
|
1
|
-
# comments can go after a # on any line.
|
1
|
+
# comments can go after a # on any line.
|
2
2
|
"mutes" => [
|
3
3
|
"14:53.7", "14:55", "greetings sled g..",
|
4
|
-
"
|
5
|
-
"
|
6
|
-
|
4
|
+
"15:42", "15:42.8", "sled g...",
|
5
|
+
"18:59", "19:00", "sled g..",
|
6
|
+
"21:58", "22:07", "butt",
|
7
|
+
"22:34", "22:34.6", "He..",
|
8
|
+
"23:56.5", "23:56.8", "he..",
|
9
|
+
"29:44.8", "29:44.5", "G.. name",
|
10
|
+
"34:08.5", "34:09", "L...",
|
11
|
+
"40:55", "40:56", "g",
|
12
|
+
"47:24.4", "47:25", "A. holes",
|
13
|
+
"48:40", "48:41.1", "G",
|
14
|
+
"59:51", "59:52", "D",
|
15
|
+
"1:02:03", "1:02:04", "butt whipped",
|
16
|
+
"1:02:36.2", "1:02:37", "butt whipping",
|
17
|
+
"1:11:35", "1:11:35.4", "h..",
|
18
|
+
"1:12:43", "1:12:44", "G",
|
19
|
+
"1:22:01.5", "1:22:02", "d...",
|
20
|
+
"1:22:53", "1:22:54", "dingaling",
|
21
|
+
"1:23:03", "1:23:03.3", "h.",
|
22
|
+
"1:23:48", "1:23:49", "G.",
|
23
|
+
"1:01:40.2", "1:01:41", "sled g... does it again"
|
7
24
|
],
|
8
25
|
|
9
|
-
# 57:20 'ish something father?
|
10
26
|
|
11
27
|
"blank_outs" => [
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
28
|
+
"15:20", "15:30",
|
29
|
+
"38:40.4", "38:43.6", "j. c. what h..",
|
30
|
+
"58:40", "58:41", "bad arsenic, but I dislike lip reading.",
|
31
|
+
"59:08", "59:09", " bad arsenic",
|
32
|
+
"59:15", "59:49", "bad arsenic ...",
|
33
|
+
"1:14:30.5", "1:14:47", "psalm",
|
34
|
+
"1:16:57.0" , "1:16:57.5", "bad a..",
|
19
35
|
],
|
20
36
|
|
37
|
+
|
21
38
|
"disk_unique_id" => "5a0a43f52e5d5e705fdfaa831b38409b",
|
22
39
|
"dvd_title_track" => "1",
|
23
|
-
"other stuff" => "fighting (punching) in a bar 1:00:30 'ish could use some editing"
|
24
|
-
# 1:01:42 "shutup snaka"
|
25
40
|
|
26
41
|
|
27
|
-
#
|
28
|
-
|
29
|
-
# 22:00 butt
|
42
|
+
# not edited out, paranoid list
|
43
|
+
|
30
44
|
# 32:20 shutup
|
31
|
-
# 38:30 40:40 g..
|
32
45
|
# 1:16 too early
|
33
46
|
# 1:22:30 den???
|
34
|
-
# 1:21:50 .. heck
|
35
|
-
# 1:20:50 dang swiss
|
36
47
|
# 1:13:40 paranoid
|
37
|
-
# 1:11:40 gah
|
38
|
-
# 47:15 a-h
|
39
|
-
# 57:20 ... father
|
40
48
|
# 1:07:45 hook
|
41
|
-
# cut beating (paranoid)
|
42
|
-
# 34:00
|
43
49
|
# 3:00 backside
|
44
50
|
# 6:57 thigh, hug
|
45
|
-
#
|
46
|
-
#
|
51
|
+
# 1:00:00 fighting in the bar
|
52
|
+
# 1:01:42 "shutup snaka"
|
53
|
+
# 15:22 irv beats his radio with pool cue should go...
|
metadata
CHANGED
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
|
|
4
4
|
prerelease: false
|
5
5
|
segments:
|
6
6
|
- 0
|
7
|
-
-
|
8
|
-
-
|
9
|
-
version: 0.
|
7
|
+
- 20
|
8
|
+
- 0
|
9
|
+
version: 0.20.0
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Roger Pack
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date:
|
17
|
+
date: 2011-01-03 00:00:00 -07:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|