sensible-cinema 0.24.8 → 0.24.9

Sign up to get free protection for your applications and to get access to all the features.
data/README CHANGED
@@ -71,15 +71,24 @@ Q. How do I watch these on my TV, not just on my computer?
71
71
  A. One way is to plug your computer into your TV.
72
72
  For instance, position a laptop near your TV and hook it in. Newer TV's support this.
73
73
  Or buy a very long monitor cord and plug it in from your desktop/laptop.
74
- You could also buy a projector, attach it to your computer, and then use that to watch it.
74
+ You could also buy a projector, attach it to your computer/laptop, and then use that to watch it.
75
75
  If you're interested in also being able to "beam" it from your computer to your game console (ex: PS3) ping me--I might have
76
76
  something in mind that could help, though hasn't been created yet. (Playon.tv does something like this, too, but
77
77
  I might come up with a competitor to it if desired, as the existing one costs money).
78
- You may be able to create your own edited DVD, see section "Creating an edited DVD"
79
- Another good option is to purchase and use a clearplay player.
78
+ You may be able to create your own edited version of a DVD, see section "Creating an edited DVD"
79
+ Another good option is to purchase and use a clearplay player, with accompanying subscription.
80
80
 
81
81
  Q. I want to give an edited DVD to a friend, how do I do that well?
82
- A. Give them the original, non-edited DVD and email them a link to sensible-cinema's website :)
82
+ A. Give them the original, non-edited DVD and then email them a link to sensible-cinema's website :)
83
+
84
+ Q. Can I use this with Windows Media Center?
85
+ A. Yes, just use some WMC plugin that allows you to "call out" to a 3rd party software to play your files.
86
+ Then use the "advanced" mode "create side-by-side EDL file" to create an EDL for your previously existing file.
87
+ Then make your WMC plugin "call out" to smplayer to play those files (through whatever means it necessary), and
88
+ it will automatically pick up and use the EDL file.
89
+ You could also use the same side-by-side EDL file with XBMC, which also honors them, though
90
+ mutes are broken currently, so it will set it to just always skip. [note: this may not be implemented all the
91
+ way yet ask on the mailing list if it is or not, for XBMC]
83
92
 
84
93
  == Caveats ==
85
94
 
data/Rakefile CHANGED
@@ -157,6 +157,10 @@ task 'gem_release' do
157
157
  FileUtils.rm_rf 'pkg'
158
158
  end
159
159
 
160
+ task 'update wbo' do
161
+
162
+ end
163
+
160
164
  desc ' (releases with clean cache dir, which we need now)'
161
165
  task 'full_release' => [:clear_and_copy_vendor_cache, :rebundle_copy_in_dependencies, :create_distro_dir] do # this is :release
162
166
  p 'remember to run all the specs first!'
data/TODO CHANGED
@@ -17,19 +17,21 @@
17
17
  == high prio like blocking bugs ==
18
18
 
19
19
  == under next release specific items: ==
20
- a "half mute" demo, using volume downs/ups
21
- plus one that also overlays an extra audio LOL
22
20
  cheap minimize via (probably minimize foreground window/windows API)
23
21
  url -> url inference [hopefully this is cake...]
24
22
  can handle multiple dvdid's et al
25
- VLC "insert foreign missing scene" demo, overlay section with image (mplayer?)
23
+ VLC "insert foreign missing scene" supah easy demo
24
+ overlay section with image (mplayer?)
26
25
 
27
26
  == yes do ordered in conjunction with the above probably ==
28
- m4m:
29
- the play button, "regenerate" admin button, "click here x other arrangements of this hymn"
30
- release at some point...Jon?
31
-
27
+ release at some point...Oliver? facebook?
28
+ snapshots of snow white "normal", then deploy pics
32
29
  lightning strike from various outlets...
30
+ research VOB
31
+ timesplits?
32
+
33
+ == yes do, un-ordered currently, from the various future release options ==
34
+ split out the "dependency" code from main.
33
35
  try buy edit lists from all x,y,z [?] maybe ask for them for free first? ()
34
36
  http://www.familysafemovies.com
35
37
  cleanflix (earl? that guy [John webster http://www.amazon.com/Make-Edited-Movies-ebook/dp/B004EYT3BU]?)
@@ -45,63 +47,49 @@
45
47
  http://theeditedmovieencyclopedia.blogspot.com/2008/08/clean-play-dvds-grand-opening-e-mail.html has grande list
46
48
  movie mask wayback machine
47
49
  make it load faster! this is cuh-razy! or splash screen! yes!
48
-
49
- == yes do, un-ordered currently, from the various future release options ==
50
- research VOB
50
+ netflix quality upconverter
51
51
  research XBMC
52
+ @XBMC: your stuff is broken in at least these two ways (bug reports)
53
+ also are they 30fps or not? and how do they handle timesplits?
54
+ is there another format that will actually mute?
52
55
  split into various separate windows themselves...
53
- on mac at home: Constitution: is it 'tresor national'? if yes, submit bug report.
54
- call out to VLC on DVDNAV_ERROR occurrence? what the... if can reproduce, submit bug report with trace et al.
55
56
  consistency for flight of nav. srt? huh?
56
57
  consistency of others, also "DVD reported full-time versus ts time" for others...
57
58
  XBMC mode doesn't mind the 600 starting offset...
58
59
  oh wait we weren't even using it right to begin with LOL
59
- unit tests
60
- subs: if at beginning of a line, add extra offset...hmm...why not?
61
- release urug?
62
- after check mac coiso...
63
- say something if the EDL is blank :)
64
- rename EDL's to clean-as-a-whistle too why not?
65
- figure out if an offset of '1's should be accomodated for...
66
- 0.3 ...
67
- some upconvert specs
68
- fix released version downloadable and work in mac?
69
- distro
70
- facebook survey :)
60
+ plus it needs to "always just skip instead of mute" for now I guess
61
+ report XBMC bugs, too.
62
+ all unit tests
63
+ subs: if at beginning of a sub, add extra offset...hmm...why not?
64
+ say something if the EDL is "blank" :)
65
+ figure out if an offset of '1s' should also be accomodated for...
66
+ 0.3 ... ? huh?
67
+ fix released version to work in mac
71
68
  "--developer" mode
72
69
  export JSON command line, note it in the docu, show it in --developer mode, no new bat file for developer mode
73
- dialog on button aborted, see if I like it :)
74
- fan editor (after C player ?? though I suppose we could bring back batch mplayer to also do this...)
75
- "fan editor" .bat file LOL
76
-
77
70
  new button "auto-test" a subtitles file for timing :)
78
- new upconv button: take some snapshots (just to straight mjpeg or jpeg or the what not)
71
+ new upconv button: auto-take some snapshots (just to straight mjpeg or jpeg or the what not)
79
72
  auto-update website on release.
80
73
  publish a ripped raw big bunny
81
74
  update development howto
82
75
  @jruby scan court jester is *so* slow...what the...[mac at least...]
83
76
  urug again?
84
77
  after works in mac. Why not?
85
- netflix upconverter
86
- if 2 EDL's, still choose a title track, playback
87
- add largest title to the generator EDL
78
+ if 2 EDL's, still can choose a title track
79
+ auto-add largest title to the generator EDL
88
80
  complain if times looks wrong...on playback? sum time
89
- "1:07:5.718" , "1:07:10.447", "profanity", "ba.....", "Faraday that [ba.....] That ba He's gonna wish he never met us",
90
- tighten splits
81
+ tighten old splits... [remove, really, I guess...sure while I only have few...and also add better instructions...]
91
82
  "save to" -> same dir as "get from" yeah
92
83
  open EDL can have a rememberable DIR
93
84
  @instructions "this is great for comparing srt's, except...when it isn't, then you have to..."
94
- @instructions: full srt how-to document instead of tooltip [?]
85
+ @instructions: full srt how-to document instead of tooltip [?] or combine the two! yes!
95
86
  volume_name => dvd_volume_name
96
87
  why is the Sintel's EDL seemingly off?
97
88
  ascertain how accurate mplayer EDL is...I guess compared to...umm...something?
98
89
  fix discrepancy between EDL mplayer and ffmpeg...maybe a new button "accurate EDL playback"?
99
90
  maybe search at end of movies for certain things?
100
91
  double check--are my ffmpeg splits really really really the same as mplayer's EDL DVD splits? really?
101
- check with WME plugins, add instructions, then note in the README "support for x..."
102
- decide if I want to just use edl's or my fancy-shmancy, or maybe my fancy-shmancy to wrap EDL's?
103
- don't have to use eval!
104
- EDL with JSON on top, full timestamps.
92
+ linearize: EDL with JSON on top, full timestamps.
105
93
  setpriority for several :)
106
94
  bring to top after a conversion, and before prompts...
107
95
  can auto-use tsmuxer at all [?]
@@ -145,13 +133,19 @@
145
133
  inventionzy: blu-ray stuff from todo.inventionzy
146
134
 
147
135
  port to mac OS X
148
- ppc dvdid?
136
+ ppc dvdid? documentation button?
149
137
  the final "edited.avi" really "could/should" be playable in WMP...if possible
150
138
  add button "fast preview segment" (from dvd)
151
139
  add button "fast preview one" (from file) smplayer
152
140
  upconvert research/compare various options
141
+ test it out (+- with people)
142
+ propaganda it
153
143
  investigate WMC "call out to smplayer + EDL" or the like...
154
144
  add to docu
145
+ be a hero and sync the dvdnav repo's [?] also fix mplayer not being able to startup on some dvd's what the...this is nuts!
146
+ I'm almost beginning to think VLC for files, DEBUG_C player for DVD's (except on mac, where they just have to live hosed)
147
+ or maybe...umm...ask the dvdnav people why it might work with one and not the other? ask VLC? huh? what the...
148
+ call out to VLC on DVDNAV_ERROR occurrence? what the... if can reproduce, submit bug report with trace et al.
155
149
 
156
150
  == other lists ==
157
151
 
@@ -176,8 +170,13 @@
176
170
  investigate: can I use zoomplayer max?
177
171
 
178
172
  == DVD+-DVD-realtime backlog (totally unordered, some very low prio, basically all never do) ==
173
+ check with WME plugins, add instructions, then note in the README "support for x..."
174
+ "1:07:5.718" , "1:07:10.447", "profanity", "ba.....", "Faraday that [ba.....] That ba He's gonna wish he never met us",
175
+ should have dots uh guess...
176
+ fan editor (after C player ?? though I suppose we could bring back batch mplayer to also do this...)
177
+ "fan editor" .bat file LOL
179
178
  highlighting doesn't work (upconvert DVD with no title track)
180
- new icon plz
179
+ yet another icon plz
181
180
  @ffmpeg: bounty/plz multi-thread the lanczos filter? plz?
182
181
  @ffmpeg: super video enhancer filter. plz? LOL [bounty?]
183
182
  use mplayerx well [?] like wrap it...
@@ -268,7 +267,7 @@
268
267
  can I just use mencoder with an EDL parameter to possibly split/join more quickly or something?
269
268
  10 minute splits for much faster viewage [edl fast preview seems way too lossy ?]
270
269
  port to linux
271
- "release" it to more developers
270
+ "release" it to even more developers
272
271
  plug.org, more rubyists than urug?
273
272
  after OS X confidence :)
274
273
  an all online EDL editor
@@ -368,7 +367,6 @@
368
367
  can blank out the video, with audio continuing through...
369
368
  can use a fast temp drive, save through it to another :P
370
369
  (when they have two...)
371
- blu-ray support somehow (OCR maybe)
372
370
  double buffering hard drive/incoming copying from DVD might speed things, if your HD is fast.
373
371
  might not work for all modes tho...
374
372
  make the progress bar map "better" to the actual time that each section should take...
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.24.8
1
+ 0.24.9
data/bin/sensible-cinema CHANGED
@@ -149,7 +149,7 @@ module SensibleSwing
149
149
 
150
150
  @watch_dvd_upconvert = new_jbutton( "Watch a DVD upconverted (unedited)") do
151
151
  popup = warn_if_no_upconvert_options_currently_selected
152
- thread = play_dvd_smplayer_unedited false, false
152
+ thread = play_dvd_smplayer_unedited false, false, false
153
153
  close_when_done(thread, popup)
154
154
  end
155
155
  @watch_dvd_upconvert.tool_tip = "Plays back the currently inserted DVD, using your current upconverter settings.\nIf it fails (dies immediately, blank screen, etc.), try setting upconvert options to a smaller screen resolution multiple.\nOr try playing the DVD with VLC first, then it might work.\nTo playback a DVD edited upconverted, set upconvert options here first, then run them using sensible cinema main--it will automatically use your new upconverting options."
@@ -374,7 +374,7 @@ module SensibleSwing
374
374
  fps, so you'll need to convert it (the convert timestamp button) to be able to use it in a file.
375
375
  EOL
376
376
  @play_smplayer.on_clicked {
377
- play_dvd_smplayer_unedited
377
+ play_dvd_smplayer_unedited false, true, true
378
378
  }
379
379
 
380
380
  @play_mplayer_raw = new_jbutton( "Watch full DVD unedited (realtime mplayer)")
@@ -385,7 +385,7 @@ module SensibleSwing
385
385
  like "V: 3600.0" should match your subtitle line "01:00:00,000 --> ..."
386
386
  EOL
387
387
  @play_mplayer_raw.on_clicked {
388
- play_dvd_smplayer_unedited true
388
+ play_dvd_smplayer_unedited true, true, true
389
389
  }
390
390
 
391
391
  @display_dvd_info = new_jbutton( "Display information about current DVD (ID, etc.)" )
@@ -500,7 +500,7 @@ module SensibleSwing
500
500
  sleep 0.5 # lodo take out ???
501
501
  background_thread.join if background_thread # let it write out the original fulli, if necessary [?]
502
502
  nice_file = wrote_to_here_fulli
503
- run_smplayer_blocking nice_file, nil, "-edl #{normalize_path EdlTempFile}", false
503
+ run_smplayer_blocking nice_file, nil, "-edl #{normalize_path EdlTempFile}", false, true
504
504
  }
505
505
 
506
506
  @reload = new_jbutton("reload bin/sensible-cinema code") do
@@ -651,10 +651,10 @@ module SensibleSwing
651
651
  }
652
652
  end
653
653
 
654
- def run_smplayer_blocking play_this, title_track_maybe_nil, extra_options, force_use_mplayer, show_subs = false
654
+ def run_smplayer_blocking play_this, title_track_maybe_nil, extra_options, force_use_mplayer, show_subs
655
655
  unless File.exist?(File.expand_path(play_this))
656
- _dbg
657
- raise play_this
656
+ #_dbg
657
+ raise play_this + ' non existing?' # till these go away in mac :)
658
658
  end
659
659
 
660
660
  # -framedrop is for slow CPU's
@@ -666,8 +666,10 @@ module SensibleSwing
666
666
 
667
667
  unless show_subs
668
668
  # disable subtitles
669
- extra_options << " -alang en -nosub -noautosub -forcedsubsonly -sid 1000 "
669
+ extra_options << " -nosub -noautosub -forcedsubsonly -sid 1000 "
670
670
  end
671
+ extra_options << " -alang en "
672
+ extra_options += " -slang en "
671
673
 
672
674
  parent_parent = File.basename(File.dirname(play_this))
673
675
  force_use_mplayer ||= OS.mac?
@@ -689,10 +691,10 @@ module SensibleSwing
689
691
  play_this = "dvdnav://#{title_track_maybe_nil}"
690
692
  else
691
693
  # case g:\video\filename.mpg
692
- # leave same...
694
+ # leave it the same...
693
695
  end
694
696
  if play_this =~ /dvdnav/ && title_track_maybe_nil
695
- extra_options << " -msglevel identify=4 " # prevent smplayer from using *forever* to look up info on DVD's 4
697
+ extra_options << " -msglevel identify=4 " # prevent smplayer from using *forever* to look up info on DVD's with -identify ...
696
698
  end
697
699
 
698
700
  extra_options += " -mouse-movements #{get_upconvert_secondary_settings} " # just in case smplayer also needs -mouse-movements... :) LODO
@@ -700,11 +702,9 @@ module SensibleSwing
700
702
  if force_use_mplayer
701
703
  show_mplayer_instructions_once
702
704
  conf_file = File.expand_path './mplayer_input_conf'
703
-
704
- File.write conf_file, "ENTER {dvdnav} dvdnav select\nMOUSE_BTN0_DBL vo_fullscreen\nMOUSE_BTN2 vo_fullscreen\nKP_ENTER dvdnav select\n" # dvdnav doesn't work here...
705
+ File.write conf_file, "ENTER {dvdnav} dvdnav select\nMOUSE_BTN0 {dvdnav} dvdnav select\nMOUSE_BTN0_DBL vo_fullscreen\nMOUSE_BTN2 vo_fullscreen\nKP_ENTER dvdnav select\n" # that KP_ENTER doesn't actually work. Nor the MOUSE_BTN0 on windows. Weird.
705
706
  extra_options += " -font #{File.expand_path('subfont.ttf')} "
706
707
  extra_options += " -volume 100 " # why start low? mplayer why oh why
707
- extra_options += " -slang en "
708
708
  if OS.windows?
709
709
  # direct3d for windows 7 old nvidia cards' sake [yipes] and also dvdnav sake
710
710
  extra_options += " -vo direct3d "
@@ -722,7 +722,7 @@ module SensibleSwing
722
722
  set_smplayer_opts extra_options, get_upconvert_vf_settings, show_subs
723
723
  c = "smplayer_portable \"#{play_this}\" -fullscreen -config-path \"#{File.dirname SMPlayerIniFile}\" "
724
724
  if !we_are_in_create_mode
725
- #c += " -close-at-end "
725
+ #c += " -close-at-end " # we're still too unstable...
726
726
  end
727
727
  end
728
728
  puts c
@@ -835,7 +835,7 @@ module SensibleSwing
835
835
  writeOut.close
836
836
  end
837
837
 
838
- def play_dvd_smplayer_unedited use_mplayer_instead = false, show_instructions = true
838
+ def play_dvd_smplayer_unedited use_mplayer_instead, show_instructions, show_subs
839
839
  drive_or_file, dvd_volume_name, dvd_id, edl_path_maybe_nil, descriptors_maybe_nil = choose_dvd_or_file_and_edl_for_it false
840
840
  if descriptors_maybe_nil
841
841
  title_track_maybe_nil = get_title_track(descriptors_maybe_nil, false)
@@ -844,11 +844,15 @@ module SensibleSwing
844
844
  # want this even with smplayer sometimes I guess...
845
845
  show_mplayer_instructions_once
846
846
  end
847
- run_smplayer_non_blocking drive_or_file, title_track_maybe_nil, "-osd-fractions 2", use_mplayer_instead
847
+ run_smplayer_non_blocking drive_or_file, title_track_maybe_nil, "-osd-fractions 2", use_mplayer_instead, show_subs
848
848
 
849
849
  end
850
850
 
851
- EdlTempFile = Dir.tmpdir + '/mplayer.temp.edl'
851
+ if OS.doze? # avoid spaces :)
852
+ EdlTempFile = EightThree.convert_path_to_8_3(Dir.tmpdir + '/mplayer.temp.edl')
853
+ else
854
+ EdlTempFile = Dir.tmpdir + '/mplayer.temp.edl'
855
+ end
852
856
 
853
857
  def show_mplayer_instructions_once
854
858
  @_show_mplayer_instructions_once ||= show_non_blocking_message_dialog <<-EOL
@@ -882,7 +886,7 @@ module SensibleSwing
882
886
  splits = descriptors['mplayer_dvd_splits']
883
887
  end
884
888
 
885
- if dvd_id == NonDvd
889
+ if dvd_id == NonDvd && !(File.basename(File.dirname(drive_or_file)) == 'VIDEO_TS') # VOB's...always start at 0
886
890
  # check if starts offset...
887
891
  all = `ffmpeg -i "#{drive_or_file}" 2>&1`
888
892
  # Duration: 01:35:49.59, start: 600.000000
@@ -908,7 +912,7 @@ module SensibleSwing
908
912
  extra_mplayer_commands << "-edl #{File.expand_path EdlTempFile}"
909
913
  end
910
914
 
911
- run_smplayer_non_blocking drive_or_file, title_track, extra_mplayer_commands.join(' '), false
915
+ run_smplayer_non_blocking drive_or_file, title_track, extra_mplayer_commands.join(' '), false, false
912
916
  end
913
917
 
914
918
  def assert_ownership_dialog
@@ -1353,7 +1357,7 @@ module SensibleSwing
1353
1357
  if success
1354
1358
  saved_to = save_to + '.avi'
1355
1359
  if run_mplayer_after_done
1356
- run_smplayer_non_blocking saved_to, nil, '', false
1360
+ run_smplayer_non_blocking saved_to, nil, '', false, false
1357
1361
  else
1358
1362
  if File.exist?(saved_to) && (File.size(saved_to).to_f/File.size(file_from) < 0.5) # less than 50% size is suspicious...indeed...check if exists for unit tests.
1359
1363
  show_blocking_message_dialog("Warning: file size differs by more than 50%--it's possible that transcoding failed somehow")
@@ -1432,7 +1436,7 @@ module SensibleSwing
1432
1436
  return [filename, File.basename(filename), NonDvd]
1433
1437
  else
1434
1438
  disk = opticals[selected_idx]
1435
- out = show_non_blocking_message_dialog "calculating disk's unique id..." # useful, believe it or not
1439
+ out = show_non_blocking_message_dialog "calculating current disk's unique id..." # useful, believe it or not
1436
1440
  dvd_id = DriveInfo.md5sum_disk(disk.MountPoint)
1437
1441
  out.dispose
1438
1442
  @_choose_dvd_drive_or_file = [disk.MountPoint, opticals[selected_idx].VolumeName, dvd_id]
@@ -1,3 +1,19 @@
1
+ == 0.24.9 ==
2
+
3
+ Fix so that mplayer can display subtitles again in advanced mode. Hopefully only in advanced mode :)
4
+
5
+ NB that already mplayer2 can pull in from multiple source locations for its new EDL format: http://lists.mplayer2.org/pipermail/mplayer2-git/2011-April/000068.html
6
+
7
+ Added experimental support for upconverting {youtube, netflix instant, whatever}, complete with demo video even.
8
+ It tracks exact screen coordinates (if entered manually), and upconverts through a way of a 3rd party upconverter, to another 3rd party player.
9
+ With variable settings for upconversion.
10
+
11
+ Added support for using volume keys to "mute" or "partial" mute (equivalent of hitting down volume key on keyboard) of any 3rd party application.
12
+ With video.
13
+
14
+ Note also that the previous video of how to overlay "static" for muting is also a demonstration of how to overlay any arbitrary audio file
15
+ over any video file/player, at a given time (example: scene-based audio overlays, fan edit comment tracks, etc.) similar to RiffTrax.
16
+
1
17
  == 0.24.8 ==
2
18
 
3
19
  Fix some bugs in upconverting playback, cleanup UI.
@@ -32,6 +32,8 @@ A big helper is the "parse subtitle" button.
32
32
  Basically download a subtitle file for your DVD from opensubtitles.org
33
33
  Then check that its timestamp matches (Watch full DVD unedited mplayer button, compare with "V: 3600" type output with your .srt file)
34
34
  Then parse it for known profanities (parse a subtitle... button) and copy and paste the appropriate entries to your EDL.
35
+ You can also generate your own (super accurate) subtitle .srt file by using the SubtitleEdit to parse them from (unencrypted) DVD or file,
36
+ or avisynth can also extract subtitles.
35
37
 
36
38
  For the rest of the buttons, just "mouse over"/"hover over" them for full descriptions of their potential uses.
37
39
 
@@ -1,5 +1,15 @@
1
1
  == Troubleshooting ==
2
2
 
3
+ Problem: disk (or VOB folder) hangs on a "skip" segment.
4
+ A. Known problem, just use the right arrow to skip past the problem section for now.
5
+
6
+ Problem: disk (or VOB folder) just never play. Nothing happens, smplayer is just blank.
7
+ Try to playback your DVD in "VLC Media Player" first, then try it again. Also check the "mplayer logs" and report back
8
+ as a bug report.
9
+
10
+
11
+ General trouble shooting:
12
+
3
13
  If you run into some snag, try cleaning your DVD and starting over (delete all files, start again).
4
14
  Baking soda toothpaste might help with cleaning it.
5
15
  If it still errs, report it, along with a screen snapshot and steps of
@@ -8,8 +18,6 @@ how to reproduce the problem, preferably.
8
18
  It can fail also because a deletion is past end of DVD, or
9
19
  Also make sure you aren't out of disk space.
10
20
 
11
- Try your playback in "VLC Media Player".
12
-
13
21
  You try to play back a sensible cinema-ized video file and it plays back without
14
22
  audio or video (example: windows media player)?
15
23
 
@@ -20,8 +28,9 @@ You try to play back a sensible cinema-ized video file and it plays back without
20
28
  (there's a button for that). Installing "AC3Filter" may help if you can hear no audio.
21
29
  Really VLC Media Player is your best bet though.
22
30
 
23
- 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
31
+ If the end result video is too grainy/pixelated or if the overall process is too slow, let me know and I'll work on
24
32
  making it better. No really, I have some ideas, but want to see if there's need first for improvement in those areas.
25
33
 
26
34
  Finally, report back! If there are problems that arise, I want to hear about them so we can help you through it.
27
35
  See README for contact info
36
+
@@ -58,7 +58,7 @@ Normal DVD's versus "directors cut" versions of movies (one is at times preferab
58
58
  http://en.wikipedia.org/wiki/Edit_decision_list (it's a linear editing tool, after all--so see the vast list of those)
59
59
  Clean Flicks (used to) sell edited movies
60
60
  http://college.swankmp.com/insti/edited.asp prisoners apparently have access to a few "edited" versions of movies (not many though, but there are some listed there)
61
- 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
61
+ 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, and has its own EDL syntax http://wiki.xbmc.org/?title=EDL_%28commercial_skipping%29_and_SceneMarker_support
62
62
  http://www.microsoft.com/windows/windowsmedia/howto/articles/device_control.aspx Windows Media Encoder supports EDL's by timestamp
63
63
  http://cutlist.at shared "commercial skip" cutlists
64
64
  http://www.mplayerhq.hu/DOCS/HTML/en/edl.html
data/lib/drive_info.rb CHANGED
@@ -44,7 +44,7 @@ class DriveInfo
44
44
  most_space.MountPoint + "/"
45
45
  end
46
46
 
47
- def self.get_all_drives_as_ostructs
47
+ def self.get_all_drives_as_ostructs # not just DVD drives...
48
48
  if OS.mac?
49
49
  require 'plist'
50
50
  Dir['/Volumes/*'].map{|dir|
@@ -0,0 +1,23 @@
1
+ require 'ffi'
2
+
3
+ module EightThree
4
+ extend FFI::Library
5
+ ffi_lib 'kernel32'
6
+ ffi_convention :stdcall
7
+
8
+ =begin
9
+ DWORD WINAPI GetShortPathName(
10
+ __in LPCTSTR lpszLongPath,
11
+ __out LPTSTR lpszShortPath,
12
+ __in DWORD cchBuffer
13
+ );
14
+ =end
15
+
16
+ attach_function :path_to_8_3, :GetShortPathNameA, [:pointer, :pointer, :uint], :uint
17
+ def self.convert_path_to_8_3 path
18
+ out = FFI::MemoryPointer.new 256 # bytes
19
+ path_to_8_3(path, out, out.length)
20
+ out.get_string
21
+ end
22
+
23
+ end
data/lib/muter.rb CHANGED
@@ -42,25 +42,28 @@ module Muter
42
42
  end
43
43
 
44
44
  def hit_volume_up_key
45
+ p 'hitting up volume key'
45
46
  keybd_event(VK_VOLUME_UP, 0, 0, nil)
46
47
  keybd_event(VK_VOLUME_UP, 0, KEYEVENTF_KEYUP, nil)
47
48
  end
48
49
 
49
50
  def hit_volume_down_key
51
+ p 'hitting down volume key'
50
52
  keybd_event(VK_VOLUME_DOWN, 0, 0, nil)
51
53
  keybd_event(VK_VOLUME_DOWN, 0, KEYEVENTF_KEYUP, nil)
52
54
  end
53
55
 
54
56
  @@use_mouse = false # inventionzy
55
57
  @@use_static_on_top = false # inventionzy
58
+ @@use_down_volume_button = true
56
59
 
57
- def start_static
60
+ def start_playing_static
58
61
  @player = PlayAudio.new(__DIR__ + '/static.wav')
59
62
  @player.loop
60
63
  p 'STARTED STATIC'
61
64
  end
62
65
 
63
- def stop_static
66
+ def stop_playing_static
64
67
  if @player
65
68
  p 'STOPPED STATIC'
66
69
  @player.stop
@@ -68,13 +71,17 @@ module Muter
68
71
  end
69
72
  end
70
73
 
74
+ @@use_down_volume_button_number = 3
75
+
71
76
  def mute!
72
77
  #unmute! # just in case...somehow this was causing problems...windows 7 perhaps? VLC?
73
78
  # anyway we just use a toggle for now...dangerous but works hopefully
74
79
  if @@use_mouse
75
80
  Mouse.single_click_left_mouse_button
76
81
  elsif @@use_static_on_top
77
- start_static
82
+ start_playing_static
83
+ elsif @@use_down_volume_button
84
+ @@use_down_volume_button_number.times { hit_volume_down_key }
78
85
  else
79
86
  hit_mute_key
80
87
  end
@@ -85,7 +92,9 @@ module Muter
85
92
  if @@use_mouse
86
93
  Mouse.single_click_left_mouse_button
87
94
  elsif @@use_static_on_top
88
- stop_static
95
+ stop_playing_static
96
+ elsif @@use_down_volume_button
97
+ @@use_down_volume_button_number.times { hit_volume_up_key }
89
98
  else
90
99
  hit_mute_key # Windows XP...
91
100
  hit_volume_down_key
@@ -75,15 +75,19 @@ class ScreenTracker
75
75
  @hwnd = Win32::Screenshot::BitmapMaker.hwnd(@name_or_regex, @use_class_name)
76
76
  end
77
77
 
78
- # allow ourselves the 'found it message' selectively
78
+ # display the 'found it message' only if it was previously lost...
79
79
  unless @hwnd
80
80
  until @hwnd
81
81
  print 'unable to find the player window currently [%s] (maybe need to start program or move mouse over it)' % @name_or_regex.inspect
82
82
  sleep 1
83
83
  STDOUT.flush
84
- @hwnd = Win32::Screenshot::BitmapMaker.hwnd(@name_or_regex, @use_class_name)
84
+
85
+ hwnd = Win32::Screenshot::BitmapMaker.hwnd(@name_or_regex, @use_class_name)
86
+ width, height = Win32::Screenshot::Util.dimensions_for(hwnd)
87
+ p width, height
88
+ @hwnd = hwnd
85
89
  end
86
- puts 're-found window'
90
+ puts 're-established contact with window'
87
91
  end
88
92
 
89
93
  end
@@ -175,7 +179,8 @@ class ScreenTracker
175
179
  sleep 0.02
176
180
  if(Time.now - time_since_last_screen_change > 2.0)
177
181
  # display a warning
178
- p 'warning--unable to track screen time for some reason [perhaps screen obscured or it\'s not playing yet, or paused?]'
182
+ p 'warning--unable to track screen time for some reason [perhaps screen obscured or it\'s not playing yet, or paused?] ' + @hwnd.to_s
183
+ p Win32::Screenshot::Util.dimensions_for(hwnd)
179
184
  @previously_displayed_warning = true
180
185
  time_since_last_screen_change = Time.now
181
186
  # also reget window hwnd, just in case that's the problem...(can be with VLC moving from title to title)
data/spec/notes CHANGED
@@ -1,6 +1,20 @@
1
1
 
2
2
  up next:
3
3
 
4
+ == upconvert netflix ==
5
+
6
+ media player classic appears to have no cache.
7
+ "uscreencapture settings" appears to be per app, so lost with a .grf file save [?]
8
+ or maybe appear to be overridden...by WMC, mplayer10, not virtualdub, not ffmpeg, yes mplayer
9
+ works for a demo, long term probably will need my own filter :)
10
+ though for now I could just tell them "ok download graphedit too LOL, run this in virtualdub, position your window up there"
11
+
12
+ == phreaky mplayer dvdnav ==
13
+
14
+ Tangled seemed to "not play without VLC help" at work, but not at home mac where it failed.
15
+ Snow White apparently failed quite well at work, however. Man this is really really weird.
16
+
17
+
4
18
  == real time subtitle ==
5
19
  0.4 extra + 0.5 not nuf blacky, marked one, hitchhikers
6
20
 
@@ -294,6 +294,7 @@ module SensibleSwing
294
294
  end
295
295
 
296
296
  it "should do something for fast preview" do
297
+ FileUtils.touch "selected_file.fulli_unedited.tmp.mpg"
297
298
  click_button(:@fast_preview)
298
299
  assert_played_mplayer
299
300
  end
@@ -392,7 +393,7 @@ module SensibleSwing
392
393
  it "should handle dvd drive -> dvdnav" do
393
394
  for drive in ['d:', 'e:', 'f:', 'g:']
394
395
  if File.exist?(drive + '/VIDEO_TS')
395
- @subject.run_smplayer_blocking drive, nil, '', true
396
+ @subject.run_smplayer_blocking drive, nil, '', true, true
396
397
  @system_blocking_command.should =~ /dvdnav/
397
398
  @system_blocking_command.should =~ /-dvd-device/
398
399
  end
@@ -401,11 +402,15 @@ module SensibleSwing
401
402
 
402
403
  it 'should handle a/b/VIDEO_TS/yo.vob' do
403
404
  FileUtils.mkdir_p f = 'a/b/VIDEO_TS/yo.vob'
404
- @subject.run_smplayer_blocking f, 3, '', true
405
+ @subject.run_smplayer_blocking f, 3, '', true, false
405
406
  @system_blocking_command.should =~ /dvdnav:\/\/3/
406
407
  @system_blocking_command.should =~ /VIDEO_TS\/\.\./
407
408
  @system_blocking_command.should =~ / -alang/ # preceding space :)
408
409
 
410
+ # exercise the yes subtitle options...
411
+ @subject.run_smplayer_blocking f, 3, '', true, true
412
+ @system_blocking_command.should_not =~ /-nosub/
413
+
409
414
  end
410
415
 
411
416
  it "should play edl with extra time for the mutes because of the EDL aspect" do
@@ -595,12 +600,12 @@ module SensibleSwing
595
600
  @subject.stub(:system_blocking) { |c|
596
601
  got = c
597
602
  }
598
- @subject.run_smplayer_blocking 'selected_file.avi', nil, "", true
603
+ @subject.run_smplayer_blocking 'selected_file.avi', nil, "", true, true
599
604
  assert got =~ /hqdn3d/
600
605
 
601
606
  # and on smplayer
602
607
  MainWindow::SMPlayerIniFile.gsub!(/^.*$/, File.expand_path('./smplayer_ini_file')) # don't overwrite the real one...
603
- @subject.run_smplayer_blocking 'selected_file.avi', nil, "", false
608
+ @subject.run_smplayer_blocking 'selected_file.avi', nil, "", false, true
604
609
  assert got =~ /mplayer/
605
610
  assert File.read(MainWindow::SMPlayerIniFile) =~ /hqdn3d/
606
611
  end
@@ -1,6 +1,7 @@
1
1
  @echo Welcome to Sensible Cinema...
2
2
  @IF NOT EXIST sensible-cinema\VENDOR\CACHE GOTO NOVENDORDIR
3
- @echo This window will display lots of debug output (you can just ignore this window or minimize it)
3
+ @echo This window will display lots of debug output
4
+ @echo (you can just ignore this window or minimize it, but have to leave it open)
4
5
  @setlocal
5
6
  @rem disable any local rubyopt settings, just in case...
6
7
  @set RUBYOPT=
data/todo.inventionzy.txt CHANGED
@@ -1,6 +1,6 @@
1
1
  === patentzy yes actually do vaguely ordered ===
2
2
  blu-ray OCR
3
- more blu-ray stuff: can ID them, can playback (through...mkv? VLC?)
3
+ more blu-ray stuff: can ID them, can playback (through...mkv? VLC? powerdvd OCr/scripted?)
4
4
  some blu-ray player descriptor somehow
5
5
 
6
6
  can pick specific profanities to avoid
data/todo.upconvert CHANGED
@@ -5,12 +5,16 @@ compare various computers/monitors...
5
5
  experiment with 2x or not with various people...
6
6
  also should I change screen resolution down to 800x600 then double upconvert? better?
7
7
 
8
- lanczos 10?
8
+ lanczos 10? is filter length 4 better? huh? what?
9
9
 
10
10
  hqdn3d settings?
11
11
 
12
12
  upconvert netflix instant yes!
13
13
 
14
+ do I need double tapping? http://archive2.avsforum.com/avs-vb/showthread.php?s=&postid=4760581#post4760581
15
+
16
+ my own Dshow input filter, which also has a "command line" way of configuring it, for ease of use.
17
+
14
18
  == never ==
15
19
 
16
20
  add another sharpen filter?
@@ -0,0 +1,37 @@
1
+ To use this (upscaling from your own computer):
2
+
3
+ Steps:
4
+
5
+ download/install uscreencapture: http://www.umediaserver.net/umediaserver/download.html
6
+
7
+ download+install "windows sdk" http://msdn.microsoft.com/en-us/windows/bb980924 (rather big one here :) )
8
+
9
+ download virtualdub: http://www.virtualdub.org/download.html
10
+
11
+ Now start your "subject" to upconvert (ex: hulu, or netflix instant).
12
+ You can pause it if desired. Don't fullscreen it.
13
+ You'll want to leave it on its smallest "window" possible, that still has the most detail.
14
+ So basically don't let your "subject" player do any stretching, you want to leave all of that for
15
+ this program to do.
16
+
17
+ Next you'll need dual monitor, ex: laptop screen plus the VGA out on the laptop.
18
+ Position your "subject" movie so that it is flush in the top right of either monitor.
19
+ See the file "position_window.png" for an demo. Installing NiftyWindows then
20
+ "right mouse button+drag" can help you reposition it just right.
21
+
22
+ Now in virtualdub, open the file upconvert_from_screen.avs.
23
+
24
+ Click the "play" bottom left button.
25
+ See if it is capturing the right monitor, how much of the video it is capturing, if any.
26
+
27
+ Now search for the program "graphedt.exe", for me, this was in C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin
28
+
29
+ Run it. Use it to open the file uscreen.GRF
30
+ Right click on the box "uscreencapture"
31
+ Adjust the various properties so that it captures the video region you desire, by editing values, click "Apply",
32
+ then clicking the "save" icon within graphedit. Then reopen the file within virtualdub to test your new settings.
33
+ Note the x and y values you use.
34
+
35
+ Now edit the text upconvert_from_screen.avs and fill in appropriate values.
36
+
37
+ Now run it in virtualdub again, move virtualdub to your output display, enjoy watching it.
@@ -0,0 +1,21 @@
1
+ # from http://avisynth.org/mediawiki/Enhancing_dvd_videos
2
+
3
+ Video = DirectShowSource("uscreen.GRF", fps=30, audio=False, framecount=1000000)
4
+ Video = ConvertToYUY2 (Video)
5
+
6
+ # get these from examining the window size or through trial and error.
7
+ subject_x = 720 # CHANGE THIS
8
+ subject_y = 480 # CHANGE THIS
9
+
10
+ # these are the size of your monitor that the output is displayed on. Unless it lags too much, then try experimenting with smaller values
11
+ screen_width = 1024 # CHANGE THIS
12
+ screen_height = 768 # CHANGE THIS
13
+
14
+ # note that you can get even better looking images by say, upscaling to 2x your current screen resolution, by uncommenting the following two lines
15
+ screen_width = screen_width*2
16
+ screen_height = screen_height*2
17
+
18
+ Video = Lanczos4Resize (Video, screen_width, screen_height) # said to be a good upsampler...hmm...
19
+
20
+ Video = Sharpen (Video, 0.78) # Helps sharpen smoothness enlarging does. 0.78 = (1.25*(1024/720))-1
21
+ Return Video
Binary file
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: sensible-cinema
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.24.8
5
+ version: 0.24.9
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-07-22 00:00:00 -06:00
13
+ date: 2011-07-28 00:00:00 -06:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
@@ -247,6 +247,7 @@ files:
247
247
  - lib/count_down_timer_jruby_swing.rb
248
248
  - lib/drive_info.rb
249
249
  - lib/edl_parser.rb
250
+ - lib/eight_three.rb
250
251
  - lib/fake_blanker.rb
251
252
  - lib/file_chooser.rb
252
253
  - lib/frame_accurate.rb
@@ -312,6 +313,9 @@ files:
312
313
  - todo.subtitle
313
314
  - todo.upconvert
314
315
  - upconvert.bat
316
+ - upconvert_netflix/HOW_TO_USE.txt
317
+ - upconvert_netflix/upconvert_from_screen.avs
318
+ - upconvert_netflix/uscreen.GRF
315
319
  - vendor/jruby-complete-1.6.2.jar
316
320
  - vendor/mac_dvdid/bin/dvdid
317
321
  - vendor/mac_dvdid/include/dvdid/dvdid.h