sensible-cinema 0.21.9 → 0.21.10

Sign up to get free protection for your applications and to get access to all the features.
Files changed (101) hide show
  1. data/LICENSE.TXT +8 -72
  2. data/README +126 -90
  3. data/Rakefile +28 -34
  4. data/TODO +157 -129
  5. data/VERSION +1 -1
  6. data/bin/sensible-cinema +40 -23
  7. data/change_log_with_feature_list.txt +26 -0
  8. data/development.txt +15 -6
  9. data/go.bat +1 -1
  10. data/go_ocr_tracker.bat +1 -1
  11. data/gocreatemode.bat +1 -1
  12. data/is_it_legal_to_copy_dvds.txt +80 -0
  13. data/lib/auto_convert.rb +4 -3
  14. data/lib/count_down_timer_jruby_swing.rb +5 -5
  15. data/lib/drive_info.rb +27 -7
  16. data/lib/edl_parser.rb +0 -1
  17. data/lib/mencoder_wrapper.rb +4 -5
  18. data/lib/subtitle_profanity_finder.rb +128 -0
  19. data/sensible-cinema.gemspec +24 -93
  20. data/spec/common.rb +8 -9
  21. data/spec/dragon.srt +32 -0
  22. data/spec/drive_info.spec.rb +2 -1
  23. data/spec/how_to +13 -0
  24. data/spec/notes +651 -41
  25. data/spec/subtitle_profanity_finder.spec.rb +53 -0
  26. data/template_bats/RUN SENSIBLE CINEMA CLICK HERE.bat +11 -2
  27. data/todo.build_library.txt +1 -1
  28. data/todo.inventionzy.txt +16 -11
  29. data/todo.open_edl_list_org.txt +19 -2
  30. data/todo.subtitle +16 -4
  31. data/{bin → vendor}/monkey.png +0 -0
  32. data/www/index.html +1 -1
  33. data/zamples/edit_decision_lists/dvds/how_to_train_your_dragon.txt +25 -0
  34. data/zamples/edit_decision_lists/dvds/legend_of_the_guardians_the_owls_of_gahoole.txt +1 -1
  35. data/zamples/edit_decision_lists/dvds/sintel_open_source_blender.txt +18 -0
  36. data/zamples/edit_decision_lists/dvds/tron_legacy.txt +27 -0
  37. metadata +306 -413
  38. data/lib/profanity_finder.rb +0 -84
  39. data/spec/images/black.bmp +0 -0
  40. data/spec/images/colon.bmp +0 -0
  41. data/spec/images/hulu_0.bmp +0 -0
  42. data/spec/images/hulu_2.bmp +0 -0
  43. data/spec/images/hulu_2_3.bmp +0 -0
  44. data/spec/images/hulu_2_4.bmp +0 -0
  45. data/spec/images/hulu_3.bmp +0 -0
  46. data/spec/images/hulu_3_4.bmp +0 -0
  47. data/spec/images/hulu_4.bmp +0 -0
  48. data/spec/images/hulu_4_4.bmp +0 -0
  49. data/spec/images/hulu_5.bmp +0 -0
  50. data/spec/images/hulu_7.bmp +0 -0
  51. data/spec/images/hulu_8.bmp +0 -0
  52. data/spec/images/hulu_slash.bmp +0 -0
  53. data/spec/images/netflix_a0.bmp +0 -0
  54. data/spec/images/netflix_a1.bmp +0 -0
  55. data/spec/images/netflix_a2.bmp +0 -0
  56. data/spec/images/netflix_a3.bmp +0 -0
  57. data/spec/images/netflix_a4.bmp +0 -0
  58. data/spec/images/netflix_a5.bmp +0 -0
  59. data/spec/images/netflix_a6.bmp +0 -0
  60. data/spec/images/netflix_a7.bmp +0 -0
  61. data/spec/images/netflix_a8.bmp +0 -0
  62. data/spec/images/netflix_a9.bmp +0 -0
  63. data/spec/images/netflix_b9.bmp +0 -0
  64. data/spec/images/vlc_0.bmp +0 -0
  65. data/spec/images/vlc_2_4.bmp +0 -0
  66. data/spec/images/vlc_2_6.bmp +0 -0
  67. data/spec/images/vlc_4.bmp +0 -0
  68. data/spec/images/vlc_5.bmp +0 -0
  69. data/spec/images/vlc_6.bmp +0 -0
  70. data/spec/images/vlc_9.bmp +0 -0
  71. data/spec/images/vlc_colon.bmp +0 -0
  72. data/spec/images/youtube_0.bmp +0 -0
  73. data/spec/images/youtube_1.bmp +0 -0
  74. data/spec/images/youtube_2_0.bmp +0 -0
  75. data/spec/images/youtube_2_5.bmp +0 -0
  76. data/spec/images/youtube_2_6.bmp +0 -0
  77. data/spec/images/youtube_3_0.bmp +0 -0
  78. data/spec/images/youtube_4.bmp +0 -0
  79. data/spec/images/youtube_4_0.bmp +0 -0
  80. data/spec/images/youtube_5.bmp +0 -0
  81. data/spec/images/youtube_6.bmp +0 -0
  82. data/spec/images/youtube_light_0.bmp +0 -0
  83. data/spec/images/youtube_light_1_3.bmp +0 -0
  84. data/spec/images/youtube_light_2_1.bmp +0 -0
  85. data/spec/images/youtube_light_2_3.bmp +0 -0
  86. data/spec/images/youtube_light_2_9.bmp +0 -0
  87. data/spec/images/youtube_light_4.bmp +0 -0
  88. data/spec/images/youtube_light_4_3.bmp +0 -0
  89. data/spec/images/youtube_light_5.bmp +0 -0
  90. data/spec/images/youtube_light_5_0.bmp +0 -0
  91. data/spec/images/youtube_light_8.bmp +0 -0
  92. data/spec/images/youtube_light_9.bmp +0 -0
  93. data/spec/images/youtube_small_0.bmp +0 -0
  94. data/spec/images/youtube_small_2.bmp +0 -0
  95. data/spec/images/youtube_small_2_0.bmp +0 -0
  96. data/spec/images/youtube_small_4.bmp +0 -0
  97. data/spec/silence.wav +0 -0
  98. data/vendor/SetPriority.exe +0 -0
  99. data/vendor/gocr049.exe +0 -0
  100. data/vendor/music.wav +0 -0
  101. data/vendor/unzip.exe +0 -0
data/TODO CHANGED
@@ -1,147 +1,185 @@
1
- == roadmap ==
1
+ == roadmap [for just tasks, see below though] ==
2
2
 
3
- release: cheap inventionzy
3
+ release: cheap inventionzy, and medium inventionzy
4
4
  release: C EDL+specific portion player
5
- ....
6
- pull realtime players from mine/update todo
5
+ ?? ordering/looseness below ??
6
+ pull realtime players from mine/update todo/make mine take a file
7
7
  build library phase, 20 dvd's
8
- create web site
8
+ create web site/api
9
9
  propagate wikipedia with list of realtimers etc.
10
+ don't mention mplayer EDL, just link to wikipedia :P
10
11
  more build library
11
- verbiage release/text in todo items/README/license
12
+ compare netflix/blu-ray timings et al
12
13
 
13
14
  == high prio like blocking bugs ==
14
15
 
15
16
  == up next release/very next task: ==
16
17
 
17
- ffmpeg/mencoder timings for splitting files
18
18
  high prio patents
19
- time a movie using a 'real' DVD player--which one is accurate by the end, anyway?
20
19
 
21
- == yes do, un-ordered currently ==
22
-
23
- edit this todo list all of it
24
- research the gplv3, add terms. Maybe want real lawyer, even?
25
- closure on blu ray timing
26
- figure out how to fix avidemux being like...still barely off frame-rate wise hmm...
27
- create+publish an ISO of my temple DVD or what not :P
28
- @VLC: use http://www.startssl.com for trac, https forum, also forum always returns 409's
20
+ == yes do, un-ordered currently, from the various release options ==
21
+
22
+ tell them "I need it as a raw mpeg file, use makemkv with tsmuxer to transform it to an mpeg, or use mplayer to grab it"
23
+ "just look at the title track in the EDL, then..."
24
+ tell them "to edit easily..."
25
+ "you could watch it under mplayer with the OSD turned on"
26
+ [+ button for same?]
27
+ "you could watch it with a normal DVD player (hardware or software, a la powerDDVD et al)"
28
+ add button for "convert from DVD Player [mplayer OSD, commercial]" to accurate timestamp [single timestamp]
29
+ "you could edit it in basically any editor--they are usually pretty accurate [instructions for powerproducer]"
30
+ windows DVD Maker is not accurate enough
31
+ "you could edit your file "raw" file "with avidemux, except video will be slightly off, but audio will be on"
32
+ "you could get timestamps from playing it back with VLC and watching the time, though VLC [or any GUI] is always slightly off."
33
+ @mulder: dvdnav crashes
34
+ check with blu-ray...does it match timing-wise? sub-title wise?
35
+ donate tsmuxer, makemkv
36
+ google "scripted dvd playback" adobe, one other, avisynth dvd [?]
37
+ check cp p.'s
38
+ instructions: reference the sintel DVD :) (download it from my site here)
39
+ note to google group...
40
+ add an mencoder convert with mplayer_breaks button :P
41
+ youtube/hulu timings
42
+ subtitles: impass assistance :)
43
+ can I just use mencoder -hr-edl-seek to avoid the fulli phase? please? does it work super-accurately?
44
+ BY CLICKING "I Agree" YOU SIGNIFY THAT YOU HAVE READ, UNDERSTOOD AND AGREED TO ABIDE BY THE TERMS OF THIS AGREEMENT
45
+ make install work again
46
+ package curl [?]
47
+ add button "play from exactly here to here" in [mplayer uh guess?] :P
48
+ what does mplayer do with -ss big_number past the end of an end [monster's inc]?
49
+ Watch...unedited smplayer button doesn't play from the right device if you have two :P
50
+ get LLC before a "real" domain name
51
+ add profanity filter this file button
52
+ remove some buttons by default ?
53
+ always force them to have a DVD in the drive :P
29
54
  clear runnings
30
55
  have ben and chris test it out, have it work, then ask about video quality
31
- cp: have to replace multiple ones
32
- try disney digital copy/amazon library "local download"
33
- figure out if .srt DVD files are 29.97 accurate or 30...hmm...I'd guess the former...
34
- README: note competition is welcome and good!
35
- update tons of verbiage
36
- legal:
37
- "don't do it"
38
- rename the file to is_it_legal_to_copy_dvds, reference it
39
- "we know x, y are not l..."
40
- "sorry, cannot run without...."
41
- add a "non work sponsored" note
42
- agree to abide, shouldn't in the US [?]
43
- note no CP blu-ray, history was "first mplayer had EDL support, then the python guy, this builds on their work" (and mention VLC too)
44
- make it not die if you have no DVD in there yet when you click...
45
- un-paranoid note
46
- note in changelog: avidemux [auto-trainable, usable...]
47
- note "inspired by the phantom edit.." too?
48
- package curl [?] with its own license
49
- # "closing thoughts" => "still a fairly dark movie, overall", smallify this line
50
- use DVD navigator?
51
- wow terrifying...
52
- just use mplayer EDL stuff, plus title :)
56
+ me try my copy
57
+ try disney digital copy/amazon library "local download"...
58
+ C player:
59
+ use DVD navigator
60
+ just use mplayer EDL syntax, plus a title track :)
53
61
  http://msdn.microsoft.com/en-us/library/ms787412(VS.85).aspx
54
62
  http://msdn.microsoft.com/en-us/library/dd407175(v=VS.85).aspx can be synchronous? might be a good first pass...
55
63
  PlayPeriodInTitleAutoStop EC_DVD_PLAYPERIOD_AUTOSTOP
56
- make it frame accurate output
57
- after done:
58
- note we don't always use libdvdcss in the legal
59
- add new button for it LOL
64
+ make it frame accurate output text :)
60
65
  allow it to "just play from X to Y exactly" ...
61
- does this line up right? can it work, at all?
66
+ does this line up right/perfect? can it work, at all?
62
67
  lodo:
63
68
  update its semi-bad error messages...
64
69
  show time remaining, too, and less ugly [?]
65
70
  can come out of full screen more easily :P
66
- note pay for XP, or possibly re-install DVD player from installation CD from
67
- dvd drive/new computer http://windows.microsoft.com/en-US/windows/downloads/windows-media-player/plug-ins search for cheapest
68
- check if md5 same mac versus PC, VLC done several times/fix too
69
- clearplay: more expensive than normal players, thus less useful, subscription model not fit for casual movie viewers, or poor movie viewers,
70
- too slow, too, with new EDL's
71
- if it doesn't parse it loops *forever* "error pooping" "error pooping"
71
+ note pay for XP http://windows.microsoft.com/en-US/windows/downloads/windows-media-player/plug-ins search for the cheapest
72
+ note to them windows vista/7: use ac3filter [?]
73
+ if it doesn't parse something it loops *forever* "error pooping" "error pooping"
72
74
  try buy delete lists from all x,y,z [?] maybe ask for them for free first?
73
- note it is legal at least for free movies
74
- accept "mplayer_dvd_splits" => ["4749"] [large second integers...hmm...]
75
- do open_edl_list_org_todo.txt file
76
- @legal: requires DVD 1st, and also tell them "make sure you have the drive in there if you ever watch it edited"
77
- @legal: one way is probably legal...
78
- create an EDL: 10 commandments DVD to skip the intro music LOL
79
- by default add: DVD title, english descriptive title [prompt?]
80
- note legal: maybe using DVD-R is sometimes ok? http://www.amazon.com/TRY-Grace-Farah/dp/B001KVZGCA/ref=sr_1_2?ie=UTF8&qid=1304366946&sr=8-2
81
- the fake blanker EDL doesn't work if title is off [real fix: add another button "just watch the thing" even for real users?]
75
+ the fake blanker EDL doesn't work well... [real fix: add another button "just watch the thing" even for real users?]
82
76
  also it propagates the filename with weird, for other later buttons: Test_Delete_File_for_if_you_want_to_watch_something_straight_edited_version
83
77
  donate menumeter $
84
- just reference their copy of gplv1 etc.
85
- create local new DL's to a separate, new folder
86
78
  that one button is broken...play with [s]mplayer unedited [?]
87
79
  tool tips for all buttons...tweak naming, too :P do something!
88
- it should clear smplayer options on startup always, just in case
89
- the "play DVD with smplayer unedited" prompts for delete list x2
80
+ the "play DVD with smplayer unedited" prompts for delete list
90
81
  fix the "play previously credited edited file for current DVD" button
91
82
  vendorize smplayer * 2
92
83
  test if latest smplayer can work with edl and seek [?]
93
84
  be able to use smplayer, never just mplayer [yikes]
85
+ apparently just using webdl is like r30369 yipers
94
86
  note to previewer "you are about to preview these specific edits..." ?
95
- ask for more beta testers for use, ask for more beta testers for creation
96
- fast preview: change it to be aggressive sometimes yes, other times no
87
+ ask for more beta testers for use, ask for more beta testers for creation, too
97
88
  beta release: rinse and repeat with various ppl
98
- actually, just use sourceforge for hosting...maybe google SEO friendly :) ???
99
- fast preview mode: watch for modifications to file, kill mplayer instances for them on change :)
100
- fast preview tends to "go too far" [like the end of profanity is still there when played via the "real way"]
89
+ switch to using sourceforge solely for hosting releases...
101
90
  youtube videos -> new account name
102
- propaganda-ize (file)
103
- vendorize a copy of ffmpeg, then they don't have to install imagemagick...maybe say "accept the terms of the licenses"
104
- mplayer EDL while grabbing, from grabbed :P
91
+ vendorize a copy of ffmpeg, then they don't have to install imagemagick...also then we'll have ffprobe
92
+ and sanity
105
93
  note "pay us/somebody to do it for you on the google group"?
106
94
  note "this is the full list--your help is wanted/needed"
107
- create a semi-accurate phantom edit EDL copy
95
+ create a semi-accurate phantom edit EDL
96
+ http://www.chefelf.com/forums/index.php?showtopic=6176
97
+ karlie?
98
+ inventionzy: blu-ray OCR
108
99
  calculating disk's unique id... -> have it note on gui...
109
- don't exit program if they don't select a disk originally :) if they cancel out of "Please pick a DVD Delete list file"
110
- note to them [in how_to_create]: can do the two types of preview at same time...concurrently...to save time...
100
+ don't exit program if they don't select a disk originally :) e.g. if they cancel out of "Please pick a DVD Delete list file"
101
+ tell them "you can open the file for more specific editing accuracy of timestamps via microsoft Windows Movie Maker" or whatever it is (try it out first :P)
102
+ 7: Windows Live Movie Maker
103
+ previous: Windows Movie Maker
104
+ mplayer OSD [optionally [?]]
105
+ re-run with several owned DVD's
106
+ another full pass on verbiage legal, etc.
107
+ port to OS X overall
111
108
  auto-download and run for them the smplayer install exe [avoid scary sourceforge/extra step]
109
+ delete unedited.fulli file automatically
110
+ except if it's a specific scene run...
111
+ investigate: can I use the zoomplayer max?
112
+ the final "edited.avi" really "could/should" be playable in WMP...
113
+
114
+ == other lists ==
115
+ todo.propaganda
116
+ todo.inventionzy
117
+ open_edl_list_org_todo.txt file
118
+ todo.build_library
119
+ todo.subtitle
112
120
 
113
121
  == DVD decide later to move up or down ==
114
122
 
115
- force them to use my bundled mplayer version (currently it doesn't install to vendor/cache if you have an mplayer in the path, then fails to start mplayer)
123
+ a wholesome meter?
116
124
 
117
- == DVD backlog (totally unordered, some very low prio, basically all never do) ==
125
+ == DVD-realtime backlog [?] do, unordered ==
118
126
 
127
+ for mplayer realtime it needs to start early, but end on time
128
+ mplayer instructions are obscured
129
+ mplayer EDL allow
130
+ got fatal exception in button
131
+ detected an overlap 1397.51 1401.275 mute 1395.474 1397.874 mute
132
+ SyntaxError
133
+ accept "mplayer_dvd_splits" => ["4749"] [large second integers...hmm...]
134
+ it should clear old smplayer options on startup always, just in case, somehow
135
+ fast preview: change it to be aggressive sometimes yes, other times no
136
+ fast preview mode: watch for modifications to file, kill mplayer instances for them on change :)
137
+ fast preview tends to "go too far" [like the end of profanity is still there when played via the "real way"]
138
+ mplayer EDL while grabbing, from grabbed :P
139
+ force them to use my bundled mplayer version (currently it doesn't install to vendor/cache if you have an mplayer in the path, then fails to start mplayer)
140
+ ideal would be use smplayer with my mplayer
141
+ note to them [in how_to_create]: can do the two types of preview at same time...concurrently...to save time...
142
+ can I make playback more smooth by upping mplayer cache? does smplayer pass it a parameter?
143
+
144
+ == DVD/DVD-realtime backlog (totally unordered, some very low prio, basically all never do) ==
145
+
146
+ fix ffmpeg's Application provided invalid, non monotonically increasing dts to muxer in stream 0: 5940 >= 5940
147
+ @makemkv: wrong title no:Title #0 was added (7 cell(s), 0:14:58)
148
+ Title #1 was added (8 cell(s), 0:14:57), also give us title no's in the dialog :P
149
+ @mencoder: you don't rip DVD's quite right. But you try. Oh how you try.
150
+ @mpc: easier upconvert
151
+ @VLC: plugin for EDL maybe? [when opening file/DVD look for .edl file?]
152
+ blu ray timing
153
+ my one, others. Are they the same as DVD's? They seem really close...
154
+ can I accomodate for m4v somehow? Is it consistent?
155
+ pull in information from thetvdb to the GUI app
156
+ create the following EDL: 10 commandments DVD to skip the intro music LOL
157
+ todo.subtitle
158
+ @VLC you lop off the end, somehow, I guess...
159
+ make it not die if you have no DVD in there yet when you choose a drive...
160
+ the "frame accurate" splitter
161
+ sounds like I want to move in that direction, esp. if handbrake ends up being sane
162
+ bounty dvdnav (calendar will ping me)
163
+ @mencoder you lop off the end somehow
164
+ @VLC convert -> dump raw always displays--expected? also saves nothing?
165
+ fix dvdnav?
166
+ research the gplv3, add terms. Maybe want real lawyer, even?
167
+ note "others are released under this license, that license"
168
+ note/include jruby license, include gplv1 et al, note "also included locally"
169
+ check if md5 same mac versus PC for VLC/mplayer rips, VLC done several times/fix too
119
170
  disallow choosing empty drive? fail more gracefully when they do?
120
- investigate: can I use the zoomplayer max?
121
- would mplayer OSD on screen display be useful?
122
- sons of provo "music video"
123
- finish monsters inc. fella
124
- it can "slow certain sections down" that looks cool! :)
125
- XP timings with cineplayer [osoh, jonah]
171
+ sons of provo "music video" EDL
172
+ it can "slow certain sections down" that might look way cool! LOL
126
173
  how does this one download subtitles? http://www.pcworld.com/article/227465/freebie_splayer_plays_almost_any_video_fileand_looks_good_doing_it.html
127
- script powerdvd?
128
- VLC: make some more bounties: per file save location at least, anything else [check for suggestions]
129
- also suggest uservoice ?
130
-
131
- If I use VLC, does cacheing help CPU/disk grabbing?
132
- http://www.howtogeek.com/howto/windows/fix-for-vlc-skipping-and-lagging-playing-high-def-video-files/
133
- update VLC forum if so
134
- donate to some charity or other!
174
+ also xbmc has a plugin
175
+ script powerdvd via keystrokes
176
+ VLC: suggest uservoice
135
177
  can I just use mencoder with an EDL parameter to possibly split/join more quickly or something?
136
- force an install of VLC, too
137
- todo.subtitle file
138
178
  10 minute splits for much faster viewage [edl fast preview seems way too lossy ?]
139
- make optional though? hmm time for a third type blank but non mute...
140
179
  port to linux
141
180
  "release" it to more developers
142
181
  plug.org, more rubyists?
143
182
  after OS X :)
144
- port to OS X overall
145
183
  @VLC also tell them to tell people how to play hi-def better, when they try [?] if it shtinks
146
184
  an all online EDL editor
147
185
  flash canvas
@@ -149,12 +187,12 @@
149
187
  hotkeys
150
188
  advanced editing, like sub-parts of frames, with each way to specify the sub-parts
151
189
  donate http://lame.buanzo.com.ar
152
- donate winscp, sox,
153
- do todo.inventionzy.txt
190
+ donate winscp, sox
191
+ do todo.inventionzy.txt all
154
192
  an "automatic mplayer split finder" :)
155
193
  buy forever strong italian, compare... :P
156
194
  mac version of the C player
157
- "just play from X to Y exactly"
195
+ "just play from X to Y exactly" [?]
158
196
  forever strong DVD timestamps [and other?], compare timestamps with amazon VoD, too, also jonah amazon VoD [if desired?]
159
197
  take out the extra console window box output :) [scary, and closing it closes SC!]
160
198
  auto-feedback on crashes [?]
@@ -163,8 +201,6 @@
163
201
  accomodate failed deletes [files in use] better than dying with a backtrace
164
202
  vendorize ffmpeg, to avoid "scary" warning on install of imagemagick/scary active x
165
203
  machine learning for video analysis [?]
166
- transcribe the audio of movies? crowd source it? whoa!
167
- slim down the gem
168
204
  figure out how to auto-crop after grab?
169
205
  figure out some way to work with cable providers/iphones/gphones?
170
206
  @smplayer: why do you sometimes start with subtitles enabled?
@@ -172,11 +208,11 @@
172
208
  bring in batch file mplayer :)
173
209
  make my website slightly more "pictures-zy"
174
210
  check why out of sync my turn on earth on blacky MPH-HC
211
+ does it with other players...?
175
212
  super spiffy editor that tracks timestamps for you for new lines
176
213
  create a uservoice/uservoice+
177
214
  note that I might be able to make a half and half player that just "sleeps"...if I can get the timing just right...(is this what mplayer does)
178
215
  don't exit if a timestamps has same beginning as end, but do warn (is this a problem still?)
179
- check if the python one lines up or not/ping them on it
180
216
  mpeg is lossy (at least my current one pass conversion still is...) and smplayer can't play it right unedited
181
217
  only if asked?
182
218
  alpha transparent "grey" overlay (for partial parts of the window)
@@ -184,57 +220,45 @@
184
220
  google android TV app/iTV ?
185
221
  advertise related bounties to their various groups
186
222
  create a really snazzy pro looking website
187
- the final "edited.avi" really "could/should" be playable in WMP...
188
223
  can I use ffmpeg to re-sync audio, and be able to re-play the edited copy, and thus avoid the small but extra harddup overhead (basically "just avoid")?
189
224
  I can live with "watching while grabbing" being lack luster...or maybe I can grab it with acodec copy (typically), then reencode it somehow later into something that is friendlier to computer players...or is it encoders?
190
225
  appears the only messed up audio one is smplayer...and probably mplayer with DVD's [?]
191
226
  do this after frame accurate
192
- monkey.png is in bin...move it
193
- better program icon
227
+ better program exe icon
194
228
  @mplayer: seeking to within EDL failz
195
229
  can make community overlay "comments" somehow or other/whatever cyberlink does :)
196
- re-look through all my old "thoughts" notes
230
+ re-look through all my old "thoughts" notes/blogs
197
231
  mplayer playlist mode possible, like real playlist?
198
232
  add button start EDL playback from dvd here [?] (for create mode)
199
233
  re-play as EDL button for both modes--describe on the how to better
200
234
  fix prio for first ffmpeg instance not being settable [huh?]
201
- calculating md5...do this while they choose it [low prio] :)
202
- @dvd flick: right click on a movie file "write this file to DVD .iso as only title (no menu), burn this file as DVD only title (no menu)" [+- with filters x,y or z]
203
- @dvd flick: default should not be to loop
204
- @dvd flick: use first aspect ratio by default.
235
+ calculating md5...do this for each disc while they choose it [low prio] :)
236
+ if the dll fella is too slow, that is, like my current one is :P
205
237
  check if a newer version of smplayer (+- forum links) can replace raw usage of mplayer now?
206
- integrate sub-titles-zy-er auto-download (like the Python fella)
207
- or maybe...use theirs?
238
+ integrate sub-titles-zy-er auto-download
239
+ I could integrate discid => hashes => opensubtitles.org
240
+ http://themoviedb.lighthouseapp.com/projects/17044-themoviedborg/tickets/142
241
+ their mkv player probably does some lookup 'er other...maybe...for dvd's
242
+ I really need to tell tvdb to allow for discid, and/or themoviedb to allow for series'
243
+ @themoviedb: allow for series, also allow for subtitles?
208
244
  @mplayer: some way to not have to use phreaky phreaky pipes in doze ("+1")
209
- @ffmpeg: do you get slower the farther into large files you are?
210
245
  @ffmpeg: gop 12 for ntsc-dvd?
211
246
  can watch conference like a music video :)
212
- can play "this section then that, with this one's audio
213
- md5 and verify the fulli version... [?]
214
- only useful once I get the frame accurate stuff done, and any audio tweakage, etc.
247
+ can play "this section then that, with this one's audio [wow that is fringey]
215
248
  speedify things (the whole process takes approximately...eternity?)
216
- show them how to use smplayer with subtitles [video?]
217
249
  can overlay with an arbitrary image
218
- @dvd flick: auto-detect the aspect ratio, if possible (?)
219
250
  ffmpeg handle 3F2R audio [sigh] [cars, should work with temple at lavc, too, bob dvd's are dual, I think...hmm...]
220
251
  an 'always blank not skip the mutes' option for paranoid
221
- video on how to use imdb
222
- if times match all DVD players...
252
+ video on how to use imdb wiki
223
253
  accomodate alternate endings et al
224
254
  @mplayer you *die* with edl's on many DVD's... ex: on bunny one
225
255
  vendor\cache\mencoder\mplayer dvdnav://2 -nocache -edl C:\Users\packrd\AppData\Local\Temp\mplayer.temp.edl -dvd-device f:\
226
- delete fulli file automatically
227
- except if it's a specific scene run...
228
256
  .exe installer
229
257
  just unzips, runs the .bat file for them [?] :)
230
258
  full msi
231
- ask if you can somehow more easily grab to "mostly the same" exact codec (ffmpeg, mencoder mailing lists) [blog that you can't]
232
259
  add md5 "warning" when something (anything) had failed disc fails doesn't match because of DVD read failure...
233
260
  LLC before I ever pay anyone anything, if I ever do
234
261
  add some or any of the following "play now" options...without a true navigator of course :)
235
- visualbasic-like msdvdweb playlist
236
- one line at a time :P
237
- provide link for cheap DVD decoder if they lack one :)
238
262
  "round conservatively, yes write inaccurate file straight from DVD in pieces" ?
239
263
  then I guess they could play that file back immediately...?
240
264
  get half-way through (rip, start writing edited copy), then start playing back as continuing to write edited full copy (if windows allows...might have to watch it piece-wise)
@@ -274,16 +298,20 @@
274
298
  @smplayer: right click on DVD...
275
299
  the ac3 thing (I have to specify it...is this necessary? is it always ac3?) [basically, can I copy audio again?]
276
300
  make it so it can have different volume settings, like low volume instead of just always 0
277
- DVD's: right click on DVD player, play with SC
278
301
  an auto-check for "newer version available" automagically not...
279
- warn when labels both exist but don't match...
280
-
281
- ISO copy, then scratch out appropriate bits?
302
+ warn when labels both exist and don't match...
282
303
 
283
- @avidemux: don't shtink with DVD files: http://ubuntuforums.org/showthread.php?p=10822953#post10822953
304
+ @mplayer warn before overwrite
305
+ @mplayer you cannot convert mkv files correctly you silly!
284
306
 
285
307
  == 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). ==
286
308
 
309
+ @smplayer: bounty or me fix: their for their display [if they use get_time_pos isn't that enough ?]
310
+ @mplayer is it really too slow [link], and there thus no hope for EDL working right? maybe it could change to be based off the get_time_pos ?
311
+ Also things skip-worthy include The prefix/endfix of Netflix
312
+ series' that they run together( ex: Dr. Who has 4 episodes in a row, with 4 jarring
313
+ main-title themes between them all.) This type of thing
314
+
287
315
  timing all dogs go to heaven--way off in hulu? huh?
288
316
  some low level frame hijacker for incoming cable movies, too? ... hmm...
289
317
 
@@ -537,4 +565,4 @@ create a "map" of VLC DVD timings to "real" timings via tracking. Hopefully nev
537
565
  if it looks paused I should basically pause my tracking [if it looks nothing, then keep going with my tracking]
538
566
  it fails on "friday" tracks 0:48 as 1:48
539
567
  probably at startup should not start at 0, either, wait for first screen trackage
540
- figure out a way to get to the roku [ps3ms?], +- netflix edited to roku LOL
568
+ figure out a way to get to the roku [ps3ms?], +- netflix edited to roku LOL
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.21.9
1
+ 0.21.10
data/bin/sensible-cinema CHANGED
@@ -27,8 +27,8 @@ rescue LoadError
27
27
  require 'sane'
28
28
  end
29
29
 
30
- raise 'need jruby' unless OS.jruby?
31
- raise 'need newer jruby!' unless RUBY_DESCRIPTION >= 'jruby 1.6.0.RC2'
30
+ raise 'need jruby' unless OS.java?
31
+ raise 'need newer jruby!' unless RUBY_DESCRIPTION >= 'jruby 1.6.0.RC2' # may not need this since we still accomodate for so many oddities :P
32
32
 
33
33
  require_relative '../lib/mencoder_wrapper'
34
34
  require_relative '../lib/storage'
@@ -59,6 +59,8 @@ module SensibleSwing
59
59
  VERSION = File.read(File.dirname(__FILE__) + "/../VERSION").strip
60
60
  puts "v. " + VERSION
61
61
 
62
+ UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()) # sigh
63
+
62
64
  class MainWindow < JFrame
63
65
 
64
66
  def new_jbutton title, only_on_create_mode, always_add = false
@@ -88,8 +90,10 @@ module SensibleSwing
88
90
  def initialize
89
91
  super "Sensible-Cinema #{VERSION} (GPL)"
90
92
  if !(Storage['main_license_accepted'] == VERSION)
91
- show_blocking_license_accept_dialog 'Sensible Cinema', 'gplv3', 'http://www.gnu.org/licenses/gpl.html', 'Sensible Cinema license agreement', 'Sensible Cinema is distributed under the gplv3. Click accept if you accept this agreement.'
92
- show_blocking_license_accept_dialog 'Sensible Cinema', 'LICENSE.TXT file', File.expand_path(File.dirname(__FILE__) + "/../LICENSE.TXT"), 'LICENSE.TXT file', 'I acknowledge that I have read, understand, and accept the implications given in the LICENSE.TXT file'
93
+ show_blocking_license_accept_dialog 'Sensible Cinema', 'gplv3', 'http://www.gnu.org/licenses/gpl.html', 'Sensible Cinema license agreement',
94
+ 'Sensible Cinema is distributed under the gplv3. Click accept if you accept the terms of this license agreement.'
95
+ show_blocking_license_accept_dialog 'Sensible Cinema', 'is_it_legal_to_copy_dvds.txt file', File.expand_path(File.dirname(__FILE__) + "/../is_it_legal_to_copy_dvds.txt"),
96
+ 'is_it_legal_to_copy_dvds.txt file', 'I acknowledge that I have read, understand, and accept and agree to abide by the implications noted in the is_it_legal_to_copy_dvds.txt file'
93
97
  Storage['main_license_accepted'] = VERSION
94
98
  end
95
99
 
@@ -129,12 +133,12 @@ module SensibleSwing
129
133
  do_copy_dvd_to_hard_drive false
130
134
  }
131
135
 
132
- @mplayer_edl = new_jbutton( "Watch DVD on computer edited (realtime -- mplayer EDL)", false, true )
136
+ @mplayer_edl = new_jbutton( "Watch DVD edited (realtime -- mplayer EDL)", false, true )
133
137
  @mplayer_edl.on_clicked {
134
138
  do_mplayer_edl
135
139
  }
136
140
 
137
- @play_smplayer = new_jbutton( "Watch DVD on computer unedited (realtime smplayer)", true).on_clicked {
141
+ @play_smplayer = new_jbutton( "Watch DVD unedited (realtime smplayer)", true).on_clicked {
138
142
  play_dvd_smplayer_unedited
139
143
  }
140
144
 
@@ -226,33 +230,37 @@ module SensibleSwing
226
230
  increment_button_location
227
231
 
228
232
  setSize @button_width+80, @starting_button_y
229
- setIconImage(ImageIcon.new(__dir__ + "/monkey.png").getImage())
233
+ setIconImage(ImageIcon.new(__dir__ + "/../vendor/monkey.png").getImage())
230
234
  check_for_dependencies
231
235
  end
232
236
 
233
237
  def create_brand_new_edl
234
238
  drive, volume, md5 = choose_dvd_drive
235
- name = get_user_input("Enter DVD name for #{volume}")
239
+ english_name = get_user_input("Enter a human readable DVD description for #{volume}", volume.gsub('_', ' ').downcase)
236
240
  input = <<-EOL
237
241
  # comments can go after a # on any line, for example this one.
238
242
 
239
243
  "mutes" => [
240
- "0:00:01.0", "0:00:02.0", "profanity", "da..",
244
+ # example line, uncomment the leading "#" to make it active
245
+ # "0:00:01.0", "0:00:02.0", "profanity", "da..",
241
246
  ],
242
247
 
243
248
  "blank_outs" => [
244
- "00:03:00.0" , "00:04:00.0", "violence", "of some sort",
249
+ # example line, uncomment the leading "#" to make it active
250
+ # "00:03:00.0" , "00:04:00.0", "violence", "of some sort",
245
251
  ],
246
252
 
247
- "name" => "#{name}",
253
+ "name" => "#{english_name}",
254
+ "volume_name" => "#{volume}",
248
255
  "disk_unique_id" => "#{md5}",
249
256
 
250
- # "dvd_title_track" => "1", # most DVD's use title 1. Not all do, though. If sensible-cinema plays anything except the main title (for example, a trailer), when you use it, see http://goo.gl/QHLIF to set this field right.
257
+ # "dvd_title_track" => "1", # most DVD's use title 1. Not all do, though. If sensible-cinema plays anything except the main title (for example, a trailer), when you use it, see http://goo.gl/QHLIF to set this right.
251
258
  # "not edited out stuff" => "some violence",
252
- # "closing thoughts" => "still a fairly dark movie, overall",
253
- # "mplayer_dvd_splits" => ["59:59", "1:04:59"], # these are where, in mplayer, the DVD timestamp "resets" to zero for whatever reason. See http://goo.gl/yMfqX
259
+ # "closing thoughts" => "still...",
260
+ # "mplayer_dvd_splits" => ["59:59", "1:04:59"], # these are where, in mplayer, the DVD timestamp "resets" to zero for some reason (bug) http://goo.gl/yMfqX . [] is a valid option, if there are none.
254
261
  EOL
255
- filename = EDL_DIR + "\\" + name.gsub(' ', '_') + '.txt'
262
+ # frame0 is the name of our window LOL tough to avoid that one...
263
+ filename = EDL_DIR + "\\" + english_name.gsub(' ', '_') + '.txt'
256
264
  filename.downcase!
257
265
  File.write(filename, input) unless File.exist?(filename) # lodo let them choose name (?)
258
266
  open_file_to_edit_it filename
@@ -336,8 +344,12 @@ module SensibleSwing
336
344
  # oh the insanity of the console UI...LODO more user friendly player
337
345
  @popup ||= NonBlockingDialog.new("About to run mplayer DVD. To control it, use space for pause, f to toggle full screen, arrow keys to seek.")
338
346
  # LODO dry up mplayer dvd opts...
339
- play_this_mplayer ||= "mplayer dvd://#{title_track} -vo direct3d" # direct3d for windows 7 nvidia's sake yipes
340
- command = "#{play_this_mplayer} -nocache -alang en -sid 1000 -edl #{File.expand_path EdlTempFile} -dvd-device #{drive}"
347
+ play_this_mplayer ||= "mplayer dvd://#{title_track} "
348
+ # direct3d for windows 7 nvidia's sake yipes
349
+ command = "#{play_this_mplayer} -vo direct3d -framedrop -alang en -sid 1000 -edl #{File.expand_path EdlTempFile} -dvd-device #{drive}"
350
+ # -framedrop for slower systems, once had -nocache, but that's only for dvdnav:// I think
351
+ # -hardframedrop might help a bit but hurts so much too
352
+ #dvd:// bcause the bundled mplayer crashes with dvdnav LOL
341
353
  p command
342
354
  Thread.new { system_blocking command; @popup.dispose }
343
355
  end
@@ -431,12 +443,13 @@ module SensibleSwing
431
443
  end
432
444
 
433
445
  def single_edit_list_matches_dvd md5
434
- return unless md5 # ignore nil searches, where it wasn't set in the .txt file
435
446
  matching = Dir[EDL_DIR + '/*.txt'].select{|file|
436
447
  begin
437
448
  parse_edl(file)["disk_unique_id"] == md5
438
449
  rescue SyntaxError
439
- # ignore poorly formed delete lists for auto choose
450
+ # ignore poorly formed delete lists for the auto choose
451
+ p 'warning, unable to parse:' + file
452
+ false
440
453
  end
441
454
  }
442
455
  if matching.length == 1
@@ -464,8 +477,11 @@ module SensibleSwing
464
477
  end
465
478
 
466
479
  include_class javax.swing.UIManager
480
+
467
481
  def get_user_input(message, default = '')
468
- start_time = JOptionPane.showInputDialog(message, default)
482
+ received = JOptionPane.showInputDialog(message, default)
483
+ raise 'user canceled' unless received
484
+ received
469
485
  end
470
486
 
471
487
  def parse_edl path
@@ -542,7 +558,7 @@ module SensibleSwing
542
558
  # LODO allow for spaces in the save_to filename
543
559
  if should_prompt_for_start_and_end_times
544
560
  # only show this message once :)
545
- @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
561
+ @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 (like an hour) as it sets up the video for previewing.\nSubsequent previews will be faster, though, as long as you use the same filename.\n
546
562
  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")
547
563
  old_start = Storage['start_time']
548
564
  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'])
@@ -753,8 +769,9 @@ end
753
769
  end
754
770
 
755
771
  at_exit2 {
756
- system("taskkill /f /im mencoder.exe") # todo...
757
- system("taskkill /f /im ffmpeg.exe")
772
+ system("taskkill /f /im mencoder.exe 2>NUL") # todo...is there a cleaner way?
773
+ system("taskkill /f /im ffmpeg.exe 2>NUL")
774
+ system("taskkill /f /im mplayer.exe 2>NUL")
758
775
  }
759
776
 
760
777
  if $0 == __FILE__