sensible-cinema 0.19.6 → 0.19.7
Sign up to get free protection for your applications and to get access to all the features.
- 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
|