sensible-cinema 0.25.1 → 0.25.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -23,7 +23,7 @@ describe ScreenTracker do
23
23
 
24
24
  SILENCE = /silence.*VLC/
25
25
 
26
- def start_vlc
26
+ def start_vlc_windowed_doze
27
27
  unless $pid1
28
28
  assert !$pid1
29
29
  # enforce that we only have at most one running...
@@ -44,8 +44,19 @@ describe ScreenTracker do
44
44
  end
45
45
  end
46
46
 
47
+ def start_vlc_full_screen_mac
48
+ a = IO.popen "/Applications/VLC.app/Contents/MacOS/VLC --fullscreen --play-and-exit ../lib/silence.wav"
49
+ $pid1 = a.pid
50
+ end
51
+
47
52
  before(:all) do
48
- start_vlc
53
+ if OS.doze?
54
+ start_vlc_windowed_doze
55
+ elsif OS.mac?
56
+ start_vlc_full_screen_mac
57
+ else
58
+ raise 'unsupported'
59
+ end
49
60
  end
50
61
 
51
62
  before do
@@ -20,28 +20,21 @@ require File.expand_path(File.dirname(__FILE__) + '/common')
20
20
 
21
21
  Dir.chdir '..' # need to run in the main folder, common moves us to spec...
22
22
  load 'bin/sensible-cinema'
23
+ #require_relative 'lib/edl_parser' # to avoid having require_relative collide with autoload <sigh>
23
24
 
24
25
  module SensibleSwing
25
26
  describe MainWindow do
26
-
27
+ EdlParser::EDL_DIR.gsub!(/^.*$/, 'spec/files/edls')
27
28
  it "should be able to start up" do
28
29
  MainWindow.new.dispose# doesn't crash :)
29
30
  end
30
31
 
31
32
  Test_DVD_ID = 'deadbeef|8b27d001'
32
33
 
33
- it "should auto-select a EDL if it matches a DVD's title" do
34
- MainWindow.new.single_edit_list_matches_dvd(Test_DVD_ID).should_not be nil
35
- end
36
-
37
- it "should not auto-select if you pass it nil" do
38
- MainWindow.new.single_edit_list_matches_dvd(nil).should be nil
39
- end
40
-
41
- it "should not die if you choose a poorly formed edl (should warn)" do
34
+ it "should not die if you file select a poorly formed edl (should warn though)" do
42
35
  time_through = 0
43
- @subject.stub!(:single_edit_list_matches_dvd) {
44
- 'fake filename doesnt matter because we fake its being parsed'
36
+ EdlParser.stub!(:single_edit_list_matches_dvd) { |dir, md5|
37
+ 'fake filename doesnt matter what we return here because we fake its parsing later'
45
38
  }
46
39
 
47
40
  @subject.stub!(:parse_edl) {
@@ -74,37 +67,18 @@ module SensibleSwing
74
67
  @show_blocking_message_dialog_last_arg.should be nil
75
68
  end
76
69
 
77
- it "should not select a file if poorly formed" do
78
- @subject.stub!(:parse_edl) {
79
- eval("a----")
80
- }
81
- @subject.single_edit_list_matches_dvd('fake md5') # doesn't die
82
- end
83
-
84
70
  def with_clean_edl_dir_as this
85
71
  FileUtils.rm_rf 'temp'
86
72
  Dir.mkdir 'temp'
87
- old_edl = MainWindow::EDL_DIR.dup
88
- MainWindow::EDL_DIR.sub!(/.*/, 'temp')
73
+ old_edl = EdlParser::EDL_DIR.dup
74
+ EdlParser::EDL_DIR.sub!(/.*/, 'temp')
89
75
  begin
90
76
  yield
91
77
  ensure
92
- MainWindow::EDL_DIR.sub!(/.*/, old_edl)
78
+ EdlParser::EDL_DIR.sub!(/.*/, old_edl)
93
79
  end
94
80
  end
95
81
 
96
- it "should prompt if two EDL's match a DVD title" do
97
- MainWindow.new.single_edit_list_matches_dvd("BOBS_BIG_PLAN").should be nil
98
- with_clean_edl_dir_as 'temp' do
99
- MainWindow.new.single_edit_list_matches_dvd("BOBS_BIG_PLAN").should be nil
100
- Dir.chdir 'temp' do
101
- File.binwrite('a.txt', "\"disk_unique_id\" => \"abcdef1234\"")
102
- File.binwrite('b.txt', "\"disk_unique_id\" => \"abcdef1234\"")
103
- end
104
- MainWindow.new.single_edit_list_matches_dvd("abcdef1234").should be nil
105
- end
106
- end
107
-
108
82
  it "should modify path to have mencoder available" do
109
83
  RubyWhich.new.which('mencoder').length.should be > 0
110
84
  end
@@ -358,7 +332,7 @@ module SensibleSwing
358
332
  end
359
333
 
360
334
  it "should create a new file for ya" do
361
- out = MainWindow::EDL_DIR + "/edls_being_edited/sweetest_disc_ever.txt"
335
+ out = EdlParser::EDL_DIR + "/edls_being_edited/sweetest_disc_ever.txt"
362
336
  File.exist?( out ).should be_false
363
337
  @subject.stub!(:get_user_input) {'sweetest disc ever'}
364
338
  @subject.instance_variable_get(:@create_new_edl_for_current_dvd).simulate_click
@@ -551,7 +525,7 @@ module SensibleSwing
551
525
  end
552
526
  end
553
527
 
554
- it "should be able to parse an srt for ya" do
528
+ it "should be able to parse an srt for ya" do
555
529
  @subject.stub!(:new_existing_file_selector_and_select_file) {
556
530
  'spec/dragon.srt'
557
531
  }
@@ -559,12 +533,9 @@ module SensibleSwing
559
533
  FileUtils.rm_rf file
560
534
  click_button(:@parse_srt)
561
535
  assert File.read(file).contain? "deitys"
562
- end
536
+ end
563
537
 
564
538
  it "should have a created play unedited smplayer button" do
565
- @subject.stub(:single_edit_list_matches_dvd) {
566
- nil
567
- }
568
539
  click_button(:@play_smplayer)
569
540
  end
570
541
 
@@ -574,7 +545,7 @@ module SensibleSwing
574
545
  @subject.stub(:assert_ownership_dialog) {
575
546
  prompted = true
576
547
  }
577
- @subject.stub(:new_existing_file_selector_and_select_file).and_return("yo.mpg", "zamples/edit_decision_lists/dvds/edls_being_edited/edl_for_unit_tests.txt")
548
+ @subject.stub(:new_existing_file_selector_and_select_file).and_return("yo.mpg", "spec/files/edls/edls_being_edited/edl_for_unit_tests.txt")
578
549
  click_button(:@create_dot_edl)
579
550
  assert File.exist? 'yo.edl'
580
551
  assert prompted
data/todo.inventionzy.txt CHANGED
@@ -1,36 +1,37 @@
1
1
  === patentzy yes actually do vaguely ordered ===
2
+ make it suck in large list of EDL's from imdb at build time
2
3
  blu-ray OCR
3
4
  more blu-ray stuff: can ID them, can playback (through...mkv? VLC? powerdvd OCr/scripted?)
4
5
  some blu-ray player descriptor somehow
5
-
6
+
7
+ can handle multiple dvdid's et al (same EDL) (kind of already shown)
8
+ can overlay over online films too
9
+ control VLC RC to overlay a logo dynamically
10
+ can control volume *and* play other audio
11
+ can add to to supplement EDL + EDL timestamps
6
12
  can pick specific profanities to avoid
7
- both mute and blank when blanking by default...
8
13
  manual select which to include into an EDL
9
14
  user preference "how many down clicks on volume for profanity"?
10
15
  make it so it can suck in from "another wiki" the DL's, at package time, somehow (just one)
11
16
  or even just suck in any web file, for starters
12
- make it so it can "auto-download" based on DVD
13
17
  space -> advance from pause until next edit item?
14
18
  add fine grained "new ratings" to some demo EDL
15
- infer edl from url for netflix
16
19
  amazon player descriptor, just in case ;P
17
20
  can jerk mouse only every so often (cheap would be to just arbitrarily have it from x to y, demo that)
18
- can scan several player descriptors to "pick the right one"
21
+ can scan several player descriptors to "pick the right one" (kind of already showed this one)
19
22
  edited streamer screencast demo (the rumor guy demo, like zediva)
20
- incorporate the DL translator from the BYU-I fella
23
+ incorporate the EDL translator from the BYU-I fella
21
24
  post a demo of it playing back blu-ray edited local computer, +- projector, +- playon (?)
22
25
  post some playon.tv demo screencast...this should prove all shouldn't it [?]
23
- can "control mouse" to drag it to change location
26
+ can "control mouse" to drag it to change location (ex: "move down 10 pixels at beginning of movie" LOL)
24
27
  beep at them/warn when not tracking [?]
25
28
  default on...I think.
26
29
  can jerk mouse more often closer to failure sections...
27
30
  can pull one from imdb at all, video "show it creates a file"
28
- make it suck in large list of EDL's from imdb at build time
29
31
  C player: minimize instead of skip :P
30
32
  C player: don't mute, just almost mute LOL or almost mute and static-ify
31
33
  can suck it in "in realtime" from online, and parse it, for demo purposes
32
34
  a UI to select categories, works
33
- 4 point editor
34
35
  edited blu ray movie playback screencast, as that's apparently not in the patent...
35
36
  don't use timecodes, use "% of the movie" and "total length" perhaps?
36
37
  look at their patents for other ideas? [all patents, nissim patents?]
@@ -41,11 +42,9 @@
41
42
  phase 2: I can accomodate for pauses, too.
42
43
  phase 3: I can re-train based on events of stoppage
43
44
  phase 4: I can constantly poll and react
44
- post a demo of it streaming to a console device
45
+ post video demo of it streaming to a console device
45
46
  categories filterable by "level" "profanity level 2 and below is ok for me and my kids"
46
47
  maybe could just "play from x to y" [no exclude info?]
47
48
  stage one: query, auto-download when they hit a netflix movie of some type
48
- stage two: chrome plugin for the same
49
- editor that can use OCR, too :P
50
- can insert deleted scenes et al [even external scenes :P]
51
- can have user submittable bookmarks, kind of like how espn3 does their playbacks...hmm...
49
+ stage two: chrome plugin for the same :)
50
+ can insert deleted scenes et al [even external scenes :P] (already showed it)
data/todo.upconvert CHANGED
@@ -17,31 +17,25 @@ do I need double tapping? http://archive2.avsforum.com/avs-vb/showthread.php?s=&
17
17
 
18
18
  make it able to grab from a window, and work when dragged too...
19
19
  can I make it look awesome?
20
- tell mplayer how to fix directx :)
21
20
 
22
21
  ==== some day ====
23
- shearing
22
+ shearing (?) compared to itself upscreened...
24
23
  perfect looks of absolutely everything upconverted LOL
25
24
  # TODO cut off all black edges too...why not, eh? mplayer has crop detect...
26
25
  make really low q stuff like youtube less than even 360 look good
27
26
  # TODO can align better youtube
28
27
  better benchmarker (windows vs. desktop, just show reverse)
28
+ the "drag to select window" seter-zy-upperzy
29
+
30
+ is ffplay on avisynth piece of crud compared to the other? vs. mplayer? why only like 10 fps? what the...
29
31
 
30
32
  == OS dshow screen tracker ==
31
33
 
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"
34
+ see its TODO, things I actually want to do add here.
39
35
 
40
36
  === some day ===
41
37
  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
38
  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...)
45
39
 
46
40
  == never ==
47
41
 
@@ -49,5 +43,4 @@ add another sharpen filter?
49
43
 
50
44
  add a VLC version?
51
45
 
52
-
53
46
  prop: http://ubuntuforums.org/showthread.php?t=804537 didn't I have another list somewhere... ?
data/transparent.png ADDED
Binary file
@@ -0,0 +1,23 @@
1
+ # from http://avisynth.org/mediawiki/Enhancing_dvd_videos
2
+
3
+ #Video1 = DirectShowSource("push2.GRF", fps=35, audio=False, framecount=1000000) # fps appears to be a "max" fps
4
+ #Video2 = DirectShowSource("", fps=35, audio=False, framecount=1000000) # fps appears to be a "max" fps
5
+ #Video1 = DirectShowSource("push2.GRF", fps=35, audio=False, framecount=1000000) # fps appears to be a "max" fps
6
+ Video1 = DirectShowSource("g:\Video\Sintel_NTSC\title01a.ts", fps=25)
7
+ Video2 = DirectShowSource("push2.GRF", fps=35, audio=False, framecount=1000000) # fps appears to be a "max" fps
8
+ Return Overlay(Video1, Video2, 100, 100,opacity=0.5)
9
+
10
+ #
11
+ # these are the size of your monitor that the output is displayed on. Unless it lags too much, then try experimenting with smaller values
12
+ # Video = ConvertToYUY2 (Video)
13
+ # screen_width = 1024 # CHANGE THIS TODO propagate it...
14
+ # screen_height = 768 # CHANGE THIS
15
+ #
16
+ # # note that you can get even better looking images by say, upscaling to 2x your current screen resolution, by uncommenting the following two lines
17
+ # screen_width = screen_width*2
18
+ # screen_height = screen_height*2
19
+ #
20
+ # Video = Lanczos4Resize (Video, screen_width, screen_height) # said to be a good upsampler...hmm...
21
+ #
22
+ # Video = Sharpen (Video, 0.78) # Helps sharpen smoothness enlarging does. 0.78 = (1.25*(1024/720))-1
23
+ # Return Video
@@ -16,6 +16,8 @@
16
16
  "blank_outs" => [
17
17
  # an example line, uncomment the leading "#" to make it active
18
18
  # "00:03:00.0" , "00:04:00.0", "violence", "of some sort",
19
+ # 1358 1452
20
+ # 4730 - 600 -< 4837 - 600
19
21
  ],
20
22
 
21
23
  "volume_name" => "JESTER",
@@ -9,5 +9,6 @@
9
9
  ],
10
10
 
11
11
  "title" => "Nuki Song",
12
+ "rating_with_this_edl" => {"violence" => "67% 7 for first half, 65% 5 for second half, 66% 4 for second half if you include the last blank_outs", "language" => "PG-12"},
12
13
  "source" => "youtube",
13
14
  "url" => "http://www.youtube.com/watch?v=xd12hR68sWM"
@@ -0,0 +1,2 @@
1
+ "url" => "http://www.youtube.com/watch?v=xd12hR6 8sWM",
2
+ "from_url" => "https://github.com/rdp/sensible-cinema/raw/master/zamples/edit_decision_lists/youtube/nuki_song_youtube.txt"
@@ -19,4 +19,5 @@ digits:
19
19
  :levels:
20
20
  - 250
21
21
  - 200
22
- does_not_need_mouse_movement: true
22
+ does_not_need_mouse_movement: true
23
+ window_title: !ruby/regexp /Chrome/
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.1
5
+ version: 0.25.2
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-10 00:00:00 -06:00
13
+ date: 2011-08-12 00:00:00 -06:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
@@ -21,7 +21,7 @@ dependencies:
21
21
  requirements:
22
22
  - - ">="
23
23
  - !ruby/object:Gem::Version
24
- version: 0.9.3
24
+ version: 0.9.4
25
25
  type: :runtime
26
26
  version_requirements: *id001
27
27
  - !ruby/object:Gem::Dependency
@@ -32,7 +32,7 @@ dependencies:
32
32
  requirements:
33
33
  - - ">="
34
34
  - !ruby/object:Gem::Version
35
- version: 0.22.0
35
+ version: 0.24.2
36
36
  type: :runtime
37
37
  version_requirements: *id002
38
38
  - !ruby/object:Gem::Dependency
@@ -41,9 +41,9 @@ dependencies:
41
41
  requirement: &id003 !ruby/object:Gem::Requirement
42
42
  none: false
43
43
  requirements:
44
- - - ">="
44
+ - - "="
45
45
  - !ruby/object:Gem::Version
46
- version: 0.0.7.3
46
+ version: 0.0.9
47
47
  type: :runtime
48
48
  version_requirements: *id003
49
49
  - !ruby/object:Gem::Dependency
@@ -69,14 +69,14 @@ dependencies:
69
69
  type: :runtime
70
70
  version_requirements: *id005
71
71
  - !ruby/object:Gem::Dependency
72
- name: jruby-win32ole
72
+ name: rautomation
73
73
  prerelease: false
74
74
  requirement: &id006 !ruby/object:Gem::Requirement
75
75
  none: false
76
76
  requirements:
77
- - - ">="
77
+ - - ">"
78
78
  - !ruby/object:Gem::Version
79
- version: "0"
79
+ version: 0.6.3
80
80
  type: :runtime
81
81
  version_requirements: *id006
82
82
  - !ruby/object:Gem::Dependency
@@ -205,6 +205,7 @@ email: rogerdpack@gmail.com
205
205
  executables:
206
206
  - sensible-cinema
207
207
  - sensible-cinema-cli
208
+ - sensible-cinema-dependencies.rb
208
209
  extensions: []
209
210
 
210
211
  extra_rdoc_files:
@@ -220,9 +221,11 @@ files:
220
221
  - _DO_NOT_RUN_IT_FROM_HERE_DOWNLOAD_THE_RELEASE_ZIP_FROM_SOURCEFORGE_INSTEAD
221
222
  - bin/sensible-cinema
222
223
  - bin/sensible-cinema-cli
224
+ - bin/sensible-cinema-dependencies.rb
223
225
  - business_ideas.txt
224
226
  - change_log_with_feature_list.txt
225
227
  - conclusions
228
+ - cone.png
226
229
  - developer_how_to_contribute_to_the_project.txt
227
230
  - documentation/DOCUMENTATION_README.TXT
228
231
  - documentation/how_to_create_your_own_delete_lists.txt
@@ -242,6 +245,7 @@ files:
242
245
  - legal/transcript_mute_vlc.txt
243
246
  - legal2
244
247
  - lib/add_any_bundled_gems_to_load_path.rb
248
+ - lib/auto_window_finder.rb
245
249
  - lib/blanker.rb
246
250
  - lib/check_installed_mac.rb
247
251
  - lib/convert_thirty_fps.rb
@@ -273,8 +277,11 @@ files:
273
277
  - lib/vlc_programmer.rb
274
278
  - never_do
275
279
  - ocr.todo_if_need_speed
280
+ - play_with_inserted_scene.bat
281
+ - play_with_overlay.bat
276
282
  - preamble
277
283
  - spec/arse.srt
284
+ - spec/auto_window_finder.spec.rb
278
285
  - spec/blanker.spec.rb
279
286
  - spec/common.rb
280
287
  - spec/convert_image.rb
@@ -282,6 +289,7 @@ files:
282
289
  - spec/dragon.srt
283
290
  - spec/drive_info.spec.rb
284
291
  - spec/edl_parser.spec.rb
292
+ - spec/files/edls/edls_being_edited/edl_for_unit_tests.txt
285
293
  - spec/frame_accurate.spec.rb
286
294
  - spec/go_line.bat
287
295
  - spec/keyboard_input.spec.rb
@@ -314,7 +322,9 @@ files:
314
322
  - todo.propaganda
315
323
  - todo.subtitle
316
324
  - todo.upconvert
325
+ - transparent.png
317
326
  - upconvert.bat
327
+ - upconvert_netflix/latest2/combine_video.avs
318
328
  - upconvert_netflix/latest2/go_no_upscaling.bat
319
329
  - upconvert_netflix/latest2/go_upscaling.bat
320
330
  - upconvert_netflix/latest2/push2.GRF
@@ -354,7 +364,6 @@ files:
354
364
  - zamples/edit_decision_lists/dvds/bobs_big_plan.txt
355
365
  - zamples/edit_decision_lists/dvds/cool runnings.txt
356
366
  - zamples/edit_decision_lists/dvds/edls_being_edited/court_jester.txt
357
- - zamples/edit_decision_lists/dvds/edls_being_edited/edl_for_unit_tests.txt
358
367
  - zamples/edit_decision_lists/dvds/edls_being_edited/test_delete_list_for_experimenting_with.txt
359
368
  - zamples/edit_decision_lists/dvds/flight_of_the_navigator.txt
360
369
  - zamples/edit_decision_lists/dvds/happiest baby on the block.txt
@@ -384,6 +393,7 @@ files:
384
393
  - zamples/edit_decision_lists/old_not_yet_updated/youtube/gummy_bear_song_youtube.txt
385
394
  - zamples/edit_decision_lists/youtube/demo_mutes.txt
386
395
  - zamples/edit_decision_lists/youtube/nuki_song_youtube.txt
396
+ - zamples/edit_decision_lists/youtube/nuki_song_youtube_pointer.txt
387
397
  - zamples/players/how_to_create_more_players.txt
388
398
  - zamples/players/hulu/total_length_over_an_hour.txt
389
399
  - zamples/players/netflix/netflix_firefox_non_maximized.txt