sensible-cinema 0.25.0 → 0.25.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/TODO +12 -1
- data/VERSION +1 -1
- data/bin/sensible-cinema +3 -1
- data/bin/sensible-cinema-cli +4 -4
- data/change_log_with_feature_list.txt +7 -0
- data/conclusions +6 -0
- data/lib/blanker.rb +20 -1
- data/lib/mouse.rb +1 -1
- data/lib/mouse_draw.rb +41 -0
- data/lib/muter.rb +2 -30
- data/lib/screen_tracker.rb +21 -9
- data/lib/subtitle_profanity_finder.rb +3 -1
- data/spec/notes +19 -1
- data/spec/screen_tracker.spec.rb +4 -4
- data/todo.upconvert +30 -19
- data/upconvert.bat +0 -0
- data/upconvert_netflix/latest2/go_no_upscaling.bat +1 -0
- data/upconvert_netflix/latest2/go_upscaling.bat +12 -0
- data/upconvert_netflix/latest2/push2.GRF +0 -0
- data/upconvert_netflix/latest2/setup_capture_coords.rb +27 -0
- data/upconvert_netflix/latest2/setup_directshow_filter_params.rb +29 -0
- data/upconvert_netflix/latest2/upconvert_from_screen_me2.avs +19 -0
- data/upconvert_netflix/{latest_now_possibly_oudated → old/latest_now_possibly_oudated}/push2.GRF +0 -0
- data/upconvert_netflix/{latest_now_possibly_oudated → old/latest_now_possibly_oudated}/upconvert_from_screen_me2.avs +0 -0
- data/upconvert_netflix/{position_window.png → old/position_window.png} +0 -0
- data/upconvert_netflix/{push_source_desktop.GRF → old/push_source_desktop.GRF} +0 -0
- data/upconvert_netflix/{upconvert_from_screen.avs → old/upconvert_from_screen.avs} +0 -0
- data/upconvert_netflix/{upconvert_from_screen_me.avs → old/upconvert_from_screen_me.avs} +0 -0
- data/upconvert_netflix/{upconvert_from_screen_me2.avs → old/upconvert_from_screen_me2.avs} +0 -0
- data/upconvert_netflix/{upconvert_from_screen_me_push_source.avs → old/upconvert_from_screen_me_push_source.avs} +0 -0
- data/upconvert_netflix/{uscreen.GRF → old/uscreen.GRF} +0 -0
- data/upconvert_netflix/{uscreen_me.GRF → old/uscreen_me.GRF} +0 -0
- data/zamples/edit_decision_lists/dvds/bambi.txt +1 -4
- data/zamples/edit_decision_lists/dvds/edls_being_edited/test_delete_list_for_experimenting_with.txt +2 -2
- data/zamples/edit_decision_lists/dvds/{edls_being_edited/flight_of_the_navigator.txt → flight_of_the_navigator.txt} +1 -1
- data/zamples/edit_decision_lists/dvds/if_a_man_answers.txt +43 -0
- metadata +22 -15
- data/upconvert_netflix/HOW_TO_USE.txt +0 -37
- data/zamples/edit_decision_lists/dvds/edls_being_edited/other_side_of_heaven.txt +0 -19
data/TODO
CHANGED
|
@@ -26,12 +26,17 @@
|
|
|
26
26
|
|
|
27
27
|
== yes do ordered in conjunction with the above probably ==
|
|
28
28
|
release at some point...Oliver? facebook?
|
|
29
|
-
snapshots of snow white "normal", then deploy pics
|
|
29
|
+
snapshots of snow white "normal", then deploy the various pics
|
|
30
30
|
lightning strike from various outlets...
|
|
31
31
|
research VOB
|
|
32
32
|
timesplits?
|
|
33
33
|
|
|
34
34
|
== yes do, un-ordered currently, from the various future release options ==
|
|
35
|
+
todo.upconvert
|
|
36
|
+
except I'm really close [?] with netflix instant upconverter...hmm...
|
|
37
|
+
new open button "edit the one for current DVD"
|
|
38
|
+
the other button should open in the "editing" EDL dir.
|
|
39
|
+
overlapping mute failure when you hit the "watch edited realtime" should popup.
|
|
35
40
|
split out the "dependency" code from main.
|
|
36
41
|
try buy edit lists from all x,y,z [?] maybe ask for them for free first? ()
|
|
37
42
|
http://www.familysafemovies.com
|
|
@@ -50,6 +55,7 @@
|
|
|
50
55
|
make it load faster! this is cuh-razy! or splash screen! yes!
|
|
51
56
|
netflix quality upconverter
|
|
52
57
|
want a prototype mplayer upconverter...I guess...
|
|
58
|
+
add back in scale for OS X, see if it's expensive or not...I'd guess not though...
|
|
53
59
|
research XBMC
|
|
54
60
|
@XBMC: your stuff is broken in at least these two ways (bug reports)
|
|
55
61
|
also are they 30fps or not? and how do they handle timesplits?
|
|
@@ -68,6 +74,7 @@
|
|
|
68
74
|
0.3 ... ? huh?
|
|
69
75
|
fix released version to work in mac
|
|
70
76
|
release capture filter, advertise it :)
|
|
77
|
+
report ffmpeg bug, mplayer various :P
|
|
71
78
|
note "you want to optimize your reverse blitting first... :)"
|
|
72
79
|
test speed of from DESKTOP versus HWND.
|
|
73
80
|
can use hwnd. Somehow automated.
|
|
@@ -81,6 +88,7 @@
|
|
|
81
88
|
urug again?
|
|
82
89
|
after works in mac. Why not?
|
|
83
90
|
if 2 EDL's, still can choose a title track
|
|
91
|
+
advertise virtual audio
|
|
84
92
|
auto-add largest title to the generator EDL
|
|
85
93
|
complain if times looks wrong...on playback? sum time
|
|
86
94
|
tighten old splits... [remove, really, I guess...sure while I only have few...and also add better instructions...]
|
|
@@ -89,6 +97,7 @@
|
|
|
89
97
|
@instructions "this is great for comparing srt's, except...when it isn't, then you have to..."
|
|
90
98
|
@instructions: full srt how-to document instead of tooltip [?] or combine the two! yes!
|
|
91
99
|
volume_name => dvd_volume_name
|
|
100
|
+
C-based stuff cleanup loose ends
|
|
92
101
|
why is the Sintel's EDL seemingly off?
|
|
93
102
|
ascertain how accurate mplayer EDL is...I guess compared to...umm...something?
|
|
94
103
|
fix discrepancy between EDL mplayer and ffmpeg...maybe a new button "accurate EDL playback"?
|
|
@@ -175,6 +184,8 @@
|
|
|
175
184
|
investigate: can I use zoomplayer max?
|
|
176
185
|
|
|
177
186
|
== DVD+-DVD-realtime backlog (totally unordered, some very low prio, basically all never do) ==
|
|
187
|
+
@ffdshow-tryouts: don't crash me!
|
|
188
|
+
conference it can "pick out songs" (like a music video? mp3's?)
|
|
178
189
|
check with WME plugins, add instructions, then note in the README "support for x..."
|
|
179
190
|
"1:07:5.718" , "1:07:10.447", "profanity", "ba.....", "Faraday that [ba.....] That ba He's gonna wish he never met us",
|
|
180
191
|
should have dots uh guess...
|
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.25.
|
|
1
|
+
0.25.1
|
data/bin/sensible-cinema
CHANGED
|
@@ -321,7 +321,9 @@ module SensibleSwing
|
|
|
321
321
|
if OS.mac?
|
|
322
322
|
'' # avoid odd message try appending the scale filter <sigh> I don't *want* the scale filter with no upconversion gah.
|
|
323
323
|
else
|
|
324
|
-
|
|
324
|
+
# until I find out if they were making me too slow on older comps'
|
|
325
|
+
# "pullup,softskip"
|
|
326
|
+
''
|
|
325
327
|
end
|
|
326
328
|
end
|
|
327
329
|
end
|
data/bin/sensible-cinema-cli
CHANGED
|
@@ -94,10 +94,10 @@ def go_sc(args)
|
|
|
94
94
|
screen_tracker = ScreenTracker.new_from_yaml File.binread(player_description), overlay
|
|
95
95
|
does_not_need_mouse_jerk = YAML.load_file(player_description)["does_not_need_mouse_movement"]
|
|
96
96
|
unless does_not_need_mouse_jerk
|
|
97
|
-
p 'yes mouse jitter' if $VERBOSE or $DEBUG
|
|
97
|
+
p 'yes using mouse jitter' if $VERBOSE or $DEBUG
|
|
98
98
|
Mouse.jitter_forever_in_own_thread # when this ends you know a snapshot was taken...
|
|
99
99
|
else
|
|
100
|
-
p '
|
|
100
|
+
p 'not using mouse jitter' if $VERBOSE or $DEBUG
|
|
101
101
|
end
|
|
102
102
|
|
|
103
103
|
# exit early if we just wanted a screen dump...a little kludgey...
|
|
@@ -105,7 +105,7 @@ def go_sc(args)
|
|
|
105
105
|
puts 'warning--only doing screen dump in t-minus 2s...'
|
|
106
106
|
sleep 2
|
|
107
107
|
puts 'snap!'
|
|
108
|
-
screen_tracker.
|
|
108
|
+
screen_tracker.dump_bmps
|
|
109
109
|
exit 1
|
|
110
110
|
end
|
|
111
111
|
screen_tracker.process_forever_in_thread
|
|
@@ -115,7 +115,7 @@ def go_sc(args)
|
|
|
115
115
|
|
|
116
116
|
OCR.unserialize_cache_from_disk # do this every time so we don't delete it if they don't have one...
|
|
117
117
|
|
|
118
|
-
puts "Opening the curtains... (please play in your other player now)"
|
|
118
|
+
puts "Opening the curtains... (please play in your other video player now)"
|
|
119
119
|
overlay.start_thread true
|
|
120
120
|
key_input = KeyboardInput.new overlay
|
|
121
121
|
key_input.start_thread # status thread
|
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
== 0.25.1 ==
|
|
2
|
+
|
|
3
|
+
Added ability to dynamically "find" which window contained the playing movie, and capture it, from desktop,
|
|
4
|
+
for upscaling or capturing.
|
|
5
|
+
|
|
6
|
+
added ability to "minimize" and "unminimize" a movie player window in order to "simulate" blanking.
|
|
7
|
+
|
|
1
8
|
== 0.25.0 ==
|
|
2
9
|
|
|
3
10
|
Created my own directshow screen capture filter to go along with netflix instant upconvert,
|
data/conclusions
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"commercial" players, like windows media player, will "seek" based on 30 fps, even if
|
|
2
|
+
the underlying is 29.97
|
|
3
|
+
however if you allow them to just continue playing, they use wall time, which is 29.97 fps
|
|
4
|
+
|
|
5
|
+
makemkv can give you streams that are up to like 2s out of whack with the DVD. tsmuxer
|
|
6
|
+
seems to fix those though, if you unmux them.
|
data/lib/blanker.rb
CHANGED
|
@@ -47,11 +47,28 @@ else
|
|
|
47
47
|
@fr.set_visible(false) # hide it to start
|
|
48
48
|
end
|
|
49
49
|
|
|
50
|
-
@@use_mouse =
|
|
50
|
+
@@use_mouse = false
|
|
51
|
+
@@use_foreground_window_minimize = true
|
|
52
|
+
if @@use_foreground_window_minimize
|
|
53
|
+
require 'win32/screenshot'
|
|
54
|
+
SW_MINIMIZE = 6
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
def self.minimize_hwnd hwnd
|
|
58
|
+
Win32::Screenshot::BitmapMaker.show_window(hwnd, SW_MINIMIZE)
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
def self.restore_hwnd hwnd
|
|
62
|
+
Win32::Screenshot::BitmapMaker.restore(hwnd)
|
|
63
|
+
end
|
|
51
64
|
|
|
52
65
|
def self.blank_full_screen! seconds
|
|
66
|
+
|
|
53
67
|
if @@use_mouse
|
|
54
68
|
Mouse.single_click_left_mouse_button
|
|
69
|
+
elsif @@use_foreground_window_minimize
|
|
70
|
+
@foreground_hwnd ||= Win32::Screenshot::BitmapMaker.foreground_window
|
|
71
|
+
minimize_hwnd @foreground_hwnd
|
|
55
72
|
else
|
|
56
73
|
# somewhat hacky work around for doze: http://www.experts-exchange.com/Programming/Languages/Java/Q_22977145.html
|
|
57
74
|
@fr.setAlwaysOnTop(false)
|
|
@@ -69,6 +86,8 @@ else
|
|
|
69
86
|
def self.unblank_full_screen!
|
|
70
87
|
if @@use_mouse
|
|
71
88
|
Mouse.single_click_left_mouse_button
|
|
89
|
+
elsif @@use_foreground_window_minimize
|
|
90
|
+
restore_hwnd @foreground_hwnd
|
|
72
91
|
else
|
|
73
92
|
# just move it off screen...lodo
|
|
74
93
|
@fr.set_location(-2100, -2100)
|
data/lib/mouse.rb
CHANGED
|
@@ -116,7 +116,7 @@ module Mouse
|
|
|
116
116
|
VK_LBUTTON = 0x01 # mouse left button for GetAsyncKeyState
|
|
117
117
|
|
|
118
118
|
def left_mouse_button_state
|
|
119
|
-
GetAsyncKeyState(VK_LBUTTON) # ignore a first
|
|
119
|
+
GetAsyncKeyState(VK_LBUTTON) # ignore a first response, which also tells us if it has changed at all since last call
|
|
120
120
|
if GetAsyncKeyState(VK_LBUTTON) == 0 # zero means up
|
|
121
121
|
:up
|
|
122
122
|
else
|
data/lib/mouse_draw.rb
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
require 'mouse'
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class MouseDraw
|
|
5
|
+
|
|
6
|
+
def self.go
|
|
7
|
+
|
|
8
|
+
require 'java'
|
|
9
|
+
|
|
10
|
+
java_import 'javax.swing.JFrame'
|
|
11
|
+
java_import 'javax.swing.JButton'
|
|
12
|
+
java_import 'com.sun.awt.AWTUtilities'
|
|
13
|
+
|
|
14
|
+
f = JFrame.new
|
|
15
|
+
f.add JButton.new('capture window')
|
|
16
|
+
f.set_size(200,200)
|
|
17
|
+
|
|
18
|
+
AWTUtilities.set_window_opacity(f, 0.5)
|
|
19
|
+
|
|
20
|
+
# wait till mouse goes down...
|
|
21
|
+
while(Mouse.left_mouse_button_state == :up)
|
|
22
|
+
sleep 0.05
|
|
23
|
+
print '.'
|
|
24
|
+
end
|
|
25
|
+
f.undecorated = true
|
|
26
|
+
f.default_close_operation = JFrame::EXIT_ON_CLOSE
|
|
27
|
+
f.always_on_top = true
|
|
28
|
+
f.visible = true
|
|
29
|
+
f.set_location(Mouse.get_mouse_location)
|
|
30
|
+
while(Mouse.left_mouse_button_state == :down)
|
|
31
|
+
# set_size
|
|
32
|
+
end
|
|
33
|
+
#f.close
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
if $0 == __FILE__
|
|
40
|
+
MouseDraw.go
|
|
41
|
+
end
|
data/lib/muter.rb
CHANGED
|
@@ -53,38 +53,10 @@ module Muter
|
|
|
53
53
|
keybd_event(VK_VOLUME_DOWN, 0, KEYEVENTF_KEYUP, nil)
|
|
54
54
|
end
|
|
55
55
|
|
|
56
|
-
@@use_mouse = false # inventionzy
|
|
57
|
-
@@use_static_on_top = false # inventionzy
|
|
58
|
-
@@use_down_volume_button = true
|
|
59
|
-
|
|
60
|
-
def start_playing_static
|
|
61
|
-
@player = PlayAudio.new(__DIR__ + '/static.wav')
|
|
62
|
-
@player.loop
|
|
63
|
-
p 'STARTED STATIC'
|
|
64
|
-
end
|
|
65
|
-
|
|
66
|
-
def stop_playing_static
|
|
67
|
-
if @player
|
|
68
|
-
p 'STOPPED STATIC'
|
|
69
|
-
@player.stop
|
|
70
|
-
@player = nil
|
|
71
|
-
end
|
|
72
|
-
end
|
|
73
|
-
|
|
74
|
-
@@use_down_volume_button_number = 3
|
|
75
|
-
|
|
76
56
|
def mute!
|
|
77
57
|
#unmute! # just in case...somehow this was causing problems...windows 7 perhaps? VLC?
|
|
78
|
-
# anyway we just use a toggle for now...dangerous but works hopefully
|
|
79
|
-
|
|
80
|
-
Mouse.single_click_left_mouse_button
|
|
81
|
-
elsif @@use_static_on_top
|
|
82
|
-
start_playing_static
|
|
83
|
-
elsif @@use_down_volume_button
|
|
84
|
-
@@use_down_volume_button_number.times { hit_volume_down_key }
|
|
85
|
-
else
|
|
86
|
-
hit_mute_key
|
|
87
|
-
end
|
|
58
|
+
# anyway we just use a toggle for now...dangerous but works hopefully...
|
|
59
|
+
hit_mute_key
|
|
88
60
|
end
|
|
89
61
|
|
|
90
62
|
# LODO better for doze 7/xp
|
data/lib/screen_tracker.rb
CHANGED
|
@@ -19,10 +19,17 @@ require 'win32/screenshot'
|
|
|
19
19
|
require 'sane'
|
|
20
20
|
require 'yaml'
|
|
21
21
|
require File.dirname(__FILE__)+ '/ocr'
|
|
22
|
+
require 'ffi'
|
|
22
23
|
|
|
23
24
|
class ScreenTracker
|
|
24
25
|
|
|
25
|
-
|
|
26
|
+
extend FFI::Library
|
|
27
|
+
ffi_lib 'user32'
|
|
28
|
+
# second parameter, pointer, LPRECT is FFI::MemoryPointer.new(:long, 4)
|
|
29
|
+
# read it like rect.read_array_of_long(4)
|
|
30
|
+
attach_function :GetWindowRect, [:long, :pointer], :int # returns a BOOL
|
|
31
|
+
|
|
32
|
+
def self.new_from_yaml yaml, callback # callback can be nil, is used for timestamp changed stuff
|
|
26
33
|
settings = YAML.load yaml
|
|
27
34
|
return new(settings["name"], settings["x"], settings["y"], settings["width"],
|
|
28
35
|
settings["height"], settings["use_class_name"], settings["digits"], callback)
|
|
@@ -32,13 +39,13 @@ class ScreenTracker
|
|
|
32
39
|
|
|
33
40
|
# digits are like {:hours => [100,5], :minute_tens, :minute_ones, :second_tens, :second_ones}
|
|
34
41
|
# digits share the height start point, have their own x and width...
|
|
35
|
-
def initialize name_or_regex,x,y,width,height,use_class_name=nil,digits=nil,callback=nil
|
|
42
|
+
def initialize name_or_regex, x, y, width, height, use_class_name=nil, digits=nil, callback=nil
|
|
36
43
|
# cache to save us 0.00445136 per time LOL
|
|
37
44
|
@name_or_regex = name_or_regex
|
|
38
45
|
@use_class_name = use_class_name
|
|
39
|
-
get_hwnd
|
|
40
46
|
pps 'height', height, 'width', width if $VERBOSE
|
|
41
47
|
raise 'poor dimentia' if width <= 0 || height <= 0
|
|
48
|
+
get_hwnd_loop_forever
|
|
42
49
|
max_x, max_y = Win32::Screenshot::Util.dimensions_for(@hwnd)
|
|
43
50
|
if(x < 0 || y < 0)
|
|
44
51
|
if x < 0
|
|
@@ -48,7 +55,6 @@ class ScreenTracker
|
|
|
48
55
|
y = max_y + y
|
|
49
56
|
end
|
|
50
57
|
end
|
|
51
|
-
@height = height
|
|
52
58
|
@x = x; @y = y; @x2 = x+width; @y2 = y+height; @callback = callback
|
|
53
59
|
@max_x = max_x
|
|
54
60
|
raise "poor width or wrong window #{@x2} #{max_x} #{x}" if @x2 > max_x || @x2 == x
|
|
@@ -65,7 +71,7 @@ class ScreenTracker
|
|
|
65
71
|
pps 'using x',@x, 'from x', x, 'y', @y, 'from y', y,'x2',@x2,'y2',@y2,'digits', @digits.inspect if $VERBOSE
|
|
66
72
|
end
|
|
67
73
|
|
|
68
|
-
def
|
|
74
|
+
def get_hwnd_loop_forever
|
|
69
75
|
if @name_or_regex.to_s.downcase == 'desktop'
|
|
70
76
|
# full screen option
|
|
71
77
|
assert !@use_class_name # not an option
|
|
@@ -89,7 +95,7 @@ class ScreenTracker
|
|
|
89
95
|
end
|
|
90
96
|
puts 're-established contact with window'
|
|
91
97
|
end
|
|
92
|
-
|
|
98
|
+
true
|
|
93
99
|
end
|
|
94
100
|
|
|
95
101
|
# gets the snapshot of "all the digits together"
|
|
@@ -104,7 +110,7 @@ class ScreenTracker
|
|
|
104
110
|
end
|
|
105
111
|
|
|
106
112
|
# writes out all screen tracking info to various files in the current pwd
|
|
107
|
-
def
|
|
113
|
+
def dump_bmps filename = 'dump.bmp'
|
|
108
114
|
File.binwrite filename, get_bmp
|
|
109
115
|
File.binwrite 'all.' + filename, get_full_bmp
|
|
110
116
|
dump_digits(get_digits_as_bitmaps, 'dump_bmp') if @digits
|
|
@@ -144,10 +150,16 @@ class ScreenTracker
|
|
|
144
150
|
out
|
|
145
151
|
end
|
|
146
152
|
|
|
147
|
-
def
|
|
153
|
+
def get_relative_coords_of_timestamp_window
|
|
148
154
|
[@x,@y,@x2,@y2]
|
|
149
155
|
end
|
|
150
156
|
|
|
157
|
+
def get_coords_of_window_on_display # yea
|
|
158
|
+
out = FFI::MemoryPointer.new(:long, 4)
|
|
159
|
+
ScreenTracker.GetWindowRect @hwnd, out
|
|
160
|
+
out.read_array_of_long(4)
|
|
161
|
+
end
|
|
162
|
+
|
|
151
163
|
def identify_digit bitmap
|
|
152
164
|
OCR.identify_digit(bitmap, @digits)
|
|
153
165
|
end
|
|
@@ -184,7 +196,7 @@ class ScreenTracker
|
|
|
184
196
|
@previously_displayed_warning = true
|
|
185
197
|
time_since_last_screen_change = Time.now
|
|
186
198
|
# also reget window hwnd, just in case that's the problem...(can be with VLC moving from title to title)
|
|
187
|
-
|
|
199
|
+
get_hwnd_loop_forever
|
|
188
200
|
end
|
|
189
201
|
end
|
|
190
202
|
}
|
|
@@ -116,6 +116,7 @@ module SubtitleProfanityFinder
|
|
|
116
116
|
's'*2)) => ['a..', :full_word],
|
|
117
117
|
arse + 'h' +
|
|
118
118
|
'ole' => 'a..h...',
|
|
119
|
+
'dieu' => ['deity', :full_word], # TODO fails...
|
|
119
120
|
arse + 'wipe' => 'a..w....',
|
|
120
121
|
'jes' +
|
|
121
122
|
'u' + 's' => 'j....',
|
|
@@ -129,7 +130,7 @@ module SubtitleProfanityFinder
|
|
|
129
130
|
bad_profanities.merge! extra_profanity_hash # LODO make easier to use...
|
|
130
131
|
|
|
131
132
|
semi_bad_profanities = {}
|
|
132
|
-
['bloody', 'moron', 'idiot', '
|
|
133
|
+
['bloody', 'moron', 'idiot', 'sex', 'genital', 'make love', 'suck',
|
|
133
134
|
'making love', 'love mak',
|
|
134
135
|
'breast',
|
|
135
136
|
'piss'].each{|name|
|
|
@@ -137,6 +138,7 @@ module SubtitleProfanityFinder
|
|
|
137
138
|
semi_bad_profanities[name] = name
|
|
138
139
|
}
|
|
139
140
|
semi_bad_profanities['crap'] = ['crap', :full_word]
|
|
141
|
+
semi_bad_profanities['crap'] = ['butt', :full_word]
|
|
140
142
|
|
|
141
143
|
all_profanity_combinationss = [convert_to_regexps(bad_profanities), convert_to_regexps(semi_bad_profanities)]
|
|
142
144
|
|
data/spec/notes
CHANGED
|
@@ -1,8 +1,26 @@
|
|
|
1
|
-
|
|
2
1
|
up next:
|
|
3
2
|
|
|
3
|
+
== ==
|
|
4
|
+
desktop filter:
|
|
5
|
+
1024x1024:
|
|
6
|
+
15% one cpu used by the capture utility (0.013ms per capture)
|
|
7
|
+
good for now I guess (no transparency visible...)
|
|
8
|
+
12 fps <sigh>
|
|
9
|
+
|
|
4
10
|
== upconvert netflix ==
|
|
5
11
|
|
|
12
|
+
=== mplayer avisynth ===
|
|
13
|
+
http://www.youtube.com/watch?v=hkOnH36S_pY&feature=player_profilepage
|
|
14
|
+
mplayer's default upscaling seems to introduce wild dots..probably
|
|
15
|
+
I think MS's bundled "magnifier" does some internal smudging for me, otherwise it would look awful
|
|
16
|
+
mplayer at default seems to be doing weird things?
|
|
17
|
+
paint.net on the win32::screenshot capture seemed to match quite well what the screen had.
|
|
18
|
+
ffplay seems to show an exact verbatim copy...
|
|
19
|
+
actually mplayer seems to be a good exact duplicate...
|
|
20
|
+
|
|
21
|
+
=== other ===
|
|
22
|
+
|
|
23
|
+
|
|
6
24
|
media player classic appears to have no cache.
|
|
7
25
|
"uscreencapture settings" appears to be per app, so lost with a .grf file save [?]
|
|
8
26
|
or maybe appear to be overridden...by WMC, mplayer10, not virtualdub, not ffmpeg, yes mplayer
|
data/spec/screen_tracker.spec.rb
CHANGED
|
@@ -83,7 +83,7 @@ describe ScreenTracker do
|
|
|
83
83
|
|
|
84
84
|
it "should have different bmp if sizes different" do
|
|
85
85
|
a = ScreenTracker.new("VLC",10,10,5,5)
|
|
86
|
-
assert a.
|
|
86
|
+
assert a.get_relative_coords_of_timestamp_window == [10,10,15,15]
|
|
87
87
|
b = ScreenTracker.new("VLC",10,10,50,50)
|
|
88
88
|
assert a.get_bmp != b.get_bmp
|
|
89
89
|
end
|
|
@@ -106,7 +106,7 @@ describe ScreenTracker do
|
|
|
106
106
|
it "should assign right offsets" do
|
|
107
107
|
a = ScreenTracker.new("VLC",-10,-10,5,5)
|
|
108
108
|
a.get_bmp
|
|
109
|
-
x,y,x2,y2=a.
|
|
109
|
+
x,y,x2,y2=a.get_relative_coords_of_timestamp_window
|
|
110
110
|
hwnd = Win32::Screenshot::BitmapMaker.hwnd("VLC")
|
|
111
111
|
max_x, max_y = Win32::Screenshot::Util.dimensions_for(hwnd)
|
|
112
112
|
x.should == max_x-10
|
|
@@ -120,7 +120,7 @@ describe ScreenTracker do
|
|
|
120
120
|
b = ScreenTracker.new("VLC",10,10,50,50)
|
|
121
121
|
c = ScreenTracker.new("VLC",-99,-99,50,50)
|
|
122
122
|
assert a.get_bmp == b.get_bmp
|
|
123
|
-
assert c.
|
|
123
|
+
assert c.get_relative_coords_of_timestamp_window != b.get_relative_coords_of_timestamp_window
|
|
124
124
|
cb = c.get_bmp
|
|
125
125
|
bb = b.get_bmp
|
|
126
126
|
c.get_bmp.length == b.get_bmp.length
|
|
@@ -160,7 +160,7 @@ describe ScreenTracker do
|
|
|
160
160
|
- 7
|
|
161
161
|
YAML
|
|
162
162
|
a = ScreenTracker.new_from_yaml(yaml,nil)
|
|
163
|
-
a.
|
|
163
|
+
a.get_relative_coords_of_timestamp_window.should == [32,34,132,54]
|
|
164
164
|
end
|
|
165
165
|
|
|
166
166
|
it "should be able to dump images it uses" do
|
data/todo.upconvert
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
== dvd ==
|
|
2
|
+
|
|
1
3
|
compare with powerdvd/ffdshow
|
|
2
4
|
|
|
3
|
-
compare various computers/monitors...
|
|
5
|
+
compare (DVD) various computers/monitors...
|
|
4
6
|
|
|
5
7
|
experiment with 2x or not with various people...
|
|
6
8
|
also should I change screen resolution down to 800x600 then double upconvert? better?
|
|
@@ -9,34 +11,43 @@ lanczos 10? is filter length 4 better? huh? what?
|
|
|
9
11
|
|
|
10
12
|
hqdn3d settings?
|
|
11
13
|
|
|
12
|
-
upconvert netflix instant yes!
|
|
13
|
-
|
|
14
14
|
do I need double tapping? http://archive2.avsforum.com/avs-vb/showthread.php?s=&postid=4760581#post4760581
|
|
15
15
|
|
|
16
|
-
my own Dshow input filter, which also has a "command line" way of configuring it, for ease of use.
|
|
17
|
-
could "just" use the push source + mplayer maybe [?]
|
|
18
|
-
would be nice to retrofit it with real "video capture source" to see if it works well with VLC or not...
|
|
19
|
-
assume it would similarly fail LOL. I think what you need is either sleeps or...or...IAmPushSource I guess.
|
|
20
|
-
|
|
21
|
-
It probably needs to send out input "only if it's changed" I'm thinkin..."
|
|
22
|
-
|
|
23
16
|
=== netflix/OS screen capture ===
|
|
24
17
|
|
|
25
|
-
update the OS README file
|
|
26
|
-
warn on aero (dual monitor?)
|
|
27
|
-
troubleshooting: tell them to use the BitTest, reverse should be at least 200 fps I guess...
|
|
28
18
|
make it able to grab from a window, and work when dragged too...
|
|
29
19
|
can I make it look awesome?
|
|
20
|
+
tell mplayer how to fix directx :)
|
|
21
|
+
|
|
30
22
|
==== some day ====
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
23
|
+
shearing
|
|
24
|
+
perfect looks of absolutely everything upconverted LOL
|
|
25
|
+
# TODO cut off all black edges too...why not, eh? mplayer has crop detect...
|
|
26
|
+
make really low q stuff like youtube less than even 360 look good
|
|
27
|
+
# TODO can align better youtube
|
|
28
|
+
better benchmarker (windows vs. desktop, just show reverse)
|
|
29
|
+
|
|
30
|
+
== OS dshow screen tracker ==
|
|
31
|
+
|
|
32
|
+
It probably needs to send out input "only if it's changed" I'm thinkin..." for my purposes anyway...
|
|
33
|
+
VLC compatible'ify it..
|
|
34
|
+
can limit it to only 5 fps [?]
|
|
35
|
+
@ avisynth wiki: max fps
|
|
36
|
+
is ffplay on avisynth piece of crud compared to the other? vs. mplayer? why only like 10 fps? what the...
|
|
37
|
+
|
|
38
|
+
jruby "drag to select"
|
|
39
|
+
|
|
40
|
+
=== some day ===
|
|
41
|
+
bounty multi-thread scaling, iff it seems helpful-er for quad core.
|
|
42
|
+
threading the input [?] (a bit complicated because of the "only if it's changed" mantra)
|
|
43
|
+
can I live with aero wasn't bitblt getting like 800fps *with* aero?
|
|
44
|
+
more efficient by skipping an extra copy (we're already pretty fast though...)
|
|
37
45
|
|
|
38
46
|
== never ==
|
|
39
47
|
|
|
40
48
|
add another sharpen filter?
|
|
41
49
|
|
|
42
50
|
add a VLC version?
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
prop: http://ubuntuforums.org/showthread.php?t=804537 didn't I have another list somewhere... ?
|
data/upconvert.bat
CHANGED
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
mplayer -nocache -vo direct3d upconvert_from_screen_me2.avs
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
mplayer -nocache -geometry 70%x70% -sws 9 -ssf ls=25.0 -ssf cs=7.0 -vf hqdn3d=7:7:7:7,scale=1680:-10:0:0:3 upconvert_from_screen_me2.avs
|
|
2
|
+
|
|
3
|
+
@rem hqdn3d[=luma_spatial:chroma_spatial:luma_tmp:chroma_tmp]
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
@rem 0:1:4:4 for DVD LOL
|
|
9
|
+
@rem pp=hb:y/vb:y,
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
@rem mplayer autoq=100 -nocache -geometry 50%x40% -sws 9 -ssf ls=75.0 -ssf cs=7.0 -vf nr=1000,scale=1680:-10:0:0:4 upconvert_from_screen_me2.avs
|
|
Binary file
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
require 'rubygems'
|
|
2
|
+
gem 'ffi'
|
|
3
|
+
require 'ffi'
|
|
4
|
+
begin
|
|
5
|
+
require 'sane'
|
|
6
|
+
rescue LoadError
|
|
7
|
+
require 'rubygems'
|
|
8
|
+
require 'sane' # LODO
|
|
9
|
+
end
|
|
10
|
+
require_relative '../../lib/screen_tracker.rb'
|
|
11
|
+
require_relative './setup_directshow_filter_params'
|
|
12
|
+
|
|
13
|
+
player_description = "..\\..\\zamples\\players\\youtube\\normal_in_youtube.com.chrome.txt" # right path...
|
|
14
|
+
screen_tracker = ScreenTracker.new_from_yaml File.binread(player_description), nil
|
|
15
|
+
p screen_tracker.get_hwnd_loop_forever
|
|
16
|
+
p screen_tracker.get_coords_of_window_on_display
|
|
17
|
+
x,y,x2,y2 = screen_tracker.get_coords_of_window_on_display
|
|
18
|
+
|
|
19
|
+
# numbers are all right, except, for youtube "within a user window", when the y2 is too high, and includes the red at the bottom
|
|
20
|
+
y2 -= 50
|
|
21
|
+
setter = SetupDirectshowFilterParams.new
|
|
22
|
+
setter.set_single_setting 'height', y2 - y
|
|
23
|
+
setter.set_single_setting 'width', x2 - x
|
|
24
|
+
setter.set_single_setting 'start_x', x
|
|
25
|
+
setter.set_single_setting 'start_y', y
|
|
26
|
+
p 'set it to', x, y, x2, y2, 'width', x2-x, 'height', y2-y
|
|
27
|
+
screen_tracker.dump_bmps
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# taken from https://github.com/rdp/open-source-directshow-screen-capture-filter/tree/master/configuration_setup_utility
|
|
2
|
+
|
|
3
|
+
class SetupDirectshowFilterParams
|
|
4
|
+
|
|
5
|
+
Settings = ['height', 'width', 'start_x', 'start_y']
|
|
6
|
+
|
|
7
|
+
def initialize
|
|
8
|
+
require 'win32/registry'
|
|
9
|
+
@screen_reg = Win32::Registry::HKEY_CURRENT_USER.create "Software\\os_screen_capture" # LODO .keys fails?
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def set_single_setting name, value
|
|
13
|
+
raise unless Settings.include?(name)
|
|
14
|
+
raise unless value.is_a? Fixnum
|
|
15
|
+
# raise value.to_s if value < 0
|
|
16
|
+
@screen_reg.write(name, Win32::Registry::REG_DWORD, value.to_i)
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
# can be nil if not set...
|
|
20
|
+
def read_single_setting name
|
|
21
|
+
@screen_reg[name]
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def teardown
|
|
25
|
+
@screen_reg.close
|
|
26
|
+
@screen_reg = nil
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
end
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# from http://avisynth.org/mediawiki/Enhancing_dvd_videos
|
|
2
|
+
|
|
3
|
+
Video = DirectShowSource("push2.GRF", fps=35, audio=False, framecount=1000000) # fps appears to be a "max" fps
|
|
4
|
+
Return Video
|
|
5
|
+
|
|
6
|
+
#
|
|
7
|
+
# these are the size of your monitor that the output is displayed on. Unless it lags too much, then try experimenting with smaller values
|
|
8
|
+
# Video = ConvertToYUY2 (Video)
|
|
9
|
+
# screen_width = 1024 # CHANGE THIS TODO propagate it...
|
|
10
|
+
# screen_height = 768 # CHANGE THIS
|
|
11
|
+
#
|
|
12
|
+
# # note that you can get even better looking images by say, upscaling to 2x your current screen resolution, by uncommenting the following two lines
|
|
13
|
+
# screen_width = screen_width*2
|
|
14
|
+
# screen_height = screen_height*2
|
|
15
|
+
#
|
|
16
|
+
# Video = Lanczos4Resize (Video, screen_width, screen_height) # said to be a good upsampler...hmm...
|
|
17
|
+
#
|
|
18
|
+
# Video = Sharpen (Video, 0.78) # Helps sharpen smoothness enlarging does. 0.78 = (1.25*(1024/720))-1
|
|
19
|
+
# Return Video
|
data/upconvert_netflix/{latest_now_possibly_oudated → old/latest_now_possibly_oudated}/push2.GRF
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -1,13 +1,10 @@
|
|
|
1
1
|
# comments can go after a # on any line, for example this one.
|
|
2
2
|
|
|
3
3
|
"mutes" => [
|
|
4
|
-
#
|
|
5
|
-
# "0:00:01.0", "0:00:02.0", "profanity", "da..",
|
|
4
|
+
# it's clean!
|
|
6
5
|
],
|
|
7
6
|
|
|
8
7
|
"blank_outs" => [
|
|
9
|
-
# example line, uncomment the leading "#" to make it active
|
|
10
|
-
# "00:03:00.0" , "00:04:00.0", "violence", "of some sort",
|
|
11
8
|
],
|
|
12
9
|
|
|
13
10
|
"name" => "Bambi",
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# comments can go after a # on any line, for example this one.
|
|
2
|
+
"name" => "if a man answers",
|
|
3
|
+
|
|
4
|
+
"mutes" => [
|
|
5
|
+
|
|
6
|
+
"00:15:02.167", "00:15:04.692", "profanity", "deity", "mon [deity]",
|
|
7
|
+
# got weird overlapping subtitles in this one...
|
|
8
|
+
#"0:35:54.318" , "0:35:59.515", "profanity", "goodness", "Maman thank [goodness] for you",
|
|
9
|
+
#"0:35:57.588" , "0:35:59.613", "profanity", "goodness", "Thank [goodness] for love",
|
|
10
|
+
"0:35:54.318" , "0:35:59.615", "profanity", "goodness", "Maman thank [goodness] for you",
|
|
11
|
+
"1:35:39.834" , "1:35:43.326", "profanity", "he..", "A little [he..] to make those two devils feel at home",
|
|
12
|
+
|
|
13
|
+
# put back this once blank outs are more precise
|
|
14
|
+
# "0:03:17.630" , "0:03:23.500", "profanity", "sex", "In the beglnnlng Father consldered Me Tarzan you Jane an adequate [sex] educatlon",
|
|
15
|
+
"0:05:50.249" , "0:05:54.743", "profanity", "make love", "And maman says that the only thing a man would rather do than [make love] is talk about himself",
|
|
16
|
+
"0:08:01.714" , "0:08:05.707", "profanity", "make love", "Chuckles So they won't [make love] to me all the time",
|
|
17
|
+
"0:24:46.017" , "0:24:50.579", "profanity", "sex", "Imagine our daughter alone with that seedy poverty stricken [sex] maniac",
|
|
18
|
+
"0:39:27.465" , "0:39:29.933", "profanity", "sex", "and keep an eye on daddy with all those [sex]y models",
|
|
19
|
+
"0:43:15.960" , "0:43:19.293", "profanity", "sex", "and keep an eye on daddy wlth all those [sex]y models",
|
|
20
|
+
"0:46:22.980" , "0:46:27.440", "profanity", "sex", "He just pooh poohed me but I know when one of my own [sex] has known love",
|
|
21
|
+
"0:25:05", "0:25:10", "sex", "mention nude",
|
|
22
|
+
"0:25:18", "0:25:21", "sex", "mention nude",
|
|
23
|
+
|
|
24
|
+
],
|
|
25
|
+
|
|
26
|
+
"blank_outs" => [
|
|
27
|
+
# 1:46 2:00
|
|
28
|
+
# 2:25 2:50
|
|
29
|
+
# 3:06 3:43
|
|
30
|
+
# 4:45 5:05
|
|
31
|
+
"1:46", "5:05", "scantily clad pictures, could be split up more precisely", # TODO
|
|
32
|
+
"20:58", "21:20", "lingerie putting on",
|
|
33
|
+
"22:35", "22:43", "lingerie pics",
|
|
34
|
+
],
|
|
35
|
+
|
|
36
|
+
"volume_name" => "IF_A_MAN_ANSWERS",
|
|
37
|
+
"disk_unique_id" => "270df07b|62294c73",
|
|
38
|
+
"dvd_title_track" => "1",
|
|
39
|
+
"dvd_title_track_length" => "6104.2", # sum length, on the DVD, use the show DVD info button to retrieve it.
|
|
40
|
+
"opensubtitles_number" => "238037",
|
|
41
|
+
# "not edited out stuff" => "some violence left in...",
|
|
42
|
+
"closing thoughts" => "a fun flick. this EDL needs to be double checked a bit still",
|
|
43
|
+
"mplayer_dvd_splits" => [],
|
metadata
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: sensible-cinema
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
4
|
prerelease:
|
|
5
|
-
version: 0.25.
|
|
5
|
+
version: 0.25.1
|
|
6
6
|
platform: ruby
|
|
7
7
|
authors:
|
|
8
8
|
- Roger Pack
|
|
@@ -10,7 +10,7 @@ autorequire:
|
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
12
|
|
|
13
|
-
date: 2011-08-
|
|
13
|
+
date: 2011-08-10 00:00:00 -06:00
|
|
14
14
|
default_executable:
|
|
15
15
|
dependencies:
|
|
16
16
|
- !ruby/object:Gem::Dependency
|
|
@@ -222,6 +222,7 @@ files:
|
|
|
222
222
|
- bin/sensible-cinema-cli
|
|
223
223
|
- business_ideas.txt
|
|
224
224
|
- change_log_with_feature_list.txt
|
|
225
|
+
- conclusions
|
|
225
226
|
- developer_how_to_contribute_to_the_project.txt
|
|
226
227
|
- documentation/DOCUMENTATION_README.TXT
|
|
227
228
|
- documentation/how_to_create_your_own_delete_lists.txt
|
|
@@ -255,6 +256,7 @@ files:
|
|
|
255
256
|
- lib/media_info_parser.rb
|
|
256
257
|
- lib/mencoder_wrapper.rb
|
|
257
258
|
- lib/mouse.rb
|
|
259
|
+
- lib/mouse_draw.rb
|
|
258
260
|
- lib/mouse_forever.rb
|
|
259
261
|
- lib/mplayer_edl.rb
|
|
260
262
|
- lib/muter.rb
|
|
@@ -313,17 +315,22 @@ files:
|
|
|
313
315
|
- todo.subtitle
|
|
314
316
|
- todo.upconvert
|
|
315
317
|
- upconvert.bat
|
|
316
|
-
- upconvert_netflix/
|
|
317
|
-
- upconvert_netflix/
|
|
318
|
-
- upconvert_netflix/
|
|
319
|
-
- upconvert_netflix/
|
|
320
|
-
- upconvert_netflix/
|
|
321
|
-
- upconvert_netflix/
|
|
322
|
-
- upconvert_netflix/
|
|
323
|
-
- upconvert_netflix/upconvert_from_screen_me2.avs
|
|
324
|
-
- upconvert_netflix/
|
|
325
|
-
- upconvert_netflix/
|
|
326
|
-
- upconvert_netflix/
|
|
318
|
+
- upconvert_netflix/latest2/go_no_upscaling.bat
|
|
319
|
+
- upconvert_netflix/latest2/go_upscaling.bat
|
|
320
|
+
- upconvert_netflix/latest2/push2.GRF
|
|
321
|
+
- upconvert_netflix/latest2/setup_capture_coords.rb
|
|
322
|
+
- upconvert_netflix/latest2/setup_directshow_filter_params.rb
|
|
323
|
+
- upconvert_netflix/latest2/upconvert_from_screen_me2.avs
|
|
324
|
+
- upconvert_netflix/old/latest_now_possibly_oudated/push2.GRF
|
|
325
|
+
- upconvert_netflix/old/latest_now_possibly_oudated/upconvert_from_screen_me2.avs
|
|
326
|
+
- upconvert_netflix/old/position_window.png
|
|
327
|
+
- upconvert_netflix/old/push_source_desktop.GRF
|
|
328
|
+
- upconvert_netflix/old/upconvert_from_screen.avs
|
|
329
|
+
- upconvert_netflix/old/upconvert_from_screen_me.avs
|
|
330
|
+
- upconvert_netflix/old/upconvert_from_screen_me2.avs
|
|
331
|
+
- upconvert_netflix/old/upconvert_from_screen_me_push_source.avs
|
|
332
|
+
- upconvert_netflix/old/uscreen.GRF
|
|
333
|
+
- upconvert_netflix/old/uscreen_me.GRF
|
|
327
334
|
- vendor/jruby-complete-1.6.2.jar
|
|
328
335
|
- vendor/mac_dvdid/bin/dvdid
|
|
329
336
|
- vendor/mac_dvdid/include/dvdid/dvdid.h
|
|
@@ -348,13 +355,13 @@ files:
|
|
|
348
355
|
- zamples/edit_decision_lists/dvds/cool runnings.txt
|
|
349
356
|
- zamples/edit_decision_lists/dvds/edls_being_edited/court_jester.txt
|
|
350
357
|
- zamples/edit_decision_lists/dvds/edls_being_edited/edl_for_unit_tests.txt
|
|
351
|
-
- zamples/edit_decision_lists/dvds/edls_being_edited/flight_of_the_navigator.txt
|
|
352
|
-
- zamples/edit_decision_lists/dvds/edls_being_edited/other_side_of_heaven.txt
|
|
353
358
|
- zamples/edit_decision_lists/dvds/edls_being_edited/test_delete_list_for_experimenting_with.txt
|
|
359
|
+
- zamples/edit_decision_lists/dvds/flight_of_the_navigator.txt
|
|
354
360
|
- zamples/edit_decision_lists/dvds/happiest baby on the block.txt
|
|
355
361
|
- zamples/edit_decision_lists/dvds/harry_potter_3_prisoner_of_azkaban.txt
|
|
356
362
|
- zamples/edit_decision_lists/dvds/hitchhiker's_guide_to_the_galaxy.txt
|
|
357
363
|
- zamples/edit_decision_lists/dvds/how_to_train_your_dragon.txt
|
|
364
|
+
- zamples/edit_decision_lists/dvds/if_a_man_answers.txt
|
|
358
365
|
- zamples/edit_decision_lists/dvds/iq.txt
|
|
359
366
|
- zamples/edit_decision_lists/dvds/kung_fu_panda_1.txt
|
|
360
367
|
- zamples/edit_decision_lists/dvds/legend_of_the_guardians_the_owls_of_gahoole.txt
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
To use this (upscaling from your own computer):
|
|
2
|
-
|
|
3
|
-
Steps:
|
|
4
|
-
|
|
5
|
-
download/install uscreencapture: http://www.umediaserver.net/umediaserver/download.html
|
|
6
|
-
|
|
7
|
-
download+install "windows sdk" http://msdn.microsoft.com/en-us/windows/bb980924 (rather big one here :) )
|
|
8
|
-
|
|
9
|
-
download virtualdub: http://www.virtualdub.org/download.html
|
|
10
|
-
|
|
11
|
-
Now start your "subject" to upconvert (ex: hulu, or netflix instant).
|
|
12
|
-
You can pause it if desired. Don't fullscreen it.
|
|
13
|
-
You'll want to leave it on its smallest "window" possible, that still has the most detail.
|
|
14
|
-
So basically don't let your "subject" player do any stretching, you want to leave all of that for
|
|
15
|
-
this program to do.
|
|
16
|
-
|
|
17
|
-
Next you'll need dual monitor, ex: laptop screen plus the VGA out on the laptop.
|
|
18
|
-
Position your "subject" movie so that it is flush in the top right of either monitor.
|
|
19
|
-
See the file "position_window.png" for an demo. Installing NiftyWindows then
|
|
20
|
-
"right mouse button+drag" can help you reposition it just right.
|
|
21
|
-
|
|
22
|
-
Now in virtualdub, open the file upconvert_from_screen.avs.
|
|
23
|
-
|
|
24
|
-
Click the "play" bottom left button.
|
|
25
|
-
See if it is capturing the right monitor, how much of the video it is capturing, if any.
|
|
26
|
-
|
|
27
|
-
Now search for the program "graphedt.exe", for me, this was in C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin
|
|
28
|
-
|
|
29
|
-
Run it. Use it to open the file uscreen.GRF
|
|
30
|
-
Right click on the box "uscreencapture"
|
|
31
|
-
Adjust the various properties so that it captures the video region you desire, by editing values, click "Apply",
|
|
32
|
-
then clicking the "save" icon within graphedit. Then reopen the file within virtualdub to test your new settings.
|
|
33
|
-
Note the x and y values you use.
|
|
34
|
-
|
|
35
|
-
Now edit the text upconvert_from_screen.avs and fill in appropriate values.
|
|
36
|
-
|
|
37
|
-
Now run it in virtualdub again, move virtualdub to your output display, enjoy watching it.
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
# comments can go after a # on any line, for example this one.
|
|
2
|
-
"name" => "The other side of heaven",
|
|
3
|
-
|
|
4
|
-
"mutes" => [
|
|
5
|
-
# an example line, uncomment the leading "#" to make it active
|
|
6
|
-
# "0:00:01.0", "0:00:02.0", "profanity", "da..",
|
|
7
|
-
],
|
|
8
|
-
|
|
9
|
-
"blank_outs" => [
|
|
10
|
-
# an example line, uncomment the leading "#" to make it active
|
|
11
|
-
# "00:03:00.0" , "00:04:00.0", "violence", "of some sort",
|
|
12
|
-
],
|
|
13
|
-
|
|
14
|
-
"volume_name" => "OTHER_SIDE_OF_HEAVEN",
|
|
15
|
-
"disk_unique_id" => "9338ab59|48d01042",
|
|
16
|
-
"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, it plays a trailer), when you use it, see http://goo.gl/QHLIF to set this right.
|
|
17
|
-
# "not edited out stuff" => "some violence",
|
|
18
|
-
# "closing thoughts" => "still...",
|
|
19
|
-
# "mplayer_dvd_splits" => ["59:59", "1:04:59"], # in mplayer, the DVD timestamp "resets" to zero for some reason, see http://goo.gl/yMfqX to set this value right. Note that [] is valid, if there are no resets.
|