sensible-cinema 0.26.0 → 0.26.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (51) hide show
  1. data/.gitmodules +3 -0
  2. data/README +9 -6
  3. data/TODO +91 -41
  4. data/VERSION +1 -1
  5. data/bin/sensible-cinema +13 -1506
  6. data/bin/sensible-cinema-cli +156 -151
  7. data/change_log_with_feature_list.txt +17 -2
  8. data/developer_how_to_contribute_to_the_project.txt +3 -2
  9. data/documentation/upconversion.txt +4 -0
  10. data/history_and_related_works_list.txt +1 -0
  11. data/{play_with_inserted_scene.bat → legal/play_with_inserted_scene.bat} +0 -0
  12. data/{play_with_overlay.bat → legal/play_with_overlay.bat} +0 -0
  13. data/legal2 +2 -0
  14. data/lib/count_down_timer_jruby_swing.rb +3 -4
  15. data/lib/edl_parser.rb +345 -339
  16. data/lib/eight_three.rb +6 -1
  17. data/lib/gui/sensible-cinema-base.rb +671 -0
  18. data/lib/gui/sensible-cinema-create.rb +304 -0
  19. data/lib/{sensible-cinema-dependencies.rb → gui/sensible-cinema-dependencies.rb} +0 -0
  20. data/lib/gui/sensible-cinema-normal.rb +349 -0
  21. data/lib/gui/sensible-cinema-side-by-side.rb +27 -0
  22. data/lib/gui/sensible-cinema-upconvert.rb +254 -0
  23. data/lib/screen_tracker.rb +1 -0
  24. data/spec/edl_parser.spec.rb +6 -0
  25. data/spec/notes +107 -16
  26. data/spec/sensible_cinema_gui.spec.rb +63 -58
  27. data/todo.inventionzy.txt +12 -0
  28. data/todo.propaganda +1 -2
  29. data/todo.upconvert +3 -1
  30. data/upconvert_netflix/record_screen/record.bat +2 -0
  31. data/upconvert_netflix/record_screen/recording/1.png +0 -0
  32. data/upconvert_netflix/record_screen/recording/10.png +0 -0
  33. data/upconvert_netflix/record_screen/recording/2.png +0 -0
  34. data/upconvert_netflix/record_screen/recording/3.png +0 -0
  35. data/upconvert_netflix/record_screen/recording/4.png +0 -0
  36. data/upconvert_netflix/record_screen/recording/5.png +0 -0
  37. data/upconvert_netflix/record_screen/recording/6.png +0 -0
  38. data/upconvert_netflix/record_screen/recording/7.png +0 -0
  39. data/upconvert_netflix/record_screen/recording/8.png +0 -0
  40. data/upconvert_netflix/record_screen/recording/9.png +0 -0
  41. data/upconvert_netflix/record_screen/recording/d.png +0 -0
  42. data/www/content_editor.html +2 -2
  43. data/zamples/edit_decision_lists/dvds/edls_being_edited/cars_disney.txt +5 -7
  44. data/zamples/edit_decision_lists/dvds/innerspace.txt +77 -0
  45. data/zamples/edit_decision_lists/netflix_instant/avatar-last-air-bender-movie.txt +12 -0
  46. data/zamples/edit_decision_lists/netflix_instant/avatar-last-airbender-series.txt +1 -0
  47. data/zamples/players/netflix/netflix_firefox_non_maximized.txt +1 -1
  48. metadata +28 -11
  49. data/lib/file_chooser.rb +0 -46
  50. data/lib/swing_helpers.rb +0 -142
  51. data/www/monkey.png +0 -0
@@ -0,0 +1,27 @@
1
+
2
+ module SensibleSwing
3
+
4
+ class MainWindow < JFrame
5
+
6
+ SideBySide = 'side_by_side' # 'xbmc' or 'smplayer'
7
+
8
+ def select_new_sxs_style
9
+ answer = show_select_buttons_prompt 'Select EDL file style creation for this program', :yes => 'Smplayer style', :no => 'XBMC style'
10
+ if answer == :yes
11
+ LocalStorage[SideBySide] = 'smplayer'
12
+ elsif answer == :no
13
+ LocalStorage[SideBySide] = 'xbmc'
14
+ else
15
+ show_blocking_message_dialog 'please choose one--smplayer if you don\'t know'
16
+ select_new_sxs_style
17
+ end
18
+
19
+ end
20
+
21
+ # new_jbutton("Select side by side EDL file style (smplayer vs. XBMC)") do
22
+ # select_new_sxs_style # TODO
23
+ # end
24
+
25
+
26
+ end
27
+ end
@@ -0,0 +1,254 @@
1
+
2
+ module SensibleSwing
3
+
4
+ class MainWindow
5
+
6
+ def add_play_upconvert_buttons
7
+
8
+ @watch_file_upconvert = new_jbutton( "Watch a movie file upconverted (unedited)") do
9
+ popup = warn_if_no_upconvert_options_currently_selected
10
+ filename_mpg = new_existing_file_selector_and_select_file( "pick movie file (like moviename.mpg)")
11
+ thread = play_mplayer_edl_non_blocking [filename_mpg, nil]
12
+ when_thread_done(thread) { popup.dispose }
13
+ end
14
+ @watch_file_upconvert.tool_tip= "This plays back a movie file, like moviefile.mpg, or moviename.vob using your current upconverter settings.\nTo playback a file edited upconverted, set upconvert options here first, then run them using sensible cinema main--it will automatically use your new upconverting options.\n" # LODO
15
+
16
+ @watch_dvd_upconvert = new_jbutton( "Watch a DVD upconverted (unedited)") do
17
+ popup = warn_if_no_upconvert_options_currently_selected
18
+ thread = play_dvd_smplayer_unedited false, false, false
19
+ when_thread_done(thread) { popup.dispose }
20
+ end
21
+ @watch_dvd_upconvert.tool_tip = "Plays back the currently inserted DVD, using your current upconverter settings.\nIf it fails (dies immediately, blank screen, etc.), try setting upconvert options to a smaller screen resolution multiple.\nOr try playing the DVD with VLC first, then it might work.\nTo playback a DVD edited upconverted, set upconvert options here first, then run them using sensible cinema main--it will automatically use your new upconverting options."
22
+
23
+ add_text_line ''
24
+ @upconv_line = add_text_line ''
25
+ change_upconvert_line_to_current
26
+
27
+ add_change_upconvert_options_button
28
+ if !upconvert_set_to_anything?
29
+ show_blocking_message_dialog 'please configure your upconvert settings first'
30
+ @show_upconvert_options.simulate_click # make them choose one
31
+ end
32
+ add_text_line ''
33
+
34
+ end
35
+
36
+ def upconvert_set_to_anything?
37
+ LocalStorage[UpConvertEnglish].present?
38
+ end
39
+
40
+ LocalStorage.set_default('screen_multiples', 2.0)
41
+
42
+ def add_change_upconvert_options_button
43
+ @show_upconvert_options = new_jbutton("Change/Test Playback Upconversion Quality Options") do
44
+ upconvert_window = new_child_window
45
+ upconvert_window.add_change_upconvert_buttons
46
+ end
47
+ @show_upconvert_options.tool_tip= "Allows you to set your upconvert options.\nUpconverting attempts to playback your movie with higher quality on high resolution monitors."
48
+ end
49
+
50
+
51
+ def warn_if_no_upconvert_options_currently_selected
52
+ if !upconvert_set_to_anything?
53
+ show_non_blocking_message_dialog "Warning: upconvert options have not been set yet--set upconvert options first, if desired."
54
+ else
55
+ JFrame.new # something it can call dispose on :P
56
+ end
57
+ end
58
+
59
+ def change_upconvert_line_to_current
60
+ current = get_current_upconvert_as_phrase
61
+ if @upconv_line
62
+ @upconv_line.set_text current
63
+ end
64
+ if @parent && @parent.upconv_line
65
+ @parent.upconv_line.set_text current
66
+ end # LODO I think the child also wants a status line..
67
+ end
68
+
69
+ UpConvertKey = 'upconvert_setting'
70
+ UpConvertKeyExtra = 'upconvert_setting_extra'
71
+ UpConvertEnglish = 'upconvert_english_name'
72
+ ScreenMultipleFactor = 'screen_multiples'
73
+
74
+ def add_change_upconvert_buttons
75
+ raise 'should have already been set for us' unless LocalStorage[ScreenMultipleFactor]
76
+ @medium_dvd = new_jbutton("Set upconvert options to DVD-style video") {
77
+ luma_spatial = 0
78
+ chroma_spatial = 1
79
+ luma_tmp = 4
80
+ chroma_tmp = 4
81
+ LocalStorage[UpConvertKey] = "hqdn3d=%s:%s:%s:%s,scale=SCREEN_X:-10:0:0:2" % [luma_spatial, chroma_spatial, luma_tmp, chroma_tmp]
82
+ # hqdn3d[=luma_spatial:chroma_spatial:luma_tmp:chroma_tmp]
83
+ LocalStorage[UpConvertKeyExtra] = "-sws 9 -ssf ls=75.0 -ssf cs=7.0"
84
+ LocalStorage[UpConvertEnglish] = "DVD"
85
+ display_current_upconvert_setting_and_close_window
86
+ }
87
+ high_compression = new_jbutton("Set upconvert options to high compressed video file playback") {
88
+ # -autoq 6 -vf pp [?]
89
+ LocalStorage[UpConvertEnglish] = "high compressed"
90
+ LocalStorage[UpConvertKey] = "hqdn3d=0:1:4:4,pp=hb:y/vb:y,scale=SCREEN_X:-10:0:0:3" # pp should be after hqdn3d I think... and hqdn3d should be before scale...
91
+ LocalStorage[UpConvertKeyExtra] = "-sws 9 -ssf ls=75.0 -ssf cs=25.0"
92
+ display_current_upconvert_setting_and_close_window
93
+ # -Processing method: mplayer with accurate deblocking ???
94
+ }
95
+ new_jbutton("Set upconvert options to experimental style playback") {
96
+ LocalStorage[UpConvertKey] = "scale" # hqdn3d=7:7:5,scale=SCREEN_X:-10:0:0:10"
97
+ LocalStorage[UpConvertKeyExtra] = "-sws 9 -ssf ls=100.0 -ssf cs=75.0"
98
+ LocalStorage[UpConvertEnglish] = "experimental"
99
+ display_current_upconvert_setting_and_close_window
100
+ }
101
+
102
+ # TODO tooltip from docu here +- this into tooltip
103
+ # TODO "click here" link for more docu [?]
104
+ add_text_line "Multiple factor screen widths"
105
+ add_text_line " (higher is better, but uses more cpu, 2x is good for high-end)."
106
+ add_text_line " If mplayer just dies or displays only a black or white screen then lower this setting."
107
+ slider = JSlider.new
108
+ slider.setBorder(BorderFactory.createTitledBorder("Screen resolution multiple"));
109
+
110
+ # I want tick for 1x, 1.5x, 2x, 2.5x, 3x
111
+ # so let's do marker values of 10 -> 30, since it requires integers...
112
+
113
+ labelTable = java.util.Hashtable.new
114
+ i = java.lang.Integer
115
+ l = JLabel
116
+
117
+ # allow for 0.75 too, if you have a large monitor, slower cpu...
118
+ local_minimum = (720.0/get_current_max_width_resolution)*100 # allows 1024 to use upscaling to 860, but we warn when they do this
119
+ label_minimum = nil
120
+ (0..300).step(25) do |n|
121
+ if n > local_minimum
122
+ label_minimum ||= n
123
+ if (n % 100 == 0)
124
+ labelTable.put(i.new(n), l.new("#{n/100}x")) # 1x
125
+ elsif n == label_minimum # just for the bottom label, rest too chatty
126
+ labelTable.put(i.new(n), l.new("#{n/100.0}x")) # 1.5x
127
+ end
128
+ end
129
+ end
130
+ slider.setLabelTable( labelTable )
131
+
132
+ slider.maximum=300
133
+ slider.minimum=label_minimum
134
+ slider.setMajorTickSpacing(100)
135
+ slider.setMinorTickSpacing(25)
136
+ slider.setPaintTicks(true)
137
+ slider.setPaintLabels(true)
138
+ slider.snap_to_ticks=true
139
+
140
+ slider.set_value LocalStorage[ScreenMultipleFactor] * 100
141
+
142
+ slider.add_change_listener { |event|
143
+ if !slider.value_is_adjusting
144
+ # they released their hold on it...
145
+ old_value = LocalStorage[ScreenMultipleFactor]
146
+ new_value = slider.value/100.0
147
+ LocalStorage[ScreenMultipleFactor] = new_value
148
+ if new_value != old_value
149
+ if slider.value == label_minimum
150
+ show_blocking_message_dialog "Setting it too low like that might make it not do much upconverting (DVD's, are 720px, you're setting it to upconvert to #{new_value * get_current_max_width_resolution})"
151
+ end
152
+ display_current_upconvert_setting_and_close_window
153
+ end
154
+ end
155
+ }
156
+ slider.set_bounds(44, @starting_button_y, @button_width, 66)
157
+ 2.times {increment_button_location}
158
+ @panel.add(slider)
159
+
160
+ increment_button_location
161
+
162
+ @none = new_jbutton("Reset upconvert options to none (no upconversion)")
163
+ @none.tool_tip = "Having no upconvert options is reasonably good, might use directx for scaling, nice for slow cpu's"
164
+ @none.on_clicked {
165
+ LocalStorage[UpConvertKey] = nil
166
+ LocalStorage[UpConvertKeyExtra] = nil
167
+ LocalStorage[UpConvertEnglish] = nil
168
+ display_current_upconvert_setting_and_close_window
169
+ }
170
+
171
+ @generate_images = new_jbutton("Test current configuration by writing some images from playing a video file") do
172
+ popup = warn_if_no_upconvert_options_currently_selected
173
+ filename_mpg = new_existing_file_selector_and_select_file( "pick movie file (like moviename.mpg)")
174
+
175
+ output_dir = get_same_drive_friendly_clean_temp_dir 'temp_upscaled_video_out'
176
+ output_command = '-ss 2:44 -frames 300 -vo png:outdir="' + File.strip_drive_windows(output_dir) + '"'
177
+ output_command += " -noframedrop" # don't want them to skip frames on cpu's without enough power to keep up
178
+ thread = play_mplayer_edl_non_blocking [filename_mpg, nil], [output_command], true
179
+ when_thread_done(thread) { popup.dispose; show_in_explorer(output_dir) }
180
+ end
181
+ @generate_images.tool_tip = "This creates a folder with images upconverted from some DVD or file, so you can tweak settings and compare." # TODO more tooltips
182
+
183
+ @generate_screen_cast = new_jbutton("Test current configuration by watching video file and recording screen") do
184
+ popup = warn_if_no_upconvert_options_currently_selected
185
+ filename_mpg = new_existing_file_selector_and_select_file( "pick movie file (like moviename.mpg)")
186
+ output_dir = get_same_drive_friendly_clean_temp_dir 'temp_screencast_dir'
187
+ thread1 = play_mplayer_edl_non_blocking [filename_mpg, nil], [" -ss 2:44 -endpos 11"]
188
+ # screen capture for 10s
189
+ fps_to_grab = 5
190
+ thread2 = Thread.new { c = %!ffmpeg -f dshow -i video="screen-capture-recorder" -r #{fps_to_grab} -vframes #{fps_to_grab*10} -y #{File.strip_drive_windows(output_dir)}/%d.png!; system_blocking c }
191
+ thread2.join
192
+ show_blocking_message_dialog "ffmpeg done, close mplayer now!"
193
+ thread1.join
194
+ popup.dispose # just in case :P
195
+ show_in_explorer(output_dir)
196
+ end
197
+
198
+
199
+ end
200
+
201
+ def get_same_drive_friendly_clean_temp_dir suffix
202
+ output_dir = Dir.tmpdir
203
+ if File.get_root_dir(output_dir) != File.get_root_dir(Dir.pwd) # you are hosed!
204
+ output_dir = File.get_root_dir(Dir.pwd) # we'll raise if it's not writable...
205
+ end
206
+ output_dir = output_dir + '/' + suffix
207
+ FileUtils.rm_rf output_dir
208
+ Dir.mkdir output_dir
209
+ output_dir
210
+ end
211
+
212
+ def display_current_upconvert_setting_and_close_window
213
+ change_upconvert_line_to_current
214
+ show_blocking_message_dialog get_current_upconvert_as_phrase
215
+ self.dispose
216
+ end
217
+
218
+ def get_current_upconvert_as_phrase
219
+ settings = LocalStorage[UpConvertEnglish]
220
+ out = "Upconvert options are now #{ settings ? "set to #{settings} style" : "NOT SET"}"
221
+ if settings
222
+ multiple = LocalStorage[ScreenMultipleFactor]
223
+ out += " (screen multiplier #{get_current_max_width_resolution}*#{multiple} = #{(multiple * get_current_max_width_resolution).to_i}px)."
224
+ end
225
+ out
226
+ end
227
+
228
+ def get_current_max_width_resolution
229
+ # choose width of widest monitor (why would they display it on the other, right?)
230
+ java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment.getScreenDevices.map{|gd| gd.display_mode.width}.max.to_i
231
+ end
232
+
233
+ def get_upconvert_vf_settings
234
+ template = LocalStorage[UpConvertKey]
235
+ if template
236
+ screen_multiple = LocalStorage[ScreenMultipleFactor]
237
+ upc = template.gsub('SCREEN_X', (get_current_max_width_resolution*screen_multiple).to_i.to_s) # has to be an integer...
238
+ upc = 'pullup,softskip,' + upc
239
+ p 'using upconvert settings: ' + upc
240
+ upc
241
+ else
242
+ p 'not using any specific upconversion-ing'
243
+ # pullup, softskip -- might slow things down too much for slow cpus
244
+ end
245
+ end
246
+
247
+ def get_upconvert_secondary_settings
248
+ LocalStorage[UpConvertKeyExtra]
249
+ end
250
+
251
+
252
+ end
253
+ end
254
+
@@ -197,6 +197,7 @@ class ScreenTracker
197
197
  @previously_displayed_warning = true
198
198
  # also reget window hwnd, just in case that's the problem...(can be with VLC moving from title to title)
199
199
  get_hwnd_loop_forever
200
+ # LODO loop through all available player descriptions to find the right one, or a changed different new one, et al
200
201
  end
201
202
  time_since_last_screen_change = Time.now
202
203
  end
@@ -42,6 +42,12 @@ describe EdlParser do
42
42
  E.parse_string(string, nil).should == expected
43
43
  end
44
44
 
45
+ it "should disallow full digits" do
46
+ proc {E.parse_string(%!"mutes" => ["1234", "1235", "profanity", "yo"]!, nil) }.should raise_exception SyntaxError
47
+ proc {E.parse_string(%!"mutes" => ["0.0", "1.1", "profanity", "yo"]!, nil) }.should_not raise_exception
48
+ proc {E.parse_string(%!"mutes" => ["0.0", "1.1", "profanity", "yo", "1234", "1235", "bad entry"]!, nil) }.should raise_exception SyntaxError
49
+ end
50
+
45
51
  it "should extract digits well" do
46
52
  out = ["00:00:01.1", "00:00:01"]
47
53
  EdlParser.extract_entry!(out).should == ["00:00:01.1", "00:00:01"]
data/spec/notes CHANGED
@@ -1,12 +1,74 @@
1
1
  up next:
2
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>
3
+ == netflix instant vs srt ==
9
4
 
5
+ 00:02:34,427 --> 00:02:36,361
6
+ l'm sor
7
+
8
+ init seemed 2:33 or end of 2:32
9
+
10
+ 1.2s off init?
11
+
12
+ sire, seemed right on
13
+
14
+
15
+
16
+ 01:00:13,950 --> 01:00:17,716
17
+ General lroh, l'm glad you could
18
+ accept my
19
+
20
+ seemed end of 12
21
+
22
+ this one (netflix instant) seemed to match up really well with the subtitles just about 1.5s "late" the whole time...
23
+
24
+ == compare upscaling settings ==
25
+
26
+ regular pullup not very good :P
27
+ just with hqdn3d, same low res, seemed not very good
28
+ I seem to slightly prefer DVD to directx upscaling (at least). More detail.
29
+ more hair detail, wood has more detail
30
+
31
+ with qt viewer:
32
+
33
+ with 0001:
34
+ 1x and 2x seem same
35
+ like identical
36
+ with 26
37
+ seem identical
38
+ 99:
39
+ 2x seems to barely pull out more detail out of the metal...interesting...
40
+
41
+ with mplayer to view the jpg (direct3d)
42
+ 01:
43
+ wow looks igualzinho weird
44
+ 26:
45
+ igualzinho
46
+ 99:
47
+ igualzinho (too dark to tell...kind of weird there) -- ffmpeg bug?
48
+
49
+ more hair, -ss 2:44 -frames 300
50
+ I guess the same way, -> jpg, compare the jpgs in quicktime
51
+ then tweak it be able to screen scrape it to compare [?]
52
+
53
+ 2x takes *way* way longer...
54
+
55
+ 00:
56
+ if there's a difference, I can't easily see it in picture viewer
57
+ 75:
58
+ 1x has better "lines" than raw
59
+ 1x igual 2x (picture viewer)
60
+ 150:
61
+ 1x looks like normal LOL
62
+ 1x igual 2x hair
63
+ 225:
64
+ 1x looks better than normal (fruit)
65
+ 2x igual 1x
66
+ 299:
67
+ raw looks BETTER wood-wise hmm...
68
+
69
+ really need a better way to record maybe?
70
+ make mplayer go really slow, and have ffmpeg record it from screen [?] -> jpg and hopefully it will catch everything...
71
+
10
72
  == upconvert netflix ==
11
73
 
12
74
  === mplayer avisynth ===
@@ -16,7 +78,7 @@ desktop filter:
16
78
  mplayer at default seems to be doing weird things?
17
79
  paint.net on the win32::screenshot capture seemed to match quite well what the screen had.
18
80
  ffplay seems to show an exact verbatim copy...
19
- actually mplayer seems to be a good exact duplicate...
81
+ actually mplayer seems to be a good exact duplicate...maybe resizing hurt it though?
20
82
 
21
83
  === other ===
22
84
 
@@ -377,6 +439,14 @@ http://www.kdenlive.org/forum/xml-format-and-edls kdenlive supports EDL, apparen
377
439
 
378
440
  === various options ===
379
441
 
442
+ avisynth Defaults: HQDN3D(ls=4.0, cs=3.0, lt=6.0, ct=4.5)
443
+ mplayer
444
+ hqdn3d[=luma_spatial:chroma_spatial:luma_tmp:chroma_tmp]
445
+ mplayer defaults were: hqdn3d=4:3:6 hqdn3d[=luma:chroma:time]
446
+
447
+
448
+ -vf hqdn3d=2:1:2 ("conservative" from http://www.mplayerhq.hu/DOCS/HTML/en/menc-feat-dvd-mpeg4.html)
449
+
380
450
  an avisynth upconvert howto: http://avisynth.org/mediawiki/Enhancing_dvd_videos
381
451
  http://web.archiveorange.com/archive/v/JbcLEih3ZwhZlMuTkxzR says "if you're upscaling [to grow the image] then do denoise before scale"
382
452
 
@@ -396,7 +466,7 @@ http://www.kdenlive.org/forum/xml-format-and-edls kdenlive supports EDL, apparen
396
466
  3x resolution [!]
397
467
  "Luma Sharpen to 1.00-1.50 and Chroma Sharpen to 0.00. Enable Accurate Rounding."
398
468
  I don't know if accurate rounding is possible with mplayer+lanczos tho...
399
- dn3dhq put Chroma to 1.00, Time to 4.00 and Luma to 0.00.
469
+ hqdn3d put Chroma to 1.00, Time to 4.00 and Luma to 0.00.
400
470
  hqdn3d[=luma_spatial:chroma_spatial:luma_tmp:chroma_tmp] how?
401
471
  deinterlacing [I don't think this matters, really I don't]
402
472
  xvid:
@@ -1357,7 +1427,7 @@ are all windows GUI wrapper players internally inconsistent, except maybe VLC wh
1357
1427
  VLC reading dvdoutmplayer.mpg, handbrake m4v:
1358
1428
  1:00:00 accurate wa[a]s lost
1359
1429
 
1360
- === All DVD playing below this ===
1430
+ === All DVD players' comparison below this ===
1361
1431
 
1362
1432
  Mac's DVD Player total:
1363
1433
  1:53:04 (almost 5 I think) [barely shows 5 at the beginning]
@@ -1453,11 +1523,14 @@ VLC
1453
1523
  30: something about nineveh makes you feel sad [I dont' really ] want to talk about it [?]
1454
1524
  45: fire 3, I'm coming traveling buddy [flash back to them] (in wmp this is at 44:27)
1455
1525
 
1456
- smplayer, mplayer 30369
1526
+ smplayer, mplayer r30369
1457
1527
  15: wash your hands [before] you eat
1458
1528
  30: a man that .. can count on to deliver his message yes [well]
1459
1529
  45: big smile from after duck
1460
1530
 
1531
+ mplayer
1532
+ 45: middle of squeak of duck
1533
+
1461
1534
  hulu
1462
1535
  15: wash your hands [before] you eat
1463
1536
  30: a man that .. can count on to deliver his message yes [well]
@@ -1480,26 +1553,44 @@ wmp windows 7: [wmp feels slightly unstable timing-wise]
1480
1553
 
1481
1554
  LODO jonah blu ray timings
1482
1555
 
1483
- netflix jonah
1556
+ netflix instant jonah
1484
1557
 
1485
1558
  15: be a friend say your prayers, heavens knows a heart that cares, taht is why I've come to share a mes[sage] from the Lord (at times it's [mes]sage, once it was [from])
1486
- chrome at work: a[]message, a messa[ge] from the Lord, message [] from the Lord, [share] a message from the Lord, a message[] from the Lord
1487
- IE at work: [fr]om the Lord, a [mes]sage from the Lord, [fr]om the Lord.
1559
+ chrome at work:
1560
+ a[]message,
1561
+ a messa[ge] from the Lord
1562
+ message [] from the Lord
1563
+ [share] a message from the Lord
1564
+ a message[] from the Lord
1565
+ me[ss]age from the Lord [HD]
1566
+ IE at work:
1567
+ [fr]om the Lord
1568
+ a [mes]sage from the Lord
1569
+ [fr]om the Lord.
1570
+ me[ss]age from the Lord [HD]
1571
+
1572
+ conclusion: browser doesn't matter, at lesat for HD streams, at work
1573
+
1488
1574
  30: like two humps on a camel, you always sway the same way, humor runs in my family, my uncle was a [big] star
1489
- IE at work: humor runs very deep in my family[] my uncle was, my uncle was[] a big star, my [uncle] was a big star
1575
+ IE at work: humor runs very deep in my family[] my uncle was, my uncle was[] a big star, my [uncle] was a big star
1490
1576
 
1491
1577
  45: (LIKE 12 seconds after the big grin) (big smile, next scene) blue fades in [oooh]
1492
1578
  IE at work: 2 seconds after blue light fades in * 3
1493
1579
  chrome: 1.5 seconds as blue light fades in
1580
+ it's like 10 seconds in...
1581
+ same with mac
1582
+ conclusion: netflix doesn't care about mac versus pc timing-wise
1583
+
1584
+ conclusion: netflix varies pretty widely from instance to instance of playing back (same computer, same movie, same browser).
1494
1585
 
1495
- forever strong (chrome work netflix):
1586
+ forever strong (chrome work netflix instant):
1496
1587
 
1497
1588
  15: I'm sorry, are you in the home add me now ... []almost, almost(two spaces)[], almost(one space)[]
1498
1589
  30: (ambulance...) let's go guys keep it tight (3 secs or so), same at 57-58, tight right on 58
1499
1590
  45: we stand on this field ready for battle []*2
1500
1591
  1:30 where I was 40 years ago...[don't] spend another, don't [spend] another minute being angry
1501
1592
 
1502
- saints and soldiers (chrome work netflix):
1593
+ saints and soldiers (chrome work netflix instant):
1503
1594
 
1504
1595
  15: is the squarest guy I know...[he's] from some little backwards, [] he's from some little
1505
1596
  30: flirting with the girl at my dad's store...[] what's her name*2