sensible-cinema 0.23.2 → 0.23.3

Sign up to get free protection for your applications and to get access to all the features.
data/LICENSE.TXT CHANGED
@@ -15,4 +15,4 @@ unzip.exe is herein included, under the info-zip license: http://www.info-zip.or
15
15
 
16
16
  some binary builds of dvdid are also distributed here. See http://www.srcf.ucam.org/~cjk32/dvdid
17
17
 
18
- See first also the file "is_it_legal_to_copy_dvds.txt" for more information on legal use in your country.
18
+ See first also the file "documentation/is_it_legal_to_copy_dvds.txt" for more information on legal implications in your country.
data/README CHANGED
@@ -45,17 +45,17 @@ Enjoy your movies!
45
45
 
46
46
  == Installation ==
47
47
 
48
- Installation instructions available here: http://rogerdpack.t28.net/sensible-cinema
49
- NB that you want to download from sourceforge, not from github downloads.
48
+ Installation and usage instructions available here: http://rogerdpack.t28.net/sensible-cinema
49
+ NB that you want to download it sourceforge, not from github downloads.
50
50
 
51
51
  == Creating Your Own Delete Lists, or modifying previously existing ones ==
52
52
 
53
- See the accompanied how_to_create_your_own_delete_lists.txt file.
53
+ See the accompanying documentation/how_to_create_your_own_delete_lists.txt file.
54
54
 
55
55
  == Creating an edited DVD ==
56
56
 
57
- See also is_it_legal_to_copy_dvds.txt for some caveats you should understand.
58
- I don't actually know how I've never burned a DVD.
57
+ I don't actually know how to do this I've never burned a DVD.
58
+ See also is_it_legal_to_copy_dvds.txt for some caveats you should understand first.
59
59
  Windows DVD Maker might help, http://www.dvdflick.net might help.
60
60
  iDVD might help on mac.
61
61
  DO NOT MAKE ILLEGAL COPIES OF DVD's. See is_it_legal_to_copy_dvds.txt.
@@ -148,95 +148,14 @@ See also the "Overly Verbose History" section.
148
148
  and they told us the model we got was defective, and that the new one was much better and we could get it at a discount, but
149
149
  the next one just died also."
150
150
 
151
- == Overly Verbose History ==
152
-
153
- Sensible Cinema was preceded/inspired by EDL's of editors in the 90's, cleanflicks (both analog and digital incantations, late 90's),
154
- then mplayer began to support EDL, zoomplayer added a scene-cut editor,
155
- http://code.google.com/p/movie-content-editor came along, and also many
156
- other editors have historically supported EDL for content creation and/or playback (see wikipedia's "edit decision list"),
157
- such as mythtv/XBMC's EDL support (as suggested by the phantom edit [1], oreillynet.com),
158
- VLC also added playlists with optional start and stop positions per entry. Ffmpeg, mencoder were high quality video editing open source tools.
159
- Once I discovered all of these previously existing programs, I knew the right elements were ready for
160
- something like sensible cinema.
161
-
162
- See also the "related" section, and "motivation" section.
163
-
164
- Originally the project started as a prototype to "watch hulu (online) and netflix instant movies
165
- edited" (it uses/used screen snapshots (of specific locations where the digits are expected, based on windows position)
166
- and then tracks, using OCR of the on-screen (convert to timestamp), to monitor it for specific times relative
167
- to an EDL, and react appropriately.
168
- However, this functionality, though working and available, is disabled currently for potential patent
169
- issues. Some older released versions had it enabled, but not the later releases.
170
- Then I realized I could basically have the same effect by instructing a video player (VLC) to "play from second x to y"
171
- ok "now play from z to q muted" etc. (so kind of a stop and go video player, kind of like controlling the remote for you).
172
- It basically was implementing Edit Decision Lists (EDL's) using playlists and
173
- VLC.
174
- I just passed VLC a playlist, it did all the work for me, without any necessary real-time tracking. This seemed patent friendly,
175
- so I went with this. There are a few released versions with this feature enabled.
176
- They avoid real-time tracking by specifying "play from here to here"
177
- not "skip from here to here" as some other editing players do.
178
-
179
- Then it occurred to me that one could grab the several clean segments
180
- off a movie file, and piece them together to create an edited clean version ( a la cleanflix ). This also avoids
181
- realtime tracking, so I also included this ability.
182
- The playlist option is disabled in later releases, as it was deemed too user-non-friendly, and because VLC timing
183
- is "different" than standard DVD players, so I decided to just use standardized timing, though it worked fine
184
- for VLC playbacks.
185
- I replaced it with support for mplayer's EDL format, which works better, and has consistent timing, though is still a bit buggy.
186
-
187
- You can see a full list of other features that have been published and demonstrated
188
- in the accompanying file change_log_with_feature_list.txt. Each feature mentioned works
189
- in some released version of sensible-cinema though some features have been removed in subsequent versions
190
- (they're all available as rubygems).
191
-
192
- Who knows what the future will hold...
193
-
194
- [1] http://www.oreillynet.com/sysadmin/blog/2005/06/make_your_own_phantom_edit_wit.html
195
-
196
- == Related ==
197
-
198
- The concepts I use aren't novel. Some other previously existing related type examples:
199
-
200
- Edited "airplane edit" style movies.
201
- Commercial TV (ABC, NBC) show their own (edited) movies.
202
- http://en.wikipedia.org/wiki/Linear_video_editing
203
- http://en.wikipedia.org/wiki/Edit_decision_list#Systems_supporting_EDL_playback.2C_not_just_EDL_cutting lists a lot of players that support EDL DVD playback in some form or another.
204
- http://imdb.com tends to have reasonably good lists of what occurs in movies (find a movie, click on "parent's guide" on the left). Sometimes it even lists the time signatures for events (ex: "Labyrinth" http://www.imdb.com/title/tt0091369/parentalguide) which you could use to translate into a sensible-cinema compatible list.
205
- Normal DVD's versus "directors cut" versions of movies (one is at times preferable, content wise)
206
- http://en.wikipedia.org/wiki/Edit_decision_list (it's a linear editing tool, after all--so see the vast list of those)
207
- Clean Flicks (used to) sell edited movies
208
- http://www.videoredo.com/en/index.htm lets you "cut out" offensive content (commercials et al) and burn DVD's from mpeg's/h264 streams
209
- http://www.microsoft.com/windows/windowsmedia/howto/articles/device_control.aspx Windows Media Encoder supports EDL's by timestamp
210
- http://www.mplayerhq.hu/DOCS/HTML/en/edl.html
211
- http://www.sharewareconnection.com/fast-compress-content-and-anti-profanity.htm replaces profanity in web pages with euphemized content.
212
- 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).
213
- http://clearplay.com a commercial "filtering" DVD player See the "motivation" section for a description.
214
- It does offer a few features that sensible cinema supports but disables, for patent reasons, like automatic (user flexible) content decisions. Ours are manual, etc.
215
- 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).
216
- http://forum.bsplayer.com/feature-requests-feedback-suggestions/7157-chapter-playlist-scene-cut-3.html
217
- http://www.inmatrix.com zoom player's "scene cut editor"
218
- http://wiki.xbmc.org/?title=EDL_(commercial_skipping)_and_SceneMarker_support (XBMC's scene cut supporter--also contains links to some other editors' support for EDL's)
219
- 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.
220
- The VCR with its record button, coupled with the stop+rewind button.
221
- http://kb2.adobe.com/cps/191/tn_19151.html Adobe Director MX 2004 can "script" DVD playback.
222
- DVD's themselves allow for "scripted" playback of certain content, allowing controls for jumping from location to location, switching audio/video tracks, etc.
223
- http://code.google.com/p/movie-content-editor (player written in Python, controls VLC based on subtitles and user-input, using edit decision lists in realtime)
224
- http://forums.gbpvr.com/showthread.php?10606-Automated-Cutting-and-Transcoding-Guide-Using-Mencoder/page45
225
- http://www.imdb.com/swiki/special?ParentalGuideHelp (search for "scene description")
226
- http://www.mythtv.org/wiki/Removing_Commercials
227
- showanalyzer http://www.dragonglobal.biz/showanalyzer.html and comskip analyze videos to look for "segments to cut out" automatically (commercials, in this case, but the principle still applies)
228
- Old-school: using the remote control with the pause, mute, stop, fast forward, and play buttons, along with previous knowledge of "questionable" scene locations
229
- The scissors and old VHS tapes (Clean Flicks' origin, if I remember correctly). http://www.familysafemedia.com/home_movie_editor.html (was a helper kit for cutting VHS tape)
230
- Windows Movie Maker. Allows for users to cut and copy scenes of movies. Really any editor can do this.
231
- http://forum.videolan.org/viewtopic.php?f=7&t=56998 VLC Media Player using EDL's via playlists
232
- Corel WinDVD has "Quick Clip" settings for capturing from DVD.
233
- Microsoft's built-in magnifier basically copies DVD's screen output if mouse is placed over playing DVD.
234
- http://superuser.com/questions/85278/how-can-i-cut-scenes-out-of-a-dvd
235
- http://blog.josephhall.com/2008/09/command-line-dvd-authoring-part-1.html
236
- AviSynth can script dvd playback http://forum.doom9.org/archive/index.php/t-109558.html
237
- ps3 media server has edl support: https://github.com/chocolateboy/PMS-EDL maybe would work with DVD's dunno
238
- Anydvd HD's "magic file replacement" for DVD's/blu-ray's
239
- RiffTrax allows for an audio "overlay" to a DVD playback, have their own player to coordinate the two.
151
+ == History ==
152
+
153
+ See the file history_and_related_works_list.txt for an overly verbose history.
154
+ Also see the file change_log_with_feature_list.txt.
155
+
156
+ == Related Works ==
157
+
158
+ See the file history_and_related_works_list.txt
240
159
 
241
160
  == License ==
242
161
 
@@ -249,30 +168,7 @@ See first also the file "is_it_legal_to_copy_dvds.txt" for more information on l
249
168
 
250
169
  == Troubleshooting ==
251
170
 
252
- If you run into some snag, try cleaning your DVD and starting over (delete all files, start again).
253
- Baking soda toothpaste might help with cleaning it.
254
- If it still errs, report it, along with a screen snapshot and steps of
255
- how to reproduce the problem, preferably. See the feedback section.
256
-
257
- It can fail also because a deletion is past end of DVD, or
258
- Also make sure you aren't out of disk space.
259
-
260
- Try playback in "VLC Media Player"
261
-
262
- You try to play back a sensible cinema-ized video file and it plays back without
263
- audio or video (example: windows media player)?
264
-
265
- This probably means you're using windows media player, and don't have "codecs" installed
266
- to handle this type of audio. Not to fear, just download the "ffdshow tryouts" (google for it)
267
- and, when it gives you the option, be sure to check "mpeg2 video" and then
268
- it should "just work." You could also optionally just play the file in VLC Media Player or smplayer
269
- (there's a button for that). Installing "AC3Filter" may help if you can hear no audio.
270
- Really VLC Media Player is your best bet though.
271
-
272
- If the end result picture is too grainy/pixelated or if the overall process is too slow, let me know and I'll work on
273
- making it better. No really, I have some ideas, but want to see if there's need first for improvement in those areas.
274
-
275
- Finally, report back! If there are problems that arise, I want to hear about them so we can help you through it.
171
+ See the file documentation/troubleshooting.txt, or contact (see the feedback/development section).
276
172
 
277
173
  == Thanks ==
278
174
 
@@ -284,21 +180,21 @@ the authors and maintainers of said libraries, and anybody else I forgot to ment
284
180
 
285
181
  == Feedback/Development ==
286
182
 
287
- Feedback, including feature requests, comments, etc. welcome:
183
+ Feedback, including feature requests, comments, etc. all welcome:
288
184
 
289
- Mailing List: http://groups.google.com/group/sensible-cinema
185
+ Mailing List: http://groups.google.com/group/sensible-cinema, or just mail to sensible-cinema@googlegroups.com
290
186
 
291
187
  If you're a developer and want to help out with programmming or look and feel, etc., please do!
292
- See development.txt : github.com/rdp/sensible-cinema
188
+ See development.txt file, and also http://github.com/rdp/sensible-cinema
293
189
 
294
190
  If you want to donate something, please consider donating to a charity of your choice.
295
- No really. Do it for this!
191
+ No really.
296
192
 
297
193
  == Competition/use of files ==
298
194
 
299
195
  Note that competition/use of files from sensible cinema is welcome!
300
196
 
301
- In fact, the current end goal is to publish the delete lists (EDL's) as a separate repository with its
302
- own API, meaning that even "for profit" users can use them for whatever other use they want, hopefully
197
+ In fact, the current end goal is to publish the delete lists (EDL's) to a separate repository with its
198
+ own API under the CC license, meaning that even "for profit" users can use them for whatever other use they want, hopefully
303
199
  good uses :) More direct direct competitors are also welcome here. I only made this because I had to
304
- and nothing like it existed, so if something else springs up, I'm happy to use it instead.
200
+ and nothing like it existed, so if something else springs up, I'm actually happy to use it instead, too.
data/Rakefile CHANGED
@@ -119,17 +119,23 @@ task 'zip' do
119
119
  end
120
120
 
121
121
  def sys arg
122
- raise unless system arg
122
+ 3.times {
123
+ if system arg
124
+ return
125
+ end
126
+ }
127
+ raise arg + ' failed 3x!'
123
128
  end
124
129
 
125
130
  task 'deploy' do
126
131
  name = 'sensible-cinema-' + cur_ver + ".zip"
127
132
  p 'copying to ilab'
128
133
  sys "scp #{name} rdp@ilab1.cs.byu.edu:~/incoming"
134
+ p 'creating sf shell'
135
+ sys "ssh rdp@ilab1.cs.byu.edu 'ssh rogerdpack,sensible-cinema@shell.sourceforge.net create'" # needed for the next command to be able to work [weird]
129
136
  p 'creating sf dir'
130
- sys "ssh rdp@ilab1.cs.byu.edu 'ssh -t rogerdpack,sensible-cinema@shell.sourceforge.net create'" # needed for the next command to work.
131
137
  sys "ssh rdp@ilab1.cs.byu.edu 'ssh rogerdpack,sensible-cinema@shell.sourceforge.net \"mkdir /home/frs/project/s/se/sensible-cinema/#{cur_ver}\"'"
132
- p 'copying into sf'
138
+ p 'copying into sf from ilab'
133
139
  sys "ssh rdp@ilab1.cs.byu.edu 'scp ~/incoming/#{name} rogerdpack,sensible-cinema@frs.sourceforge.net:/home/frs/project/s/se/sensible-cinema/#{cur_ver}/#{name}'"
134
140
  p 'successfully deployed to sf only! ' + cur_ver
135
141
  end
data/TODO CHANGED
@@ -6,13 +6,13 @@
6
6
 
7
7
  === loose ordering/eventually ===
8
8
  linearize [?] hmm...
9
- re-update todo/all docu
9
+ re-update todo/all docu/user feedbacks
10
10
  create web site/api-ify
11
11
  LLC
12
12
  if...back off to just the ffmpeg (plus an "[A,B]" viewer) only...but for now stick with just DVD playback [?] until people want more...
13
13
  no propaganda...
14
14
  no auto subtitles...
15
- try out on people
15
+ fix VLC dvdnav itself +- mplayer DVD EDL
16
16
 
17
17
  == high prio like blocking bugs ==
18
18
 
@@ -25,60 +25,57 @@
25
25
  url -> url inference [hopefully this is cake...]
26
26
  fix the failing 9 digit test the fancy shmancy way :P
27
27
  can pass in a profanity command line
28
- can handle dual md5's
28
+ can handle dual dvdid's
29
29
  youtube: use the javascript API somehow, like http://universalsubtitles.org/en does
30
30
  phase 1: does they use inferred timestamp? can I use that generally, too? [do phase 1--publish simple javascript demo of it muting for awhile after startup]
31
31
  just in case youtube takes over the world
32
32
 
33
- == yes do ordered ==
33
+ == yes do ordered in conjunction with the above ==
34
34
  try buy delete lists from all x,y,z [?] maybe ask for them for free first? ()
35
+ http://www.familysafemovies.com
36
+ cleanflix (earl? that guy [John webster http://www.amazon.com/Make-Edited-Movies-ebook/dp/B004EYT3BU]?)
37
+ cougar video (that looks tough...)
38
+ http://www.cleanplaydvds.com
39
+ cleanfilms.com (now dead) "clean films"
40
+ that one on state street (John webster?)
41
+ http://www.edited-movies.com/buy-edited-movies/
42
+ http://www.clean-edited-movies.com/clean_flicks.htm ray lines ?
43
+ maybe more listed here: http://www.clean-edited-movies.com/clean_flicks.htm
44
+ Almost overnight, competitors to CleanFlicks popped up with twists on the CleanFlicks brand -- CleanFilms, Clean Flix, Clean-Flicks, Family Focus Films
45
+ family flix
46
+ http://theeditedmovieencyclopedia.blogspot.com/2008/08/clean-play-dvds-grand-opening-e-mail.html has grande list
35
47
  next timing thing (notes file)
36
48
 
37
- == yes do, un-ordered currently, from the various release options ==
38
-
39
- unit tests all
40
- after remove the ability to "grab" update readme
41
- check if tmdb uses the full DVDID [?]
42
- just tell mac users "use tsmuxer this way" http://instantitunes.wordpress.com/2010/02/26/use-tsmuxer-on-snow-leopard
43
- for now just make a "convert timestamp" button for mplayer OSD conversion ?
44
- if they disdain to choose a filename the whole thing exits.
45
- an "advanced" screen for obscure things...
46
- maybe after tooltips? I need some user feedback here...
47
- note realtime: clearplay
48
- tell them "I need it as a raw mpeg file, use makemkv with tsmuxer to transform it to an mpeg, or use mplayer to grab it"
49
- "just look at the title track in the EDL, then..."
49
+ == yes do, un-ordered currently, from the various future release options ==
50
+ don't use eval!
51
+ warn/redirect if wrong looking file extension...
52
+ add the "create .edl file for xbmc et al" button
53
+ add a "watch edited from file" option...don't *force* too...?
54
+ check if some other buttons are outdated...
55
+ unit tests (all)
56
+ if they disdain to choose a save to filename the whole thing exits.
50
57
  tell them "to edit easily..."
51
- "for now just ignore any editors...they're just too fickle!"
52
- double check--are my ffmpeg splits really really really the same as mplayer's EDL splits? really?
53
- "hardware DVD player/commercial DVD software"
58
+ double check--are my ffmpeg splits really really really the same as mplayer's EDL DVD splits? really?
54
59
  "you could watch it under mplayer with the OSD turned on"
55
60
  [+ button for same?]
56
- "you could watch it with a normal DVD player (hardware or software, a la powerDDVD et al)"
57
- add button for "convert from DVD Player [mplayer OSD, commercial]" to accurate timestamp [single timestamp]
58
- "you could edit it in basically any editor--they are usually pretty accurate"
59
- "you could edit your file "raw" file "with avidemux, except video will be slightly off, but audio will be on"
60
- "VLC [or any GUI] is always slightly off."
61
61
  can I avoid requiring use of tsmuxer first?
62
+ auto tsmuxer/mediainfo [yikes]?
63
+ MUXOPT --no-pcr-on-video-pid --new-audio-pes --vbr --vbv-len=500 V_MPEG-2, "G:\Video\c\title00.mkv", fps=23.976, ar=As source, track=1, lang=eng A_AC3, "G:\Video\c\title00.mkv", track=2, lang=eng
62
64
  check with blu-ray...do they match timing-wise? sub-title wise?
63
65
  donate tsmuxer, makemkv, http://ffmpeg.zeranoe.com/builds, mulder [?] smplayer
64
- auto tsmuxer/mediainfo [yikes]?
65
- MUXOPT --no-pcr-on-video-pid --new-audio-pes --vbr --vbv-len=500 V_MPEG-2, "G:\Video\c\title00.mkv", fps=23.976, ar=As source, track=1, lang=eng A_AC3, "G:\Video\c\title00.mkv", track=2, lang=eng
66
- instructions: reference the sintel DVD :) (+download it from my site here)
67
66
  add an mencoder convert with mplayer_breaks button :P
68
67
  can I just use mencoder -hr-edl-seek (off mpeg) to avoid the fulli phase? please? does it work super-accurately, after that?
69
68
  maybe just under an "advanced" window...
70
69
  youtube/hulu timings
71
- Watch...unedited smplayer button doesn't play from the right device if you have two :P
72
- get LLC before a "real" domain name
73
- always force them to have a DVD in the drive :P
74
- upconverter
75
70
  split LLC's website+consumer
76
- employ instructions: watch @ realtime after profanity filter first pass :P
77
-
71
+ get LLC before a "real" domain name
72
+ always force them to have a DVD in the drive :P ?
73
+ upconverter
74
+ employee instructions: watch @ realtime after profanity filter first pass :P
78
75
  clear runnings
79
76
  have ben and chris test it out, have it work, then ask about video quality
80
- me try my copy
81
- try disney digital copy/amazon library "local download"...
77
+ me try
78
+ try disney digital copy
82
79
  C player:
83
80
  use DVD navigator
84
81
  just use mplayer EDL syntax, plus a title track (or just detect track change, if long enough, assume... :P) :)
@@ -94,29 +91,16 @@
94
91
  can come out of full screen more easily :P
95
92
  note pay for XP http://windows.microsoft.com/en-US/windows/downloads/windows-media-player/plug-ins search for the cheapest
96
93
  note to them windows vista/7: use ac3filter [?]
97
- donate menumeter $
98
- tool tips for all buttons...tweak naming, too :P
99
- fix/create the "play previously created edited file for current DVD" button
100
- vendorize smplayer * 2
101
- test if latest smplayer can work with edl and seek [?]
102
- be able to use smplayer, never just mplayer [yikes]
103
- apparently just using webdl is like r30369 yipers
94
+ donate menumeter $ makemkv
95
+ reate the "play previously created edited file for current DVD" button
104
96
  note better to previewer "you are about to preview these specific edits..." ?
105
97
  ask for more beta testers for use, ask for more beta testers for creation, too
106
- beta release: rinse and repeat with various ppl
98
+ beta release: rinse and repeat with various ppl
107
99
  youtube videos -> new account name
108
- note "pay us/somebody to do it for you on the google group"?
109
- note "this is the full list--your help is wanted/needed"
110
100
  create a semi-accurate phantom edit EDL
111
101
  http://www.chefelf.com/forums/index.php?showtopic=6176
112
102
  karlie?
113
103
  inventionzy: blu-ray OCR
114
- accomodate 2 disk unique id's...yeah
115
- don't exit program if they don't select a disk originally :) e.g. if they cancel out of "Please pick a DVD Delete list file"
116
- tell them "you can open the file for more specific editing accuracy of timestamps via microsoft Windows Movie Maker" or whatever it is (try it out first :P)
117
- 7: Windows Live Movie Maker
118
- previous: Windows Movie Maker
119
- re-run with several DVD's
120
104
  port to mac OS X--try everything out (all buttons), make sure all works...
121
105
  appears that, for now, have to just use mplayer dvd://
122
106
  ppc dvdid?
@@ -124,11 +108,8 @@
124
108
  bundle a copy of smplayer locally?
125
109
  typically delete unedited.fulli file automatically
126
110
  except if it's a specific scene run test...
127
- the final "edited.avi" really "could/should" be playable in WMP...
128
- it should clear old smplayer options on startup always, just in case, somehow
129
- use smplayer with my mplayer always...unless I'm moving away from that...
130
- @makemkv: show us the title numbers, and number them *by those*
131
- generic EDL run through should be through smplayer...do I need the other way around, even?
111
+ the final "edited.avi" really "could/should" be playable in WMP...if possible
112
+ generic/consumer EDL run through should be through smplayer...do I need the other way around, even?
132
113
 
133
114
  == other lists ==
134
115
 
@@ -142,7 +123,8 @@
142
123
  canceling from the "dvd id" box exits the whole app LOL
143
124
 
144
125
  == DVD-realtime backlog once do, now not do, unordered ==
145
- can "blur out" scenes, or specific pixels on frames, like that guy bleeping out his own profanity just lips plus bleep
126
+ investigate boxee edl (just fer fun...maybe possible?) http://getsatisfaction.com/boxee/topics/commercial_skipping_edl_support
127
+ investigate xbmc dvd edl
146
128
  for mplayer realtime it needs to start early, but end on time
147
129
  mplayer instructions are obscured
148
130
  mplayer EDL allow this:
@@ -158,12 +140,17 @@
158
140
  can I make playback more smooth by upping mplayer cache? does smplayer pass it a parameter?
159
141
  lua VLC EDL plugin? LOL yeah right.
160
142
  investigate: can I use zoomplayer max?
143
+ investigate dvdrsbvdl (windows media center edl plugin)
161
144
 
162
145
  == DVD/DVD-realtime backlog (totally unordered, some very low prio, basically all never do) ==
163
-
146
+ @makemkv: show us the title numbers, and number them *by those*
164
147
  @macports: set notestxt \
165
148
  13 "The MPlayer developers do not believe in making regular releases. \
166
149
  14 You are likely better off using the mplayer-devel port." *before* and after (?) (double check it--would one way work ok? mplayer)
150
+ can I use mplayer's "-edlout" to simplify something something, or maybe I should slave mode mplayer for my own means of the same?
151
+ create real plugins for boxee, XBMC et al
152
+ can "blur out" scenes, or specific pixels on frames, like that guy bleeping out his own profanity just lips plus bleep
153
+ a new button (maybe just in advanced mode?) "play EDL mplayer from file (no transcoding)" [if anybody ever would want/need it--seems related to the new c-based player kind of...?]
167
154
  if it doesn't parse a file you choose it annoyingly loops *forever* "error pooping" "error pooping" [?]
168
155
  "real" dvdid for blu-ray, can work with them (once I figure out timing info...)
169
156
  accept the "user inputable" profanities, based on the DVD (like "thor" or what not...)
@@ -340,7 +327,8 @@ warn when labels both exist and don't match...
340
327
  @mplayer warn before overwrite
341
328
  @mplayer you cannot convert mkv files correctly you silly!
342
329
  bounty dvdnav
343
- fix dvdnav?
330
+ fix dvdnav stuffs?
331
+ ask swank if individuals can rent too?
344
332
 
345
333
  == random non-DVD backlog ... or never do DVD. note: just plow forward, to "grab" available ideas...except that for now, just what *I* plan on needing for myself (filters for what I need/want). ==
346
334
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.23.2
1
+ 0.23.3
data/bin/sensible-cinema CHANGED
@@ -30,12 +30,14 @@ raise 'need jruby' unless OS.java?
30
30
  raise 'need newer jruby!' unless RUBY_DESCRIPTION >= 'jruby 1.6.0' # may not need this since we still have to accomodate for so many oddities :P
31
31
 
32
32
  alias system_original system
33
+ require 'fileutils'
33
34
  require_relative '../lib/mencoder_wrapper'
34
35
  require_relative '../lib/storage'
35
36
  require_relative '../lib/edl_parser'
36
37
  require_relative '../lib/mplayer_edl'
37
38
  require_relative '../lib/play_audio'
38
39
  require_relative '../lib/subtitle_profanity_finder'
40
+ require_relative '../lib/convert_thirty_fps'
39
41
 
40
42
  require 'tmpdir'
41
43
  require_relative '../lib/swing_helpers'
@@ -79,7 +81,7 @@ module SensibleSwing
79
81
  # currently advanced mode only *adds* buttons
80
82
  def new_jbutton title, only_on_create_mode, tooltip = nil
81
83
  button = JButton.new title
82
- button.tool_tip= tooltip
84
+ button.tool_tip = tooltip
83
85
  button.set_bounds(44, @starting_button_y, @button_width, 23)
84
86
  add = true
85
87
  if we_are_in_create_mode
@@ -96,19 +98,29 @@ module SensibleSwing
96
98
  button
97
99
  end
98
100
 
99
- def increment_button_location
100
- @starting_button_y += 30
101
+ def add_text_line line
102
+ return unless we_are_in_create_mode
103
+ jlabel = JLabel.new line
104
+ happy = Font.new("Tahoma", Font::PLAIN, 11)
105
+ jlabel.setFont(happy)
106
+ jlabel.set_bounds(44,@starting_button_y ,460,14)
107
+ @panel.add jlabel
108
+ increment_button_location 18
109
+ end
110
+
111
+ def increment_button_location how_much = 30
112
+ @starting_button_y += how_much
101
113
  end
102
114
 
103
115
  def force_accept_license_first
104
116
  require_blocking_license_accept_dialog 'Sensible Cinema', 'gplv3', 'http://www.gnu.org/licenses/gpl.html', 'Sensible Cinema license agreement',
105
117
  "Sensible Cinema is distributed under the gplv3.\nBY CLICKING \"accept\" YOU SIGNIFY THAT YOU HAVE READ, UNDERSTOOD AND AGREED TO ABIDE BY THE TERMS OF THIS AGREEMENT"
106
- require_blocking_license_accept_dialog 'Sensible Cinema', 'is_it_legal_to_copy_dvds.txt file', File.expand_path(File.dirname(__FILE__) + "/../is_it_legal_to_copy_dvds.txt"),
107
- 'is_it_legal_to_copy_dvds.txt file', 'I acknowledge that I have read, understand, accept and agree to abide by the implications noted in the is_it_legal_to_copy_dvds.txt file'
118
+ require_blocking_license_accept_dialog 'Sensible Cinema', 'is_it_legal_to_copy_dvds.txt file', File.expand_path(File.dirname(__FILE__) + "/../documentation/is_it_legal_to_copy_dvds.txt"),
119
+ 'is_it_legal_to_copy_dvds.txt file', 'I acknowledge that I have read, understand, accept and agree to abide by the implications noted in the documentation/is_it_legal_to_copy_dvds.txt file'
108
120
  Storage['main_license_accepted'] = VERSION
109
121
  end
110
122
 
111
- Storage = Storage.new("sensible_cinema")
123
+ Storage = Storage.new("sensible_cinema_storage")
112
124
 
113
125
  def initialize
114
126
  super "Sensible-Cinema #{VERSION} (GPL)"
@@ -123,10 +135,10 @@ module SensibleSwing
123
135
  panel.set_layout nil
124
136
  add panel # why can't I just slap these down?
125
137
 
126
- jlabel = JLabel.new 'Welcome to Sensible Cinema!' + (we_are_in_create_mode ? " Hover over buttons for descriptions." : "")
138
+ jlabel = JLabel.new 'Welcome to Sensible Cinema!' + (we_are_in_create_mode ? " Hover over buttons for tooltip \"help\" descriptions." : "")
127
139
  happy = Font.new("Tahoma", Font::PLAIN, 11)
128
140
  jlabel.setFont(happy)
129
- jlabel.set_bounds(44,44,360,14)
141
+ jlabel.set_bounds(44,44,460,14)
130
142
  panel.add jlabel
131
143
  @starting_button_y = 120
132
144
  @button_width = 400
@@ -139,7 +151,7 @@ module SensibleSwing
139
151
  do_mplayer_edl
140
152
  }
141
153
 
142
- @create = new_jbutton( "Create edited copy of DVD on Your Hard Drive, from a DVD", false)
154
+ @create = new_jbutton( "Create edited copy of a DVD file on Your Hard Drive", false)
143
155
  @create.tool_tip = <<-EOL
144
156
  This grabs from your DVD and creates a new file on your hard disk like dvd_name_edited.mpg for you to watch later.
145
157
  The file you create will contain the whole movie edited.
@@ -149,17 +161,19 @@ module SensibleSwing
149
161
  do_copy_dvd_to_hard_drive false
150
162
  }
151
163
 
152
- @create_new_edl_for_current_dvd = new_jbutton("Create new Delete List for a new DVD", true,
153
- "If your DVD doesn't have an EDL created for it, this will be your first step--create a new EDL file for it.")
164
+ @create_new_edl_for_current_dvd = new_jbutton("Create new Delete List for a DVD", true,
165
+ "If your DVD doesn't have an EDL created for it, this will be your first step--create an EDL file for it.")
154
166
  @create_new_edl_for_current_dvd.on_clicked do
155
167
  create_brand_new_edl
156
168
  end
157
169
 
158
- @open_help_file = new_jbutton("open how_to_get_files_from_dvd.txt file", false).on_clicked do
159
- open_file_to_edit_it("how_to_get_files_from_dvd.txt")
170
+ @open_help_file = new_jbutton("View Sensible Cinema Documentation", false).on_clicked do
171
+ system_blocking("explorer \"#{__DIR__.to_filename}..\\documentation\"") rescue nil # says it fails in error...
160
172
  end
161
173
 
162
- @open_list = new_jbutton("Open/Edit a previously existing Delete List", true, "If your DVD has a previously existing EDL for it, you can open it to edit it with this button.")
174
+ add_text_line 'Realtime create Options:'
175
+
176
+ @open_list = new_jbutton("Open/Edit a previously created Delete List", true, "If your DVD has a previously existing EDL for it, you can open it to edit it with this button.")
163
177
  @open_list.on_clicked {
164
178
  dialog = FileDialog.new(self, "Pick file to edit")
165
179
  dialog.set_directory EDL_DIR
@@ -175,7 +189,7 @@ module SensibleSwing
175
189
  This is useful if you want to just kind of watch the movie to enjoy it, and look for scenes to cut out.
176
190
  You can use the built-in OSD (on-screen-display) to see what time frame the questionable scenes are at
177
191
  (type "o" to toggle it). However, just realize that the OSD is in 30 fps, and our time stamps are all in 29.97
178
- fps, so you'll need to convert it to be able to use it in a file.
192
+ fps, so you'll need to convert it (the convert timestamp button) to be able to use it in a file.
179
193
  EOL
180
194
  @play_smplayer.on_clicked {
181
195
  play_dvd_smplayer_unedited
@@ -183,21 +197,79 @@ module SensibleSwing
183
197
 
184
198
  @play_mplayer_raw = new_jbutton( "Watch full DVD unedited (realtime mplayer)", true)
185
199
  @play_mplayer_raw.tool_tip = <<-EOL
186
- This is also useful for comparing subtitle files to see
187
- if they have accurate timings.
188
- If you turn on subtitles (v button), then compare your file at say, the 1 hour mark, or 2 hour mark,
200
+ This is also useful for comparing subtitle files to see if they have accurate timings.
201
+ If you turn on subtitles (use the v button), then compare your srt file at say, the 1 hour mark, or 2 hour mark,
189
202
  with the subtitles that mplayer displays, it *should* match exactly with the output in the command line,
190
- like "A: 3600.0" should match your subtitle line of approximately "01:00:00,000"
203
+ like "V: 3600.0" should match your subtitle line "01:00:00,000 --> ..."
191
204
  EOL
192
205
  @play_mplayer_raw.on_clicked {
193
206
  play_dvd_smplayer_unedited true
194
207
  }
195
208
 
196
- # @watch_created_file = new_jbutton( "Watch edited file copy of DVD", false).on_clicked {
209
+ # @watch_created_file = new_jbutton( "Watch the edited file version of DVD", false).on_clicked {
197
210
  # raise 'todo' # TODO
198
211
  # }
199
212
 
200
- @preview_section = new_jbutton( "Preview a certain time frame from file (edited)", true )
213
+ # TODO "Watch a file using an EDL on it"
214
+
215
+
216
+ @display_unique = new_jbutton( "Display current DVD's unique ID", true )
217
+ @display_unique.tool_tip = "This is useful to setup a DVD's 'unique ID' within an EDL for it. \nIf your EDL doesn't have a line like disk_unique_id => \"...\" then you will want to run this to be able to add that line in."
218
+ @display_unique.on_clicked {
219
+ drive, volume, dvd_id = choose_dvd_drive
220
+ # display it, allow them to copy and paste it out
221
+ show_copy_pastable_string("#{drive} #{volume} for your copying+pasting pleasure (highlight, then ctrl+c to copy)\n
222
+ This is USED to identify a disk to match it to its EDL, later.", "\"disk_unique_id\" => \"#{dvd_id}\",")
223
+ }
224
+
225
+ @convert_timestamp = new_jbutton( "Convert timestamp from DVD player time to EDL time", true)
226
+ @convert_timestamp.tool_tip=<<-EOL
227
+ Our EDL's assume 29.97 fps (which is what a DVD is). Unfortunately most hardware/commercial DVD players
228
+ assume that the DVD is 30 fps, which means that if you watch a movie with them, then use those timestamps
229
+ for your EDL file, you will be off, at the end of a 2 hour film, by 8 seconds. So all your edits will be wrong.
230
+ How to fix: convert your times from "DVD player" time to "EDL accurate" time by using this button.
231
+ This is necessary for hardware DVD player timestamps, PowerDVD, Windows Media Player (playing a DVD),
232
+ but not necessary for smplayer timestamps (or mplayer's "V: 3600" in the command line), which are already 29.97.
233
+ smplayer's on-screen-display (the 'o' key) is accurate (and doesn't suffer from dvd_mplayer_splits)
234
+ but is 30 fps, so timestamps would need to be converted.
235
+ Dont use VLC for DVD timestamps at all--it can get up to 30s off! VLC playing back a file is usually pretty accurate to 29.97.
236
+ In general, GUI's like VLC or smplayer are always a tidge off (maybe 0.3s) from the right timestamp, so take that into consideration.
237
+ Mplayers "V: 3600" is usually right on, however.
238
+ EOL
239
+ @convert_timestamp.on_clicked {
240
+ thirty_fps = get_user_input("Enter your DVD (30 fps) timestamp, I'll convert it to 29.97 (usable in EDL's):", "1:00:00.1")
241
+ thirty_fps_in_seconds = EdlParser.translate_string_to_seconds thirty_fps
242
+ twenty_nine_seven_fps = ConvertThirtyFps.from_thirty(thirty_fps_in_seconds)
243
+ human_twenty_nine_seven = EdlParser.translate_time_to_human_readable twenty_nine_seven_fps, true
244
+ show_copy_pastable_string("29.97 (sensible cinema usable) value would be: ", human_twenty_nine_seven)
245
+ }
246
+
247
+ @parse_srt = new_jbutton("Parse a subtitle file (.srt) to detect profanities", true)
248
+ @parse_srt.tool_tip = <<-EOL
249
+ You can download a .srt file and parse it to automaticaly search for profanities.
250
+ Basically download it from opensubtitles.org (possibly from other places, too),
251
+ (enter dvd name in the search box, click a result, click one from the list with an English flag, then click 'Download(zip)')
252
+ Once you download the zip, unzip it, and then compare the timestamps in it with those on the DVD (see the button "Watch DVD unedited (realtime mplayer)")
253
+ EOL
254
+ @parse_srt.on_clicked {
255
+ fc = new_filechooser
256
+ fc.set_title "Pick srt file:"
257
+ if old_dir = Storage['old_srt_dir']
258
+ fc.set_current_directory JFile.new(old_dir)
259
+ end
260
+ filename = fc.go
261
+ Storage['old_srt_dir'] = fc.get_current_directory.to_s
262
+ Storage['start_time']
263
+
264
+ parsed = SubtitleProfanityFinder.edl_output [filename]
265
+ File.write(EdlTempFile, "# add these into your mute section if they apply\n" + parsed)
266
+ open_file_to_edit_it EdlTempFile
267
+ }
268
+
269
+
270
+ add_text_line 'Create Options that first create a local intermediary file unless it already exists:'
271
+
272
+ @preview_section = new_jbutton( "Preview a certain time frame from fulli file (edited)", true )
201
273
  @preview_section.tool_tip = <<-EOL
202
274
  This allows you to preview an edit easily.
203
275
  It is the equivalent of saying \"watch this file edited from exactly minute x second y to minute z second q"
@@ -207,28 +279,34 @@ module SensibleSwing
207
279
  do_copy_dvd_to_hard_drive true
208
280
  }
209
281
 
210
- @preview_section_unedited = new_jbutton("Preview a certain time frame (unedited)", true)
282
+ @preview_section_unedited = new_jbutton("Preview a certain time frame from fulli file (unedited)", true)
211
283
  @preview_section.tool_tip = "Allows you to view a certain time frame unedited (ex: 10:00 to 10:05), so you can narrow down to pinpoint where questionable scenes are, etc. This is the only way to view a specific scene if there are not cuts within that scene yet."
212
284
  @preview_section_unedited.on_clicked {
213
285
  do_copy_dvd_to_hard_drive true, false, true
214
286
  }
215
287
 
216
- @rerun_preview = new_jbutton( "Re-run most recently watched preview time frame", true )
288
+ @rerun_preview = new_jbutton( "Re-run most recently watched preview time frame from fulli file", true )
217
289
  @rerun_preview.tool_tip = "This will re-run the preview that you most recently performed. Great for checking to see if you last edits were successful or not."
218
290
  @rerun_preview.on_clicked {
219
291
  repeat_last_copy_dvd_to_hard_drive
220
292
  }
221
293
 
222
- @fast_preview = new_jbutton( "fast preview all (smplayer EDL on file)", true)
223
- @fast_preview.tool_tip = "Plays smplayer with an EDL. \nThis gives you a rough estimate to see if your edits are accurate, and is really fast to seek, etc.\nThis is useful because you can't use mplayer on a DVD if it has any DVD timestamp splits in it [some DVD's are buggy]"
294
+ # Maybe this button should go too...
295
+ @fast_preview = new_jbutton("fast preview all from fulli file (smplayer EDL)", true)
296
+ @fast_preview.tool_tip = <<-EOL
297
+ Plays smplayer on a file with an EDL.
298
+ This gives you a rough estimate to see if your edits are accurate, and is really fast to seek, etc.
299
+ This is useful because you can't use mplayer on a DVD for accurate timestamps if it has any
300
+ timestamp splits in it [because some DVD's are buggy]
301
+ EOL
224
302
  @fast_preview.on_clicked {
225
303
  success, wrote_to_here_fulli = do_copy_dvd_to_hard_drive false, true
226
304
  sleep 0.5 # lodo take out ???
227
305
  background_thread.join if background_thread # let it write out the original fulli, if necessary [?]
228
306
  nice_file = wrote_to_here_fulli #+ ".fast.mpg"
229
307
  if false#!File.exist?(nice_file)
230
- p = show_non_blocking_message_dialog("Creating quick lookup file--NB that for each changed deletion,
231
- you'll need to restart the fast preview SMplayer
308
+ p = show_non_blocking_message_dialog("Creating quick lookup file--NB that for each changed deletion setting,
309
+ you'll need to save your file and restart the fast preview SMplayer instance.
232
310
  Also note that the start and end times will be slightly off if reality [delayed]
233
311
  Also note that while doing fast preview, it can be doing a normal preview as well
234
312
  in the background, simultaneously.")
@@ -241,54 +319,16 @@ module SensibleSwing
241
319
  set_smplayer_opts "-edl #{EdlTempFile}"
242
320
  thread = do_mplayer_edl( "smplayer_portable #{nice_file}") # note the smplayer, but it's for the fast file...
243
321
  }
244
-
245
- # TODO remove me...
246
- @watch_unedited = new_jbutton("Watch full DVD unedited (while simultaneously grabbing file to hard drive)", true)
247
- @watch_unedited.on_clicked {
248
- success_no_run, wrote_to_here_fulli = do_copy_dvd_to_hard_drive false, true, true
249
- sleep 5 unless success_no_run
250
- command = "smplayer_portable #{wrote_to_here_fulli}"
251
- system_non_blocking command
252
- }
253
-
254
- # until I can let them know *why* they would ever need this button...
255
- @display_unique = new_jbutton( "Calculate DVD's unique ID", true )
256
- @display_unique.tool_tip = "This is useful to setup a DVD's 'unique ID' within an EDL for it. If your EDL doesn't have a line like disk_unique_id => \"...\" then you will want to run this to add it in."
257
- @display_unique.on_clicked {
258
- drive, volume, dvd_id = choose_dvd_drive
259
- # display it, allow them to copy and paste it out
260
- get_user_input("#{drive} #{volume} for your copying+pasting pleasure (highlight, then ctrl+c to copy)\n
261
- This is USED to identify a disk to match it to its EDL, later.", "\"disk_unique_id\" => \"#{dvd_id}\",")
262
- }
263
322
 
264
- @upload = new_jbutton("Upload/E-mail suggestion/Submit anything", true)
323
+ add_text_line 'Contact:'
324
+
325
+ @upload = new_jbutton("Upload/E-mail suggestion/Contact/Submit anything", true) # keep this one last! :)
265
326
  @upload.tool_tip = "We welcome all feedback! For example if you create a new DVD EDL, please submit it back to us so that others can benefit from it!"
266
327
  @upload.on_clicked {
267
328
  system_non_blocking("start mailto:sensible-cinema@googlegroups.com")
268
329
  system_non_blocking("start http://groups.google.com/group/sensible-cinema")
269
330
  }
270
331
 
271
- @parse_srt = new_jbutton("Parse a subtitle file (.srt) to detect profanities", true)
272
- @parse_srt.tool_tip = <<-EOL
273
- You can download a .srt file and parse it to automaticaly search for profanities.
274
- Basically download it from opensubtitles.org (possibly from other places, too),
275
- (enter dvd name in the search box, click a result, click one from the list with an English flag, then click 'Download(zip)')
276
- Once you download the zip, unzip it, and then compare the timestamps in it with those on the DVD (see the button "Watch DVD unedited (realtime mplayer)")
277
- EOL
278
- @parse_srt.on_clicked {
279
- fc = new_filechooser
280
- fc.set_title "Pick srt file:"
281
- if old_dir = Storage['old_srt_dir']
282
- fc.set_current_directory JFile.new(old_dir)
283
- end
284
- filename = fc.go
285
- Storage['old_srt_dir'] = fc.get_current_directory.to_s
286
- Storage['start_time']
287
-
288
- parsed = SubtitleProfanityFinder.edl_output [filename]
289
- File.write(EdlTempFile, "# add these into your mute section if they apply\n" + parsed)
290
- open_file_to_edit_it EdlTempFile
291
- }
292
332
 
293
333
  @progress_bar = JProgressBar.new(0, 100)
294
334
  @progress_bar.set_bounds(44,@starting_button_y,@button_width,23)
@@ -314,18 +354,16 @@ module SensibleSwing
314
354
  check_for_dependencies
315
355
  end
316
356
 
317
- require 'fileutils'
318
-
319
357
  def set_smplayer_opts to_this
320
- smplayer_prefs_file = File.expand_path("~/.smplayer/smplayer.ini")
321
- old_prefs = File.read(smplayer_prefs_file) rescue ''
322
- old_prefs = "[advanced]\nmplayer_additional_options=" unless old_prefs.contain? 'mplayer_additional_options='
323
- new_prefs = old_prefs.gsub(/mplayer_additional_options=.*/, "mplayer_additional_options=#{to_this}")
324
- FileUtils.mkdir_p File.dirname(smplayer_prefs_file) # case it doesn't exist'
325
- File.write(smplayer_prefs_file, new_prefs)
326
- p 'wrote', new_prefs.length, smplayer_prefs_file, to_this
327
- # no worky doze File.write(File.expand_path('~/.mplayer/config'), to_this)
328
- smplayer_prefs_file
358
+ smplayer_prefs_file = File.expand_path("~/.smplayer/smplayer.ini")
359
+ old_prefs = File.read(smplayer_prefs_file) rescue ''
360
+ old_prefs = "[advanced]\nmplayer_additional_options=" unless old_prefs.contain? 'mplayer_additional_options='
361
+ new_prefs = old_prefs.gsub(/mplayer_additional_options=.*/, "mplayer_additional_options=#{to_this}")
362
+ FileUtils.mkdir_p File.dirname(smplayer_prefs_file) # case it doesn't exist'
363
+ File.write(smplayer_prefs_file, new_prefs)
364
+ p 'wrote', new_prefs.length, smplayer_prefs_file, to_this
365
+ # no worky doze File.write(File.expand_path('~/.mplayer/config'), to_this)
366
+ smplayer_prefs_file
329
367
  end
330
368
 
331
369
  def create_brand_new_edl
@@ -431,7 +469,7 @@ module SensibleSwing
431
469
  command = "#{exe} dvdnav://#{title_track_maybe_nil}/#{drive} -osd-fractions 2 -nocache "
432
470
  p command
433
471
  @play_smplayer_warn ||= show_non_blocking_message_dialog "Directions:
434
- 'o' key: turn on on-screen time stamps (note: these are 30 fps timestamps so will need to be converted to use).
472
+ 'o' key: turn on on-screen-display timestamps (note: these are 30 fps timestamps so will need to be converted to use).
435
473
  'v' key: turn off subtitles.
436
474
  '.' key: step one frame.
437
475
  'f' for full screen."
@@ -480,11 +518,11 @@ module SensibleSwing
480
518
  puts 'Please confirm license agreement in open window.'
481
519
  old = ['no', 'yes', 'ok'].map{|name| 'OptionPane.' + name + 'ButtonText'}.map{|name| [name, UIManager.get(name)]}
482
520
  UIManager.put("OptionPane.yesButtonText", 'Accept')
483
- UIManager.put("OptionPane.noButtonText", "View License (#{license_name})")
521
+ UIManager.put("OptionPane.noButtonText", "View File (#{license_name})")
484
522
  # cancel button stays the same...
485
523
 
486
524
  message ||= "Sensible Cinema requires a separately installed program (#{program}). You can install this program
487
- separately, or Sensible Cinema can download it for you.
525
+ separately to the vendor/cache directory, or Sensible Cinema can download it for you.
488
526
  By clicking accept, below, you are confirming that you have read and agree to be bound by the
489
527
  terms of its license (the #{license_name}), located at #{license_url_should_also_be_embedded_by_you_in_message}.
490
528
  Click 'View License' to view it. If you do not agree to these terms, click 'Cancel'. You also agree that this is a
@@ -497,6 +535,7 @@ module SensibleSwing
497
535
  # 2 is cancel
498
536
  if returned == 1
499
537
  system_non_blocking("start #{license_url_should_also_be_embedded_by_you_in_message}")
538
+ puts "Please restart after reading license agreement, to be able to then accept it."
500
539
  System.exit 1
501
540
  end
502
541
  if returned == 2
@@ -639,12 +678,16 @@ module SensibleSwing
639
678
 
640
679
  include_class javax.swing.UIManager
641
680
 
642
- def get_user_input(message, default = '')
681
+ def get_user_input(message, default = '', cancel_ok = false)
643
682
  received = JOptionPane.showInputDialog(message, default)
644
- raise 'user canceled' unless received
683
+ raise 'user canceled' unless received unless cancel_ok
645
684
  received
646
685
  end
647
686
 
687
+ def show_copy_pastable_string(message, value)
688
+ get_user_input message, value, true
689
+ end
690
+
648
691
  def parse_edl path
649
692
  EdlParser.parse_file path
650
693
  end
@@ -659,10 +702,10 @@ module SensibleSwing
659
702
  edit_list_path = single_edit_list_matches_dvd(dvd_id)
660
703
  if !edit_list_path && choose_file
661
704
  fc = FileDialog.new(self)
662
- fc.set_title "Please pick a DVD Delete List File (non matching found)"
705
+ fc.set_title "Please pick a DVD Delete List File (none found that seem to match #{dvd_volume_name})--or create one for it"
663
706
  fc.set_directory EDL_DIR
664
707
  edit_list_path = fc.go
665
- raise 'cancelled' unless edit_list_path
708
+ raise 'cancelled choosing an EDL' unless edit_list_path
666
709
  end
667
710
  @_edit_list_path = edit_list_path
668
711
  end
@@ -692,7 +735,7 @@ module SensibleSwing
692
735
  @_get_import_from_filename ||=
693
736
  begin
694
737
  file_from_chooser = new_filechooser Storage['get_import_from_filename_dir']
695
- file_from_chooser.set_title "Please choose the file that is your ripped version of #{dvd_title} title ##{dvd_title_track} (.mpg or .ts--see how_to_use.txt)"
738
+ file_from_chooser.set_title "Please choose the file that is your ripped version of #{dvd_title} title ##{dvd_title_track} (.mpg or .ts--see documentation/how_to_get_files_from_dvd.txt file)"
696
739
  outgoing = file_from_chooser.go
697
740
  Storage['get_import_from_filename_dir'] = File.dirname(outgoing)
698
741
  outgoing
@@ -763,7 +806,7 @@ module SensibleSwing
763
806
  save_to_edited = get_save_to_filename dvd_friendly_name
764
807
  fulli = MencoderWrapper.calculate_fulli_filename save_to_edited
765
808
  if exit_early_if_fulli_exists
766
- if fulli_dot_done_file_exists
809
+ if fulli_dot_done_file_exists? save_to_edited
767
810
  return [true, fulli]
768
811
  end
769
812
  # make it create a dummy response file for us :)
@@ -811,16 +854,15 @@ module SensibleSwing
811
854
  to #{file_from} (#{dvd_title}).
812
855
  Copying to #{save_to}.
813
856
  EOL
814
- if !fulli_dot_done_file_exists save_to
857
+ if !fulli_dot_done_file_exists? save_to
815
858
  popup_message += "This could take quite awhile (several hours), and will prompt you with a chime noise when it is done.\n
816
859
  You can close this window and minimize sensible cinema and continue using your computer while it runs in the background."
817
860
  end
818
861
 
819
862
  if !start_time
820
863
  # assume a full run..
821
- popup_message += "\nNB that the created file will be playable only with VLC (possibly also with smplayer), but probably not with windows media player."
864
+ popup_message += "NB that the created file will be playable only with VLC (possibly also with smplayer), but probably not with windows media player."
822
865
  end
823
-
824
866
 
825
867
  popup = show_non_blocking_message_dialog(popup_message, "OK")
826
868
 
@@ -910,8 +952,7 @@ module SensibleSwing
910
952
  @saved_opticals = opticals # since we force them to have their disc already in there...guess this is ok for os x :)
911
953
  return @_choose_dvd_drive
912
954
  else
913
- puts 'did not select a drive...hard exiting'
914
- java.lang.System.exit 1
955
+ raise 'did not select a drive...'
915
956
  end
916
957
  end
917
958