sensible-cinema 0.18.4 → 0.19.0
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 +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
|