sensible-cinema 0.23.5 → 0.23.6

Sign up to get free protection for your applications and to get access to all the features.
data/LICENSE.TXT CHANGED
@@ -13,7 +13,7 @@ Ffmpeg is included, under the GPLv2: http://www.ffmpeg.org/legal.html http://www
13
13
 
14
14
  unzip.exe is herein included, under the info-zip license: http://www.info-zip.org/license.html
15
15
 
16
- Some binary builds of dvdid are also distributed here. See http://www.srcf.ucam.org/~cjk32/dvdid
16
+ Some binary builds of dvdid are also distributed here. See http://www.srcf.ucam.org/~cjk32/dvdid (in an email he said he'd release them under a BSD or other permissive type license)
17
17
 
18
18
  TsMuxer binaries are included, with their own license, see vendor/tsmuxer1.10.6/licence.txt (it allows for redistribution).
19
19
 
data/README CHANGED
@@ -177,6 +177,8 @@ The combination of these tools made programming this actually something of a ple
177
177
  and a breeze cross platform.
178
178
  Sensible Cinema leverages code from lots of other projects (see LICENSE.TXT)--many thanks to
179
179
  the authors and maintainers of said libraries, and anybody else I forgot to mention.
180
+ Sensible Cinema is a conglomeration of the good ideas from several people who contacted me
181
+ over time. Thanks for your contributions.
180
182
 
181
183
  == Feedback/Development ==
182
184
 
data/Rakefile CHANGED
@@ -119,7 +119,10 @@ task 'zip' do
119
119
  end
120
120
 
121
121
  def sys arg
122
- 3.times {
122
+ 3.times { |n|
123
+ if n > 0
124
+ p 'retrying ' + arg
125
+ end
123
126
  if system arg
124
127
  return
125
128
  end
data/TODO CHANGED
@@ -17,9 +17,6 @@
17
17
  == high prio like blocking bugs ==
18
18
 
19
19
  == under next release specific items: ==
20
- mplayerx work?
21
- latest dir "conflict" for grabbing sintel from file
22
- can I just use ffmpeg for -> ts ? http://eotmsnotes.wordpress.com/2011/04/25/tsmuxer-notes/
23
20
  cheap minimize demo "fake auto" :)
24
21
  friday 2: http://www.youtube.com/watch?v=SDeLjcTxMaM&feature=player_profilepage
25
22
  cheap static-ify demo for mutes
@@ -34,6 +31,7 @@
34
31
  just in case youtube takes over the world
35
32
 
36
33
  == yes do ordered in conjunction with the above ==
34
+ can I just use ffmpeg for -> ts ? http://eotmsnotes.wordpress.com/2011/04/25/tsmuxer-notes/
37
35
  try buy delete lists from all x,y,z [?] maybe ask for them for free first? ()
38
36
  http://www.familysafemovies.com
39
37
  cleanflix (earl? that guy [John webster http://www.amazon.com/Make-Edited-Movies-ebook/dp/B004EYT3BU]?)
@@ -47,20 +45,24 @@
47
45
  Almost overnight, competitors to CleanFlicks popped up with twists on the CleanFlicks brand -- CleanFilms, Clean Flix, Clean-Flicks, Family Focus Films
48
46
  family flix
49
47
  http://theeditedmovieencyclopedia.blogspot.com/2008/08/clean-play-dvds-grand-opening-e-mail.html has grande list
50
- movie mask
48
+ movie mask wayback machine
51
49
  next timing thing (notes file)
50
+ add the "create .edl file for xbmc/smplayer" button
52
51
 
53
52
  == yes do, un-ordered currently, from the various future release options ==
54
- bring to top after a conversion--we get hidden!
53
+ mplayerx work?
54
+ if not, patch that fella...and tell them to fix it!
55
+ can accept straight ".edl" files too, as my input
56
+ decide if I want to just use edl's or my fancy-shmancy, or maybe my fancy-shmancy to wrap EDL's?
57
+ don't use eval!
58
+ bring to top after a conversion, and for prompts...we get hidden!
55
59
  ascertain how accurate mplayer EDL is...I guess compared to...umm...something?
56
60
  fix discrepancy between EDL mplayer and ffmpeg...maybe a new button "accurate EDL playback"?
57
- don't use eval!
58
61
  can auto-use tsmuxer at all
59
62
  add buttons for "convert 4945 to x" and vice versa...
60
63
  warn/redirect if wrong looking file extension...
61
64
  mac just die with instructions to use tsmuxer first...
62
- add the "create .edl file for xbmc et al" button
63
- add a "watch edited from file" option...don't *force* too...?
65
+ add a "watch edited from local file" option...
64
66
  check if some other buttons are outdated...
65
67
  unit tests (all)
66
68
  double check--are my ffmpeg splits really really really the same as mplayer's EDL DVD splits? really?
@@ -115,6 +117,7 @@
115
117
  except if it's a specific scene run test...
116
118
  the final "edited.avi" really "could/should" be playable in WMP...if possible
117
119
  generic/consumer EDL run through should be through smplayer...do I need/want straight mplayer option too though?
120
+ do I need tsmuxer?
118
121
 
119
122
  == other lists ==
120
123
 
@@ -128,9 +131,12 @@
128
131
  add button "fast preview one" (from file)
129
132
  add button "fast preview one" (from dvd)
130
133
 
131
- == DVD-realtime backlog once do, now not do, unordered ==
134
+ == DVD-realtime backlog once yes do, now not do, unordered ==
135
+
132
136
  investigate boxee edl (just fer fun...maybe possible?) http://getsatisfaction.com/boxee/topics/commercial_skipping_edl_support
133
- investigate xbmc dvd edl
137
+ investigate xbmc dvd edl how do you do that?
138
+ maybe use smplayer full-screened, to avoid?
139
+ investigate WMC "call out to mplayer EDL" or the like...
134
140
  for mplayer realtime it needs to start early, but end on time
135
141
  mplayer instructions are obscured
136
142
  mplayer EDL allow this:
@@ -149,6 +155,13 @@
149
155
  investigate dvdrsbvdl (windows media center edl plugin)
150
156
 
151
157
  == DVD+-DVD-realtime backlog (totally unordered, some very low prio, basically all never do) ==
158
+ make this thing load faster: don't require rubygems...uh...faster_require?
159
+ does xbmc need a "convert to 30fps edl" for DVD?
160
+ @xbmc can you call out to another player prog plz?
161
+ @xbmc "command line play this dvd with this EDL" :)
162
+ ask mplayer "could you make the OSD available to smplayer so it can get the right timestamps at least for its display?"
163
+ some way to hide spoilers, like soundtrack adds that ruin the movie for ya...
164
+ decide on "community" -- should it be all my own community? mymovies community?
152
165
  the auto-matcher filename to subtitles [?]
153
166
  "media browser" plugin?
154
167
  @makemkv: show us the title numbers, and number them *by those*
@@ -338,7 +351,7 @@ bounty dvdnav
338
351
  fix dvdnav stuffs?
339
352
  ask swank if individuals can rent too?
340
353
 
341
- == 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). ==
354
+ == random non-DVD backlog ... or never do DVD. ==
342
355
 
343
356
  @mplayer: you return the wrong return code, sillys! https://gist.github.com/1056292
344
357
  @smplayer: bounty or me fix: their for their display [if they use get_time_pos isn't that enough ?]
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.23.5
1
+ 0.23.6
data/bin/sensible-cinema CHANGED
@@ -122,56 +122,35 @@ module SensibleSwing
122
122
 
123
123
  Storage = Storage.new("sensible_cinema_storage")
124
124
 
125
- def initialize
126
- super "Sensible-Cinema #{VERSION} (GPL)"
127
- if !(Storage['main_license_accepted'] == VERSION)
128
- force_accept_license_first
129
- end
130
-
131
- setDefaultCloseOperation JFrame::EXIT_ON_CLOSE
132
- panel = JPanel.new
133
- @panel = panel
134
- @buttons = []
135
- panel.set_layout nil
136
- add panel # why can't I just slap these down?
137
-
138
- jlabel = JLabel.new 'Welcome to Sensible Cinema!' + (we_are_in_create_mode ? " Hover over buttons for tooltip \"help\" descriptions." : "")
139
- happy = Font.new("Tahoma", Font::PLAIN, 11)
140
- jlabel.setFont(happy)
141
- jlabel.set_bounds(44,44,460,14)
142
- panel.add jlabel
143
- @starting_button_y = 120
144
- @button_width = 400
145
-
146
- ## BUTTONS ##
147
-
148
- @mplayer_edl = new_jbutton( "Watch DVD/file edited on computer (realtime -- mplayer EDL)", false)
149
- @mplayer_edl.tool_tip = "This will watch your DVD in realtime from your computer while skipping/muting the questionable scenes."
150
- @mplayer_edl.on_clicked {
151
- do_mplayer_edl
152
- }
125
+
126
+ def setup_advanced_buttons
153
127
 
154
- @create = new_jbutton( "Create edited copy of a DVD's file on Your Hard Drive", false)
155
- @create.tool_tip = <<-EOL
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.
157
- The file you create will contain the whole movie edited.
158
- It takes quite awhile maybe 2 hours.
128
+ add_text_line 'Realtime create Options:'
129
+
130
+ @create_dot_edl = new_jbutton( "Create a moviefilename.edl file", true)
131
+ @create_dot_edl.tool_tip = <<-EOL
132
+ Create a moviefilename.edl file (corresponding to moviefilename.some_ext which already exists)
133
+ XBMC/smplayer (smplayer can be used by WMC plugins, etc.) "automagically detect",
134
+ if it exists, and automatically use it .edl to show that file edited played back.
159
135
  EOL
160
- @create.on_clicked {
161
- do_copy_dvd_to_hard_drive false
136
+ @create_dot_edl.on_clicked {
137
+ filename_mpg = new_existing_file_selector_and_select_file( "pick moviefile (like abc.mpg)")
138
+ assert_ownership_dialog
139
+ edl_filename = new_existing_file_selector_and_select_file( "Pick EDL file", EDL_DIR)
140
+ descriptors = EdlParser.parse_file edl_filename
141
+ # LODO these timings...DRY up...plus is XBMC the same? what about on a slower computer?
142
+ edl_contents = MplayerEdl.convert_to_edl descriptors, add_secs_end = 0.0, add_secs_beginning = 0.5, splits = []
143
+ output_file = filename_mpg.gsub(/\.[^\.]+$/, '') + '.edl'
144
+ File.write(output_file, edl_contents)
145
+ raise unless File.exist?(output_file)
146
+ show_blocking_message_dialog("created #{output_file}")
162
147
  }
163
-
148
+
164
149
  @create_new_edl_for_current_dvd = new_jbutton("Create new Delete List for a DVD", true,
165
150
  "If your DVD doesn't have an EDL created for it, this will be your first step--create an EDL file for it.")
166
151
  @create_new_edl_for_current_dvd.on_clicked do
167
152
  create_brand_new_edl
168
153
  end
169
-
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...
172
- end
173
-
174
- add_text_line 'Realtime create Options:'
175
154
 
176
155
  @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.")
177
156
  @open_list.on_clicked {
@@ -208,7 +187,7 @@ module SensibleSwing
208
187
  # raise 'todo' # TODO
209
188
  # }
210
189
 
211
- # TODO "Watch a file using an EDL on it"
190
+ # TODO button "Watch a file using an EDL on it"
212
191
 
213
192
 
214
193
  @display_unique = new_jbutton( "Display current DVD's unique ID", true )
@@ -256,8 +235,7 @@ module SensibleSwing
256
235
  open_file_to_edit_it EdlTempFile
257
236
  }
258
237
 
259
-
260
- add_text_line 'Create Options that first create a local intermediary file unless it already exists:'
238
+ add_text_line 'Create Options that first create/use a local intermediary file:'
261
239
 
262
240
  @preview_section = new_jbutton( "Preview a certain time frame from fulli file (edited)", true )
263
241
  @preview_section.tool_tip = <<-EOL
@@ -310,15 +288,63 @@ module SensibleSwing
310
288
  thread = do_mplayer_edl( "smplayer_portable #{nice_file}") # note the smplayer, but it's for the fast file...
311
289
  }
312
290
 
291
+ end
292
+
293
+ def initialize
294
+ super "Sensible-Cinema #{VERSION} (GPL)"
295
+ if !(Storage['main_license_accepted'] == VERSION)
296
+ force_accept_license_first
297
+ end
298
+
299
+ setDefaultCloseOperation JFrame::EXIT_ON_CLOSE
300
+ panel = JPanel.new
301
+ @panel = panel
302
+ @buttons = []
303
+ panel.set_layout nil
304
+ add panel # why can't I just slap these down?
305
+
306
+ jlabel = JLabel.new 'Welcome to Sensible Cinema!' + (we_are_in_create_mode ? " Hover over buttons for tooltip \"help\" descriptions." : "")
307
+ happy = Font.new("Tahoma", Font::PLAIN, 11)
308
+ jlabel.setFont(happy)
309
+ jlabel.set_bounds(44,44,460,14)
310
+ panel.add jlabel
311
+ @starting_button_y = 120
312
+ @button_width = 400
313
+
314
+ ## BUTTONS ##
315
+
316
+ @mplayer_edl = new_jbutton( "Watch DVD/file edited on computer (realtime -- mplayer EDL)", false)
317
+ @mplayer_edl.tool_tip = "This will watch your DVD in realtime from your computer while skipping/muting the questionable scenes."
318
+ @mplayer_edl.on_clicked {
319
+ do_mplayer_edl
320
+ }
321
+
322
+ @create = new_jbutton( "Create edited copy of a DVD's file on Your Hard Drive", false)
323
+ @create.tool_tip = <<-EOL
324
+ This grabs from your DVD and creates a new file on your hard disk like dvd_name_edited.mpg for you to watch later.
325
+ The file you create will contain the whole movie edited.
326
+ It takes quite awhile maybe 2 hours.
327
+ EOL
328
+ @create.on_clicked {
329
+ do_copy_dvd_to_hard_drive false
330
+ }
331
+
332
+ @open_help_file = new_jbutton("View Sensible Cinema Documentation", false).on_clicked do
333
+ system_blocking("explorer \"#{__DIR__.to_filename}..\\documentation\"") rescue nil # declares it fails, in error...
334
+ end
335
+
336
+ setup_advanced_buttons
337
+
313
338
  add_text_line 'Contact:'
314
339
 
315
- @upload = new_jbutton("Upload/E-mail suggestion/Contact/Submit anything", true) # keep this one last! :)
316
- @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!"
340
+ @upload = new_jbutton("Submit feedback/Upload Anything/Request Help", false) # keep this one last! :)
341
+ @upload.tool_tip = "We welcome all feedback!\nQuestion, comments, request help.\nAlso if you create a new EDL, please submit it back to us so that others can benefit from it later!"
317
342
  @upload.on_clicked {
318
343
  system_non_blocking("start mailto:sensible-cinema@googlegroups.com")
319
344
  system_non_blocking("start http://groups.google.com/group/sensible-cinema")
320
345
  }
321
346
 
347
+
322
348
 
323
349
  @progress_bar = JProgressBar.new(0, 100)
324
350
  @progress_bar.set_bounds(44,@starting_button_y,@button_width,23)
@@ -454,7 +480,7 @@ module SensibleSwing
454
480
  config_path = set_smplayer_opts " " # smplayer doesn't take -osdlevel 2 sniff...
455
481
  exe = "smplayer_portable -config-path \"#{File.dirname config_path}\" "
456
482
  end
457
- command = "#{exe} dvdnav://#{title_track_maybe_nil}/#{drive} -osd-fractions 2 -nocache "
483
+ command = "#{exe} dvdnav://#{title_track_maybe_nil}/#{drive} -osd-fractions 2 -mouse-movements -nocache "
458
484
  p command
459
485
  @play_smplayer_warn ||= show_non_blocking_message_dialog "Directions:
460
486
  'o' key: turn on on-screen-display timestamps (note: these are 30 fps timestamps so will need to be converted to use).
@@ -485,7 +511,7 @@ module SensibleSwing
485
511
  @popup ||= show_non_blocking_message_dialog("About to run mplayer EDL. To control it, use\n space for pause,\n f for full screen,\n arrow keys to seek.")
486
512
  # LODO dry up mplayer dvd opts...
487
513
  if OS.windows?
488
- play_this_mplayer ||= "mplayer -nocache dvdnav://#{title_track} "
514
+ play_this_mplayer ||= "mplayer -mouse-movements -nocache dvdnav://#{title_track} "
489
515
  else
490
516
  # macports' mplayer has no dvdnav ??
491
517
  play_this_mplayer ||= "mplayer dvd://#{title_track} "
@@ -501,8 +527,10 @@ module SensibleSwing
501
527
  Thread.new { system_blocking command; @popup.dispose }
502
528
  end
503
529
 
504
- def show_assert_dialog message
505
- returned = JOptionPane.showConfirmDialog self, message, message, JOptionPane::YES_NO_CANCEL_OPTION
530
+ def assert_ownership_dialog
531
+ message = "Do you certify you own the DVD this came of and have it in your possession?"
532
+ title = "Verify ownership"
533
+ returned = JOptionPane.showConfirmDialog self, message, title, JOptionPane::YES_NO_CANCEL_OPTION
506
534
  assert_confirmed_dialog returned, nil
507
535
  end
508
536
 
@@ -701,10 +729,10 @@ module SensibleSwing
701
729
  out = FileDialog.new(self)
702
730
  out.set_title title
703
731
  dir ||= Storage[caller.inspect]
704
- out.set_directory dir
732
+ out.set_directory dir.to_filename if dir
705
733
  got = out.go
706
- raise 'cancelled choosing existing file' unless got # I think we always want to raise here...
707
- Storage[caller.inspect] = File.dirname(got) # I think these work...
734
+ raise 'cancelled choosing existing file method' unless got # I think we always want to raise...
735
+ Storage[caller.inspect] = File.dirname(got)
708
736
  got
709
737
  end
710
738
 
@@ -975,7 +1003,7 @@ module SensibleSwing
975
1003
  if used_local_file_option
976
1004
  raise unless selected_idx == 0 # it was our only option...
977
1005
  filename = new_existing_file_selector_and_select_file("Select yer previously grabbed from DVD file")
978
- show_assert_dialog "Do you certify you own the DVD this came of and have it in your possession?"
1006
+ assert_ownership_dialog
979
1007
  @_choose_dvd_drive_or_file = [filename, File.basename(filename), NonDvd]
980
1008
  else
981
1009
  disk = opticals[selected_idx]
@@ -1,3 +1,15 @@
1
+ == 0.23.6 ==
2
+
3
+ Added capability/functionality to create files used in other players to automatically cut out bad scenes.
4
+ It now converts from one EDL format (ours) to another (mplayer), and saves it away as filename.mpg -> filename.edl
5
+ Now other players, like Windows Media Center, can playback files edited. Just use a plugin like mymovies,
6
+ instruct it to use smplayer as the default file player, create these .edl files, and voila, realtime playback
7
+ within a high quality media collection manager, on the fly, without much modification necessary.
8
+
9
+ Note also that work has been to convert across a wide variety of EDL formats: https://gist.github.com/52f5c6386fc67e9e6b6b
10
+ See also the history_and_related_works_list.txt file for a long list of related, previously existing works,
11
+ to get the full list to there.
12
+
1
13
  == 0.23.5 ==
2
14
 
3
15
  Cleanup some terminology/minor bug fix/usability fixes.
@@ -10,7 +10,8 @@ VLC also added playlists with optional start and stop positions per entry. Ffmp
10
10
  Once I discovered all of these previously existing programs, I knew the right elements were ready for
11
11
  something like sensible cinema.
12
12
 
13
- See also the "related" section, and "motivation" section.
13
+ See also the "related" section, and "motivation" section. See also the change_log_with_feature_list.txt file, and several
14
+ blog entries I've posted historically.
14
15
 
15
16
  Originally the project started as a prototype to "watch hulu (online) and netflix instant movies
16
17
  edited" (it uses/used screen snapshots (of specific locations where the digits are expected, based on windows position)
@@ -86,6 +87,7 @@ http://forum.videolan.org/viewtopic.php?f=7&t=56998 VLC Media Player using EDL's
86
87
  Corel WinDVD has "Quick Clip" settings for capturing from DVD.
87
88
  Microsoft's built-in magnifier basically copies DVD's screen output if mouse is placed over playing DVD.
88
89
  http://superuser.com/questions/85278/how-can-i-cut-scenes-out-of-a-dvd
90
+ moviemask once had several advanced features: http://theeditedmovieencyclopedia.blogspot.com/2008/06/cleaning-up-movies-part-2.html
89
91
  http://blog.josephhall.com/2008/09/command-line-dvd-authoring-part-1.html
90
92
  AviSynth can script dvd playback http://forum.doom9.org/archive/index.php/t-109558.html
91
93
  ps3 media server has edl support: https://github.com/chocolateboy/PMS-EDL maybe would work with DVD's dunno
data/lib/edl_parser.rb CHANGED
@@ -80,11 +80,9 @@ class EdlParser
80
80
  def self.get_secs timestamp_string_begin, timestamp_string_end, add_begin, add_end, splits
81
81
  answers = []
82
82
  unless timestamp_string_begin
83
- p 'BAD'
84
83
  raise 'non begin'
85
84
  end
86
85
  unless timestamp_string_end
87
- p 'BAD2', '', ''
88
86
  raise 'non end'
89
87
  end
90
88
  for type, offset, multiplier in [[timestamp_string_begin, add_begin, -1], [timestamp_string_end, add_end, 1]]
data/lib/swing_helpers.rb CHANGED
@@ -41,7 +41,7 @@ module SensibleSwing
41
41
  block.call
42
42
  rescue Exception => e
43
43
  puts 'got fatal exception thrown in button [ignoring]', e, e.class
44
- puts e.backtrace.join("\n"), e
44
+ puts e.backtrace[0], e
45
45
  end
46
46
  end
47
47
  self
data/spec/notes CHANGED
@@ -1,17 +1,28 @@
1
1
  up next:
2
- lighning exact frame to compare the two fulli's...
2
+ lighning exact frame to compare the two fulli's...and the DVD, and mplayer :P
3
3
 
4
- == WMC ==
5
- apparently mymovies can use power dvd, which seems an external app... http://www.mymovies.dk/forum.aspx?g=posts&m=127771#127771
4
+ http://www.kdenlive.org/forum/xml-format-and-edls kdenlive supports EDL, apparently (video editor)
6
5
 
6
+ == upconvert mplayer ==
7
+ guess I prefer mplayer to VLC at this point anyway <sigh> EDL is just better...
8
+ is "-mc". It means "max A-V time correction per frame", and defaults to 0.01. For good input, you can go down even to 0.0001, but 0.001 i
9
+ -vop denoise3d
10
+ -vop hqdn3d
11
+ http://freshmeat.net/articles/fine-tuning-mplayer
7
12
 
8
- == EDL plugins ==
13
+ == WMC/other EDL plugins ==
9
14
 
15
+ http://superuser.com/questions/34128/xbmc-with-media-player-classic-home-cinema
16
+ apparently mymovies can use power dvd, which seems an external app... http://www.mymovies.dk/forum.aspx?g=posts&m=127771#127771
10
17
  http://forum.xbmc.org/showthread.php?t=28795 XBMC doesn't support real-time DVD EDL playback at all <sniff> oh wait maybe it does now... http://forum.xbmc.org/archive/index.php/t-69388.html
11
18
  ps3ms edl might work too...
12
19
  http://cybernetnews.com/cybernotes-skip-commercials-in-windows-media-center WMC can do it too kind of? might apply to the mymovies community...though looks a bit hard :P
13
20
  (it uses http://babgvant.com/Wiki/view.aspx/DVRMSToolbox/Commercial_Skip_Addin )
14
-
21
+ mymovies/WMC to use external app...looks like maybe : http://www.mymovies.dk/forum.aspx?g=posts&t=10956
22
+ from http://www.mediasmartserver.net/2010/01/29/guide-using-mpc-hc-as-your-video-player-in-wmc-media-browser/ which itself uses the "media browser" plugin
23
+ appears that WMC *has* to use a plugin to launch an external app...and mymovies doesn't always even then [?]
24
+ is thereatek upconverting? forget it either way LOL
25
+
15
26
  == subtitle accuracy ==
16
27
 
17
28
  narnia dawn treader had 1 subtitle that was "hand crafted", had the wrong timestamps, but was more accurate.
@@ -424,7 +424,7 @@ module SensibleSwing
424
424
 
425
425
  it "should only prompt for file selection once" do
426
426
  prompted = false
427
- @subject.stub(:show_assert_dialog) {
427
+ @subject.stub(:assert_ownership_dialog) {
428
428
  prompted = true
429
429
  }
430
430
  yo( false ).should == 0 # choose a file, so never dvdid any dvd...
@@ -444,10 +444,10 @@ module SensibleSwing
444
444
  end
445
445
 
446
446
  it "should not show the normal buttons in create mode" do
447
- MainWindow.new.buttons.length.should == 4 # exit button plus two normal buttons
447
+ MainWindow.new.buttons.length.should == 5
448
448
  ARGV << "--create-mode"
449
- MainWindow.new.buttons.length.should == 16
450
- ARGV.pop # test cleanup--why not :)
449
+ MainWindow.new.buttons.length.should == 17
450
+ ARGV.pop # post-test cleanup--why not :)
451
451
  end
452
452
 
453
453
  it "should read splits from the file" do
@@ -490,6 +490,19 @@ module SensibleSwing
490
490
  click_button(:@play_smplayer)
491
491
  end
492
492
 
493
+ it "should create" do
494
+ FileUtils.rm_rf 'yo.edl' # nothing up my sleeve.
495
+ prompted = false
496
+ @subject.stub(:assert_ownership_dialog) {
497
+ prompted = true
498
+ }
499
+ @subject.stub(:new_existing_file_selector_and_select_file).and_return("yo.mpg", "zamples\\edit_decision_lists\\dvds/edl_for_unit_tests.txt")
500
+ click_button(:@create_dot_edl)
501
+ assert File.exist? 'yo.edl'
502
+ assert prompted
503
+ end
504
+
505
+
493
506
  end # describe MainWindow
494
507
 
495
508
  end
@@ -0,0 +1,20 @@
1
+ "name" => "Harry Potter Prisoner of Azkaban",
2
+
3
+ "mutes" => [
4
+ "00:04:05", "00:04:10", "something wrong w/ the pup",
5
+ ],
6
+
7
+ "blank_outs" => [
8
+ "00:20:50", "00:21:25", "dementor a", "",
9
+ "00:21:40", "00:22:15", "dementor b", "",
10
+ "00:55:39", "00:56:05", "dementor c", "",
11
+ "01:06:56.5", "01:07:06.3", "anger", "",
12
+ "01:28:28", "01:29:50", "willow whomped", "",
13
+ "01:39:55", "01:40:13", "lupin xform", "",
14
+ "01:40:43", "01:41:15", "werewolf", "",
15
+ "01:43:30", "01:44:15", "scary dementors", "",
16
+ "01:58:40", "01:59:40", "werewolf chase", "",
17
+ # "02:00:33", "02:01:03", "dementors d", "",
18
+ ],
19
+
20
+ "mplayer_dvd_splits" => ["01:15:39"],
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: sensible-cinema
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.23.5
5
+ version: 0.23.6
6
6
  platform: ruby
7
7
  authors:
8
8
  - Roger Pack
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-06-30 00:00:00 -06:00
13
+ date: 2011-07-01 00:00:00 -06:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
@@ -266,7 +266,6 @@ files:
266
266
  - never_do
267
267
  - ocr.todo_if_need_speed
268
268
  - preamble
269
- - sensible-cinema.gemspec
270
269
  - spec/arse.srt
271
270
  - spec/blanker.spec.rb
272
271
  - spec/common.rb
@@ -337,6 +336,7 @@ files:
337
336
  - zamples/edit_decision_lists/dvds/old_and_inaccurate/making marriage work.txt
338
337
  - zamples/edit_decision_lists/dvds/old_and_inaccurate/star_trek_generations_hulu.txt
339
338
  - zamples/edit_decision_lists/dvds/pack_wedding_2007-03-03.txt
339
+ - zamples/edit_decision_lists/dvds/potter_prisoner_of_azkaban.txt
340
340
  - zamples/edit_decision_lists/dvds/sintel_open_source_blender.txt
341
341
  - zamples/edit_decision_lists/dvds/tron_legacy.txt
342
342
  - zamples/edit_decision_lists/dvds/turn_around_alma_younger.txt
@@ -1,232 +0,0 @@
1
- # Generated by jeweler
2
- # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
- # -*- encoding: utf-8 -*-
5
-
6
- Gem::Specification.new do |s|
7
- s.name = %q{sensible-cinema}
8
- s.version = "0.23.5"
9
-
10
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
- s.authors = ["Roger Pack"]
12
- s.date = %q{2011-06-30}
13
- s.email = %q{rogerdpack@gmail.com}
14
- s.executables = ["sensible-cinema", "sensible-cinema-cli"]
15
- s.extra_rdoc_files = [
16
- "LICENSE.TXT",
17
- "README",
18
- "TODO"
19
- ]
20
- s.files = [
21
- "LICENSE.TXT",
22
- "README",
23
- "Rakefile",
24
- "TODO",
25
- "VERSION",
26
- "_DO_NOT_RUN_IT_FROM_HERE_DOWNLOAD_THE_RELEASE_ZIP_FROM_SOURCEFORGE_INSTEAD",
27
- "bin/sensible-cinema",
28
- "bin/sensible-cinema-cli",
29
- "business_ideas.txt",
30
- "change_log_with_feature_list.txt",
31
- "developer_how_to_contribute_to_the_project.txt",
32
- "documentation/README.TXT",
33
- "documentation/how_to_create_your_own_delete_lists.txt",
34
- "documentation/how_to_get_files_from_dvd.txt",
35
- "documentation/is_it_legal_to_copy_dvds.txt",
36
- "documentation/troubleshooting.txt",
37
- "experimental_online_player_ocr_readme.txt",
38
- "go.bat",
39
- "go.sh",
40
- "go_ocr_tracker.bat",
41
- "goc.bat",
42
- "gplv3.txt",
43
- "history_and_related_works_list.txt",
44
- "legal/md5s.txt",
45
- "legal/transcript_mute_vlc.txt",
46
- "legal2",
47
- "lib/add_any_bundled_gems_to_load_path.rb",
48
- "lib/blanker.rb",
49
- "lib/check_installed_mac.rb",
50
- "lib/convert_thirty_fps.rb",
51
- "lib/count_down_timer_jruby_swing.rb",
52
- "lib/drive_info.rb",
53
- "lib/edl_parser.rb",
54
- "lib/fake_blanker.rb",
55
- "lib/file_chooser.rb",
56
- "lib/frame_accurate.rb",
57
- "lib/keyboard_input.rb",
58
- "lib/media_info_parser.rb",
59
- "lib/mencoder_wrapper.rb",
60
- "lib/mouse.rb",
61
- "lib/mouse_forever.rb",
62
- "lib/mplayer_edl.rb",
63
- "lib/muter.rb",
64
- "lib/ocr.rb",
65
- "lib/overlayer.rb",
66
- "lib/play_audio.rb",
67
- "lib/screen_tracker.rb",
68
- "lib/storage.rb",
69
- "lib/subtitle_profanity_finder.rb",
70
- "lib/swing_helpers.rb",
71
- "lib/vlc_programmer.rb",
72
- "never_do",
73
- "ocr.todo_if_need_speed",
74
- "preamble",
75
- "sensible-cinema.gemspec",
76
- "spec/arse.srt",
77
- "spec/blanker.spec.rb",
78
- "spec/common.rb",
79
- "spec/convert_image.rb",
80
- "spec/deity_end.srt",
81
- "spec/dragon.srt",
82
- "spec/drive_info.spec.rb",
83
- "spec/edl_parser.spec.rb",
84
- "spec/frame_accurate.spec.rb",
85
- "spec/go_line.bat",
86
- "spec/keyboard_input.spec.rb",
87
- "spec/media_info_parser.spec.rb",
88
- "spec/mencoder_wrapper.spec.rb",
89
- "spec/mouse.spec.rb",
90
- "spec/mplayer_edl.spec.rb",
91
- "spec/muter.spec.rb",
92
- "spec/notes",
93
- "spec/ocr.spec.rb",
94
- "spec/overlayer.spec.rb",
95
- "spec/screen_tracker.spec.rb",
96
- "spec/sensible_cinema_gui.spec.rb",
97
- "spec/subtitle_profanity_finder.spec.rb",
98
- "spec/swing_helpers.spec.rb",
99
- "spec/test_yaml.yml",
100
- "spec/tsmuxer.output",
101
- "spec/vlc_programmer.spec.rb",
102
- "template_bats/RUN SENSIBLE CINEMA CLICK HERE.bat",
103
- "template_bats/_DO_NOT_RUN_IT_FROM_HERE_DOWNLOAD_THE_RELEASE_ZIP_FROM_SOURCEFORGE_INSTEAD",
104
- "template_bats/advanced--create or edit sensible cinema delete list files.bat",
105
- "todo.build_library.txt",
106
- "todo.inventionzy.txt",
107
- "todo.open_edl_list_org.txt",
108
- "todo.propaganda",
109
- "todo.subtitle",
110
- "vendor/jruby-complete-1.6.2.jar",
111
- "vendor/mac_dvdid/bin/dvdid",
112
- "vendor/mac_dvdid/include/dvdid/dvdid.h",
113
- "vendor/mac_dvdid/include/dvdid/dvdid2.h",
114
- "vendor/mac_dvdid/include/dvdid/export.h",
115
- "vendor/mac_dvdid/lib/libdvdid.0.dylib",
116
- "vendor/mac_dvdid/lib/libdvdid.a",
117
- "vendor/mac_dvdid/lib/libdvdid.dylib",
118
- "vendor/mac_dvdid/lib/libdvdid.la",
119
- "vendor/monkey.png",
120
- "vendor/readme.txt",
121
- "vendor/tsmuxer_1.10.6/licence.txt",
122
- "www/index.html",
123
- "zamples/edit_decision_lists/category descriptions.txt",
124
- "zamples/edit_decision_lists/dvds/Harry Potter 2.txt",
125
- "zamples/edit_decision_lists/dvds/bambi.txt",
126
- "zamples/edit_decision_lists/dvds/big_buck_bunny_dvd.txt",
127
- "zamples/edit_decision_lists/dvds/bob the builder pets in a pickle.txt",
128
- "zamples/edit_decision_lists/dvds/bobs_big_plan.txt",
129
- "zamples/edit_decision_lists/dvds/cool runnings.txt",
130
- "zamples/edit_decision_lists/dvds/edl_for_unit_tests.txt",
131
- "zamples/edit_decision_lists/dvds/example_delete_list.txt",
132
- "zamples/edit_decision_lists/dvds/happiest baby on the block.txt",
133
- "zamples/edit_decision_lists/dvds/how_to_train_your_dragon.txt",
134
- "zamples/edit_decision_lists/dvds/kung_fu_panda_1.txt",
135
- "zamples/edit_decision_lists/dvds/legend_of_the_guardians_the_owls_of_gahoole.txt",
136
- "zamples/edit_decision_lists/dvds/making_marriage_work.txt",
137
- "zamples/edit_decision_lists/dvds/narnia_voyage_of_the_dawn_treader.txt",
138
- "zamples/edit_decision_lists/dvds/old_and_inaccurate/White Christmas.txt",
139
- "zamples/edit_decision_lists/dvds/old_and_inaccurate/all_dogs_go_to_heaven.txt",
140
- "zamples/edit_decision_lists/dvds/old_and_inaccurate/cars_disney.txt",
141
- "zamples/edit_decision_lists/dvds/old_and_inaccurate/happy_feet.txt",
142
- "zamples/edit_decision_lists/dvds/old_and_inaccurate/labyrinth.txt",
143
- "zamples/edit_decision_lists/dvds/old_and_inaccurate/making marriage work.txt",
144
- "zamples/edit_decision_lists/dvds/old_and_inaccurate/star_trek_generations_hulu.txt",
145
- "zamples/edit_decision_lists/dvds/pack_wedding_2007-03-03.txt",
146
- "zamples/edit_decision_lists/dvds/sintel_open_source_blender.txt",
147
- "zamples/edit_decision_lists/dvds/tron_legacy.txt",
148
- "zamples/edit_decision_lists/dvds/turn_around_alma_younger.txt",
149
- "zamples/edit_decision_lists/dvds/zz_example_delete_list_that_has_no_cuts_in_it.txt",
150
- "zamples/edit_decision_lists/netflix_instant/greatest_story_ever_told_netflix.txt",
151
- "zamples/edit_decision_lists/old_not_yet_updated/example_edit_decision_list.txt",
152
- "zamples/edit_decision_lists/old_not_yet_updated/youtube/gummy_bear_song_youtube.txt",
153
- "zamples/edit_decision_lists/youtube/demo_mutes.txt",
154
- "zamples/edit_decision_lists/youtube/nuki_song_youtube.txt",
155
- "zamples/players/how_to_create_more_players.txt",
156
- "zamples/players/hulu/total_length_over_an_hour.txt",
157
- "zamples/players/netflix/netflix_firefox_non_maximized.txt",
158
- "zamples/players/vlc/full_screened_total_length_over_an_hour.txt",
159
- "zamples/players/vlc/windowed_total_length_over_an_hour.txt",
160
- "zamples/players/vlc/windowed_total_length_under_an_hour.txt",
161
- "zamples/players/youtube/full_screened_1024x768.txt",
162
- "zamples/players/youtube/full_screened_1152x864.txt",
163
- "zamples/players/youtube/full_screened_1680x1050.txt",
164
- "zamples/players/youtube/normal_in_youtube.com.chrome.txt",
165
- "zamples/players/youtube/note_these_assume_less_than_10_minutes_length.txt"
166
- ]
167
- s.homepage = %q{http://github.com/rdp}
168
- s.require_paths = ["lib"]
169
- s.rubygems_version = %q{1.5.1}
170
- s.summary = %q{an EDL scene-selector/bleeper that works with online players like hulu}
171
-
172
- if s.respond_to? :specification_version then
173
- s.specification_version = 3
174
-
175
- if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
176
- s.add_runtime_dependency(%q<os>, [">= 0.9.3"])
177
- s.add_runtime_dependency(%q<sane>, [">= 0.22.0"])
178
- s.add_runtime_dependency(%q<rdp-win32screenshot>, [">= 0.0.7.3"])
179
- s.add_runtime_dependency(%q<mini_magick>, [">= 3.1"])
180
- s.add_runtime_dependency(%q<whichr>, [">= 0.3.6"])
181
- s.add_runtime_dependency(%q<jruby-win32ole>, [">= 0"])
182
- s.add_runtime_dependency(%q<rdp-ruby-wmi>, [">= 0"])
183
- s.add_runtime_dependency(%q<plist>, [">= 0"])
184
- s.add_runtime_dependency(%q<ffi>, [">= 0"])
185
- s.add_development_dependency(%q<hitimes>, [">= 0"])
186
- s.add_development_dependency(%q<rspec>, ["> 2"])
187
- s.add_development_dependency(%q<jeweler>, [">= 0"])
188
- s.add_development_dependency(%q<rake>, [">= 0"])
189
- s.add_runtime_dependency(%q<hitimes>, [">= 0"])
190
- s.add_runtime_dependency(%q<rspec>, [">= 0"])
191
- s.add_runtime_dependency(%q<jeweler>, [">= 0"])
192
- s.add_runtime_dependency(%q<rake>, [">= 0"])
193
- else
194
- s.add_dependency(%q<os>, [">= 0.9.3"])
195
- s.add_dependency(%q<sane>, [">= 0.22.0"])
196
- s.add_dependency(%q<rdp-win32screenshot>, [">= 0.0.7.3"])
197
- s.add_dependency(%q<mini_magick>, [">= 3.1"])
198
- s.add_dependency(%q<whichr>, [">= 0.3.6"])
199
- s.add_dependency(%q<jruby-win32ole>, [">= 0"])
200
- s.add_dependency(%q<rdp-ruby-wmi>, [">= 0"])
201
- s.add_dependency(%q<plist>, [">= 0"])
202
- s.add_dependency(%q<ffi>, [">= 0"])
203
- s.add_dependency(%q<hitimes>, [">= 0"])
204
- s.add_dependency(%q<rspec>, ["> 2"])
205
- s.add_dependency(%q<jeweler>, [">= 0"])
206
- s.add_dependency(%q<rake>, [">= 0"])
207
- s.add_dependency(%q<hitimes>, [">= 0"])
208
- s.add_dependency(%q<rspec>, [">= 0"])
209
- s.add_dependency(%q<jeweler>, [">= 0"])
210
- s.add_dependency(%q<rake>, [">= 0"])
211
- end
212
- else
213
- s.add_dependency(%q<os>, [">= 0.9.3"])
214
- s.add_dependency(%q<sane>, [">= 0.22.0"])
215
- s.add_dependency(%q<rdp-win32screenshot>, [">= 0.0.7.3"])
216
- s.add_dependency(%q<mini_magick>, [">= 3.1"])
217
- s.add_dependency(%q<whichr>, [">= 0.3.6"])
218
- s.add_dependency(%q<jruby-win32ole>, [">= 0"])
219
- s.add_dependency(%q<rdp-ruby-wmi>, [">= 0"])
220
- s.add_dependency(%q<plist>, [">= 0"])
221
- s.add_dependency(%q<ffi>, [">= 0"])
222
- s.add_dependency(%q<hitimes>, [">= 0"])
223
- s.add_dependency(%q<rspec>, ["> 2"])
224
- s.add_dependency(%q<jeweler>, [">= 0"])
225
- s.add_dependency(%q<rake>, [">= 0"])
226
- s.add_dependency(%q<hitimes>, [">= 0"])
227
- s.add_dependency(%q<rspec>, [">= 0"])
228
- s.add_dependency(%q<jeweler>, [">= 0"])
229
- s.add_dependency(%q<rake>, [">= 0"])
230
- end
231
- end
232
-