sensible-cinema 0.28.0 → 0.28.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
data/LICENSE.TXT
CHANGED
|
@@ -5,7 +5,7 @@ All files released under the GPLv3 license [1] unless otherwise specified. Ping
|
|
|
5
5
|
EDL (delete list/edit list/EDL) files are released under the Creative Commons License, however.
|
|
6
6
|
|
|
7
7
|
Note: may call out to some 3rd party libraries/executables under their own (separate, open source) licenses and distributions, but they are contained
|
|
8
|
-
|
|
8
|
+
packaged for convenience. They have their own source codes available.
|
|
9
9
|
|
|
10
10
|
Note also that we used parts of the 7-Zip program, that 7-Zip is licensed under the GNU LGPL license, see http://www.7-zip.org, where its source code can be found.
|
|
11
11
|
|
data/README
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
This is a README for the Sensible Cinema edited movie playback player
|
|
2
|
-
for its other aspects like upconverting DVD/Netflix Instant
|
|
3
|
-
http://rogerdpack.t28.net/sensible-cinema
|
|
1
|
+
This is a README description for the Sensible Cinema edited movie playback portion of the player
|
|
2
|
+
for its other aspects like upconverting DVD/Netflix Instant please see
|
|
3
|
+
http://rogerdpack.t28.net/sensible-cinema for a description.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
For installation instructions, see http://rogerdpack.t28.net/sensible-cinema
|
|
6
|
+
|
|
7
|
+
===
|
|
6
8
|
|
|
7
9
|
Sensible-cinema allows you to apply pre-programmed edit lists
|
|
8
10
|
(e.g. Edit Decision Lists [2]) to the DVD's you own.
|
data/Rakefile
CHANGED
|
@@ -10,14 +10,15 @@ Jeweler::Tasks.new do |s|
|
|
|
10
10
|
s.homepage = "http://github.com/rdp"
|
|
11
11
|
s.authors = ["Roger Pack"]
|
|
12
12
|
s.add_dependency 'os', '>= 0.9.4'
|
|
13
|
-
s.add_dependency 'sane', '>= 0.24.
|
|
14
|
-
s.add_dependency 'rdp-win32screenshot', '= 0.0.9'
|
|
13
|
+
s.add_dependency 'sane', '>= 0.24.6'
|
|
14
|
+
# vendored s.add_dependency 'rdp-win32screenshot', '= 0.0.9'
|
|
15
15
|
s.add_dependency 'mini_magick', '>= 3.1' # for ocr...
|
|
16
16
|
s.add_dependency 'whichr', '>= 0.3.6'
|
|
17
|
-
s.add_dependency 'rdp-rautomation', '> 0.6.3' # LODO
|
|
17
|
+
s.add_dependency 'rdp-rautomation', '> 0.6.3' # LODO use mainline with next release, though I can't remember why
|
|
18
18
|
s.add_dependency 'rdp-ruby-wmi' # for windows
|
|
19
19
|
s.add_dependency 'plist' # for mac
|
|
20
|
-
|
|
20
|
+
# jruby-win32ole?
|
|
21
|
+
s.add_dependency 'ffi' # mouse, etc. needed for windows MRI, probably jruby too [windows]
|
|
21
22
|
s.files.exclude '**/*.exe', '**/*.wav', '**/images/*'
|
|
22
23
|
s.add_development_dependency 'hitimes' # now jruby compat!
|
|
23
24
|
s.add_development_dependency 'rspec', '> 2'
|
|
@@ -66,6 +67,7 @@ def get_transitive_dependencies dependencies
|
|
|
66
67
|
new_dependencies.flatten.uniq
|
|
67
68
|
end
|
|
68
69
|
|
|
70
|
+
desc 'clear_and_copy_vendor_cache'
|
|
69
71
|
task 'clear_and_copy_vendor_cache' do
|
|
70
72
|
system("rm -rf ../cache.bak")
|
|
71
73
|
system("cp -r vendor/cache ../cache.bak") # for retrieval later
|
|
@@ -102,25 +104,38 @@ task 'create_distro_dir' => :gemspec do # depends on gemspec...
|
|
|
102
104
|
FileUtils.mkdir_p dir_out
|
|
103
105
|
FileUtils.cp_r(existing, dir_out) # copies files, subdirs in
|
|
104
106
|
# these belong in the parent dir, by themselves.
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
107
|
+
root_distro = "#{dir_out}/.."
|
|
108
|
+
FileUtils.cp_r(dir_out + '/template_bats/mac', root_distro) # the executable bit carries through somehow..
|
|
109
|
+
FileUtils.cp_r(dir_out + '/template_bats/pc', root_distro) # the executable bit carries through somehow..
|
|
110
|
+
FileUtils.cp('template_bats/README_DISTRO.TXT', root_distro)
|
|
111
|
+
p 'created (still need to zips it) ' + dir_out
|
|
109
112
|
FileUtils.rm_rf Dir[dir_out + '/**/{spec}'] # don't need to distribute those..save 3M!
|
|
110
113
|
end
|
|
111
114
|
|
|
115
|
+
def set_executable_bit filename
|
|
116
|
+
FileUtils.chmod 0755, filename
|
|
117
|
+
end
|
|
118
|
+
|
|
112
119
|
def cur_ver
|
|
113
120
|
File.read('VERSION').strip
|
|
114
121
|
end
|
|
115
122
|
|
|
123
|
+
def delete_now_packaged_dir name
|
|
124
|
+
FileUtils.rm_rf name
|
|
125
|
+
end
|
|
126
|
+
|
|
127
|
+
desc 'create *.zip,tgz'
|
|
116
128
|
task 'zip' do
|
|
117
129
|
name = 'sensible-cinema-' + cur_ver
|
|
118
|
-
raise unless File.directory? name
|
|
130
|
+
raise 'doesnt exist yet to zip?' unless File.directory? name
|
|
119
131
|
raise unless system("\"c:\\Program Files\\7-Zip\\7z.exe\" a -tzip -r #{name}.zip #{name}")
|
|
120
|
-
|
|
121
|
-
|
|
132
|
+
raise unless system("tar -cvzf #{name}.tgz #{name}")
|
|
133
|
+
delete_now_packaged_dir name
|
|
134
|
+
p 'created ' + name + '.zip,tgz and deleted its [create from] folder'
|
|
122
135
|
end
|
|
123
136
|
|
|
137
|
+
|
|
138
|
+
|
|
124
139
|
def sys arg
|
|
125
140
|
3.times { |n|
|
|
126
141
|
if n > 0
|
|
@@ -134,20 +149,22 @@ def sys arg
|
|
|
134
149
|
end
|
|
135
150
|
|
|
136
151
|
task 'deploy' do
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
152
|
+
for suffix in [ '.tgz', '.zip']
|
|
153
|
+
name = 'sensible-cinema-' + cur_ver + suffix
|
|
154
|
+
p 'copying to ilab'
|
|
155
|
+
sys "scp #{name} rdp@ilab1.cs.byu.edu:~/incoming"
|
|
156
|
+
p 'creating sf shell'
|
|
157
|
+
sys "ssh rdp@ilab1.cs.byu.edu 'ssh rogerdpack,sensible-cinema@shell.sourceforge.net create'" # needed for the next command to be able to work [weird]
|
|
158
|
+
p 'creating sf dir'
|
|
159
|
+
begin
|
|
160
|
+
sys "ssh rdp@ilab1.cs.byu.edu 'ssh rogerdpack,sensible-cinema@shell.sourceforge.net \"mkdir /home/frs/project/s/se/sensible-cinema/#{cur_ver}\"'"
|
|
161
|
+
rescue => ok_if_dir_already_existing
|
|
162
|
+
puts 'warning--dir already existing?' + ok_if_dir_already_existing.to_s
|
|
163
|
+
end
|
|
164
|
+
p 'copying into sf from ilab'
|
|
165
|
+
sys "ssh rdp@ilab1.cs.byu.edu 'scp ~/incoming/#{name} rogerdpack,sensible-cinema@frs.sourceforge.net:/home/frs/project/s/se/sensible-cinema/#{cur_ver}/#{name}'"
|
|
147
166
|
end
|
|
148
|
-
p '
|
|
149
|
-
sys "ssh rdp@ilab1.cs.byu.edu 'scp ~/incoming/#{name} rogerdpack,sensible-cinema@frs.sourceforge.net:/home/frs/project/s/se/sensible-cinema/#{cur_ver}/#{name}'"
|
|
150
|
-
p 'successfully deployed to sf only! ' + cur_ver
|
|
167
|
+
p 'successfully deployed to sf! ' + cur_ver
|
|
151
168
|
end
|
|
152
169
|
|
|
153
170
|
task 'gem_release' do
|
data/TODO
CHANGED
|
@@ -2,13 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
remember this stuff is all "oh gosh I have to do that too?" crud time, don't even want it.
|
|
4
4
|
and "won't even be useful to people in the end so why bother?"
|
|
5
|
+
"just for fun"
|
|
5
6
|
netflix
|
|
6
7
|
upconv netflix
|
|
7
8
|
mac'ify OCR/Mouse
|
|
8
|
-
upconvert DVD
|
|
9
|
-
C EDL
|
|
10
9
|
|
|
11
10
|
=== non ordered/eventually (also add line items for them) ===
|
|
11
|
+
upconvert DVD
|
|
12
|
+
C EDL
|
|
12
13
|
create a skype recorder
|
|
13
14
|
netflix/skype "disable screen saver while running" program [?]
|
|
14
15
|
linearize [?] hmm...
|
|
@@ -23,12 +24,11 @@
|
|
|
23
24
|
== high prio like blocking bugs ==
|
|
24
25
|
|
|
25
26
|
== next things I was working on ==
|
|
26
|
-
unit tests work
|
|
27
|
+
gui/edl parser unit tests work
|
|
27
28
|
screen recording sintel
|
|
28
|
-
netflix instant CGI how good is their HD?
|
|
29
|
-
Ben's DVD (hook)
|
|
30
29
|
|
|
31
30
|
== yes do ordered for release/other projects ja ==
|
|
31
|
+
OSOH DVD timing for forum
|
|
32
32
|
test out DVD upscale
|
|
33
33
|
real "screen record" of upconverting sintel, see if it shows a difference
|
|
34
34
|
see if I need to fix my capturer...
|
|
@@ -36,12 +36,28 @@
|
|
|
36
36
|
|
|
37
37
|
netflix instant descriptor for OS X/work at all
|
|
38
38
|
maybe get it to work with say VLC full screen first?
|
|
39
|
+
it may need the "50% adjuster" fella...
|
|
39
40
|
netflix upconvert
|
|
40
41
|
after get DVD down
|
|
41
|
-
|
|
42
|
+
after get hulu down
|
|
42
43
|
nextsprocket...
|
|
43
44
|
|
|
44
45
|
== yes do, un-ordered currently, from the various future release options ==
|
|
46
|
+
|
|
47
|
+
@ffplay: diagonal bug
|
|
48
|
+
fix surveillance for dual cams.
|
|
49
|
+
delete old files :P
|
|
50
|
+
re-encode them to maybe -r 0.5 ?
|
|
51
|
+
note...how to screen live movies :)
|
|
52
|
+
fix dropdown
|
|
53
|
+
note "netflix instant" on the www stuff once it works
|
|
54
|
+
netflix instant CGI how crisp is their HD?
|
|
55
|
+
C player feedback message
|
|
56
|
+
convert to 29.97 [at least this]
|
|
57
|
+
just with the "next" frame button I guess...
|
|
58
|
+
test if I have the same problem...
|
|
59
|
+
popup_text in EDL's
|
|
60
|
+
speed racer
|
|
45
61
|
todo.upconvert
|
|
46
62
|
netflix quality upconverter, have a go at it
|
|
47
63
|
finalize screen capturer
|
|
@@ -50,25 +66,34 @@
|
|
|
50
66
|
snapshots of Sintel "normal", then deploy the various comparison pics
|
|
51
67
|
DVD test it (+- with others testing it for me too)
|
|
52
68
|
|
|
69
|
+
popup text for EDL's
|
|
70
|
+
inet22.net
|
|
71
|
+
|
|
53
72
|
ri_for updatez
|
|
73
|
+
add button "check if EDL has valid syntax" ?
|
|
54
74
|
subtitle -> url everywhere
|
|
75
|
+
they need/want to realize it's for contribution, not just use...
|
|
76
|
+
ooh here's a good idea.
|
|
77
|
+
force them to create any new EDL's on the wiki, and just read them, always, straight from there.
|
|
78
|
+
or some online gui thing, that would work too...prefer the latter
|
|
55
79
|
english name (movie name) mass everywhere
|
|
56
80
|
handle gates of he.....
|
|
57
81
|
ruby_prof stuff
|
|
82
|
+
!additive for mplayer_dvd_splits
|
|
58
83
|
warn other wordpresses
|
|
59
|
-
legal2
|
|
60
84
|
test mplayer -vo gl at home
|
|
61
85
|
add new batch file for play with netflix OCR
|
|
62
86
|
remove those extra printf's for scanning for matching
|
|
63
87
|
Ben's other DVD's
|
|
64
88
|
template-ify for netflix too "create for netflix"
|
|
65
|
-
|
|
89
|
+
add netflix instant instructions
|
|
66
90
|
"note" competitor upconverters
|
|
67
91
|
add a "record start stop" for screen capture
|
|
68
92
|
that extra .5s DVD reports for file size...
|
|
69
93
|
test DVD upconv it at 720*x resolution too...
|
|
70
94
|
EDL gottman
|
|
71
95
|
EDL Greg's DVD's
|
|
96
|
+
minor redcar tweaks
|
|
72
97
|
opening/creating buttons -> new separate sub-window
|
|
73
98
|
add a demo of conference "music video from local file"
|
|
74
99
|
change upconvert options needs its own "close" button
|
|
@@ -79,6 +104,7 @@
|
|
|
79
104
|
add new open button "edit EDL for current DVD"
|
|
80
105
|
add "play at 1.5x speed" mplayer button, I guess
|
|
81
106
|
short list of todo's for screen capture
|
|
107
|
+
@mplayer: Mutes on windows shtink
|
|
82
108
|
"fix" mplayer EDL pausing (within the mplayer code itself)
|
|
83
109
|
bounty it for now/test with latest ffmpeg et al, maybe on mac with source [?
|
|
84
110
|
the open button should open in the "editing" EDL dir + save.
|
|
@@ -109,7 +135,7 @@
|
|
|
109
135
|
maybe search at end of movies for certain things?
|
|
110
136
|
double check--are my ffmpeg splits really really really the same as mplayer's EDL DVD splits? really?
|
|
111
137
|
check with blu-rays...do they match timing-wise? sub-title wise? do subs match something else?
|
|
112
|
-
youtube/hulu timings
|
|
138
|
+
youtube/hulu timings different?
|
|
113
139
|
split LLC's website+consumer
|
|
114
140
|
get LLC before a "real" domain name
|
|
115
141
|
employee instructions: watch @ realtime after profanity filter first pass :P
|
|
@@ -165,8 +191,12 @@
|
|
|
165
191
|
screen_capture TODO
|
|
166
192
|
|
|
167
193
|
== DVD decide later to move up or down ==
|
|
194
|
+
super subtitle parser watcher for netflix instant...like on-demand...
|
|
168
195
|
|
|
169
196
|
== DVD+-DVD-realtime backlog (totally unordered, some very low prio, basically all never do) ==
|
|
197
|
+
A netflix instant "coordinator" so you can watch a movie while on the phone et al :P (/hulu etc.)
|
|
198
|
+
bounty qtcapture for ffmpeg LOL/fix VLC
|
|
199
|
+
compare netflix instant HD to a blu-ray...same?
|
|
170
200
|
split out the "dependency" codes
|
|
171
201
|
more netflix instant timing
|
|
172
202
|
do another srt comparison with netflix...see if it matches less 1s
|
|
@@ -249,7 +279,8 @@
|
|
|
249
279
|
"save to" -> same dir as "get from" yeah
|
|
250
280
|
figure out a way to get to the roku [ps3ms?], +- netflix edited to roku LOL
|
|
251
281
|
prompt something if the EDL is actually "empty" :)
|
|
252
|
-
already donated: sox, rubular, mplayer, vlc, menumeter, http://instantitunes.wordpress.com/2010/02/26/use-tsmuxer-on-snow-leopard, unlocker, mac fan thing, open office, many sourceforge tops, 7zip, VLC, mplayer, cannot donate: ffmpeg, http://ffmpeg.zeranoe.com/builds, tsmuxer (sent email), asked mulder, smplayer ($5), http://lame.buanzo.com.ar, sox, smcFanControl (eidac)
|
|
282
|
+
already donated: sox, rubular, mplayer, vlc, menumeter, http://instantitunes.wordpress.com/2010/02/26/use-tsmuxer-on-snow-leopard, unlocker, mac fan thing, open office, many sourceforge tops, 7zip, VLC, mplayer, cannot donate: ffmpeg, http://ffmpeg.zeranoe.com/builds, tsmuxer (sent email), asked mulder, smplayer ($5), http://lame.buanzo.com.ar, sox, smcFanControl (eidac), free flash webcam tester guy, argentine audacity liblame, VLC
|
|
283
|
+
todo: audacity, windirstat (done)
|
|
253
284
|
note "you want to optimize your reverse blitting first... :)"
|
|
254
285
|
if 2 EDL's, still can choose a title trackfor automatically playing it right.
|
|
255
286
|
fast preview: change it to be aggressive sometimes yes, other times no
|
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.28.
|
|
1
|
+
0.28.1
|
|
@@ -1,3 +1,15 @@
|
|
|
1
|
+
== 0.28.1 ==
|
|
2
|
+
|
|
3
|
+
NB that we have auto-coordinating subtitle morphing software now
|
|
4
|
+
to automagically align it with the actual audio/video tracks.
|
|
5
|
+
|
|
6
|
+
Note also that it's possible to actually programmatically set the master volume control
|
|
7
|
+
(viz: Tron), see http://stackoverflow.com/questions/3249550/is-there-a-way-in-java-jna-to-set-the-master-system-volume-reliably-in-xpvi/7550110#7550110
|
|
8
|
+
and/or set it per application, through Windows Vista+
|
|
9
|
+
Also in XP: http://blogs.msdn.com/b/larryosterman/archive/2007/03/06/how-do-i-change-the-master-volume-in-windows-vista.aspx
|
|
10
|
+
|
|
11
|
+
First attempt at mac friendly release.
|
|
12
|
+
|
|
1
13
|
== 0.28.0 ==
|
|
2
14
|
|
|
3
15
|
Includes vendored support (experimental) for EDL playback via VLC via its internal libVLC control API
|
|
@@ -72,6 +72,8 @@ NB: YOU MUST AGREE TO THE gplv3 in order to use this software. See LICENSE.TXT
|
|
|
72
72
|
[3] http://www.macworld.com/article/150731/2010/04/dvdripping_faqs.html
|
|
73
73
|
[4] http://www.videolan.org/legal.html
|
|
74
74
|
|
|
75
|
-
|
|
75
|
+
http://en.wikipedia.org/wiki/DVD_Decrypter mentions fair use a bit, though in context of a different program, still interesting nonetheless.
|
|
76
76
|
|
|
77
|
-
Also note that this project was done under the gplv3 in Roger's jurisdiction, not a product of anybody else or any other owner.
|
|
77
|
+
Also note that this project was done under the gplv3 in Roger's jurisdiction, not a product of anybody else or any other owner, nor copyright elsewise.
|
|
78
|
+
|
|
79
|
+
Also the footnotes to fanedit.org have some related and applicable discussion of legal issues.
|
|
@@ -100,3 +100,5 @@ Anydvd HD's "magic file replacement" for DVD's/blu-ray's
|
|
|
100
100
|
RiffTrax allows for an audio "overlay" to a DVD playback, have their own player to coordinate the two.
|
|
101
101
|
"fan subs" are edited subtitles, displayed overlaid on the original track/video
|
|
102
102
|
Avatar DVD was released with an audio track that was "euphemized" of the profanity.
|
|
103
|
+
|
|
104
|
+
BYU's Varsity theater used to edit movies, and show them.
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
|
|
2
|
+
<!--
|
|
3
|
+
You are free to copy and use this sample in accordance with the terms of the
|
|
4
|
+
Apache license (http://www.apache.org/licenses/LICENSE-2.0.html)
|
|
5
|
+
-->
|
|
6
|
+
|
|
7
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
|
8
|
+
<html xmlns="http://www.w3.org/1999/xhtml">
|
|
9
|
+
<head>
|
|
10
|
+
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
|
|
11
|
+
<title>YouTube Player API Sample</title>
|
|
12
|
+
<style type="text/css">
|
|
13
|
+
#videoDiv {
|
|
14
|
+
margin-right: 3px;
|
|
15
|
+
}
|
|
16
|
+
#videoInfo {
|
|
17
|
+
margin-left: 3px;
|
|
18
|
+
}
|
|
19
|
+
</style>
|
|
20
|
+
<script src="http://www.google.com/jsapi" type="text/javascript"></script>
|
|
21
|
+
<script type="text/javascript">
|
|
22
|
+
google.load("swfobject", "2.1");
|
|
23
|
+
</script>
|
|
24
|
+
<script type="text/javascript">
|
|
25
|
+
/*
|
|
26
|
+
* Polling the player for information
|
|
27
|
+
*/
|
|
28
|
+
|
|
29
|
+
// Update a particular HTML element with a new value
|
|
30
|
+
function updateHTML(elmId, value) {
|
|
31
|
+
document.getElementById(elmId).innerHTML = value;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
// This function is called when an error is thrown by the player
|
|
35
|
+
function onPlayerError(errorCode) {
|
|
36
|
+
alert("An error occured of type:" + errorCode);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
// This function is called when the player changes state
|
|
40
|
+
function onPlayerStateChange(newState) {
|
|
41
|
+
updateHTML("playerState", newState);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
function pausecomp(millis)
|
|
46
|
+
{
|
|
47
|
+
var date = new Date();
|
|
48
|
+
var curDate = null;
|
|
49
|
+
do { curDate = new Date(); }
|
|
50
|
+
while(curDate-date < millis);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
// we will mute from 2->10 seconds, and skip from second 13 to 18, wash and repeat
|
|
54
|
+
// have to run this from a web server for it to work
|
|
55
|
+
|
|
56
|
+
function muteFromSecondTwoToTen() {
|
|
57
|
+
ytplayer.mute();
|
|
58
|
+
setTimeout(
|
|
59
|
+
function() {
|
|
60
|
+
ytplayer.unMute();
|
|
61
|
+
setTimeout(
|
|
62
|
+
function() {
|
|
63
|
+
// here we're at second 13
|
|
64
|
+
// so let's seek to...say...1
|
|
65
|
+
ytplayer.seekTo(18, true);
|
|
66
|
+
}, 3000);
|
|
67
|
+
}, 8000);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
var madeFirstTrans = false;
|
|
71
|
+
|
|
72
|
+
// Display information about the current state of the player
|
|
73
|
+
function updatePlayerInfo() {
|
|
74
|
+
// Also check that at least one function exists since when IE unloads the
|
|
75
|
+
// page, it will destroy the SWF before clearing the interval.
|
|
76
|
+
|
|
77
|
+
// mute from 5 to 10
|
|
78
|
+
// then skip from 15 to 20
|
|
79
|
+
if(ytplayer && ytplayer.getDuration) {
|
|
80
|
+
updateHTML("videoDuration", ytplayer.getDuration());
|
|
81
|
+
updateHTML("videoCurrentTime", ytplayer.getCurrentTime()); // this is it...
|
|
82
|
+
if(ytplayer.getCurrentTime() > 2 && !madeFirstTrans) {
|
|
83
|
+
muteFromSecondTwoToTen();
|
|
84
|
+
madeFirstTrans = true;
|
|
85
|
+
}
|
|
86
|
+
updateHTML("bytesTotal", ytplayer.getVideoBytesTotal());
|
|
87
|
+
updateHTML("startBytes", ytplayer.getVideoStartBytes());
|
|
88
|
+
updateHTML("bytesLoaded", ytplayer.getVideoBytesLoaded());
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
// This function is automatically called by the player once it loads
|
|
93
|
+
function onYouTubePlayerReady(playerId) {
|
|
94
|
+
ytplayer = document.getElementById("ytPlayer");
|
|
95
|
+
// This causes the updatePlayerInfo function to be called every 250ms to
|
|
96
|
+
// get fresh data from the player
|
|
97
|
+
setInterval(updatePlayerInfo, 25); // 25 ms
|
|
98
|
+
updatePlayerInfo();
|
|
99
|
+
ytplayer.addEventListener("onStateChange", "onPlayerStateChange");
|
|
100
|
+
ytplayer.addEventListener("onError", "onPlayerError");
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
// The "main method" of this sample. Called when someone clicks "Run".
|
|
104
|
+
function loadPlayer() {
|
|
105
|
+
// The video to load
|
|
106
|
+
var videoID = "ylLzyHk54Z0"
|
|
107
|
+
// Lets Flash from another domain call JavaScript
|
|
108
|
+
var params = { allowScriptAccess: "always" };
|
|
109
|
+
// The element id of the Flash embed
|
|
110
|
+
var atts = { id: "ytPlayer" };
|
|
111
|
+
// All of the magic handled by SWFObject (http://code.google.com/p/swfobject/)
|
|
112
|
+
swfobject.embedSWF("http://www.youtube.com/v/" + videoID +
|
|
113
|
+
"&enablejsapi=1&playerapiid=player1&autoplay=1",
|
|
114
|
+
"videoDiv", "480", "295", "8", null, null, params, atts);
|
|
115
|
+
}
|
|
116
|
+
function _run() {
|
|
117
|
+
loadPlayer();
|
|
118
|
+
}
|
|
119
|
+
google.setOnLoadCallback(_run);
|
|
120
|
+
</script>
|
|
121
|
+
</head>
|
|
122
|
+
<body style="font-family: Arial;border: 0 none;">
|
|
123
|
+
<table>
|
|
124
|
+
<tr>
|
|
125
|
+
<td><div id="videoDiv">Loading...</div></td>
|
|
126
|
+
<td valign="top">
|
|
127
|
+
<div id="videoInfo">
|
|
128
|
+
<p>Player state: <span id="playerState">--</span></p>
|
|
129
|
+
<p>Current Time: <span id="videoCurrentTime">--:--</span> | Duration: <span id="videoDuration">--:--</span></p>
|
|
130
|
+
<p>Bytes Total: <span id="bytesTotal">--</span> | Start Bytes: <span id="startBytes">--</span> | Bytes Loaded: <span id="bytesLoaded">--</span></p>
|
|
131
|
+
</div>
|
|
132
|
+
</td></tr>
|
|
133
|
+
</table>
|
|
134
|
+
</body>
|
|
135
|
+
</html>
|