sensible-cinema 0.18.4 → 0.19.0
Sign up to get free protection for your applications and to get access to all the features.
- data/ChangeLog +6 -0
- data/README +29 -9
- data/RUN SENSIBLE CINEMA CLICK HERE.bat +2 -1
- data/Rakefile +1 -1
- data/TODO +25 -24
- data/VERSION +1 -1
- data/bin/sensible-cinema +20 -16
- data/create or edit sensible cinema decision list files.bat +2 -1
- data/go.bat +2 -0
- data/goc.bat +2 -0
- data/lib/mplayer_edl.rb +2 -2
- data/lib/vlc_programmer.rb +2 -2
- data/sensible-cinema.gemspec +4 -2
- data/spec/mplayer_edl.spec.rb +18 -0
- data/spec/sensible_cinema_gui.spec.rb +15 -5
- metadata +6 -4
data/ChangeLog
CHANGED
@@ -1,3 +1,9 @@
|
|
1
|
+
== 0.19.0 ==
|
2
|
+
|
3
|
+
Add working EDL playback with mplayer, cleanup interfaces.
|
4
|
+
Also add ability to arbitrarily "enlargen" the scope of edit decisions (in this case, mutes), to match
|
5
|
+
(either paranoia or) mplayer playback, useful for daily normal use, too, in principle.
|
6
|
+
|
1
7
|
== 0.18.3 ==
|
2
8
|
|
3
9
|
Cleanup UI, make more user friendly in a few circumstances, for create, fix buttons.
|
data/README
CHANGED
@@ -1,23 +1,33 @@
|
|
1
|
-
Sensible-cinema (also known as "paranoid cinema" [inside joke] ) is a program that allows you to apply
|
2
|
-
programmed edit lists (Edit Decision Lists
|
3
|
-
|
1
|
+
Sensible-cinema (also known to us as "paranoid cinema" [inside joke ha ha] ) is a program that allows you to apply
|
2
|
+
programmed edit lists (i.e. Edit Decision Lists) to DVD's you own [2].
|
3
|
+
|
4
|
+
I.e. you can edit a DVD to "mute out" or skip certain scenes.
|
4
5
|
|
5
6
|
It is essentially a linear editor [1] that applies Edit Decision Lists [2] to videos, by wrapping
|
6
|
-
a few freely available open source
|
7
|
-
to accomplish the editing.
|
7
|
+
a few freely available open source programs [3] (VLC Media Player, Mplayer/mencoder, ffmpeg et al)
|
8
|
+
to accomplish the editing for you. Then you can sit back and relax as you watch a "sanitized"
|
9
|
+
version of your DVD.
|
8
10
|
|
9
|
-
To use it, basically install then run it (see below).
|
11
|
+
To use it, basically install it then run it (see installation section, below).
|
10
12
|
It will come up with some windows where you choose what you want to do
|
11
|
-
(edit an edit list, use an edit decision list to edit a DVD, etc.)
|
12
13
|
|
13
14
|
If you try to make an edited copy of your DVD, note that it will take about one and a half times
|
14
15
|
as long as the playtime of the movie itself, so budget some time for it.
|
15
16
|
|
16
|
-
|
17
|
+
Also note that just because a video lacks profanity...does not immediately make it an inspiring experience.
|
18
|
+
I'd suggest carefully evaluating your motives, and going with those.
|
19
|
+
Sensible cinema does not a clean movie make of a dirty one. Don't watch it if it's not wholesome! Be nice to yourself!
|
20
|
+
dove.org is a good reference for discovering the "uplifting" level of movies [4]. And of course sensible cinema does help
|
21
|
+
a little bit.
|
22
|
+
Also note that even if you have an edited copy of a DVD floating around, if you have kids, chances are they
|
23
|
+
will eventually find (and watch) the unedited originals, so be careful there, and do what is needful.
|
24
|
+
|
25
|
+
Enjoy your movies!
|
17
26
|
|
18
27
|
[1] http://en.wikipedia.org/wiki/Linear_video_editing
|
19
28
|
[2] http://en.wikipedia.org/wiki/Edit_decision_list
|
20
|
-
[3] http://www.gnu.org/licenses/
|
29
|
+
[3] mostly GPL programs, see http://www.gnu.org/licenses/
|
30
|
+
[4] http://lds.org/library/display/0,4945,161-1-11-1,00.html search for the word "wholesome"
|
21
31
|
|
22
32
|
== Installation ==
|
23
33
|
|
@@ -125,6 +135,8 @@ Clean Flicks (used to) sell edited movies
|
|
125
135
|
http://www.mplayerhq.hu/DOCS/HTML/en/edl.html
|
126
136
|
http://www.oreillynet.com/sysadmin/blog/2005/06/make_your_own_phantom_edit_wit.html (mplayer has had this ability for awhile, with no complaints).
|
127
137
|
http://clearplay.com a commercial editing player (tracks DVD's while they play--closed source, costs money, no user contribution possible), and only for DVD's.
|
138
|
+
It does offer a few features that sensible cinema disables, for patent reasons, like automatic (user flexible) content decisions. Ours are manual.
|
139
|
+
Theirs is also a DVD "instant" player, which this is not, except on computer, though you must use theirs, etc (see motivation section, above).
|
128
140
|
http://en.wikipedia.org/wiki/RiffTrax has an interesting idea of "overlaying" audio over the original video, and synchronizing between the two (their re-player does, anyway).
|
129
141
|
http://forum.bsplayer.com/feature-requests-feedback-suggestions/7157-chapter-playlist-scene-cut-3.html
|
130
142
|
http://www.inmatrix.com "scene cut editor" of the zoom player
|
@@ -132,6 +144,7 @@ http://wiki.xbmc.org/?title=EDL_(commercial_skipping)_and_SceneMarker_support (X
|
|
132
144
|
http://dvdshrink.info "Re-author" mode: to make "movie-only" backups, compilations, combine "flippers",.... DvdShrink has the ability to "crop or cut parts of a title" etc.
|
133
145
|
The VCR with its record button, coupled with the stop+rewind button.
|
134
146
|
http://code.google.com/p/movie-content-editor (written in Python, controls VLC based on captions and edit decision lists, in realtime)
|
147
|
+
http://forums.gbpvr.com/showthread.php?10606-Automated-Cutting-and-Transcoding-Guide-Using-Mencoder/page45
|
135
148
|
http://www.imdb.com/swiki/special?ParentalGuideHelp (search for "scene description")
|
136
149
|
http://www.mythtv.org/wiki/Removing_Commercials
|
137
150
|
Using the remote control with the pause, mute, stop, fast forward, and play buttons, along with previous knowledge of scene locations
|
@@ -155,6 +168,13 @@ to your EDL and try again.
|
|
155
168
|
|
156
169
|
Also if your DVD playback has no audio, try the "lavc" setting, above. And report it (see feedback).
|
157
170
|
|
171
|
+
It can fail also because an edit decision is past end of DVD, or
|
172
|
+
Also note that if your DVD has scratches that cause it to skip, the time signatures will be off after that point,
|
173
|
+
so clean your discs and try again!
|
174
|
+
|
175
|
+
Also you could try a different computer (desktop computers' DVD drives seem to work better at times than laptops')
|
176
|
+
|
177
|
+
|
158
178
|
== Feedback ==
|
159
179
|
|
160
180
|
Feedback, including feature requests, comments, etc. welcome.
|
@@ -2,4 +2,5 @@
|
|
2
2
|
@rem disable any local rubyopt settings...
|
3
3
|
@set RUBYOPT=
|
4
4
|
@echo This window will display lots of debug message output!
|
5
|
-
@cd sensible-cinema && java -cp "./vendor/cache/jruby-complete-1.5.5.jar" org.jruby.Main bin\sensible-cinema || echo you need to install java first! Please report back the error you see! && pause
|
5
|
+
@cd sensible-cinema && java -cp "./vendor/cache/jruby-complete-1.5.5.jar" org.jruby.Main bin\sensible-cinema || echo you need to install java first! Please report back the error you see! && pause
|
6
|
+
@rem taskkill /f /im mencoder.exe
|
data/Rakefile
CHANGED
@@ -108,7 +108,7 @@ task 'create_distro_dir' do
|
|
108
108
|
FileUtils.mkdir_p dir_out
|
109
109
|
FileUtils.cp_r(existing, dir_out)
|
110
110
|
# this one belongs in the trunk
|
111
|
-
FileUtils.cp(Dir["#{dir_out}/*.bat"], "#{dir_out}/..")
|
111
|
+
FileUtils.cp(Dir["#{dir_out}/*.bat"].reject{|f| f =~ /go.*bat/}, "#{dir_out}/..")
|
112
112
|
p 'created (still need to zip it) ' + dir_out
|
113
113
|
end
|
114
114
|
|
data/TODO
CHANGED
@@ -3,39 +3,47 @@
|
|
3
3
|
== up next release ==
|
4
4
|
|
5
5
|
edit lists:
|
6
|
-
temple
|
7
6
|
cool runnings
|
8
|
-
|
7
|
+
make sure release has right .bat files
|
9
8
|
|
10
9
|
== slightly lower than that, somewhat ordered ==
|
11
10
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
11
|
+
linearize edl's
|
12
|
+
don't use them linear, just linearize
|
13
|
+
|
14
|
+
edit lists:
|
15
|
+
temple
|
16
|
+
cool runnings
|
17
|
+
cars
|
18
|
+
compare computer DVD timings with physical player's timings...
|
19
|
+
if same, add imdb todo's here
|
20
|
+
mpeg is lossy (at least my current one pass conversion is)
|
21
|
+
check the DVD burning experience too...
|
22
|
+
could check if DVD Flick handles *oversize* files well, for information sake
|
20
23
|
partner for filters (Jon, Karlie if interested...give beta)
|
21
24
|
lotsa filters somehow
|
22
25
|
my dvd's (loose timestamps...)
|
23
26
|
partners'...
|
27
|
+
only after linearize
|
24
28
|
beta release/rinse and repeat with various ppl (once it's releasable...)
|
25
29
|
a real'ish-er website
|
26
30
|
mailing list, link to it
|
27
31
|
play a bigger noise when totally done...(dvd flick'ish...)
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
32
|
+
propaganda-ize
|
33
|
+
advertise in christian places
|
34
|
+
alternative.to
|
35
|
+
blogs that have ever mentioned clearplay :P
|
36
|
+
free google adwords (?)
|
37
|
+
advertise urug, ruby flow :)
|
38
|
+
add they 'play from unedited till it hits the first bad spot
|
39
|
+
|
33
40
|
== DVD backlog (unordered, some very low prio, basically never do) ==
|
34
41
|
|
35
42
|
disallow choosing empty drive? fail more gracefully? (issue 11)
|
36
43
|
some status bar that shows which DVD is in currently, how many match it, et al (pre button)
|
37
44
|
splitter abs. coords option
|
38
45
|
video on how to use imdb
|
46
|
+
if times match DVD players
|
39
47
|
alternate endings
|
40
48
|
@ffmpeg there's no audio when going mpg -> mpg with copy!
|
41
49
|
@mplayer you *die* with edl's on many DVD's... ex: on bunny one
|
@@ -44,9 +52,6 @@
|
|
44
52
|
can pull from imdb at package time [?]
|
45
53
|
delete fulli file
|
46
54
|
except if it's a specific scene run...
|
47
|
-
bundle 7z [?]
|
48
|
-
if license agreement allows
|
49
|
-
thinking not though...
|
50
55
|
mencoder harddup useful?
|
51
56
|
.exe installer
|
52
57
|
just unzips, runs the .bat file for them [?] :)
|
@@ -55,11 +60,6 @@
|
|
55
60
|
split EDL's somehow into their own project/LLC...
|
56
61
|
add md5 "warning" when something (anything) had failed disc fails doesn't match because of read failure...
|
57
62
|
not loop on preview view (smplayer)
|
58
|
-
propaganda-ize
|
59
|
-
advertise in christian places
|
60
|
-
alternative.to
|
61
|
-
blogs that have ever mentioned clearplay :P
|
62
|
-
free google adwords (?)
|
63
63
|
LLC before ever pay anyone, if I ever do
|
64
64
|
@DVD flick: support multi-track audio/subtitles (if they're already in the streams...)
|
65
65
|
note the mplayer/smplayer as a player fast forward feature...
|
@@ -94,7 +94,6 @@
|
|
94
94
|
imagemagick (ffmpeg) easier install...
|
95
95
|
DRY up dependency installation code
|
96
96
|
install dep's to cache2 or something...so I can cleanup the deploy code...
|
97
|
-
advertise urug, ruby flow :)
|
98
97
|
"Re-run most recent" disabled when there isn't one [?]
|
99
98
|
re-do DVD EDL's that need it :P
|
100
99
|
warn when labels exist and don't match...
|
@@ -343,3 +342,5 @@ something like you watch it *with* you friends and can all chat together...hmm..
|
|
343
342
|
donate money to several projects I use/like :)
|
344
343
|
|
345
344
|
@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:\
|
345
|
+
|
346
|
+
@jruby: system("mencoder") from a button doesn't get interrupted by an exception [!]
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.19.0
|
data/bin/sensible-cinema
CHANGED
@@ -17,7 +17,7 @@ This file is part of Sensible Cinema.
|
|
17
17
|
along with Sensible Cinema. If not, see <http://www.gnu.org/licenses/>.
|
18
18
|
=end
|
19
19
|
|
20
|
-
|
20
|
+
print 'Loading Sensible Cinema...'
|
21
21
|
|
22
22
|
require File.dirname(__FILE__) + "/../lib/add_any_bundled_gems_to_load_path.rb"
|
23
23
|
require 'sane' # failure here means you haven't bundled your dependencies...[rake task]
|
@@ -40,6 +40,9 @@ for drive in ['c', 'd', 'e']
|
|
40
40
|
end
|
41
41
|
|
42
42
|
module SensibleSwing
|
43
|
+
VERSION = File.read(File.dirname(__FILE__) + "/../VERSION").strip
|
44
|
+
puts "v. " + VERSION
|
45
|
+
|
43
46
|
class MainWindow < JFrame
|
44
47
|
|
45
48
|
def new_jbutton title, only_on_create_mode
|
@@ -74,15 +77,12 @@ module SensibleSwing
|
|
74
77
|
|
75
78
|
# make them choose which system call to use explicitly
|
76
79
|
undef system
|
77
|
-
|
78
80
|
def initialize
|
79
81
|
super "Sensible-Cinema"
|
80
|
-
|
81
|
-
puts "v. " + version.strip
|
82
|
-
if !(Storage['main_license_accepted'] == version)
|
82
|
+
if !(Storage['main_license_accepted'] == VERSION)
|
83
83
|
show_blocking_license_accept_dialog 'Sensible Cinema', 'gplv3', 'http://www.gnu.org/licenses/gpl.html'
|
84
84
|
show_blocking_license_accept_dialog 'Sensible Cinema', 'LICENSE file', File.expand_path(File.dirname(__FILE__) + "/../LICENSE.TXT"), 'LICENSE file', 'I acknowledge that I have read the LICENSE file.'
|
85
|
-
Storage['main_license_accepted'] =
|
85
|
+
Storage['main_license_accepted'] = VERSION
|
86
86
|
end
|
87
87
|
|
88
88
|
setDefaultCloseOperation JFrame::EXIT_ON_CLOSE
|
@@ -108,18 +108,20 @@ module SensibleSwing
|
|
108
108
|
@mplayer_edl = new_jbutton( "Watch DVD on computer edited realtime", false )
|
109
109
|
@mplayer_edl.on_clicked {
|
110
110
|
drive, dvd_volume_name, md5sum, edl_path, descriptors = choose_dvd_and_edl_for_it
|
111
|
+
descriptors = EdlParser.parse_file edl_path
|
111
112
|
temp_dir = Dir.tmpdir
|
112
113
|
temp_file = temp_dir + '/mplayer.temp.edl'
|
113
|
-
edl_contents = MplayerEdl.convert_to_edl descriptors
|
114
|
+
edl_contents = MplayerEdl.convert_to_edl descriptors, 1.75 # add a sec to mutes to accomodate for mplayer's oddness...
|
114
115
|
File.write(temp_file, edl_contents)
|
115
116
|
title_track = get_title_track(descriptors)
|
116
117
|
# oh the insanity of the console UI...LODO more user friendly player
|
117
|
-
popup
|
118
|
+
@popup ||= NonBlockingDialog.new("Running mplayer. To control it, use space for pause.\n
|
118
119
|
Also right and left arrows to seek, F key for full screen,
|
119
120
|
q to quit.")
|
120
|
-
# LODO dry up mplayer opts...
|
121
|
-
command = "mplayer
|
122
|
-
|
121
|
+
# LODO dry up mplayer dvd opts...
|
122
|
+
command = "mplayer dvd://#{title_track} -nocache -alang en -sid 1000 -edl #{File.expand_path temp_file} -dvd-device #{drive}"
|
123
|
+
p command
|
124
|
+
Thread.new { system_blocking command; @popup.dispose }
|
123
125
|
}
|
124
126
|
|
125
127
|
@watch_unedited = new_jbutton("Watch a DVD unedited (while grabbing to hard drive)", true)
|
@@ -453,11 +455,11 @@ EOL
|
|
453
455
|
lines.each_with_index{|line, idx|
|
454
456
|
if success
|
455
457
|
puts "running #{line}"
|
456
|
-
success = system_blocking(line)
|
458
|
+
success = system_blocking(line)
|
457
459
|
if line =~ /@rem /
|
458
460
|
success = true # these fail fof some reason?
|
459
461
|
else
|
460
|
-
|
462
|
+
puts "\n", 'line failed: ' + line + "\n" + ' see troubleshooting in README.txt file!' unless success
|
461
463
|
end
|
462
464
|
end
|
463
465
|
@progress_bar.set_value(10 + idx/total_size*90)
|
@@ -469,9 +471,10 @@ EOL
|
|
469
471
|
if run_mplayer
|
470
472
|
system_non_blocking "smplayer #{saved_to}"
|
471
473
|
else
|
472
|
-
NonBlockingDialog
|
474
|
+
# lodo NonBlockingDialog once it can get to the top instead of being so buried...
|
473
475
|
show_file = "explorer /e,/select,\"#{File.expand_path(saved_to).to_filename}\""
|
474
|
-
|
476
|
+
system_blocking show_file # returns immediately
|
477
|
+
show_blocking_message_dialog "Done--you may now watch file #{saved_to} in SMPlayer or VLC player"
|
475
478
|
end
|
476
479
|
else
|
477
480
|
show_blocking_message_dialog("Failed--please examine screen output and report back!\nAlso consult the troubleshooting section of the README file.", "Failed", JOptionPane::ERROR_MESSAGE)
|
@@ -534,6 +537,7 @@ EOL
|
|
534
537
|
end
|
535
538
|
|
536
539
|
if $0 == __FILE__
|
537
|
-
SensibleSwing::MainWindow.new
|
540
|
+
a = SensibleSwing::MainWindow.new
|
541
|
+
a.set_visible true
|
538
542
|
puts 'Please use the Sensible Cinema GUI window popup...'
|
539
543
|
end
|
@@ -2,4 +2,5 @@
|
|
2
2
|
@rem disable any local rubyopt settings...
|
3
3
|
@set RUBYOPT=
|
4
4
|
@echo This window will display lots of debug message output!
|
5
|
-
@cd sensible-cinema && java -cp "./vendor/cache/jruby-complete-1.5.5.jar" org.jruby.Main bin\sensible-cinema --create-mode || echo you need to install java first! please report back the error you see! && pause
|
5
|
+
@cd sensible-cinema && java -cp "./vendor/cache/jruby-complete-1.5.5.jar" org.jruby.Main bin\sensible-cinema --create-mode || echo you need to install java first! please report back the error you see! && pause
|
6
|
+
@rem taskkill /f /im mencoder.exe
|
data/go.bat
ADDED
data/goc.bat
ADDED
data/lib/mplayer_edl.rb
CHANGED
@@ -20,8 +20,8 @@ require_relative 'overlayer'
|
|
20
20
|
require_relative 'vlc_programmer'
|
21
21
|
|
22
22
|
class MplayerEdl
|
23
|
-
def self.convert_to_edl specs
|
24
|
-
combined = VLCProgrammer.convert_incoming_to_split_sectors specs
|
23
|
+
def self.convert_to_edl specs, add_this_many_to_end = 0
|
24
|
+
combined = VLCProgrammer.convert_incoming_to_split_sectors specs, add_this_many_to_end
|
25
25
|
out = ''
|
26
26
|
map = {:mute => 1, :blank => 0}
|
27
27
|
for start, endy, type in combined
|
data/lib/vlc_programmer.rb
CHANGED
@@ -26,10 +26,10 @@ class VLCProgrammer
|
|
26
26
|
|
27
27
|
# divides up mutes and blanks so that they don't overlap, preferring blanks over mutes
|
28
28
|
# returns it like [[start,end,type], [s,e,t]...] type like :blank and :mute
|
29
|
-
def self.convert_incoming_to_split_sectors incoming
|
29
|
+
def self.convert_incoming_to_split_sectors incoming, add_this_to_mutes = 0
|
30
30
|
mutes = incoming["mutes"] || {}
|
31
31
|
blanks = incoming["blank_outs"] || {}
|
32
|
-
mutes = mutes.map{|k, v| [OverLayer.translate_string_to_seconds(k), OverLayer.translate_string_to_seconds(v), :mute]}
|
32
|
+
mutes = mutes.map{|k, v| [OverLayer.translate_string_to_seconds(k), OverLayer.translate_string_to_seconds(v) + add_this_to_mutes, :mute]}
|
33
33
|
blanks = blanks.map{|k, v| [OverLayer.translate_string_to_seconds(k), OverLayer.translate_string_to_seconds(v), :blank]}
|
34
34
|
|
35
35
|
combined = (mutes+blanks).sort
|
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.19.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{2010-12-
|
12
|
+
s.date = %q{2010-12-18}
|
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"]
|
@@ -32,6 +32,8 @@ Gem::Specification.new do |s|
|
|
32
32
|
"create or edit sensible cinema decision list files.bat",
|
33
33
|
"experimental_readme.txt",
|
34
34
|
"ext/mkrf_conf.rb",
|
35
|
+
"go.bat",
|
36
|
+
"goc.bat",
|
35
37
|
"gplv3.txt",
|
36
38
|
"how_to_create.txt",
|
37
39
|
"lib/add_any_bundled_gems_to_load_path.rb",
|
data/spec/mplayer_edl.spec.rb
CHANGED
@@ -39,4 +39,22 @@ EOL
|
|
39
39
|
EOL
|
40
40
|
|
41
41
|
end
|
42
|
+
|
43
|
+
it "should add to mutes" do
|
44
|
+
a = MplayerEdl.convert_to_edl({ "mutes"=>{105=>106}, "blank_outs" => {110 => 111} }, 1 )
|
45
|
+
a.should == <<EOL
|
46
|
+
105.0 107.0 1
|
47
|
+
110.0 111.0 0
|
48
|
+
EOL
|
49
|
+
end
|
50
|
+
|
51
|
+
it "should catch overlaps from additions to mutes" do
|
52
|
+
a = MplayerEdl.convert_to_edl({ "mutes"=>{105=>106}, "blank_outs" => {106 => 107} }, 1 )
|
53
|
+
a.should == <<EOL
|
54
|
+
105.0 106.0 1
|
55
|
+
106.0 107.0 0
|
56
|
+
EOL
|
57
|
+
|
58
|
+
end
|
59
|
+
|
42
60
|
end
|
@@ -149,8 +149,8 @@ module SensibleSwing
|
|
149
149
|
@subject.do_copy_dvd_to_hard_drive(false)
|
150
150
|
@subject.background_thread.join
|
151
151
|
@args[-3].should == nil
|
152
|
-
@
|
153
|
-
@
|
152
|
+
@system_blocking_command.should match /explorer/
|
153
|
+
@system_blocking_command.should_not match /fulli/
|
154
154
|
end
|
155
155
|
|
156
156
|
it "should be able to return the full list if it already exists" do
|
@@ -225,11 +225,20 @@ module SensibleSwing
|
|
225
225
|
end
|
226
226
|
|
227
227
|
it "should create an edl and pass it through to mplayer" do
|
228
|
-
|
228
|
+
click_button(:@mplayer_edl).join
|
229
229
|
@system_blocking_command.should match(/mplayer.*-edl/)
|
230
230
|
@system_blocking_command.should match(/-dvd-device /)
|
231
231
|
end
|
232
232
|
|
233
|
+
it "should play edl with elongated mutes" do
|
234
|
+
temp_dir = Dir.tmpdir
|
235
|
+
temp_file = temp_dir + '/mplayer.temp.edl'
|
236
|
+
click_button(:@mplayer_edl).join
|
237
|
+
wrote = File.read(temp_file)
|
238
|
+
# normally "378.0 379.1 1\n"
|
239
|
+
wrote.should include("380.6 1")
|
240
|
+
end
|
241
|
+
|
233
242
|
it "should only prompt for drive once" do
|
234
243
|
count = 0
|
235
244
|
@subject.stub!(:choose_dvd_drive) {
|
@@ -253,8 +262,9 @@ module SensibleSwing
|
|
253
262
|
count.should == 1
|
254
263
|
end
|
255
264
|
|
265
|
+
it "should prompt you if you need to insert a dvd"
|
266
|
+
|
267
|
+
|
256
268
|
end
|
257
269
|
|
258
|
-
it "should prompt you if you need to enter a dvd"
|
259
|
-
|
260
270
|
end
|
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
|
+
- 19
|
8
|
+
- 0
|
9
|
+
version: 0.19.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: 2010-12-
|
17
|
+
date: 2010-12-18 00:00:00 -07:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
@@ -170,6 +170,8 @@ files:
|
|
170
170
|
- create or edit sensible cinema decision list files.bat
|
171
171
|
- experimental_readme.txt
|
172
172
|
- ext/mkrf_conf.rb
|
173
|
+
- go.bat
|
174
|
+
- goc.bat
|
173
175
|
- gplv3.txt
|
174
176
|
- how_to_create.txt
|
175
177
|
- lib/add_any_bundled_gems_to_load_path.rb
|