sensible-cinema 0.20.1 → 0.20.5

Sign up to get free protection for your applications and to get access to all the features.
data/ChangeLog CHANGED
@@ -1,3 +1,7 @@
1
+ == 0.20.3 ==
2
+
3
+ Minor aesthetics, also it works now with mplayer EDL mode.
4
+
1
5
  == 0.20.0 ==
2
6
 
3
7
  Add a "fast preview" option which makes editing...faster. Also it incorporates the "arbitrary precision" around settings.
@@ -115,7 +119,7 @@ Now it offers you a button to either play it on your computer, using VLC, or rip
115
119
 
116
120
  == From various previous releases ==
117
121
  It now provides for screen tracking of DVD's, youtube, hulu, and anything else you want to play on VLC, and has
118
- automatic detection of CD-Drives for ripping/playing back. It can handle full screen or windows playback.
122
+ automatic detection of CD-Drives for ripping/playing back. It can handle full screen or windowed playback.
119
123
  It can rip from user specified "title tracks" now. It has a nice GUI. The GUI can tell you which DVD is in which
120
124
  drive so you know more easily which one to choose.
121
125
 
@@ -126,4 +130,9 @@ via some console or other player, or can be copied to a disc and played in a DVD
126
130
 
127
131
  When screen tracking, it uses input to the system (simulated keystrokes) to simulate a user "mute"
128
132
  It overlays the playing screen (movie) with a separate window in order to simulate a "blank out" or
129
- "skip this scene" which can be used with or without the mutes, as well.
133
+ "skip this scene" which can be used with or without the mutes, as well.
134
+
135
+ Note that previous releases had this functionality: VLC could "grab" the various sections from a DVD, one at a time, and
136
+ either play them back in sequence [serially], or save all of them, appending to a single final "file", using either
137
+ a batch file to accomplish the same, or an XSPF playlist that designated the start and stop times and fed that
138
+ into the player.
data/README CHANGED
@@ -1,15 +1,18 @@
1
- Sensible-cinema (also known to us as "paranoid cinema" [inside joke ha ha] ) is a program that allows you to apply
2
- programmed delete lists (i.e. Edit Decision Lists [2]) to DVD's you already own.
1
+ Sensible-cinema (also known to us as "paranoid cinema" [our own inside joke ha ha]) is a program that allows you to apply
2
+ pre-programmed delete lists (e.g. Edit Decision Lists [2]) to DVD's you already own.
3
3
 
4
- I.e. you can edit a DVD to "mute out" or skip certain scenes.
4
+ I.e. you can play or edit a DVD to "mute out" or skip certain scenes.
5
5
 
6
- It is essentially a linear editor [1] that applies Edit Decision Lists [2] to videos, by wrapping
7
- a few freely available open source programs [3]
8
- to accomplish the editing for you. Then you can sit back and relax as you watch the "sensible"
9
- version of your DVD.
6
+ This allows you to sit back and relax as you watch a more "sensiblized" showing of your DVD.
10
7
 
11
8
  To use it, basically install it, insert an original DVD that you want to see edited, then run sensible cinema.
12
- It will pop up some windows where you choose what to do for that DVD, hopefully easily.
9
+ It will pop up some windows where you choose what to do.
10
+ You can either watch it edited, or created an edited version of the DVD, on your hard drive.
11
+ You could burn that edited file to a new DVD, if you desire and have a DVD burner on your computer.
12
+
13
+ How? Sensible is essentially a linear editor [1] that applies Edit Decision Lists [2] to videos, by wrapping
14
+ a few freely available open source programs [3]
15
+ to accomplish the editing for you.
13
16
 
14
17
  Note that the whole process can at times take hours, so budget some time for it.
15
18
 
@@ -172,11 +175,11 @@ Also make sure you aren't out of disk space.
172
175
 
173
176
  Also you could try a different computer (desktop computers' DVD drives seem to work better at times than laptops')
174
177
 
175
- Too slow? One big speedup would be getting a faster hard drive (SSD perhaps, though
176
- sensible cinema mostly reads large files, so a speedy spinning disk might help, too). A second might be to get a faster DVD drive.
177
- I'm not certain but I don't believe that a faster cpu (or even dual core, etc.), will help much,
178
- though it might like 3% or something.
179
- Also ping me if you think it's too slow and I'll see what I can do.
178
+ Also (for power users) make sure your version of ffmpeg is relatively new, as older versions (r19313) is known to crop wrong.
179
+ If you don't know what this means then you're probably ok and don't have to worry about it.
180
+
181
+ "DVDNAV stream read error!"
182
+ this typically means a dirty or scratched DVD.
180
183
 
181
184
  == Feedback ==
182
185
 
@@ -3,5 +3,5 @@
3
3
  @set RUBYOPT=
4
4
  @echo This window will display lots of debug message output!
5
5
  @java -version || echo need to install java first && pause
6
- @cd sensible-cinema && java -cp "./vendor/cache/jruby-complete-1.5.5.jar" org.jruby.Main bin\sensible-cinema || echo ERROR. Please look for error message, above, and report back the error you see, or fix it && pause
6
+ @cd sensible-cinema && java -cp "./vendor/cache/jruby-complete-1.5.5.jar" org.jruby.Main bin\sensible-cinema.rb || echo ERROR. Please look for error message, above, and report back the error you see, or fix it && pause
7
7
  @rem taskkill /f /im mencoder.exe
data/Rakefile CHANGED
@@ -75,13 +75,14 @@ task 'bundle_dependencies' => 'gemspec' do
75
75
  system("#{Gem.ruby} -S gem unpack #{d.name}")
76
76
  }
77
77
  to_here = "jruby-complete-1.5.5.jar"
78
+ p 'do you need to delete your old jruby complete...do you?'
78
79
  unless File.exist? to_here
79
- url = "/downloads/1.5.6/jruby-complete-1.5.6.jar"
80
+ url = "/downloads/1.6.0.RC1/jruby-complete-1.6.0.RC1.jar"
80
81
  puts 'downloading in jruby-complete.jar file ' + url
81
82
  # jruby complete .jar file
82
83
  Net::HTTP.start("jruby.org.s3.amazonaws.com") { |http|
83
84
  resp = http.get(url)
84
- puts 'copying it... '
85
+ puts 'copying jruby complete in... '
85
86
  open(to_here, "wb") { |file|
86
87
  file.write(resp.body)
87
88
  }
@@ -125,11 +126,12 @@ task 'deploy' do
125
126
  p 'copying in'
126
127
  raise unless system("scp #{name} rdp@ilab1.cs.byu.edu:~/incoming")
127
128
  p 'copying over'
128
- raise unless system("ssh rdp@ilab1.cs.byu.edu \"scp ~/incoming/#{name} wilkboar@myfavoritepal.com:~/www/rogerdpackt28/sensible-cinema\"")
129
+ raise unless system("ssh rdp@ilab1.cs.byu.edu \"scp ~/incoming/#{name} wilkboar@freemusicformormons.com:~/www/rogerdpackt28/sensible-cinema\"")
129
130
  end
130
131
 
131
132
  desc 'j -S rake bundle_dependencies create_distro_dir ... (releases with clean cache dir, which we need now)'
132
133
  task 'full_release' => [:bundle_dependencies, :create_distro_dir, :build] do # :release sigh
134
+ system("cp -r vendor/cache ../cache.bak")
133
135
  gems = Dir['pkg/*.gem']
134
136
  gems[0..-2].each{|f| File.delete f} # kill old versions...
135
137
  system("#{Gem.ruby} -S gem push #{gems[-1]}")
@@ -137,5 +139,7 @@ task 'full_release' => [:bundle_dependencies, :create_distro_dir, :build] do # :
137
139
  Rake::Task["zip"].execute
138
140
  Rake::Task["deploy"].execute
139
141
  system("git push origin master")
142
+ system("cp -r ../cache.bak/* vendor/cache")
143
+
140
144
  puts "don't forget to blog about it...and upload .zip of it..."
141
145
  end
data/TODO CHANGED
@@ -5,18 +5,21 @@
5
5
  edl straight DVD replay:
6
6
  work cars
7
7
  clear runnings
8
- finalize
9
8
  have ben and chris test it out
10
-
9
+
11
10
  == slightly lower than that, somewhat ordered ==
12
11
 
13
- test HP if I put the whole thing together (2 hour mark)
14
- try it again with grabbing from DVD too
15
- add "revision"
16
- note: you need to offset your start times
12
+ the "warning delet lists not there" comes up when you hit the fast preview button
13
+ use .done for the fast files :)
14
+ is there an easy way to change priority?
15
+ if yes then just for the system loop :)
16
+ ask for more beta testers
17
+ note: you need to re-offset your start and end times
17
18
  change it to be aggressive sometimes yes, other times no
18
19
  note: can make several different versions, with different filenames, and should rewatch the film after finalizing it (edited), like "grab to hard drive" and have a friend watch it, if desired.
19
- make the other button work again (watch unedited while grabbing)
20
+ note to previewer "you are about to preview these edits"
21
+ note you can use fast preview with the other going in the background
22
+ add "revision"...
20
23
  the "edited.avi" *must* be playable in WMP
21
24
  don't exit program if they don't select a disk :)
22
25
  if they type in a "new" start time, use that as the default end time input too
@@ -24,6 +27,7 @@
24
27
  don't use them linear, just linearize
25
28
  mpeg is lossy (at least my current one pass conversion still is...) and smplayer can't play it right unedited
26
29
  frame accurate splitter naive
30
+ vendorize ffmpeg
27
31
  more DL's
28
32
  my dvd's (loose timestamps...)
29
33
  cars backport real EDL :)
@@ -52,13 +56,20 @@
52
56
  use DVD navigator ?
53
57
  http://msdn.microsoft.com/en-us/library/dd388584(v=VS.85).aspx
54
58
  with an avi file sink?
59
+
60
+ D:\dev\sensible-cinema-never-commit-from-here>mv vendor\cache.bak ..
61
+
55
62
 
56
63
  == DVD backlog (unordered, some very low prio, basically all never do) ==
57
64
 
65
+ @smplayer: provide a command line param for "extra params to run this time around" or what not...
66
+ create a "fantom edit"
67
+ check if a newer version of smplayer (+- forum links) can replace raw usage of mplayer now?
68
+ integrate sub-titles-zy-er (like the Python fella)
69
+ or maybe...use theirs?
70
+ @mplayer: some way to not have to use phreaky pipes in doze ("+1")
58
71
  @ffmpeg: do you get slower the farther into large files you are?
59
- FHE friendly: always harddup, "watch as grabbed" button [plus other ramifications]
60
72
  @ffmpeg: gop 12 for ntsc-dvd?
61
- @ffmpeg: doesn't grab the right time frames?
62
73
  @mplayer: why you can't play it when VLC can? huh? (audio sync)
63
74
  can watch conference like a music video :)
64
75
  can play "this section then that, with this one's audio
@@ -96,6 +107,7 @@
96
107
  can pull from imdb at package time [?]
97
108
  delete fulli file automatically
98
109
  except if it's a specific scene run...
110
+ FHE friendly: an option for "watch EDL as grabbed" (always harddup?)
99
111
  .exe installer
100
112
  just unzips, runs the .bat file for them [?] :)
101
113
  full msi
@@ -128,7 +140,6 @@
128
140
  instructions on how to do their own (private) DL or do one and submit it (public), or email their friends :P
129
141
  add an option "just save full disk (unedited) to hard drive..."
130
142
  note to people: can edit these to your liking, resubmit
131
- imagemagick (ffmpeg) easier install...
132
143
  DRY up dependency installation code
133
144
  install dep's to cache2 or something...so I can avoid redownload after a release...
134
145
  "Re-run most recent" disabled when there isn't one [?]
@@ -175,6 +186,11 @@ a single netflix descriptor, just in case
175
186
 
176
187
  == random non-DVD backlog ... 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). ==
177
188
 
189
+ figure out why I need to uses dvdnav:// sometimes, dvd:// others to not crash :P
190
+
191
+ if sued, could use straight mplayer -ss (+- one at a time, or possibly in a playlist [?] like VLC can...)
192
+ -hr-edl-seek ?
193
+
178
194
  fade in/fade out volume, video
179
195
  make the other stuff work again, since I no longer use YAML...
180
196
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.20.1
1
+ 0.20.5
@@ -18,8 +18,7 @@ This file is part of Sensible Cinema.
18
18
  =end
19
19
 
20
20
  print 'Loading Sensible Cinema...'
21
-
22
- require File.dirname(__FILE__) + "/../lib/add_any_bundled_gems_to_load_path.rb"
21
+ require File.expand_path(File.dirname(__FILE__) + "/../lib/add_any_bundled_gems_to_load_path.rb")
23
22
  require 'sane' # failure here means you haven't bundled your dependencies...[rake task]
24
23
 
25
24
  require_relative '../lib/mencoder_wrapper'
@@ -112,7 +111,7 @@ module SensibleSwing
112
111
  do_mplayer_edl
113
112
  }
114
113
 
115
- @watch_unedited = new_jbutton("Watch a DVD unedited (while grabbing to hard drive)", true)
114
+ @watch_unedited = new_jbutton("Watch a DVD unedited (while grabbing to hard drive--saves overall time)", true)
116
115
  @watch_unedited.on_clicked {
117
116
  success_no_run, wrote_to_here_fulli = do_copy_dvd_to_hard_drive false, true, true
118
117
  sleep 5 unless success_no_run
@@ -431,7 +430,7 @@ EOL
431
430
  freespace = get_freespace(save_to)
432
431
  if freespace < 16_000_000_000
433
432
  show_blocking_message_dialog("Warning: there may not be enough space on the disk for #{save_to}
434
- (depending on DVD size, you may need like 16G free, but typically will need around 10GB free--you only have #{freespace/1_000_000_000}GB free). Click OK to continue.")
433
+ (depending on DVD size, you may need like 16G free, but typically will need around 10GB free--you have #{freespace/1_000_000_000}GB free). Click OK to continue.")
435
434
  end
436
435
  save_to
437
436
  end
@@ -450,8 +449,14 @@ EOL
450
449
  # only show this message once :)
451
450
  @show_block ||= show_blocking_message_dialog("Ok, let's preview just a portion of it. \nNote that you'll want to preview a section that wholly includes a deleted section in it\n For example, if it mutes from second 1 to second 10, you'll want to play from 00:00 to 00:12 or what not.\nAlso note that the first time you preview a section of a video, it will take a long time as it sets up the video for previewing.\nSubsequent previews will be faster, though, as long as you use the same filename.\n
452
451
  Also note that if you change your delete list, you'll need to close, and regenerate the video to see it with your new settings.", "Preview")
452
+ old_start = Storage['start_time']
453
453
  start_time = get_user_input("At what point in the video would you like to start your preview? (like 01:00 for starting at 1 minute)", Storage['start_time'])
454
- end_time = get_user_input("At what point in the video would you like to finish your preview? (like 02:00 for ending at the 2 minute mark)", Storage['end_time'])
454
+ default_end = Storage['end_time']
455
+ if start_time and start_time != old_start
456
+ default_end = EdlParser.translate_string_to_seconds(start_time) + 10
457
+ default_end = EdlParser.translate_time_to_human_readable(default_end)
458
+ end
459
+ end_time = get_user_input("At what point in the video would you like to finish your preview? (like 02:00 for ending at the 2 minute mark)", default_end)
455
460
  unless start_time and end_time
456
461
  JOptionPane.showMessageDialog(nil, " Please choose start and end", "Failed", JOptionPane::ERROR_MESSAGE)
457
462
  return
@@ -502,10 +507,11 @@ EOL
502
507
  temp_dir = Dir.tmpdir
503
508
  temp_file = temp_dir + '/vlc.temp.bat'
504
509
  File.write(temp_file, commands)
505
- popup = NonBlockingDialog.new("Copying to #{save_to}.\n" +
506
- "Applying EDL #{File.basename edit_list_path} \n against #{drive} (#{dvd_title}).\n" +
507
- "This could take quite awhile, and will prompt you when it is done.\n" +
508
- "You can close this window and continue working while it runs.\n" +
510
+ popup = NonBlockingDialog.new(
511
+ "Applying #{File.basename edit_list_path} \n against #{drive} (#{dvd_title}).\n" +
512
+ "Copying to #{save_to}.\n" +
513
+ "This could take quite awhile, and will prompt you and chime a noise when it is done.\n" +
514
+ "You can close this window and continue working while it runs in the background.\n" +
509
515
  "NB that the created file will be playable only with VLC (possibly with smplayer).",
510
516
  "OK")
511
517
 
@@ -549,7 +555,7 @@ EOL
549
555
  show_file = "explorer /e,/select,\"#{File.expand_path(saved_to).to_filename}\""
550
556
  system_blocking show_file # returns immediately
551
557
  PlayAudio.play(File.expand_path(File.dirname(__FILE__)) + "/../vendor/music.wav")
552
- show_blocking_message_dialog "Done--you may now watch file #{saved_to} in VLC player (possibly smplayer)"
558
+ show_blocking_message_dialog "Done--you may now watch file\n #{saved_to}\n in VLC player (or possibly smplayer)"
553
559
  end
554
560
  else
555
561
  show_blocking_message_dialog("Failed--please examine console output and report back!\nAlso consult the troubleshooting section of the README file.", "Failed", JOptionPane::ERROR_MESSAGE)
@@ -564,7 +570,7 @@ EOL
564
570
  return @_choose_dvd_drive
565
571
  end
566
572
  show_blocking_message_dialog 'insert a dvd first' unless opticals.find{|d| d.VolumeName }
567
- names = opticals.map{|d| d.Name + "\\" + " (" + (d.VolumeName || 'Insert DVD and re-start') + ")"}
573
+ names = opticals.map{|d| d.Name + "\\" + " (" + (d.VolumeName || 'Insert DVD to use') + ")"}
568
574
 
569
575
  if opticals.length != 1
570
576
  dialog = GetDisk.new(self, names)
@@ -3,5 +3,5 @@
3
3
  @set RUBYOPT=
4
4
  @echo This window will display lots of debug message output!
5
5
  @java -version || echo need to install java first && pause
6
- @cd sensible-cinema && java -cp "./vendor/cache/jruby-complete-1.5.5.jar" org.jruby.Main bin\sensible-cinema --create-mode || echo ERROR. Please look for error message, above, and report back the error you see, or fix it && pause
6
+ @cd sensible-cinema && java -cp "./vendor/cache/jruby-complete-1.5.5.jar" org.jruby.Main bin\sensible-cinema.rb --create-mode || echo ERROR. Please look for error message, above, and report back the error you see, or fix it && pause
7
7
  @taskkill /f /im mencoder.exe
data/go.bat CHANGED
@@ -1,2 +1,2 @@
1
- call j bin\sensible-cinema
1
+ call j bin\sensible-cinema.rb
2
2
  taskkill /f /im mencoder.exe
data/goc.bat CHANGED
@@ -1,2 +1,2 @@
1
- call j bin\sensible-cinema --create-mode
1
+ call j bin\sensible-cinema.rb --create-mode
2
2
  taskkill /f /im mencoder.exe
@@ -148,6 +148,28 @@ class EdlParser
148
148
  total += 60* 60 * hours.to_i
149
149
  total
150
150
  end
151
+
152
+ def self.translate_time_to_human_readable seconds
153
+ # 3600 => "1:00:00"
154
+ out = ''
155
+ hours = seconds.to_i / 3600
156
+ if hours > 0
157
+ out << "%d" % hours
158
+ out << ":"
159
+ end
160
+ seconds = seconds - hours*3600
161
+ minutes = seconds.to_i / 60
162
+ out << "%02d" % minutes
163
+ seconds = seconds - minutes * 60
164
+ out << ":"
165
+ # avoid .0 at the end
166
+ if seconds != seconds.to_i
167
+ out << "%04.1f" % seconds
168
+ else
169
+ out << "%02d" % seconds
170
+ end
171
+ end
172
+
151
173
 
152
174
 
153
175
  end
@@ -30,7 +30,7 @@ class MencoderWrapper
30
30
  end
31
31
  audio_codec = these_settings['audio_codec'] || 'lavc' # not copy...sniff...or you can't hear cars...
32
32
  video_opts = "-ovc lavc -lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=5000:keyint=1:vstrict=0:acodec=ac3:abitrate=192:autoaspect -ofps 30000/1001"
33
- out + "call mencoder dvdnav://#{@dvd_title_track} -of mpeg -mpegopts format=dvd:tsaf -alang en -nocache -sid 1000 -oac #{audio_codec} #{video_opts} -o #{@big_temp} -dvd-device #{this_drive} && echo got_file > #{@big_temp}.done\n"# -vf harddup
33
+ out + "call mencoder dvdnav://#{@dvd_title_track} -of mpeg -mpegopts format=dvd:tsaf -alang en -nocache -sid 1000 -oac #{audio_codec} #{video_opts} -o #{@big_temp} -dvd-device #{this_drive} && echo done_grabbing > #{@big_temp}.done\n"# -vf harddup
34
34
  end
35
35
 
36
36
  def calculate_final_filename to_here_final_file
@@ -142,21 +142,7 @@ class OverLayer
142
142
  all[type] = new.sort
143
143
  end
144
144
  all
145
- end
146
-
147
- def translate_time_to_human_readable seconds
148
- # 3600 => "1:00:00"
149
- out = ''
150
- hours = seconds.to_i / 3600
151
- out << "%d" % hours
152
- out << ":"
153
- seconds = seconds - hours*3600
154
- minutes = seconds.to_i / 60
155
- out << "%02d" % minutes
156
- seconds = seconds - minutes * 60
157
- out << ":"
158
- out << "%04.1f" % seconds
159
- end
145
+ end
160
146
 
161
147
  def timestamp_changed to_this_exact_string_might_be_nil, delta
162
148
  if @just_unblanked
@@ -96,7 +96,7 @@ module SensibleSwing
96
96
  get_content_pane.set_layout nil
97
97
  lines.each_with_index{|line, idx|
98
98
  jlabel = JLabel.new line
99
- jlabel.set_bounds(10, 15*idx, 400, 24)
99
+ jlabel.set_bounds(10, 15*idx, 550, 24)
100
100
  get_content_pane.add jlabel
101
101
  }
102
102
  close = JButton.new( close_button_text ).on_clicked {
@@ -104,7 +104,7 @@ module SensibleSwing
104
104
  }
105
105
  close.set_bounds(125,30+15*lines.length,70,25)
106
106
  get_content_pane.add close
107
- set_size 400, 100+15*lines.length
107
+ set_size 550, 100+15*lines.length # XXX variable width? or use swing build in better?
108
108
  set_visible true
109
109
  setDefaultCloseOperation JFrame::DISPOSE_ON_CLOSE
110
110
  setLocationRelativeTo nil # center it on the screen
@@ -20,8 +20,7 @@ require_relative 'overlayer'
20
20
  class VLCProgrammer
21
21
 
22
22
  def self.to_english s
23
- @overlayer ||= OverLayer.allocate
24
- @overlayer.translate_time_to_human_readable s
23
+ EdlParser.translate_time_to_human_readable s
25
24
  end
26
25
 
27
26
 
@@ -5,13 +5,13 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{sensible-cinema}
8
- s.version = "0.20.1"
8
+ s.version = "0.20.5"
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{2011-01-04}
12
+ s.date = %q{2011-01-24}
13
13
  s.email = %q{rogerdpack@gmail.com}
14
- s.executables = ["sensible-cinema", "sensible-cinema-cli"]
14
+ s.executables = ["sensible-cinema-cli", "sensible-cinema.rb"]
15
15
  s.extensions = ["ext/mkrf_conf.rb"]
16
16
  s.extra_rdoc_files = [
17
17
  "ChangeLog",
@@ -27,8 +27,8 @@ Gem::Specification.new do |s|
27
27
  "Rakefile",
28
28
  "TODO",
29
29
  "VERSION",
30
- "bin/sensible-cinema",
31
30
  "bin/sensible-cinema-cli",
31
+ "bin/sensible-cinema.rb",
32
32
  "create or edit sensible cinema delete list files.bat",
33
33
  "experimental_readme.txt",
34
34
  "ext/mkrf_conf.rb",
@@ -152,4 +152,30 @@ describe EdlParser do
152
152
 
153
153
  it "should handle edge cases, like where an entry overlaps the divider, or the added stuff causes it to"
154
154
 
155
- end
155
+ def translate x
156
+ EdlParser.translate_string_to_seconds x
157
+ end
158
+
159
+ def english y
160
+ EdlParser.translate_time_to_human_readable y
161
+ end
162
+
163
+ it "should translate strings to ints well" do
164
+ translate("00.09").should == 0.09
165
+ translate("1.1").should == 1.1
166
+ translate("01").should == 1
167
+ translate("1:01").should == 61
168
+ translate("1:01:01.1").should == 60*61+1.1
169
+ translate("1:01:01").should == 60*61+1
170
+ end
171
+
172
+ it "should translate ints to english timestamps well" do
173
+ english(60).should == "01:00"
174
+ english(60.1).should == "01:00.1"
175
+ english(3600).should == "1:00:00"
176
+ english(3599).should == "59:59"
177
+ english(3660).should == "1:01:00"
178
+ english(3660 + 0.1).should == "1:01:00.1"
179
+ end
180
+
181
+ end
@@ -70,7 +70,7 @@ describe MencoderWrapper do
70
70
  end
71
71
 
72
72
  it "should create a .done file after ripping" do
73
- @out.should include("&& echo got_file > to_here.fulli_unedited.tmp.mpg.done")
73
+ @out.should include("&& echo done_grabbing > to_here.fulli_unedited.tmp.mpg.done")
74
74
  end
75
75
 
76
76
  def go
data/spec/notes CHANGED
@@ -1,4 +1,12 @@
1
+ MPlayer git-20100211-1-g1c6846f-Kovensky-mt (C) 2000-2009 MPlayer Team
2
+ can play dvd:// and dvdnav:// with seeking at the beginning without crashing...[because old, maybe?]
3
+ mulder's: http://mulder.googlecode.com/files/MPUI.2010-10-17.Full-Package.exe crashes like normal [dvdnav only]
4
+ smplayers seem to always play dvd:// so never crash [?]
5
+
6
+ the internet seems to "not tell me" if transcode's avisplit is frame accurate or not.
7
+
1
8
  watching a DVD "from the DVD" in smplayer seemed to have the right audio always. yep.
9
+ i.e. transcoding from dvd flick fixed it [probably]
2
10
 
3
11
  previewing section on HP 2 hours or so and the first thing overlapped the muted section in error...went too long...huh?
4
12
  call ffmpeg -i C:\HP_AND_THE_CHAMBER_OF_SECRETS_edited_version.fulli_unedited.tmp.mpg -vcodec copy -acodec copy -ss 7260.0 -t 10.499 C:\HP_AND_THE_CHAMBER_OF_SECRETS_edited_version.1.avi
@@ -6,6 +14,9 @@ previewing section on HP 2 hours or so and the first thing overlapped the muted
6
14
  call ffmpeg -i C:\HP_AND_THE_CHAMBER_OF_SECRETS_edited_version.fulli_unedited.tmp.mpg -vcodec copy -acodec copy -ss 7272.0 -t 3.999 C:\HP_AND_THE_CHAMBER_OF_SECRETS_edited_version.3.avi
7
15
 
8
16
  resulted in sectors of 13.17 1.93, 5.03 instead of 10.5, 1.5, and 4. huh?
17
+ with FFmpeg version SVN-r19313, [BAD VERSION probably]
18
+ call ffmpeg -i C:\HP_AND_THE_CHAMBER_OF_SECRETS_edited_version.fulli_unedited.tmp.mpg -vcodec copy -acodec copy -ss 7260.0 -t 10.499 yo.1.avi
19
+ with r32676 seemed much more sane (!)
9
20
 
10
21
  $ to fix mplayer out of sync audio:
11
22
  $ ffmpeg -i HP_AND_THE_CHAMBER_OF_SECRETS_edited_version.fulli_unedited.tmp.mpg -target ntsc-dvd -t 1600 yo.mpg
@@ -19,7 +30,7 @@ bob "they will come" has no mplayer overlap (45 minutes long)
19
30
 
20
31
  HP 2 "full and edited version" had a twidge off of audio even in VLC (unsure if that was copy or lavc audio)
21
32
  seems consistent
22
- The DVD (flick) appeared to have audio in perfect sync, always.
33
+ The DVD (flick) burned, then played, appeared to have audio in perfect sync, always.
23
34
  seems to play fine in smplayer
24
35
  the fulli version was *totally off* in smplayer
25
36
  fulli, edited version had some artifacts in VLC
@@ -430,14 +430,7 @@ describe OverLayer do
430
430
  @o.status.should include("q") # for quit
431
431
  end
432
432
  end
433
-
434
- it "should have human readable output" do
435
- @o.translate_time_to_human_readable(3600).should == "1:00:00.0"
436
- @o.translate_time_to_human_readable(3600.0).should == "1:00:00.0"
437
- @o.translate_time_to_human_readable(3601).should == "1:00:01.0"
438
- @o.translate_time_to_human_readable(3661).should == "1:01:01.0"
439
- end
440
-
433
+
441
434
  it "should no longer accept human readable style as starting seconds" do
442
435
  proc { OverLayer.new 'temp.yml', "01:01.5" }.should raise_error(ArgumentError)
443
436
  end
@@ -6,21 +6,19 @@
6
6
  "21:58", "22:07", "butt",
7
7
  "22:34", "22:34.6", "He..",
8
8
  "23:56.5", "23:56.8", "he..",
9
- "29:44.8", "29:44.5", "G.. name",
10
- "34:08.5", "34:09", "L...",
9
+ "29:44.5", "29:45", "G.. name",
10
+ "34:08.5", "34:09.1", "L...",
11
11
  "40:55", "40:56", "g",
12
- "47:24.4", "47:25", "A. holes",
13
12
  "48:40", "48:41.1", "G",
14
- "59:51", "59:52", "D",
13
+ "1:01:40.2", "1:01:41", "sled g... does it again",
15
14
  "1:02:03", "1:02:04", "butt whipped",
16
15
  "1:02:36.2", "1:02:37", "butt whipping",
17
16
  "1:11:35", "1:11:35.4", "h..",
18
- "1:12:43", "1:12:44", "G",
17
+ "1:12:43", "1:12:44.5", "G",
19
18
  "1:22:01.5", "1:22:02", "d...",
20
- "1:22:53", "1:22:54", "dingaling",
21
- "1:23:03", "1:23:03.3", "h.",
22
- "1:23:48", "1:23:49", "G.",
23
- "1:01:40.2", "1:01:41", "sled g... does it again"
19
+ "1:22:53.5", "1:22:54", "dingaling",
20
+ "1:23:03.3", "1:23:03.8", "h.",
21
+ "1:23:48.5", "1:23:49.5", "G.",
24
22
  ],
25
23
 
26
24
 
@@ -28,10 +26,12 @@
28
26
  "15:20", "15:30",
29
27
  "38:40.4", "38:43.6", "j. c. what h..",
30
28
  "58:40", "58:41", "bad arsenic, but I dislike lip reading.",
29
+ "47:24.4", "47:25", "A. holes",
31
30
  "59:08", "59:09", " bad arsenic",
32
31
  "59:15", "59:49", "bad arsenic ...",
32
+ "59:51.8", "59:52.2", "D",
33
33
  "1:14:30.5", "1:14:47", "psalm",
34
- "1:16:57.0" , "1:16:57.5", "bad a..",
34
+ "1:16:57.3", "1:16:58", "bad a..",
35
35
  ],
36
36
 
37
37
 
@@ -1,7 +1,7 @@
1
1
  # comments can go after a # on any line.
2
2
  "mutes" => [
3
3
  "00:09:44", "00:09:46", "darn",
4
- "00:12:28", "00:12:29", "good L..",
4
+ "00:12:54", "00:12:55", "good L..",
5
5
  "01:20:59", "01:21:00", "h..",
6
6
  "01:21:16", "01:21:17.5", "he..",
7
7
  "02:01:10.5", "02:01:12", "h..",
@@ -14,4 +14,5 @@
14
14
  "disk_unique_id" => "9a56136cdd5bc321ebff064cd59b8322",
15
15
  "title" => "Harry Potter 2 Chamber of secrets",
16
16
  "grabbed_md5" => "2f0395de5eaf0c64eae859e17ba270fd",
17
- "mplayer_dvd_splits" => ["1:16:32"]
17
+ "mplayer_dvd_splits" => ["1:16:32"]
18
+ #plenty of violence at the end with the snake, and also the spiders. hmmmm.
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 20
8
- - 1
9
- version: 0.20.1
8
+ - 5
9
+ version: 0.20.5
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: 2011-01-04 00:00:00 -07:00
17
+ date: 2011-01-24 00:00:00 -07:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
@@ -148,8 +148,8 @@ dependencies:
148
148
  description:
149
149
  email: rogerdpack@gmail.com
150
150
  executables:
151
- - sensible-cinema
152
151
  - sensible-cinema-cli
152
+ - sensible-cinema.rb
153
153
  extensions:
154
154
  - ext/mkrf_conf.rb
155
155
  extra_rdoc_files:
@@ -165,8 +165,8 @@ files:
165
165
  - Rakefile
166
166
  - TODO
167
167
  - VERSION
168
- - bin/sensible-cinema
169
168
  - bin/sensible-cinema-cli
169
+ - bin/sensible-cinema.rb
170
170
  - create or edit sensible cinema delete list files.bat
171
171
  - experimental_readme.txt
172
172
  - ext/mkrf_conf.rb