sensible-cinema 0.19.6 → 0.19.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/ChangeLog +4 -0
- data/README +34 -34
- data/Rakefile +4 -1
- data/TODO +29 -17
- data/VERSION +1 -1
- data/bin/sensible-cinema +14 -4
- data/create or edit sensible cinema decision list files.bat b/data/create or edit sensible cinema delete list → files.bat +0 -0
- data/sensible-cinema.gemspec +3 -3
- data/spec/notes +45 -1
- data/spec/sensible_cinema_gui.spec.rb +51 -10
- metadata +4 -4
data/ChangeLog
CHANGED
data/README
CHANGED
|
@@ -8,11 +8,10 @@ a few freely available open source programs [3]
|
|
|
8
8
|
to accomplish the editing for you. Then you can sit back and relax as you watch the "sensible"
|
|
9
9
|
version of your DVD.
|
|
10
10
|
|
|
11
|
-
To use it, basically install it
|
|
12
|
-
It will
|
|
11
|
+
To use it, basically install it, insert an original DVD that you want to see edited, then run sensible cinema.
|
|
12
|
+
It will pop up some windows where you choose what to do for that DVD, hopefully easily.
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
as long as the playtime of the movie itself, so budget some time for it.
|
|
14
|
+
Note that the whole process can at times take hours, so budget some time for it.
|
|
16
15
|
|
|
17
16
|
Also note that just because a video lacks profanity...does not immediately make it an inspiring experience.
|
|
18
17
|
I'd suggest carefully evaluating your motives, and going with those.
|
|
@@ -43,7 +42,8 @@ See the accompanied how_to_create.txt file.
|
|
|
43
42
|
|
|
44
43
|
Q. How do I watch these on my TV, not just on my computer?
|
|
45
44
|
A. You could burn a new DVD with it. First create it on your hard drive. Then use some burning utility.
|
|
46
|
-
Dvd Flick is a good one for windows.
|
|
45
|
+
Dvd Flick is a good one for windows. There's a screencast of using it within: http://rogerdpack.t28.net/sensible-cinema
|
|
46
|
+
DeVeDe almost might work for windows users: http://www.majorsilence.com/devede though it looks less user friendly.
|
|
47
47
|
For OS X : iDVD might work well.
|
|
48
48
|
You might be able to move your laptop over to near your TV and hook it in from there.
|
|
49
49
|
Or buy a very long cord and plug it in as an extra monitor from your desktop.
|
|
@@ -66,53 +66,53 @@ Also note that if your DVD has scratches that cause it to skip, the time signatu
|
|
|
66
66
|
|
|
67
67
|
== Motivation ==
|
|
68
68
|
|
|
69
|
-
The initial motivation for the project was that I dislike profanity in movies.
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
69
|
+
The initial motivation for the project was that I dislike deity profanity in movies.
|
|
70
|
+
And reall any profanity is jarring, if you're not used to it in real life, and can
|
|
71
|
+
make you a bit on edge when you watch a movie.
|
|
72
|
+
Also sometimes only certain scenes in movies offend, and don't contribute to the overall plot,
|
|
73
|
+
and I'd rather not watch a movie that has them. But I still want to be able to watch movies at all :)
|
|
74
|
+
I tried Clearplay (a realtime filtering DVD player)
|
|
75
|
+
but (for me) it didn't seem to cut it. It costs money (I'm too cheap to pay--and many
|
|
75
76
|
many other people don't/can't use it...). Their
|
|
76
77
|
filters sometimes don't cut out all unwanted content (ex: Saints and
|
|
77
78
|
Soldiers left profanity in its filtered version...which wasn't what I had
|
|
78
79
|
anticipated. Others have noted that sometimes the edit timings
|
|
79
|
-
are off so that it will mute out sections just previous to
|
|
80
|
-
leaving the profanity in, etc.).
|
|
81
|
-
confusing subscription policy, as well,
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
obscure.) Also I watch movies only on computer, and they no
|
|
89
|
-
longer have a computer player. They also don't edit streamed
|
|
80
|
+
are slightly off so that it will mute out sections just previous to profanity, while
|
|
81
|
+
leaving the profanity itself in, etc.). Clearplay apparently also runs a rather
|
|
82
|
+
confusing subscription policy, as well, I'm told [1].
|
|
83
|
+
Clearplay also has little community collaboration/review (though they do have some feedback).
|
|
84
|
+
They don't even have a "request a filter" option anymore, like they used to.
|
|
85
|
+
They also don't have filters for all the movies that I want to see edited (Condorman and Tron
|
|
86
|
+
lacked last time I checked were lacking...probably because they are too
|
|
87
|
+
obscure.) Also I watch movies only on computer, and they
|
|
88
|
+
have no computer filter player, only DVD players. They also don't edit streamed
|
|
90
89
|
online movies either (last time I checked, anyway). So overall I
|
|
91
90
|
wanted to build my own that overcame some of these hurdles and was
|
|
92
91
|
also more accessible/open.
|
|
93
92
|
|
|
94
|
-
I also wanted to get a prototype out there of some ideas so that
|
|
95
|
-
|
|
93
|
+
I also wanted to get a prototype out there of some of my ideas so that
|
|
94
|
+
others can't patent them and pretend that they were inventors :)
|
|
96
95
|
|
|
97
|
-
So the project started off as a prototype that could "watch hulu (online) movies
|
|
96
|
+
So originally the project started off as a prototype that could "watch hulu (online) and netflix instant movies
|
|
98
97
|
edited" (it uses screen tracking and OCR's the on-screen
|
|
99
98
|
timestamp, monitors it for specific times, and reacts appropriately).
|
|
100
|
-
However,
|
|
101
|
-
reasons (clearplay has a patent on realtime tracking
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
VLC,
|
|
99
|
+
However, this functionality, though working, is disabled for patent
|
|
100
|
+
reasons (clearplay has a patent on realtime tracking).
|
|
101
|
+
Some older released versions had it enabled, but not anymore.
|
|
102
|
+
Then I realized I could basically create the same effect using
|
|
103
|
+
(more patent friendly) pre-processing and deletion lists (basically
|
|
104
|
+
Edit Decision Lists enforced using playlists for
|
|
105
|
+
VLC, like play from second x to y, then from x to mu, etc.).
|
|
107
106
|
I just pass in a playlist, it does all the work for me.
|
|
108
107
|
There are a few released versions that do this exactly.
|
|
109
108
|
Then it occurred to me that you could grab the several clean segments
|
|
110
109
|
off a DVD, and piece them together to create an edited copy. This avoids
|
|
111
|
-
realtime tracking.
|
|
110
|
+
realtime tracking. This seems reasonably patent friendly, so it is
|
|
111
|
+
what I release here.
|
|
112
112
|
|
|
113
113
|
See also the LICENSE.TXT file.
|
|
114
114
|
|
|
115
|
-
[1] http://www.amazon.com/review/R27VK5BR9NDHBD/ref=cm_cr_pr_viewpnt#R27VK5BR9NDHBD
|
|
115
|
+
[1] http://www.amazon.com/review/R27VK5BR9NDHBD/ref=cm_cr_pr_viewpnt#R27VK5BR9NDHBD amazon review of clearplay product
|
|
116
116
|
|
|
117
117
|
== License ==
|
|
118
118
|
|
data/Rakefile
CHANGED
|
@@ -122,8 +122,10 @@ end
|
|
|
122
122
|
|
|
123
123
|
task 'deploy' do
|
|
124
124
|
name = 'sensible-cinema-' + File.read('VERSION').strip + ".zip"
|
|
125
|
+
p 'copying in'
|
|
125
126
|
raise unless system("scp #{name} rdp@ilab1.cs.byu.edu:~/incoming")
|
|
126
|
-
|
|
127
|
+
p 'copying over'
|
|
128
|
+
raise unless system("ssh rdp@ilab1.cs.byu.edu \"scp ~/incoming/#{name} wilkboar@myfavoritepal.com:~/www/rogerdpackt28/sensible-cinema\"")
|
|
127
129
|
end
|
|
128
130
|
|
|
129
131
|
desc 'j -S rake bundle_dependencies create_distro_dir ... (releases with clean cache dir, which we need now)'
|
|
@@ -133,6 +135,7 @@ task 'full_release' => [:bundle_dependencies, :create_distro_dir, :build] do # :
|
|
|
133
135
|
system("#{Gem.ruby} -S gem push #{gems[-1]}")
|
|
134
136
|
FileUtils.rm_rf 'pkg'
|
|
135
137
|
Rake::Task["zip"].execute
|
|
138
|
+
Rake::Task["deploy"].execute
|
|
136
139
|
system("git push origin master")
|
|
137
140
|
puts "don't forget to blog about it...and upload .zip of it..."
|
|
138
141
|
end
|
data/TODO
CHANGED
|
@@ -2,33 +2,36 @@
|
|
|
2
2
|
|
|
3
3
|
== up next release ==
|
|
4
4
|
|
|
5
|
+
edl straight is broken on HP at 2 hours
|
|
6
|
+
compare with cars
|
|
7
|
+
clear runnings finish
|
|
8
|
+
have ben and chris test it out
|
|
9
|
+
|
|
5
10
|
== slightly lower than that, somewhat ordered ==
|
|
6
11
|
|
|
7
|
-
edl straight is broken on HP at 2 hours
|
|
8
|
-
warn on low disk
|
|
9
|
-
temple EDL at home
|
|
10
|
-
cars bring home :)
|
|
11
12
|
linearize edl's
|
|
12
13
|
don't use them linear, just linearize
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
14
|
+
mpeg is lossy (at least my current one pass conversion still is...) and smplayer can't play it right unedited
|
|
15
|
+
frame accurate splitter naive
|
|
16
|
+
more filters
|
|
17
|
+
my dvd's (loose timestamps...)
|
|
18
|
+
cars backport real EDL :)
|
|
19
|
+
enlist chris' help
|
|
20
|
+
need mac port [?]
|
|
21
|
+
friend dvd's, me DL
|
|
22
|
+
partner for filters (Jon, Karlie if interested...give beta)
|
|
23
|
+
all only after linearize, new year, frame accurate
|
|
24
|
+
temple EDL at home
|
|
25
|
+
can have the mouse jerk "only every so often"
|
|
21
26
|
can I use ffmpeg to re-sync audio, and be able to re-play the edited copy, and thus avoid the small but extra harddup overhead (basically "just avoid")?
|
|
22
27
|
I can live with "watching while grabbing" being lack luster...or maybe I can grab it with acodec copy (typically), then reencode it somehow later into something that is friendlier to computer players...or is it encoders?
|
|
23
28
|
appears the only messed up audio one is smplayer...and probably mplayer with DVD's [?]
|
|
24
29
|
do this after frame accurate
|
|
25
30
|
button start EDL playback here [?] (for create mode)
|
|
26
|
-
beta release/rinse and repeat with various ppl
|
|
31
|
+
beta release/rinse and repeat with various ppl
|
|
27
32
|
a real'ish-er website
|
|
28
|
-
link to ML
|
|
29
33
|
compare computer DVD timings with physical player's timings...
|
|
30
34
|
if same, add imdb todo's up here
|
|
31
|
-
cleaner user error on locked file :)
|
|
32
35
|
propaganda-ize
|
|
33
36
|
advertise in christian places
|
|
34
37
|
blogs that have ever mentioned clearplay :P
|
|
@@ -36,11 +39,19 @@
|
|
|
36
39
|
advertise urug, ruby flow :)
|
|
37
40
|
only after new year
|
|
38
41
|
add they 'play from unedited from grab till it hits the first bad spot', if useful [?]
|
|
39
|
-
md5 and verify the fulli version... [?]
|
|
40
|
-
only useful once I get the frame accurate stuff done, and any audio tweakage, etc.
|
|
41
42
|
|
|
42
43
|
== DVD backlog (unordered, some very low prio, basically all never do) ==
|
|
43
44
|
|
|
45
|
+
@smplayer: unable to seek in cars (once I figure out if this is specific to a particular DVD)
|
|
46
|
+
@mplayer: edl disworks after a certain timestamp (after...)
|
|
47
|
+
disallow:
|
|
48
|
+
"0:45:00.0" , "00:450:10.0", # second 2700
|
|
49
|
+
issues
|
|
50
|
+
a website that gives you a "wholesome meter"
|
|
51
|
+
md5 and verify the fulli version... [?]
|
|
52
|
+
only useful once I get the frame accurate stuff done, and any audio tweakage, etc.
|
|
53
|
+
frame accurate splitter could be optimized, perhaps, split wise, speed wise?
|
|
54
|
+
speedify things (the whole process takes approximately...eternity?)
|
|
44
55
|
can I combine commands onto one command line for a quicker anything?
|
|
45
56
|
can I get the original audio tracks back?
|
|
46
57
|
show them how to use smplayer with subtitles
|
|
@@ -357,6 +368,7 @@ create a "book edit list" (word x is at position y...)
|
|
|
357
368
|
@mencoder: can't split
|
|
358
369
|
something like you watch it *with* you friends and can all chat together...hmm...
|
|
359
370
|
donate money to several projects I use/like :)
|
|
371
|
+
after have LLC
|
|
360
372
|
|
|
361
373
|
@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:\
|
|
362
374
|
|
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.19.
|
|
1
|
+
0.19.7
|
data/bin/sensible-cinema
CHANGED
|
@@ -192,7 +192,7 @@ EOL
|
|
|
192
192
|
drive, volume, md5 = choose_dvd_drive
|
|
193
193
|
# display it, allow them to copy and paste it out
|
|
194
194
|
get_user_input("#{drive} #{volume} for your copying+pasting pleasure (highlight, then ctrl+c to copy) \n
|
|
195
|
-
This is
|
|
195
|
+
This is USED to identify a disk to match it to its EDL, later.", "\"disk_unique_id\" => \"#{md5}\",")
|
|
196
196
|
}
|
|
197
197
|
|
|
198
198
|
@upload = new_jbutton( "Upload/E-mail suggestion/Submit anything", true).on_clicked {
|
|
@@ -215,7 +215,7 @@ EOL
|
|
|
215
215
|
increment_button_location
|
|
216
216
|
increment_button_location
|
|
217
217
|
|
|
218
|
-
setSize
|
|
218
|
+
setSize @button_width+80, @starting_button_y
|
|
219
219
|
|
|
220
220
|
check_for_dependencies
|
|
221
221
|
end
|
|
@@ -344,6 +344,10 @@ EOL
|
|
|
344
344
|
EdlParser.parse_file path, ignore_settings
|
|
345
345
|
end
|
|
346
346
|
|
|
347
|
+
def get_freespace path
|
|
348
|
+
JFile.new(path).get_usable_space
|
|
349
|
+
end
|
|
350
|
+
|
|
347
351
|
def choose_dvd_and_edl_for_it
|
|
348
352
|
drive, dvd_volume_name, md5sum = choose_dvd_drive
|
|
349
353
|
@_edit_list_path ||=
|
|
@@ -352,7 +356,7 @@ EOL
|
|
|
352
356
|
edit_list_path = single_edit_list_matches_dvd(md5sum)
|
|
353
357
|
if !edit_list_path
|
|
354
358
|
fc = FileDialog.new(self)
|
|
355
|
-
fc.set_title "Please pick a DVD Delete List File"
|
|
359
|
+
fc.set_title "Please pick a DVD Delete List File (non matching found)"
|
|
356
360
|
fc.set_directory EDL_DIR
|
|
357
361
|
edit_list_path = fc.go
|
|
358
362
|
end
|
|
@@ -389,6 +393,9 @@ EOL
|
|
|
389
393
|
a = File.open(File.dirname(save_to) + "/test_file_to_see_if_we_have_permission_to_write_to_this_folder", "w")
|
|
390
394
|
a.close
|
|
391
395
|
File.delete a.path
|
|
396
|
+
if get_freespace(save_to) < 16_000_000_000
|
|
397
|
+
show_blocking_message_dialog("Warning: there may not be enough space on the disk for #{save_to} (depending on DVD size, you may need like 16G free, but typically will need around 10GB free). Click OK to continue.")
|
|
398
|
+
end
|
|
392
399
|
save_to
|
|
393
400
|
end
|
|
394
401
|
end
|
|
@@ -446,6 +453,9 @@ EOL
|
|
|
446
453
|
rescue MencoderWrapper::TimingError => e
|
|
447
454
|
show_blocking_message_dialog("Appears you chose a time frame with no deletion segment in it--please try again:" + e)
|
|
448
455
|
return
|
|
456
|
+
rescue Errno::EACCES => e
|
|
457
|
+
show_blocking_message_dialog("Appears a file on the system is locked: perhaps you need to close down some instance of mplayer?" + e)
|
|
458
|
+
return
|
|
449
459
|
end
|
|
450
460
|
temp_dir = Dir.tmpdir
|
|
451
461
|
temp_file = temp_dir + '/vlc.temp.bat'
|
|
@@ -533,7 +543,7 @@ EOL
|
|
|
533
543
|
@saved_opticals = opticals
|
|
534
544
|
return @_choose_dvd_drive
|
|
535
545
|
else
|
|
536
|
-
puts 'did not select a drive...exiting'
|
|
546
|
+
puts 'did not select a drive...hard exiting'
|
|
537
547
|
java.lang.System.exit 1
|
|
538
548
|
end
|
|
539
549
|
end
|
|
File without changes
|
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.19.
|
|
8
|
+
s.version = "0.19.7"
|
|
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{2010-12-
|
|
12
|
+
s.date = %q{2010-12-28}
|
|
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"]
|
|
@@ -29,7 +29,7 @@ Gem::Specification.new do |s|
|
|
|
29
29
|
"VERSION",
|
|
30
30
|
"bin/sensible-cinema",
|
|
31
31
|
"bin/sensible-cinema-cli",
|
|
32
|
-
"create or edit sensible cinema
|
|
32
|
+
"create or edit sensible cinema delete list files.bat",
|
|
33
33
|
"experimental_readme.txt",
|
|
34
34
|
"ext/mkrf_conf.rb",
|
|
35
35
|
"go.bat",
|
data/spec/notes
CHANGED
|
@@ -1,9 +1,53 @@
|
|
|
1
|
+
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
|
+
|
|
3
|
+
bob "they will come" has no mplayer overlap (45 minutes long)
|
|
4
|
+
|
|
5
|
+
HP 2 "full and edited version" had a twidge off of audio even in VLC (unsure if that was copy or lavc audio)
|
|
6
|
+
seems consistent
|
|
7
|
+
The DVD (flick) appeared to have audio in perfect sync, always.
|
|
8
|
+
seems to play fine in smplayer
|
|
9
|
+
the fulli version was *totally off* in smplayer
|
|
10
|
+
fulli, edited version had some artifacts in VLC
|
|
11
|
+
fulli version had perfect audio in VLC
|
|
12
|
+
audio looks barely off VLC for the whole thing
|
|
13
|
+
|
|
14
|
+
mplayer (updated) playing dvd:// (bob) can't seek if past 30 minutes or so (pause/hang)
|
|
15
|
+
|
|
16
|
+
mplayer (updated) playback, if it ever goes off the screen, chokes and hurles and dies (or if it goes under a window that is always on top).
|
|
17
|
+
|
|
18
|
+
an edl with (updated mplayer and) dvdnav:// (bob) results in a crash when seeking the first few seconds, at least.
|
|
19
|
+
|
|
20
|
+
Seeking using the "forward 10, back 10" works in mplayer console,
|
|
21
|
+
also works (!) with smplayer (+10, back 10).
|
|
22
|
+
|
|
23
|
+
Also edl works *perfectly* when playing from the ripped file.
|
|
24
|
+
|
|
25
|
+
There is only one break in cars DVD. A:3756
|
|
26
|
+
Is it the same in other large DVD's?
|
|
27
|
+
so certainly, mplayer's edl playback is broken currently, for DVD's.
|
|
28
|
+
|
|
29
|
+
if I change the mute to 2:13, then it works [!], though probably doubly.
|
|
30
|
+
|
|
31
|
+
"enable dvd menus" in mplayer doesn't seem to help with seeking weirdness in smplayer
|
|
32
|
+
|
|
33
|
+
smplayer edl against cars DVD *fails* on later ones (1:05), but succeeds on 15:00, mute-wise.
|
|
34
|
+
Like epic fail.
|
|
35
|
+
also seeking totally fails:
|
|
36
|
+
58 -> 58 works (cars)
|
|
37
|
+
transition to broken seeking:1:02:44
|
|
38
|
+
also always thinks its chapter 1 :)
|
|
39
|
+
|
|
40
|
+
smplayer playing cars fulli (of some sort) seems to be a split second off, audio-wise
|
|
41
|
+
|
|
1
42
|
smplayer on HP2 -> edited version (ffmpeg through mencoder) with oac copy, is off by an annoying split second when replayed in smplayer
|
|
2
|
-
at other times, it fails everywhere almost sync-wise
|
|
43
|
+
at other times, it fails everywhere almost, sync-wise
|
|
3
44
|
that "might" have been with HP and -oac lavc, but without harddup. or maybe it was -oac copy
|
|
4
45
|
VLC plays the audio splendidly on the same.
|
|
5
46
|
plays well from DVD, though. Just that one file isn't playable with mplayer...
|
|
6
47
|
how does EDL fit into all of this, though?
|
|
48
|
+
also note that mplayer originally couldn't cut right because of audio (with oac copy, I believe)
|
|
49
|
+
|
|
50
|
+
ffmpeg said that the huge HP grab was always 48 minute duration [?] (then proceeded to work right)
|
|
7
51
|
|
|
8
52
|
edl *fails* with HP at the 2 hour mark, audio. The audio did seem to line up, at least, with their lips.
|
|
9
53
|
and if it's video--fails the same. Seems to think it's at second 2678, or minute 44, not minute 120?
|
|
@@ -35,16 +35,16 @@ module SensibleSwing
|
|
|
35
35
|
MainWindow.new.single_edit_list_matches_dvd(nil).should be nil
|
|
36
36
|
end
|
|
37
37
|
|
|
38
|
-
it "should not die if you choose a poorly formed edl" do
|
|
38
|
+
it "should not die if you choose a poorly formed edl (should warn)" do
|
|
39
39
|
time_through = 0
|
|
40
40
|
@subject.stub!(:single_edit_list_matches_dvd) {
|
|
41
|
-
'fake filename doesnt
|
|
41
|
+
'fake filename doesnt matter because we fake its being parsed'
|
|
42
42
|
}
|
|
43
43
|
|
|
44
44
|
@subject.stub!(:parse_edl) {
|
|
45
45
|
if time_through == 0
|
|
46
46
|
time_through += 1
|
|
47
|
-
eval("a-----") #
|
|
47
|
+
eval("a-----") # force it to throw a Syntax Error first time
|
|
48
48
|
else
|
|
49
49
|
"stuff"
|
|
50
50
|
end
|
|
@@ -53,6 +53,23 @@ module SensibleSwing
|
|
|
53
53
|
@show_blocking_message_dialog_last_args.should_not be nil
|
|
54
54
|
end
|
|
55
55
|
|
|
56
|
+
it "should warn if you don't have enough disk space" do
|
|
57
|
+
@subject.get_freespace('.').should be > 0
|
|
58
|
+
@subject.stub!(:get_freespace) {
|
|
59
|
+
0
|
|
60
|
+
}
|
|
61
|
+
@subject.get_save_to_filename 'dvd_title'
|
|
62
|
+
@show_blocking_message_dialog_last_args[0].should =~ /may not be enough/
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
it "should not warn if you have enough free disk space" do
|
|
66
|
+
@subject.stub!(:get_freespace) {
|
|
67
|
+
16_000_000_000
|
|
68
|
+
}
|
|
69
|
+
@subject.get_save_to_filename 'dvd_title'
|
|
70
|
+
@show_blocking_message_dialog_last_args.should be nil
|
|
71
|
+
end
|
|
72
|
+
|
|
56
73
|
it "should not select a file if poorly formed" do
|
|
57
74
|
@subject.stub!(:parse_edl) {
|
|
58
75
|
eval("a----")
|
|
@@ -120,6 +137,16 @@ module SensibleSwing
|
|
|
120
137
|
Thread.new {} # fake out the return...
|
|
121
138
|
}
|
|
122
139
|
@subject.stub!(:open_file_to_edit_it) {}
|
|
140
|
+
|
|
141
|
+
PlayAudio.stub!(:play) {
|
|
142
|
+
# don't play anything, by default :)
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
@subject.stub!(:get_freespace) {
|
|
146
|
+
# during testing, we *always* have enough free space :)
|
|
147
|
+
16_000_000_000
|
|
148
|
+
}
|
|
149
|
+
|
|
123
150
|
end
|
|
124
151
|
|
|
125
152
|
after do
|
|
@@ -215,6 +242,22 @@ module SensibleSwing
|
|
|
215
242
|
@command.should match(/smplayer/)
|
|
216
243
|
end
|
|
217
244
|
|
|
245
|
+
it "should not die if you pass it the same start and end time frames--graceful acceptance" do
|
|
246
|
+
@subject.stub!(:get_mencoder_commands) {
|
|
247
|
+
raise MencoderWrapper::TimingError
|
|
248
|
+
}
|
|
249
|
+
click_button(:@rerun_preview)
|
|
250
|
+
@show_blocking_message_dialog_last_args[0].should =~ /you chose a time frame/
|
|
251
|
+
end
|
|
252
|
+
|
|
253
|
+
it "should not die if you pass it the same start and end time frames--graceful acceptance" do
|
|
254
|
+
@subject.stub!(:get_mencoder_commands) {
|
|
255
|
+
raise Errno::EACCES
|
|
256
|
+
}
|
|
257
|
+
click_button(:@rerun_preview) # lodo rspec error: wrong backtrace if no => e!
|
|
258
|
+
@show_blocking_message_dialog_last_args[0].should =~ /a file/
|
|
259
|
+
end
|
|
260
|
+
|
|
218
261
|
it "should warn if you watch an edited time frame with no edits in it" do
|
|
219
262
|
@subject.unstub!(:get_mencoder_commands)
|
|
220
263
|
click_button(:@preview_section)
|
|
@@ -279,8 +322,7 @@ module SensibleSwing
|
|
|
279
322
|
wrote.should include("380.85 1")
|
|
280
323
|
end
|
|
281
324
|
|
|
282
|
-
|
|
283
|
-
def should_allow_for_changing_file corrupt_file = false
|
|
325
|
+
def should_allow_for_changing_file corrupt_the_file = false
|
|
284
326
|
with_clean_edl_dir_as 'temp' do
|
|
285
327
|
File.binwrite('temp/a.txt', "\"disk_unique_id\" => \"abcdef1234\"")
|
|
286
328
|
@subject.stub!(:choose_dvd_drive) {
|
|
@@ -288,9 +330,9 @@ module SensibleSwing
|
|
|
288
330
|
}
|
|
289
331
|
@subject.choose_dvd_and_edl_for_it[4]['mutes'].should == []
|
|
290
332
|
new_file_contents = '"disk_unique_id" => "abcdef1234","mutes"=>["0:33", "0:34"]'
|
|
291
|
-
new_file_contents = '"a syntax error' if
|
|
333
|
+
new_file_contents = '"a syntax error' if corrupt_the_file
|
|
292
334
|
File.binwrite('temp/a.txt', new_file_contents)
|
|
293
|
-
#
|
|
335
|
+
# file has been modified!
|
|
294
336
|
@subject.choose_dvd_and_edl_for_it[4]['mutes'].should_not == []
|
|
295
337
|
end
|
|
296
338
|
end
|
|
@@ -319,7 +361,7 @@ module SensibleSwing
|
|
|
319
361
|
count.should == 1
|
|
320
362
|
end
|
|
321
363
|
|
|
322
|
-
describe '
|
|
364
|
+
describe 'with unstubbed choose_dvd_drive' do
|
|
323
365
|
before do
|
|
324
366
|
DriveInfo.stub!(:get_dvd_drives_as_openstruct) {
|
|
325
367
|
a = OpenStruct.new
|
|
@@ -333,8 +375,7 @@ module SensibleSwing
|
|
|
333
375
|
it "should only prompt for drive once" do
|
|
334
376
|
count = 0
|
|
335
377
|
DriveInfo.stub!(:md5sum_disk) {
|
|
336
|
-
|
|
337
|
-
count = 1
|
|
378
|
+
count += 1
|
|
338
379
|
'19d121ae8dc40cdd70b57ab7e8c74f76'
|
|
339
380
|
}
|
|
340
381
|
@subject.choose_dvd_and_edl_for_it
|
metadata
CHANGED
|
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
|
5
5
|
segments:
|
|
6
6
|
- 0
|
|
7
7
|
- 19
|
|
8
|
-
-
|
|
9
|
-
version: 0.19.
|
|
8
|
+
- 7
|
|
9
|
+
version: 0.19.7
|
|
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: 2010-12-
|
|
17
|
+
date: 2010-12-28 00:00:00 -07:00
|
|
18
18
|
default_executable:
|
|
19
19
|
dependencies:
|
|
20
20
|
- !ruby/object:Gem::Dependency
|
|
@@ -167,7 +167,7 @@ files:
|
|
|
167
167
|
- VERSION
|
|
168
168
|
- bin/sensible-cinema
|
|
169
169
|
- bin/sensible-cinema-cli
|
|
170
|
-
- create or edit sensible cinema
|
|
170
|
+
- create or edit sensible cinema delete list files.bat
|
|
171
171
|
- experimental_readme.txt
|
|
172
172
|
- ext/mkrf_conf.rb
|
|
173
173
|
- go.bat
|