sensible-cinema 0.28.0 → 0.28.1
Sign up to get free protection for your applications and to get access to all the features.
- data/LICENSE.TXT +1 -1
- data/README +6 -4
- data/Rakefile +41 -24
- data/TODO +41 -10
- data/VERSION +1 -1
- data/change_log_with_feature_list.txt +12 -0
- data/documentation/is_it_legal_to_copy_dvds.txt +4 -2
- data/go +1 -0
- data/goc +1 -0
- data/history_and_related_works_list.txt +2 -0
- data/inventionzy_files/control_youtube.html +135 -0
- data/inventionzy_files/md5s.txt +53 -0
- data/inventionzy_files/play_with_inserted_scene.bat +8 -0
- data/inventionzy_files/play_with_overlay.bat +24 -0
- data/inventionzy_files/serve.rb +6 -0
- data/inventionzy_files/transcript_mute_vlc.txt +117 -0
- data/lib/add_any_bundled_gems_to_load_path.rb +1 -1
- data/lib/edl_parser.rb +2 -0
- data/lib/gui/sensible-cinema-base.rb +10 -68
- data/lib/gui/sensible-cinema-create.rb +16 -10
- data/lib/gui/sensible-cinema-dependencies.rb +1 -0
- data/lib/gui/sensible-cinema-normal.rb +11 -14
- data/lib/muter.rb +1 -1
- data/lib/subtitle_profanity_finder.rb +3 -2
- data/spec/notes +2 -0
- data/template_bats/README_DISTRO.TXT +6 -0
- data/template_bats/mac/RUN SENSIBLE CINEMA CLICK HERE.sh b/data/template_bats/mac/RUN SENSIBLE CINEMA CLICK → HERE.command +0 -0
- data/template_bats/mac/{advanced--create or edit sensible cinema edit list files.sh → advanced--create or edit sensible cinema edit list files.command } +1 -0
- data/template_bats/mac/{advanced--run-upconverting-video-player.sh → advanced--run-upconverting-video-player.command} +1 -0
- data/todo.inventionzy.txt +11 -0
- data/todo.propaganda +21 -18
- data/vendor/rdp-win32screenshot-0.0.9/.document +5 -0
- data/vendor/rdp-win32screenshot-0.0.9/History.rdoc +53 -0
- data/vendor/rdp-win32screenshot-0.0.9/LICENSE +20 -0
- data/vendor/rdp-win32screenshot-0.0.9/RDP_BRANCH_HAS_MASTER_WITH_CORRECT_VERSION_NUMBER +0 -0
- data/vendor/rdp-win32screenshot-0.0.9/RDP_VERSION_IS_IN_RDP_BRANCH +0 -0
- data/vendor/rdp-win32screenshot-0.0.9/README.rdoc +95 -0
- data/vendor/rdp-win32screenshot-0.0.9/Rakefile +63 -0
- data/vendor/rdp-win32screenshot-0.0.9/VERSION +1 -0
- data/vendor/rdp-win32screenshot-0.0.9/enumerated +55576 -0
- data/vendor/rdp-win32screenshot-0.0.9/lib/aero_offscreen_srccopy_captureblt_doesnt_have_everything.bmp.gz +0 -0
- data/vendor/rdp-win32screenshot-0.0.9/lib/enumerate.rb +6 -0
- data/vendor/rdp-win32screenshot-0.0.9/lib/firefox.bmp +0 -0
- data/vendor/rdp-win32screenshot-0.0.9/lib/normal.bmp +0 -0
- data/vendor/rdp-win32screenshot-0.0.9/lib/normal2.bmp +0 -0
- data/vendor/rdp-win32screenshot-0.0.9/lib/notes +5 -0
- data/vendor/rdp-win32screenshot-0.0.9/lib/snapshot.rb +10 -0
- data/vendor/rdp-win32screenshot-0.0.9/lib/srccopy.bmp +0 -0
- data/vendor/rdp-win32screenshot-0.0.9/lib/srccopyplus.bmp +0 -0
- data/vendor/rdp-win32screenshot-0.0.9/lib/srccopyplusdirectx.bmp +0 -0
- data/vendor/rdp-win32screenshot-0.0.9/lib/vc.bmp +0 -0
- data/vendor/rdp-win32screenshot-0.0.9/lib/win32/screenshot.rb +95 -0
- data/vendor/rdp-win32screenshot-0.0.9/lib/win32/screenshot/bitmap_maker.rb +200 -0
- data/vendor/rdp-win32screenshot-0.0.9/lib/win32/util.rb +93 -0
- data/vendor/rdp-win32screenshot-0.0.9/spec/spec.opts +1 -0
- data/vendor/rdp-win32screenshot-0.0.9/spec/spec_helper.rb +85 -0
- data/vendor/rdp-win32screenshot-0.0.9/spec/win32_screenshot_spec.rb +194 -0
- data/vendor/rdp-win32screenshot-0.0.9/spec/win32_screenshot_util_spec.rb +75 -0
- data/vendor/rdp-win32screenshot-0.0.9/win32screenshot.gemspec +69 -0
- data/{subfont.ttf → vendor/subfont.ttf} +0 -0
- data/zamples/edit_decision_lists/dvds/{edls_being_edited/cars_disney.txt → cars_disney.txt} +0 -0
- data/zamples/edit_decision_lists/dvds/edls_being_edited/king_of_kings.txt +28 -0
- data/zamples/edit_decision_lists/dvds/monsters_vs_aliens.txt +41 -0
- data/zamples/edit_decision_lists/dvds/peter_pan.txt +29 -0
- data/zamples/edit_decision_lists/dvds/speed_racer.txt +47 -0
- data/zamples/edit_decision_lists/notes/tron.txt +4 -0
- metadata +77 -54
- data/go.sh +0 -1
- data/legal2 +0 -3
- data/lib/play_audio.rb +0 -58
- data/lib/ruby_clip.rb +0 -26
- data/template_bats/RUN SENSIBLE CINEMA CLICK HERE.bat +0 -25
- data/template_bats/advanced--create or edit sensible cinema edit list files.bat +0 -1
- data/template_bats/advanced--run-upconverting-video-player.bat +0 -1
- data/transparent.png +0 -0
@@ -0,0 +1,53 @@
|
|
1
|
+
random md5's for tracking
|
2
|
+
|
3
|
+
ed492ff097a16ac9c3c207beed7a8d17 *full3.avi
|
4
|
+
http://www.youtube.com/watch?v=gJ4jFCFPan0
|
5
|
+
e988e897ede5f27c49d8011bfb4cb246 mute system.avi
|
6
|
+
4a8b3612c666dd037ff91d68dc2c57b6 mute vlc.avi
|
7
|
+
a2c8625b646cb4bbfb99a66171b9b8f1 netflix descriptor working.avi
|
8
|
+
abe0f3a34eb8935d4f532b2ee789ceb9 to_here3.avi.fulli.tmp.avi
|
9
|
+
c:\dev\ruby\sensible-cinema\legal>md5sum "g:\mute system.avi"
|
10
|
+
\e988e897ede5f27c49d8011bfb4cb246 *g:\\mute system.avi
|
11
|
+
=> http://www.youtube.com/watch?v=8cUV8DKLOK8
|
12
|
+
c:\dev\ruby\sensible-cinema\legal>md5sum "g:\mute vlc.avi"
|
13
|
+
\4a8b3612c666dd037ff91d68dc2c57b6 *g:\\mute vlc.avi
|
14
|
+
=> http://www.youtube.com/watch?v=0AsJtVyVMzk
|
15
|
+
|
16
|
+
74f4876260c7fcfe8a696ac81d3cf883 Debug.7z
|
17
|
+
8d47950de913d97536ffe8d13a8d7203 latest-sensible-cinema.zip
|
18
|
+
2ab9b0b909e24d2cb5b91b45fb35fda5 sensible-cinema-0.14.5.zip
|
19
|
+
7e8afff74f9f991b789067e7e1ddd286 sensible-cinema-0.14.6.zip
|
20
|
+
cb32a7f982aee03598e54eefda0f7f98 sensible-cinema-0.14.8.zip
|
21
|
+
81c4d19f9975f42ea5d945c4248e2412 sensible-cinema-0.16.2.zip
|
22
|
+
bd62ba887644a437366de0b66f817631 sensible-cinema-0.16.3.zip
|
23
|
+
a12babdfb09abf7a2a833a0a9e393c20 sensible-cinema-0.16.4.zip
|
24
|
+
f2f05570882f3ae65d9d8f53b42c260a sensible-cinema-0.16.5.zip
|
25
|
+
f8d9205e31ac7af6b3d709de97e4294c sensible-cinema-0.16.7.zip
|
26
|
+
918db721fdb71ce6274188375536581f sensible-cinema-0.17.0.zip
|
27
|
+
5618d81aca3ed103601105f17d535ad7 sensible-cinema-0.18.1.zip
|
28
|
+
78fd2b42a55ffec8d219bb7bf803a721 sensible-cinema-0.18.2.zip
|
29
|
+
8edcf4e60c358496ec9581e015215b18 sensible-cinema-0.18.3.zip
|
30
|
+
a64c55b101f858218b83dfb7af6d0b53 sensible-cinema-0.18.4.zip
|
31
|
+
60f09f712e9cc8004626ad2da3520cc6 sensible-cinema-0.19.0.zip
|
32
|
+
d24f66b08b8f28c146f5473629f378d7 sensible-cinema-0.19.1.zip
|
33
|
+
11936f547af54471e0f800748edfe906 sensible-cinema-0.19.2.zip
|
34
|
+
dcc25e1c3fcd5f7745580ad351786134 sensible-cinema-0.19.4.zip
|
35
|
+
b28f00a1019b665635a302450f8bdcbb sensible-cinema-0.19.5.zip
|
36
|
+
5300900ea5407f87fcc198297720a5d6 sensible-cinema-0.19.6.zip
|
37
|
+
66b2259c3da4c732aa550c3a707770ac sensible-cinema-0.19.7.zip
|
38
|
+
2c5da873803e2399ea4b7eabea9d681e sensible-cinema-0.20.0.zip
|
39
|
+
81001183f1460b6607342dfee616eb2d sensible-cinema-0.20.2.zip
|
40
|
+
944917cf6086abfcdf4c4a0bb4ffc718 sensible-cinema-0.20.3.zip
|
41
|
+
823b8eb07a0d5c59d7fc40e1dcb9bdca sensible-cinema-0.20.5.zip
|
42
|
+
deca5dc53b714b067e5fd7eedb0adc40 sensible-cinema-0.20.6.zip
|
43
|
+
c38b4a7ce1a9fab40566f8b1a876a7d0 sensible-cinema-0.21.1.zip
|
44
|
+
569832ce944f1b9cd285a495db787d5d sensible-cinema-0.21.2.zip
|
45
|
+
9f71c5a9f59d2e7370a9ad06e4441ace sensible-cinema-0.21.3.zip
|
46
|
+
d628fe7d5284ecb764df8b79aee7b773 sensible-cinema-0.21.4.zip
|
47
|
+
8d47950de913d97536ffe8d13a8d7203 sensible-cinema-0.21.5.zip
|
48
|
+
|
49
|
+
|
50
|
+
show_off.avi
|
51
|
+
ff2780913ef202dbd3a370e4d04a6597 *show_off.avi
|
52
|
+
|
53
|
+
eefeda17181c79b570dc9ce17c93fdf5 *can_mute_youtube.avi
|
@@ -0,0 +1,8 @@
|
|
1
|
+
call vlc dvd://d:\@2 --start-time=10 --stop-time=15 vlc://quit
|
2
|
+
call vlc dvd://d:\@1 --start-time=10 --stop-time=15 vlc://quit
|
3
|
+
call vlc dvd://d:\@2 --start-time=15 --stop-time=20 vlc://quit
|
4
|
+
call vlc dvd://d:\@1 --start-time=10 --stop-time=15 vlc://quit
|
5
|
+
call vlc dvd://d:\@2 --start-time=35 --stop-time=40 vlc://quit @rem should have been 20
|
6
|
+
call vlc g:\downloads\big_buck_bunny_480p_h264.mov.crdownload --stop-time=4 vlc://quit
|
7
|
+
|
8
|
+
|
@@ -0,0 +1,24 @@
|
|
1
|
+
call vlc --sub-filter "logo{file='transparent.png,256'}" dvd://d:\@2 --stop-time=56 --start-time=45 vlc://quit
|
2
|
+
call vlc --sub-filter "logo{file='cone.png,256'}" dvd://d:\@2 --start-time=56 --stop-time=57 vlc://quit
|
3
|
+
call vlc --sub-filter "logo{file='transparent.png,256'}" dvd://d:\@2 --start-time=57 --stop-time=65 vlc://quit
|
4
|
+
call vlc --sub-filter "logo{file='cone.png,256'}" dvd://d:\@2 --start-time=65 --stop-time=74.5 vlc://quit
|
5
|
+
call vlc dvd://d:\@2 --start-time=74.5 vlc://quit
|
6
|
+
|
7
|
+
|
8
|
+
"00:00:56.0" , "00:00:57.0", "violence", "knife stabbing",
|
9
|
+
"00:01:05.0" , "00:01:14.5", "violence", "stab through",
|
10
|
+
|
11
|
+
|
12
|
+
|
13
|
+
|
14
|
+
|
15
|
+
@rem working: -> vlc --sub-filter "logo{file='cone.png,5000,128;transparent.png,2000,128;cone.png,10000,256'}" dvd://d:\@2 --stop-time=30
|
16
|
+
@rem vlc --sub-filter "logo{file='cone.png,500000,128;transparent.png,1000,128'}" dvd://d:\@2 --stop-time=30
|
17
|
+
|
18
|
+
@rem dvd://d:\@2 :start-time=10 :stop-time=20 dvd://d:\@2 :start-time=20 :stop-time=25 :sub-filter=logo{file=g:\video\sintel_ntsc\cone.png,transparency=128} dvd://d:\@2 :start-time=25 :stop-time=30 vlc://quit
|
19
|
+
|
20
|
+
|
21
|
+
|
22
|
+
|
23
|
+
@rem vlc dvd://d:\@2 :start-time=70 :stop-time=75 :sub-filter=logo{file=g:\video\sintel_ntsc\cone.png,transparency=128}
|
24
|
+
|
@@ -0,0 +1,117 @@
|
|
1
|
+
|
2
|
+
c:\dev\ruby\sensible-cinema>call j bin\sensible-cinema-cli
|
3
|
+
Welcome to Sensible Cinema...
|
4
|
+
Please Select Computer Player
|
5
|
+
Select Edit Decision List
|
6
|
+
error: have to specify a scene descriptions file
|
7
|
+
or specify "test" on the command line if you just want to snapshot your player
|
8
|
+
|
9
|
+
c:\dev\ruby\sensible-cinema>
|
10
|
+
c:\dev\ruby\sensible-cinema>
|
11
|
+
c:\dev\ruby\sensible-cinema>
|
12
|
+
c:\dev\ruby\sensible-cinema>
|
13
|
+
c:\dev\ruby\sensible-cinema>git log | head
|
14
|
+
|
15
|
+
c:\dev\ruby\sensible-cinema>git.exe log | cat
|
16
|
+
commit d310d82ae5ddc7894ba8ef52d7910773cbe47bf1
|
17
|
+
Author: rogerdpack <rogerpack2005@gmail.com>
|
18
|
+
Date: Fri Apr 29 14:12:59 2011 -0600
|
19
|
+
|
20
|
+
default to using keyboard keys for muting
|
21
|
+
|
22
|
+
commit da72313659df6227af92bb01f552802fea88ed8a
|
23
|
+
Author: rogerdpack <rogerpack2005@gmail.com>
|
24
|
+
|
25
|
+
c:\dev\ruby\sensible-cinema>git status
|
26
|
+
|
27
|
+
c:\dev\ruby\sensible-cinema>git.exe status | cat
|
28
|
+
# On branch master
|
29
|
+
# Untracked files:
|
30
|
+
# (use "git add <file>..." to include in what will be committed)
|
31
|
+
#
|
32
|
+
# .redcar/
|
33
|
+
# bad_digit2second_ones.bmp
|
34
|
+
# bad_digit3minute_tens.bmp
|
35
|
+
# sensible-cinema-0.21.6.zip
|
36
|
+
# vendor/cache/
|
37
|
+
nothing added to commit but untracked files present (use "git add" to track)
|
38
|
+
|
39
|
+
c:\dev\ruby\sensible-cinema>
|
40
|
+
c:\dev\ruby\sensible-cinema>
|
41
|
+
c:\dev\ruby\sensible-cinema>
|
42
|
+
c:\dev\ruby\sensible-cinema>go_ocr_tracker.bat
|
43
|
+
|
44
|
+
c:\dev\ruby\sensible-cinema>call j bin\sensible-cinema-cli
|
45
|
+
Welcome to Sensible Cinema...
|
46
|
+
Please Select Computer Player
|
47
|
+
Select Edit Decision List
|
48
|
+
Selected scene descriptions file demo_mutes.txt
|
49
|
+
(full path: C:\dev\ruby\sensible-cinema\zamples\edit_decision_lists\youtube\demo_mutes.txt)
|
50
|
+
(re) loaded mute sequences from demo_mutes.txt as
|
51
|
+
{"title"=>"Friday Song",
|
52
|
+
"source"=>"youtube",
|
53
|
+
"source_url"=>"http://www.youtube.com/watch?v=CD2LRROpph0",
|
54
|
+
:mutes=>[["00:10", "00:15"], ["00:30", "00:40"]],
|
55
|
+
:blank_outs=>[]}
|
56
|
+
|
57
|
+
Selected player windowed_total_length_under_an_hour.txt
|
58
|
+
(full path: C:\dev\ruby\sensible-cinema\zamples\players\vlc\windowed_total_length_under_an_hour.txt)
|
59
|
+
Opening the curtains... (please play in your other player now)
|
60
|
+
syntax from command line: "C:\dev\ruby\sensible-cinema\zamples\players\vlc\windowed_total_length_under_an_hour.txt" "C:\dev\ruby\sensible-cinema\zamples\edit_decision_lists\youtube\demo_mutes.txt"
|
61
|
+
00:02.1 next will be at 00:10s (r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen obscured or it's not playing yet, or paused?]"
|
62
|
+
00:03.9 next will be at 00:10s (r [ctrl+c or q to quit]): "tracking it successfully again"
|
63
|
+
00:10.0 next will be at 00:10s (r [ctrl+c or q to quit]):
|
64
|
+
00:14.9 next will be at 00:15s (muted) (r [ctrl+c or q to quit]):
|
65
|
+
00:21.9 next will be at 00:30s (r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen obscured or it's not playing yet, or paused?]"
|
66
|
+
00:23.9 next will be at 00:30s (r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen obscured or it's not playing yet, or paused?]"
|
67
|
+
00:26.0 next will be at 00:30s (r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen obscured or it's not playing yet, or paused?]"
|
68
|
+
00:28.0 next will be at 00:30s (r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen obscured or it's not playing yet, or paused?]"
|
69
|
+
00:30.0 next will be at 00:30s (r [ctrl+c or q to quit]):
|
70
|
+
"warning--unable to track screen time for some reason [perhaps screen obscured or it's not playing yet, or paused?]"
|
71
|
+
00:32.0 next will be at 00:40s (muted) (r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen
|
72
|
+
obscured or it's not playing yet, or paused?]"
|
73
|
+
00:34.0 next will be at 00:40s (muted) (r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen
|
74
|
+
obscured or it's not playing yet, or paused?]"
|
75
|
+
00:36.0 next will be at 00:40s (muted) (r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen
|
76
|
+
obscured or it's not playing yet, or paused?]"
|
77
|
+
00:37.2 next will be at 00:40s (muted) (r [ctrl+c or q to quit]): "tracking it successfully again"
|
78
|
+
|
79
|
+
00:25.0 next will be at 00:30s (r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen obscured or it's not playing yet, or paused?]"
|
80
|
+
00:27.1 next will be at 00:30s (r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen obscured or it's not playing yet, or paused?]"
|
81
|
+
00:29.1 next will be at 00:30s (r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen obscured or it's not playing yet, or paused?]"
|
82
|
+
00:30 next will be at 00:40s (r [ctrl+c or q to quit]): :
|
83
|
+
00:31.1 next will be at 00:40s (muted) (r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen
|
84
|
+
obscured or it's not playing yet, or paused?]"
|
85
|
+
00:33.2 next will be at 00:40s (muted) (r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen
|
86
|
+
obscured or it's not playing yet, or paused?]"
|
87
|
+
00:35.2 next will be at 00:40s (muted) (r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen
|
88
|
+
obscured or it's not playing yet, or paused?]"
|
89
|
+
00:37.2 next will be at 00:40s (muted) (r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen
|
90
|
+
obscured or it's not playing yet, or paused?]"
|
91
|
+
00:39.3 next will be at 00:40s (muted) (r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen
|
92
|
+
obscured or it's not playing yet, or paused?]"
|
93
|
+
00:40.0 next will be at 00:40s (muted) (r [ctrl+c or q to quit]):
|
94
|
+
00:41.2 no more after this point...(r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen obscured or it's not playing yet, or paused?]"
|
95
|
+
00:43.2 no more after this point...(r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen obscured or it's not playing yet, or paused?]"
|
96
|
+
00:45.3 no more after this point...(r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen obscured or it's not playing yet, or paused?]"
|
97
|
+
00:47.2 no more after this point...(r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen obscured or it's not playing yet, or paused?]"
|
98
|
+
00:49.3 no more after this point...(r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen obscured or it's not playing yet, or paused?]"
|
99
|
+
00:51.3 no more after this point...(r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen obscured or it's not playing yet, or paused?]"
|
100
|
+
00:53.3 no more after this point...(r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen obscured or it's not playing yet, or paused?]"
|
101
|
+
00:55.3 no more after this point...(r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen obscured or it's not playing yet, or paused?]"
|
102
|
+
00:57.3 no more after this point...(r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen obscured or it's not playing yet, or paused?]"
|
103
|
+
00:59.4 no more after this point...(r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen obscured or it's not playing yet, or paused?]"
|
104
|
+
01:01.3 no more after this point...(r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen obscured or it's not playing yet, or paused?]"
|
105
|
+
01:03.4 no more after this point...(r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen obscured or it's not playing yet, or paused?]"
|
106
|
+
01:05.5 no more after this point...(r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen obscured or it's not playing yet, or paused?]"
|
107
|
+
01:07.4 no more after this point...(r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen obscured or it's not playing yet, or paused?]"
|
108
|
+
01:09.4 no more after this point...(r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen obscured or it's not playing yet, or paused?]"
|
109
|
+
01:11.4 no more after this point...(r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen obscured or it's not playing yet, or paused?]"
|
110
|
+
01:13.4 no more after this point...(r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen obscured or it's not playing yet, or paused?]"
|
111
|
+
01:15.4 no more after this point...(r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen obscured or it's not playing yet, or paused?]"
|
112
|
+
01:16.1 no more after this point...(r [ctrl+c or q to quit]):
|
113
|
+
quitting
|
114
|
+
01:16.2 no more after this point...(r [ctrl+c or q to quit]):
|
115
|
+
c:\dev\ruby\sensible-cinema>
|
116
|
+
|
117
|
+
|
@@ -19,7 +19,7 @@ This file is part of Sensible Cinema.
|
|
19
19
|
def add_any_bundled_gems_to_load_path
|
20
20
|
raise 'no vendor dir?' unless File.directory? 'vendor'
|
21
21
|
if File.directory? 'vendor/cache'
|
22
|
-
Dir['vendor
|
22
|
+
Dir['vendor/**/lib'].sort.reverse.each{|lib_dir| # prefers newer versioned copies of gems in case I have duplicates
|
23
23
|
$: << lib_dir
|
24
24
|
}
|
25
25
|
else
|
data/lib/edl_parser.rb
CHANGED
@@ -15,6 +15,7 @@ This file is part of Sensible Cinema.
|
|
15
15
|
You should have received a copy of the GNU General Public License
|
16
16
|
along with Sensible Cinema. If not, see <http://www.gnu.org/licenses/>.
|
17
17
|
=end
|
18
|
+
|
18
19
|
require 'sane'
|
19
20
|
class EdlParser
|
20
21
|
|
@@ -345,4 +346,5 @@ if $0 == __FILE__
|
|
345
346
|
require 'rubygems'
|
346
347
|
require 'sane'
|
347
348
|
p EdlParser.parse_file(*ARGV)
|
349
|
+
p 'parsed well'
|
348
350
|
end
|
@@ -34,9 +34,10 @@ end
|
|
34
34
|
# shared
|
35
35
|
require_relative '../jruby-swing-helpers/swing_helpers'
|
36
36
|
require_relative '../jruby-swing-helpers/drive_info'
|
37
|
+
require_relative '../jruby-swing-helpers/ruby_clip'
|
37
38
|
|
38
39
|
# attempt to load on demand...i.e. faster...
|
39
|
-
for kls in [:MencoderWrapper, :MplayerEdl, :PlayAudio, :SubtitleProfanityFinder, :ConvertThirtyFps
|
40
|
+
for kls in [:MencoderWrapper, :MplayerEdl, :PlayAudio, :SubtitleProfanityFinder, :ConvertThirtyFps]
|
40
41
|
autoload kls, "./lib/#{kls.to_s.snake_case}"
|
41
42
|
end
|
42
43
|
|
@@ -223,7 +224,7 @@ module SensibleSwing
|
|
223
224
|
show_mplayer_instructions_once
|
224
225
|
conf_file = File.expand_path './mplayer_input_conf'
|
225
226
|
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.
|
226
|
-
extra_options += " -font #{File.expand_path('subfont.ttf')} "
|
227
|
+
extra_options += " -font #{File.expand_path('vendor/subfont.ttf')} "
|
227
228
|
extra_options += " -volume 100 " # why start low? mplayer why oh why LODO
|
228
229
|
if OS.windows?
|
229
230
|
# direct3d for windows 7 old nvidia cards' sake [yipes] and also dvdnav sake
|
@@ -249,7 +250,7 @@ module SensibleSwing
|
|
249
250
|
#c += " -close-at-end " # we're still too unstable, mate...
|
250
251
|
end
|
251
252
|
end
|
252
|
-
puts c
|
253
|
+
puts c
|
253
254
|
system_blocking c
|
254
255
|
end
|
255
256
|
|
@@ -344,6 +345,7 @@ module SensibleSwing
|
|
344
345
|
'v' key: turn off subtitles.
|
345
346
|
'.' key: step one frame.
|
346
347
|
# key: change audio language track
|
348
|
+
[ and ] make playback faster
|
347
349
|
EOL
|
348
350
|
end
|
349
351
|
|
@@ -450,7 +452,7 @@ module SensibleSwing
|
|
450
452
|
# 2 is cancel
|
451
453
|
if returned == :no
|
452
454
|
if license_url_should_also_be_embedded_by_you_in_message
|
453
|
-
system_non_blocking("start #{license_url_should_also_be_embedded_by_you_in_message}")
|
455
|
+
system_non_blocking("start #{license_url_should_also_be_embedded_by_you_in_message}") # guess this is url's too, eh?
|
454
456
|
puts "Please restart after reading license agreement, to be able to then accept it."
|
455
457
|
end
|
456
458
|
System.exit 0
|
@@ -532,20 +534,12 @@ module SensibleSwing
|
|
532
534
|
Click ok to be directed to its download website, where you can download and install it (recommend: MPUI....Full-Package.exe),
|
533
535
|
then restart sensible cinema. NB that it takes awhile to install. Sorry about that.",
|
534
536
|
"Lacking dependency", JOptionPane::ERROR_MESSAGE)
|
535
|
-
open_url_to_view_it_non_blocking "http://code.google.com/p/mulder/downloads/list?can=2&q=MPlayer&sort=-uploaded&colspec=Filename%20Summary%20Type%20Uploaded%20Size%20DownloadCount"
|
537
|
+
SwingHelpers.open_url_to_view_it_non_blocking "http://code.google.com/p/mulder/downloads/list?can=2&q=MPlayer&sort=-uploaded&colspec=Filename%20Summary%20Type%20Uploaded%20Size%20DownloadCount"
|
536
538
|
System.exit 0
|
537
539
|
end
|
538
540
|
end
|
539
541
|
end
|
540
542
|
|
541
|
-
def open_url_to_view_it_non_blocking url
|
542
|
-
if OS.windows?
|
543
|
-
system_non_blocking("start #{url.gsub('&', '^&')}") # LODO would launchy help/work here with the full url?
|
544
|
-
else
|
545
|
-
system_non_blocking "#{OS.open_file_command} \"#{url}\"" # LODO test
|
546
|
-
end
|
547
|
-
end
|
548
|
-
|
549
543
|
def open_file_to_edit_it filename, options = {} # :start_minimized
|
550
544
|
if OS.windows?
|
551
545
|
if options[:start_minimized]
|
@@ -560,7 +554,7 @@ module SensibleSwing
|
|
560
554
|
end
|
561
555
|
|
562
556
|
def new_nonexisting_filechooser_and_go title = nil, default_dir = nil, default_file = nil
|
563
|
-
bring_to_front
|
557
|
+
bring_to_front # LODO not need...
|
564
558
|
JFileChooser.new_nonexisting_filechooser_and_go title, default_dir, default_file
|
565
559
|
end
|
566
560
|
|
@@ -573,7 +567,7 @@ module SensibleSwing
|
|
573
567
|
def show_non_blocking_message_dialog message, close_button_text = 'Close'
|
574
568
|
bring_to_front
|
575
569
|
# lodo NonBlockingDialog it can get to the top instead of being so buried...
|
576
|
-
|
570
|
+
SwingHelpers.show_non_blocking_message_dialog message, close_button_text
|
577
571
|
end
|
578
572
|
|
579
573
|
include_class javax.swing.UIManager
|
@@ -602,62 +596,10 @@ module SensibleSwing
|
|
602
596
|
SwingHelpers.show_in_explorer filename
|
603
597
|
end
|
604
598
|
|
605
|
-
def get_disk_chooser_window names
|
606
|
-
GetDisk.new(self, names)
|
607
|
-
end
|
608
|
-
|
609
|
-
end
|
610
|
-
|
611
|
-
class GetDisk < JDialog
|
612
|
-
attr_reader :selected_idx
|
613
|
-
def initialize parent, options_array
|
614
|
-
super parent, true
|
615
|
-
|
616
|
-
box = JComboBox.new
|
617
|
-
box.add_action_listener do |e|
|
618
|
-
idx = box.get_selected_index
|
619
|
-
if idx != 0
|
620
|
-
# don't count choosing the first as a real entry
|
621
|
-
@selected_idx = box.get_selected_index - 1
|
622
|
-
dispose
|
623
|
-
end
|
624
|
-
end
|
625
|
-
|
626
|
-
box.add_item "Click to select DVD drive" # put something in index 0
|
627
|
-
options_array.each{|drive|
|
628
|
-
box.add_item drive
|
629
|
-
}
|
630
|
-
add box
|
631
|
-
pack # how do you get this arbitrary size? what the...
|
632
|
-
end
|
633
|
-
end
|
634
|
-
end
|
635
|
-
|
636
|
-
# LODO move to sane :) also remove the andand dep.
|
637
|
-
class String
|
638
|
-
def present?
|
639
|
-
length > 0
|
640
|
-
end
|
641
|
-
end
|
642
|
-
|
643
|
-
class NilClass
|
644
|
-
def present?
|
645
|
-
false
|
646
|
-
end
|
647
|
-
end
|
648
|
-
class Object
|
649
|
-
def present?
|
650
|
-
true
|
651
|
-
end
|
652
|
-
end
|
653
|
-
|
654
|
-
class Array
|
655
|
-
def present?
|
656
|
-
length > 0
|
657
599
|
end
|
600
|
+
|
658
601
|
end
|
659
602
|
|
660
|
-
|
661
603
|
class File
|
662
604
|
def self.get_root_dir this_path
|
663
605
|
this_path = File.expand_path this_path
|
@@ -76,18 +76,24 @@ module SensibleSwing
|
|
76
76
|
add_to_beginning = "0.0"#get_user_input("How much time to subtract from the beginning of every subtitle entry (ex: (1:00,1:01) becomes (0:59,1:01))", "0.0")
|
77
77
|
add_to_end = "0.0"#get_user_input("How much time to add to the end of every subtitle entry (ex: (1:00,1:04) becomes (1:00,1:05))", "0.0")
|
78
78
|
|
79
|
-
@show_parse_instructions ||= show_blocking_message_dialog "Now enter some values which will adjust the .srt time signatures\nso that it matches the movie more precisely.\nWe also need these values to coordinate it with other devices that may have different timestamps.\nFor DVD playback this will be the timestamps mplayer shows within the console window [the mplayer unedited button]."
|
80
79
|
open_file_to_edit_it srt_filename
|
81
80
|
sleep 0.5 # let it open first
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
end_srt = get_user_input("enter the beginning timestamps within the .srt for \"#{end_text}\"", "02:30:00,000")
|
89
|
-
end_movie_ts = get_user_input("enter beginning timestamps within the movie itself for \"#{end_text}\"", "2:30:00.0 or 9000.0")
|
81
|
+
bring_to_front
|
82
|
+
|
83
|
+
if JOptionPane.show_select_buttons_prompt('Would you like to enter timing adjust information on the .srt file? [final pass should, even if it matches]') == :yes
|
84
|
+
start_text = get_user_input("enter the text from any subtitle entry near beginning [like \"Hello, welcome to our movie.\"]", "...")
|
85
|
+
start_srt = get_user_input("enter beginning timestamp within the .srt file #{File.basename(srt_filename)[0..10]}... for \"#{start_text}\"", "00:00:00,000")
|
86
|
+
start_movie_ts = get_user_input("enter beginning timestamp within the movie itself for said text", "0:00:00")
|
90
87
|
|
88
|
+
end_text = get_user_input("enter the text from a subtitle entry far within or near the end of the movie", "...")
|
89
|
+
end_srt = get_user_input("enter the beginning timestamps within the .srt for \"#{end_text}\"", "02:30:00,000")
|
90
|
+
end_movie_ts = get_user_input("enter beginning timestamps within the movie itself for \"#{end_text}\"", "2:30:00.0 or 9000.0")
|
91
|
+
else
|
92
|
+
start_srt = 0
|
93
|
+
start_movie_ts =0
|
94
|
+
end_srt = 1000
|
95
|
+
end_movie_ts = 1000
|
96
|
+
end
|
91
97
|
parsed_profanities = SubtitleProfanityFinder.edl_output srt_filename, {}, add_to_beginning.to_f, add_to_end.to_f, start_srt, start_movie_ts, end_srt, end_movie_ts
|
92
98
|
File.write EdlTempFile, "# add these into your mute section if you deem them mute-worthy\n" + parsed_profanities +
|
93
99
|
%!\n\n#Also add these two lines for later coordination:\n"beginning_subtitle" => ["#{start_text}", "#{start_movie_ts}"],! +
|
@@ -316,7 +322,7 @@ module SensibleSwing
|
|
316
322
|
# TODO auto-ify above, move docs to a file in documentation.
|
317
323
|
filename = EdlParser::EDL_DIR + "/edls_being_edited/" + english_name.gsub(' ', '_') + '.txt'
|
318
324
|
filename.downcase!
|
319
|
-
File.write(filename, input) unless File.exist?(filename)
|
325
|
+
File.write(filename, input) unless File.exist?(filename)
|
320
326
|
open_file_to_edit_it filename
|
321
327
|
end
|
322
328
|
|
@@ -318,14 +318,11 @@ module SensibleSwing
|
|
318
318
|
|
319
319
|
else
|
320
320
|
dialog = get_disk_chooser_window names
|
321
|
-
dialog.
|
322
|
-
dialog.show
|
323
|
-
selected_idx = dialog.selected_idx
|
321
|
+
selected_idx = dialog.go
|
324
322
|
end
|
325
323
|
|
326
|
-
if selected_idx
|
327
324
|
if used_local_file_option
|
328
|
-
raise unless selected_idx == 0 # it was our only option...
|
325
|
+
raise unless selected_idx == 0 # it was our only option...they must have selected it!
|
329
326
|
filename = new_existing_file_selector_and_select_file("Select yer previously grabbed from DVD file")
|
330
327
|
assert_ownership_dialog
|
331
328
|
return [filename, File.basename(filename), NonDvd]
|
@@ -333,21 +330,21 @@ module SensibleSwing
|
|
333
330
|
disk = opticals[selected_idx]
|
334
331
|
out = show_non_blocking_message_dialog "calculating current disk's unique id...if this pauses more than 10s then clean your DVD..."
|
335
332
|
begin
|
336
|
-
|
333
|
+
dvd_id = DriveInfo.md5sum_disk(disk.MountPoint)
|
337
334
|
rescue Exception => e
|
338
|
-
|
339
|
-
|
340
|
-
|
341
|
-
|
342
|
-
|
335
|
+
show_blocking_message_dialog e.to_s # todo a bit ugly...
|
336
|
+
raise
|
337
|
+
ensure
|
338
|
+
out.dispose
|
339
|
+
end
|
343
340
|
@_choose_dvd_drive_or_file = [disk.MountPoint, opticals[selected_idx].VolumeName, dvd_id]
|
344
341
|
return @_choose_dvd_drive_or_file
|
345
342
|
end
|
346
|
-
else
|
347
|
-
raise 'did not select a drive...'
|
348
|
-
end
|
349
343
|
end
|
350
344
|
|
345
|
+
def get_disk_chooser_window names
|
346
|
+
DropDownSelector.new(self, names, "Click to select DVD drive")
|
347
|
+
end
|
351
348
|
|
352
349
|
end
|
353
350
|
end
|