sensible-cinema 0.28.1 → 0.34.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (185) hide show
  1. data/{README → README.TXT} +35 -14
  2. data/Rakefile +49 -41
  3. data/TODO +337 -250
  4. data/VERSION +1 -1
  5. data/bin/sensible-cinema +15 -14
  6. data/bin/sensible-cinema-cli +1 -1
  7. data/business_ideas.txt +8 -0
  8. data/change_log_with_feature_list.txt +198 -1
  9. data/documentation/is_it_legal_to_copy_dvds.txt +44 -30
  10. data/goc.bat +1 -1
  11. data/gpl-2.0.txt +339 -0
  12. data/history_and_related_works_list.txt +37 -33
  13. data/{cone.png → inventionzy_files/cone.png} +0 -0
  14. data/legal_draft +23 -0
  15. data/lib/add_any_bundled_gems_to_load_path.rb +4 -3
  16. data/lib/check_installed_mac.rb +10 -10
  17. data/lib/count_down_timer_jruby_swing.rb +4 -4
  18. data/lib/edl_parser.rb +155 -142
  19. data/lib/extract/dumpstream.bat +1 -0
  20. data/lib/extract/get_init.bat +3 -0
  21. data/lib/extract/pause_early.rb +13 -0
  22. data/lib/gui/base.rb +707 -0
  23. data/lib/gui/create-file.rb +244 -0
  24. data/lib/gui/create.rb +565 -0
  25. data/lib/gui/dependencies.rb +177 -0
  26. data/lib/gui/normal.rb +190 -0
  27. data/lib/gui/{sensible-cinema-upconvert.rb → upconvert.rb} +33 -14
  28. data/lib/keyboard_input.rb +0 -2
  29. data/lib/mencoder_wrapper.rb +8 -3
  30. data/lib/movie_hasher.rb +27 -0
  31. data/lib/mplayer_edl.rb +1 -0
  32. data/lib/subtitle_profanity_finder.rb +141 -103
  33. data/lib/vlc_programmer.rb +1 -1
  34. data/lib/zoom_player_max_edl.rb +50 -0
  35. data/{developer_how_to_contribute_to_the_project.txt → notes_for_potential_developers.txt} +18 -11
  36. data/roadmap_possibilities +12 -0
  37. data/spec/arse.srt +6 -1
  38. data/spec/dragon.srt +3 -0
  39. data/spec/edl_parser.spec.rb +57 -52
  40. data/spec/mencoder_wrapper.spec.rb +26 -19
  41. data/spec/mplayer_edl.spec.rb +40 -10
  42. data/spec/notes +3043 -9
  43. data/spec/sensible_cinema_gui.spec.rb +8 -3
  44. data/spec/subtitle_profanity_finder.spec.rb +91 -36
  45. data/spec/zoom_player_max_edl.spec.rb +29 -0
  46. data/template_bats/README_DISTRO.TXT +3 -1
  47. data/template_bats/RUN SENSIBLE CINEMA CLICK HERE WINDOWS.bat +25 -0
  48. data/template_bats/mac/RUN SENSIBLE CINEMA CLICK HERE.command +2 -1
  49. data/template_bats/mac/advanced--create or edit sensible cinema edit list files.command +2 -1
  50. data/template_bats/mac/advanced--run-upconverting-video-player.command +2 -1
  51. data/template_bats/pc/advanced--create or edit sensible cinema edit list files.bat +2 -0
  52. data/template_bats/pc/advanced--run-upconverting-video-player.bat +2 -0
  53. data/todo.inventionzy.txt +69 -2
  54. data/todo.propaganda +34 -10
  55. data/todo.upconvert +8 -1
  56. data/{upconvert_netflix/latest2 → upconvert_from_screen}/go_upscaling.bat +0 -0
  57. data/{also_see_rogerdpack_youtube_account_and_sourceforge_files_movies_account → upconvert_from_screen/go_upscaling_works} +0 -0
  58. data/{upconvert_netflix → upconvert_from_screen/old}/latest2/combine_video.avs +0 -0
  59. data/{upconvert_netflix → upconvert_from_screen/old}/latest2/go_no_upscaling.bat +0 -0
  60. data/upconvert_from_screen/old/latest2/go_upscaling.bat +12 -0
  61. data/{upconvert_netflix → upconvert_from_screen/old}/latest2/push2.GRF +0 -0
  62. data/upconvert_from_screen/old/latest2/push3.grf +0 -0
  63. data/{upconvert_netflix → upconvert_from_screen/old}/latest2/setup_capture_coords.rb +0 -0
  64. data/{upconvert_netflix → upconvert_from_screen/old}/latest2/setup_directshow_filter_params.rb +0 -0
  65. data/{upconvert_netflix → upconvert_from_screen/old}/latest2/upconvert_from_screen_me2.avs +1 -1
  66. data/{upconvert_netflix → upconvert_from_screen}/old/latest_now_possibly_oudated/push2.GRF +0 -0
  67. data/{upconvert_netflix → upconvert_from_screen}/old/latest_now_possibly_oudated/upconvert_from_screen_me2.avs +0 -0
  68. data/{upconvert_netflix → upconvert_from_screen}/old/position_window.png +0 -0
  69. data/{upconvert_netflix → upconvert_from_screen}/old/push_source_desktop.GRF +0 -0
  70. data/{upconvert_netflix → upconvert_from_screen/old}/record_screen/record.bat +0 -0
  71. data/{upconvert_netflix → upconvert_from_screen}/old/upconvert_from_screen.avs +0 -0
  72. data/{upconvert_netflix → upconvert_from_screen}/old/upconvert_from_screen_me.avs +0 -0
  73. data/{upconvert_netflix → upconvert_from_screen}/old/upconvert_from_screen_me2.avs +0 -0
  74. data/{upconvert_netflix → upconvert_from_screen}/old/upconvert_from_screen_me_push_source.avs +0 -0
  75. data/{upconvert_netflix → upconvert_from_screen}/old/uscreen.GRF +0 -0
  76. data/{upconvert_netflix → upconvert_from_screen}/old/uscreen_me.GRF +0 -0
  77. data/upconvert_from_screen/push3.grf +0 -0
  78. data/upconvert_from_screen/upconvert_from_screen_me2.avs +19 -0
  79. data/vendor/mplayer_patches/apply.bat +12 -0
  80. data/vendor/{rdp-win32screenshot-0.0.9/RDP_BRANCH_HAS_MASTER_WITH_CORRECT_VERSION_NUMBER → mplayer_patches/configure_from_betterlogic} +0 -0
  81. data/vendor/mplayer_patches/libdvdnav/2905259c3b45529b3d8dedba572b6e4f67a2d8f4.diff +19 -0
  82. data/vendor/mplayer_patches/libdvdnav/83f1c9256f500285e46f1e44bcc74ffce90159db.diff +16 -0
  83. data/vendor/mplayer_patches/libdvdnav/eb91fb74680d30322461a1b9e425918ad4e2b2df.diff +21 -0
  84. data/vendor/mplayer_patches/libdvdnav/jump_to_time.diff +654 -0
  85. data/vendor/mplayer_patches/libdvdnav/non_strict.diff +13 -0
  86. data/vendor/mplayer_patches/mplayer_edl.diff +354 -0
  87. data/vendor/mplayer_patches/port_dir/PortIndex.quick +2 -0
  88. data/vendor/mplayer_patches/port_dir/how_to +13 -0
  89. data/vendor/mplayer_patches/port_dir/multimedia/mplayer-edl/Portfile +300 -0
  90. data/vendor/mplayer_patches/port_dir/multimedia/mplayer-edl/files/configure.x11.patch +20 -0
  91. data/vendor/mplayer_patches/port_dir/multimedia/mplayer-edl/files/llvm-gcc-workaround.patch +11 -0
  92. data/vendor/mplayer_patches/port_dir/multimedia/rdp-projects/Portfile +43 -0
  93. data/vendor/{rdp-win32screenshot-0.0.9/RDP_VERSION_IS_IN_RDP_BRANCH → mplayer_patches/updated_lib_too} +0 -0
  94. data/vendor/{readme.txt → readme.txt.setpriority} +0 -0
  95. data/www/content_editor.html +28 -28
  96. data/www/index.html +6 -1
  97. data/www/upconverting_movie_player.html +13 -3
  98. data/www/youtube_edl/.htaccess +44 -0
  99. data/{inventionzy_files/control_youtube.html → www/youtube_edl/control_youtube.rhtml} +39 -33
  100. data/www/youtube_edl/dispatch.fcgi +25 -0
  101. data/www/youtube_edl/render_edited.rb +25 -0
  102. data/{inventionzy_files/serve.rb → www/youtube_edl/server_this_dir.rb} +0 -0
  103. data/www/youtube_edl/todo +23 -0
  104. data/www/zoomplayer_max.png +0 -0
  105. data/zamples/edit_decision_lists/dvds/Harry Potter 2 chamber of secrets.txt +10 -5
  106. data/zamples/edit_decision_lists/dvds/aladdin.txt +30 -0
  107. data/zamples/edit_decision_lists/dvds/bambi.txt +1 -1
  108. data/zamples/edit_decision_lists/dvds/big_buck_bunny_dvd.txt +2 -0
  109. data/zamples/edit_decision_lists/dvds/bobs_big_plan.txt +2 -2
  110. data/zamples/edit_decision_lists/dvds/cars_2.txt +26 -0
  111. data/zamples/edit_decision_lists/dvds/cars_disney.txt +1 -1
  112. data/zamples/edit_decision_lists/dvds/condor_man_widescreen.txt +22 -0
  113. data/zamples/edit_decision_lists/dvds/court_jester.txt +10 -13
  114. data/zamples/edit_decision_lists/dvds/edls_being_edited/making_marriage_work.txt +15 -0
  115. data/zamples/edit_decision_lists/dvds/edls_being_edited/national_treasure.txt +23 -0
  116. data/zamples/edit_decision_lists/dvds/edls_being_edited/ratatouille.txt +35 -0
  117. data/zamples/edit_decision_lists/dvds/edls_being_edited/the_explorers.txt +49 -0
  118. data/zamples/edit_decision_lists/dvds/finding_neverland.txt +32 -0
  119. data/zamples/edit_decision_lists/dvds/flight_of_the_navigator.txt +22 -16
  120. data/zamples/edit_decision_lists/dvds/harry_potter_3_prisoner_of_azkaban.txt +21 -4
  121. data/zamples/edit_decision_lists/dvds/hitchhiker's_guide_to_the_galaxy.txt +1 -1
  122. data/zamples/edit_decision_lists/dvds/{edls_being_edited/king_of_kings.txt → king_of_kings.txt} +5 -5
  123. data/zamples/edit_decision_lists/dvds/nanny_mcphee.txt +31 -0
  124. data/zamples/edit_decision_lists/dvds/pack_jackson_wedding_2007-03-03.txt +9 -2
  125. data/zamples/edit_decision_lists/dvds/remember_the_titans.txt +35 -0
  126. data/zamples/edit_decision_lists/dvds/sintel_open_source_blender_ntsc_dvd.txt +8 -4
  127. data/zamples/edit_decision_lists/dvds/speed_racer.txt +1 -1
  128. data/zamples/edit_decision_lists/dvds/tangled.txt +21 -0
  129. data/zamples/edit_decision_lists/dvds/tron_legacy.txt +4 -1
  130. data/zamples/edit_decision_lists/files/conference_music_video.txt +10 -0
  131. data/zamples/edit_decision_lists/notes_on_movies_without_edls_yet/tron.txt +10 -0
  132. data/zamples/edit_decision_lists/old_not_yet_updated/example_edit_decision_list.txt +1 -1
  133. metadata +139 -117
  134. data/conclusions +0 -6
  135. data/documentation/how_to_create_your_own_delete_lists.txt +0 -69
  136. data/lib/gui/sensible-cinema-base.rb +0 -620
  137. data/lib/gui/sensible-cinema-create.rb +0 -331
  138. data/lib/gui/sensible-cinema-dependencies.rb +0 -28
  139. data/lib/gui/sensible-cinema-normal.rb +0 -351
  140. data/lib/gui/sensible-cinema-side-by-side.rb +0 -27
  141. data/lib/shutdown_kill.rb +0 -32
  142. data/lib/storage.rb +0 -105
  143. data/ocr.todo_if_need_speed +0 -6
  144. data/upconvert_netflix/record_screen/recording/1.png +0 -0
  145. data/upconvert_netflix/record_screen/recording/10.png +0 -0
  146. data/upconvert_netflix/record_screen/recording/2.png +0 -0
  147. data/upconvert_netflix/record_screen/recording/3.png +0 -0
  148. data/upconvert_netflix/record_screen/recording/4.png +0 -0
  149. data/upconvert_netflix/record_screen/recording/5.png +0 -0
  150. data/upconvert_netflix/record_screen/recording/6.png +0 -0
  151. data/upconvert_netflix/record_screen/recording/7.png +0 -0
  152. data/upconvert_netflix/record_screen/recording/8.png +0 -0
  153. data/upconvert_netflix/record_screen/recording/9.png +0 -0
  154. data/upconvert_netflix/record_screen/recording/d.png +0 -0
  155. data/vendor/monkey.png +0 -0
  156. data/vendor/rdp-win32screenshot-0.0.9/.document +0 -5
  157. data/vendor/rdp-win32screenshot-0.0.9/History.rdoc +0 -53
  158. data/vendor/rdp-win32screenshot-0.0.9/LICENSE +0 -20
  159. data/vendor/rdp-win32screenshot-0.0.9/README.rdoc +0 -95
  160. data/vendor/rdp-win32screenshot-0.0.9/Rakefile +0 -63
  161. data/vendor/rdp-win32screenshot-0.0.9/VERSION +0 -1
  162. data/vendor/rdp-win32screenshot-0.0.9/enumerated +0 -55576
  163. data/vendor/rdp-win32screenshot-0.0.9/lib/aero_offscreen_srccopy_captureblt_doesnt_have_everything.bmp.gz +0 -0
  164. data/vendor/rdp-win32screenshot-0.0.9/lib/enumerate.rb +0 -6
  165. data/vendor/rdp-win32screenshot-0.0.9/lib/firefox.bmp +0 -0
  166. data/vendor/rdp-win32screenshot-0.0.9/lib/normal.bmp +0 -0
  167. data/vendor/rdp-win32screenshot-0.0.9/lib/normal2.bmp +0 -0
  168. data/vendor/rdp-win32screenshot-0.0.9/lib/notes +0 -5
  169. data/vendor/rdp-win32screenshot-0.0.9/lib/snapshot.rb +0 -10
  170. data/vendor/rdp-win32screenshot-0.0.9/lib/srccopy.bmp +0 -0
  171. data/vendor/rdp-win32screenshot-0.0.9/lib/srccopyplus.bmp +0 -0
  172. data/vendor/rdp-win32screenshot-0.0.9/lib/srccopyplusdirectx.bmp +0 -0
  173. data/vendor/rdp-win32screenshot-0.0.9/lib/vc.bmp +0 -0
  174. data/vendor/rdp-win32screenshot-0.0.9/lib/win32/screenshot.rb +0 -95
  175. data/vendor/rdp-win32screenshot-0.0.9/lib/win32/screenshot/bitmap_maker.rb +0 -200
  176. data/vendor/rdp-win32screenshot-0.0.9/lib/win32/util.rb +0 -93
  177. data/vendor/rdp-win32screenshot-0.0.9/spec/spec.opts +0 -1
  178. data/vendor/rdp-win32screenshot-0.0.9/spec/spec_helper.rb +0 -85
  179. data/vendor/rdp-win32screenshot-0.0.9/spec/win32_screenshot_spec.rb +0 -194
  180. data/vendor/rdp-win32screenshot-0.0.9/spec/win32_screenshot_util_spec.rb +0 -75
  181. data/vendor/rdp-win32screenshot-0.0.9/win32screenshot.gemspec +0 -69
  182. data/vendor/tsmuxer_1.10.6/licence.txt +0 -42
  183. data/zamples/edit_decision_lists/dvds/making_marriage_work.txt +0 -15
  184. data/zamples/edit_decision_lists/notes/tron.txt +0 -4
  185. data/zamples/edit_decision_lists/old_not_yet_updated/dvds/making marriage work.txt +0 -9
@@ -0,0 +1,20 @@
1
+ --- configure.orig 2011-06-23 11:42:26.000000000 -0700
2
+ +++ configure 2011-06-23 13:34:17.000000000 -0700
3
+ @@ -4297,6 +4297,9 @@ echores "$_x11_headers"
4
+
5
+
6
+ echocheck "X11"
7
+ +if test "$_x11" = yes ; then
8
+ + libs_mplayer="$libs_mplayer -lXext -lX11"
9
+ +fi
10
+ if test "$_x11" = auto && test "$_x11_headers" = yes ; then
11
+ for I in "" -L/usr/X11R7/lib -L/usr/local/lib -L/usr/X11R6/lib -L/usr/lib/X11R6 \
12
+ -L/usr/X11/lib -L/usr/lib32 -L/usr/openwin/lib -L/usr/local/lib64 -L/usr/X11R6/lib64 \
13
+ @@ -6777,6 +6780,7 @@ fi
14
+ if test "$_qtx" = yes ; then
15
+ def_qtx='#define CONFIG_QTX_CODECS 1'
16
+ win32 && _qtx_codecs_win32=yes && def_qtx_win32='#define CONFIG_QTX_CODECS_WIN32 1'
17
+ + darwin && extra_ldflags="$extra_ldflags -framework Carbon -framework QuickTime" && def_quicktime='#define CONFIG_QUICKTIME 1'
18
+ codecmodules="qtx $codecmodules"
19
+ darwin || win32 || _qtx_emulation=yes
20
+ else
@@ -0,0 +1,11 @@
1
+ --- ffmpeg/libavutil/mem.h.orig 2011-06-24 12:09:36.000000000 -0700
2
+ +++ ffmpeg/libavutil/mem.h 2011-06-24 12:10:06.000000000 -0700
3
+ @@ -41,7 +41,7 @@
4
+ static const t __attribute__((aligned(n))) v
5
+ #elif defined(__GNUC__)
6
+ #define DECLARE_ALIGNED(n,t,v) t __attribute__ ((aligned (n))) v
7
+ - #define DECLARE_ASM_CONST(n,t,v) static const t av_used __attribute__ ((aligned (n))) v
8
+ + #define DECLARE_ASM_CONST(n,t,v) __private_extern__ const t av_used __attribute__ ((aligned (n))) v
9
+ #elif defined(_MSC_VER)
10
+ #define DECLARE_ALIGNED(n,t,v) __declspec(align(n)) t v
11
+ #define DECLARE_ASM_CONST(n,t,v) __declspec(align(n)) static const t v
@@ -0,0 +1,43 @@
1
+ # $Id: Portfile 86914 2011-11-07 02:04:09Z ecronin@macports.org $
2
+
3
+
4
+ # -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:filetype=tcl:et:sw=4:ts=4:sts=4
5
+
6
+ PortSystem 1.0
7
+
8
+ name rdp-projects
9
+ version 1
10
+ revision 2
11
+ categories multimedia
12
+ maintainers rdp
13
+ platforms darwin
14
+ license GPL-2
15
+
16
+ description Sensible Cinema GPL'ed dependencies.
17
+ long_description ${description}
18
+
19
+ homepage http://rogerdpack.t28.net
20
+
21
+ livecheck.type none
22
+
23
+ depends_lib port:ffmpeg port:gocr port:ImageMagick port:mplayer-edl
24
+
25
+ worksrcdir trunk
26
+
27
+ # Do not use the following environment variables, otherwise the build phase
28
+ # will fail.
29
+ configure.cflags {}
30
+ configure.cppflags {}
31
+ configure.cxxflags {}
32
+ configure.ldflags {}
33
+ configure.cc_archflags {}
34
+ configure.cxx_archflags {}
35
+
36
+ # Do not use pipes, otherwise the build phase will fail.
37
+ configure.pipe no
38
+ fetch.type svn
39
+ fetch {
40
+ system "git clone https://github.com/rdp/blank_c_project ${worksrcpath}"
41
+ }
42
+
43
+
@@ -23,14 +23,13 @@
23
23
  <div style="float:right; margin-right: 50px; margin-left: 20px;">
24
24
  <img src="source/vendor/profs.png" width=150 />
25
25
 
26
- <h1>Sensible Cinema</h1></div>
26
+ <h1>Sensible Cinema Movie Sanitizer</h1></div>
27
27
  <pre>
28
- Welcome to the (work in progress) home page of Sensible Cinema, the free video scene skipper/muter.
29
- Sensible Cinema allows you watch edited movies by applying edit lists (EDL's)
28
+ Sensible Cinema allows you watch edited movies by applying edit lists (EDL's -- edit decision lists)
30
29
  (i.e. "mute out" or "cut out" questionable scenes) to DVD's or movie files.
31
30
 
32
31
  A description and history/background of sensible-cinema can be found <a href="https://github.com/rdp/sensible-cinema/blob/master/README">here</a>.
33
- Don't forget to come back to this page to download it, though (from the "Download" section).
32
+ Don't forget to come back to this page to download it, though (from the "Download" section, below).
34
33
 
35
34
  <h2 style="margin: 0px;">Download</h2>
36
35
  To download, please check the checkbox if you agree to the terms of the
@@ -46,46 +45,47 @@ After download, unzip it. For windows users, that's like:
46
45
  Now open the newly created sensible-cinema-x.x.x folder, and run the file "run sensible cinema.bat"
47
46
  You will be initially prompted to accept the license agreement(s) and also install a few
48
47
  (non included, separate ownership/distribution) dependencies.
49
- Now insert a DVD you own, and restart sensible cinema to see available options.
50
- Note that you want to download from sourceforge not from github.com (github is just the raw source).
51
- There is more usage documentation within the "sensible-cinema/documentation" folder contained there.
48
+ Now insert a DVD you own, to see available options.
49
+ Note that you want to download from sourceforge (here) not from github.com (github is just the raw source).
50
+ There is more documentation <a href="https://github.com/rdp/sensible-cinema/wiki">here</a>.
52
51
 
53
- <h3>Mac user prerequisites</h3>Mac users will need to install some programs first.
52
+ <h3>Mac user prerequisites</h3>Mac users will need to install some <a href="https://sourceforge.net/projects/sensible-cinema/files/mac-dependencies">mac dependencies</a> first.
54
53
 
55
- If you plan on watching any movies in "realtime" then you'll need to download <a href="http://mplayerx.org/#Download">mplayerx</a>.
54
+ Note that by installing these dependencies, you're accepting their respective licenses/distributions.
56
55
 
57
- If you plan on doing any auto-video editing/saving then you'll need to install <a href="http://www.macports.org/">macports</a>.
58
- Install macports, then afterward open the "terminal" Application and execute the following command:
59
- $ sudo port install mencoder ffmpeg gocr
60
- After this finishes (it will take awhile) you'll be ready to run Sensible Cinema.
61
- Note that by installing these, you're accepting their respective licenses/distributions.
56
+ <h3>Upconverting/upscaling DVD/video player</h3>Sensible Cinema comes with its own upscaling/upconverting software DVD/movie file player.
57
+ See it and the various other things that sensible cinema does <a href="..">here</a>.
62
58
 
63
- <h3>Upconverting/upscaling DVD/video player</h3>Sensible Cinema comes with its own upscaling/upconverting software DVD/movie file player. See it and the various other things that sensible cinema does <a href="..">here</a>.
64
-
65
- <h3>Available edited movie lists</h3>You can see the (small) current list of DVD edit lists (EDL's) thus far available <a href="https://github.com/rdp/sensible-cinema/tree/master/zamples/edit_decision_lists/dvds">here</a> (all of them created previously by volunteers like you).
66
- If yours is already there, then you might be good to go. Just use it.
59
+ <h3>Available edited movie lists</h3>You can see the (small) current list of DVD edit lists (EDL's) already created
60
+ <a href="https://github.com/rdp/sensible-cinema/tree/master/zamples/edit_decision_lists/dvds">here</a>
61
+ (all of them created previously by volunteers like you, or myself).
62
+ If your movie is already there, then you might be ready to go. Use the one that's already there and give feedback on it when you're done.
67
63
 
68
64
  If yours isn't there, then we'd ask you to help us by creating and submitting your own EDL (delete/cut list) for your DVD that doesn't have one yet,
69
- see the <a href="https://github.com/rdp/sensible-cinema/blob/master/documentation">how to create</a> file for instructions on creating a new delete list. <!-- this is actually a short line -->
70
- Then run the file "advanced-edit or create sensible cinema delete list files.bat" to create and edit your new delete list. Sensible Cinema has a few things to help you there.
71
- Don't forget to upload your new file back to us when you're done, so others can benefit from your work (see "contact", below).
65
+ see the <a href="https://github.com/rdp/sensible-cinema/wiki">documentation on the wiki</a> for instructions on creating
66
+ your own new delete list. <!-- this is actually a short line -->
67
+ Then run the file "advanced-edit or create sensible cinema delete list files.bat" to create and edit your new delete list.
68
+ Sensible Cinema has a few buttons to help you there.
69
+ Don't forget to upload your new EDL file back to us when you're done, so others can benefit (see "contact", below).
72
70
 
73
- That link is the full list--your help is wanted/needed to help it grow!
71
+ That link is the full list--your help is wanted/needed to help us grow!
74
72
 
75
73
  <h2 style="margin: 0px;">Other Resources/Contact/Support</h2>
76
- Let me know via the <a href="http://groups.google.com/group/sensible-cinema?pli=1">google group</a> or email rogerdpack@gmail.com if you have feedback or have any other ideas/suggestions.
77
- <h3>Source code</h3>Source code is all available <a href="http://github.com/rdp/sensible-cinema">here</a>. Notes for potential source code developers are <a href="https://github.com/rdp/sensible-cinema/blob/master/developer_how_to_contribute_to_the_project.txt">here</a>.
78
- For (techy or non-techy) contributions, see the contact info in the README file, or write to the google group, above.
74
+ Let me know via the <a href="http://groups.google.com/group/sensible-cinema?pli=1">google group</a> or <a href="mailto:sensible-cinema@googlegroups.com">email</a> if you have feedback or have any other ideas/suggestions.
75
+ <h3>Source code</h3>Source code is all available <a href="http://github.com/rdp/sensible-cinema">here</a>.
76
+ Source code developers/contributors are welcome! See <a href="https://github.com/rdp/sensible-cinema/blob/master/notes_for_potential_developers.txt">here</a> for instructions.
77
+ For (non-techy or techy) contributions, write to the addresses above.
79
78
 
80
79
  You can see the <a href="source/change_log_with_feature_list.txt">change log with feature list</a>.
81
80
 
82
- You can get a list of DVD ISO's (creative commons licensed) <a href="releases/dvd_isos">here</a>, if you want to try them out for experimenting/development/research etc.
81
+ You can get a list of DVD ISO's (creative commons licensed) <a href="releases/dvd_isos">here</a>,
82
+ if you want to try them out for experimenting/development/research etc.
83
83
 
84
84
  Please click the license agreement checkbox at the top to see a list of some old releases (newer ones are found on sourceforge exclusively, old ones here).
85
85
  <div id="comments2" style="display:none;">You can find an old list of older releases, as well as the MS based C <a href="releases/c_player">DVD player</a> listed <a href="releases">in the archives</a>.
86
86
 
87
87
  </div>
88
+ Compatible with <a href="http://www.inmatrix.com/">Zoom Player MAX<img src="zoomplayer_max.png" width=45/></a> and <a href="http://www.mplayerhq.hu">MPlayer</a> (and <a href="http://videolan.org">VLC Player</a> if desired).
88
89
  </pre>
89
90
  </html>
90
- </body>
91
-
91
+ </body>
@@ -29,11 +29,15 @@
29
29
  Sensible Cinema (the free awesome video player) has a few aspects to it.
30
30
  Click on the part you're interested in:
31
31
 
32
+ <a href="content_editor.html">Installation/download instructions</a>
33
+
32
34
  1) <a href="content_editor.html">Edited video player</a>
33
35
  A free video scene skipper/muter. Sensible Cinema allows you watch edited movies by applying edit lists (EDL's)
34
36
  to DVD's or movie files. i.e. "mute out" or "cut out" questionable scenes/content.
35
37
  Click <a href="content_editor.html">here</a> for more detail.
36
38
 
39
+ 1b) It can playback youtube videos <a href="http://rogerdpack.t28.net/sensible-cinema/youtube_edl/yo?mute_start=2&mute_end=7&skip_start=10&skip_end=20&youtube_video_id=ylLzyHk54Z0">edited</a> [experimental].
40
+
37
41
  2) <a href="upconverting_movie_player.html">Upconverting software player</a>.
38
42
  Sensible Cinema can playback DVD's or movie files in quality upscaled resolution. This means they look
39
43
  awesome on higher resolution monitors and it brings out extra details in the movie and looks better,
@@ -47,7 +51,8 @@
47
51
  This is a work in progress but is somewhat close.
48
52
  Ping me if you'd like to try it out. rogerdpack@gmail.com
49
53
 
50
- Questions/feedback welcome: rogerdpack@gmail.com
54
+ Questions/feedback welcome: <a href="mailto:sensible-cinema@googlegroups.com">email</a> or view the <a href="http://groups.google.com/group/roger-projects">google group</a>.
55
+ Most projects released as open source under the <a href="http://www.gnu.org/copyleft/gpl.html">gplv3</a> license. Don't patent my ideas please! :)
51
56
 
52
57
  </pre>
53
58
  <!-- Also see my <a href="..">other projects</a>. when I have some ...-->
@@ -19,9 +19,9 @@
19
19
 
20
20
  </head>
21
21
  <body>
22
- <h1>Upconverting Software DVD/Video Player</h1>
22
+ <h1>Upconverting Software DVD/Video/Online Player</h1>
23
23
  <pre>
24
- Sensible Cinema can playback your DVD's or Movie files in upscaled goodness. This means they look
24
+ Sensible Cinema can playback your DVD's or Movie files (or even online players) in upscaled goodness. This means they look
25
25
  awesome on higher resolution monitors and it really brings out the details in the movie.
26
26
 
27
27
  You can use this to play it back in high-res on your monitor, or attach your computer to your projector
@@ -35,7 +35,13 @@
35
35
  2) unzip it
36
36
  3) run "advanced--upconverter.bat" file
37
37
  4) click setup upconverting options button, choose "DVD style playback"
38
- 5) close the setup window, insert DVD, click "watch DVD upconverted (unedited)" button
38
+ 5) close the setup window, insert DVD if desired, click "watch DVD upconverted (unedited)" button
39
+
40
+ to use the "online upconverting" you need to (be using windows and) install https://github.com/rdp/screen-capture-recorder-to-video-windows-free
41
+ then use its start menu -> Screen Capture Recorder -> configure -> configure by resizing a transparent window to "overlay" your player
42
+ in one monitor with it so that it will capture that.
43
+ Then run "advanced--upconverter"
44
+ Then click "watch upconverted online player" and drag your window to your other monitor and enjoy upconverted netflix instant/hulu etc.
39
45
 
40
46
  Enjoy your film. Feedback welcome rogerdpack@gmail.com
41
47
 
@@ -44,6 +50,10 @@
44
50
  This is (arguably) better than some hardware DVD upscalers. It's still a work in progress
45
51
  but seems to be working well. WE NEED HELP if you are a movie or image buff we could use
46
52
  help tweaking upconvert parameters to find the best settings (though the default seem to work well).
53
+
54
+ Also note that you "can" get upconversion from other sources. You can tweak ffdshow + media player classic
55
+ to display with similar settings, or purchase/use PowerDVD which I think also does something like this.
56
+ This project aims to make the process easier :)
47
57
 
48
58
  See also the various other things that sensible cinema does <a href="..">here</a>.
49
59
 
@@ -0,0 +1,44 @@
1
+ # General Apache options
2
+ AddHandler fcgid-script .fcgi
3
+ AddHandler cgi-script .cgi
4
+ # For security reasons, Option followsymlinks cannot be overridden.
5
+ #Options +FollowSymLinks +ExecCGI
6
+ Options +SymLinksIfOwnerMatch +ExecCGI
7
+
8
+ # If you don't want Rails to look in certain directories,
9
+ # use the following rewrite rules so that Apache won't rewrite certain requests
10
+ #
11
+ # Example:
12
+ # RewriteCond %{REQUEST_URI} ^/notrails.*
13
+ # RewriteRule .* - [L]
14
+
15
+ # Redirect all requests not available on the filesystem to Rails
16
+ # By default the cgi dispatcher is used which is very slow
17
+ #
18
+ # For better performance replace the dispatcher with the fastcgi one
19
+ #
20
+ # Example:
21
+ # RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]
22
+ RewriteEngine On
23
+
24
+ # If your Rails application is accessed via an Alias directive,
25
+ # then you MUST also set the RewriteBase in this htaccess file.
26
+ #
27
+ # Example:
28
+ # Alias /myrailsapp /path/to/myrailsapp/public
29
+ # RewriteBase /myrailsapp
30
+
31
+ #RewriteRule ^$ index.html [QSA]
32
+ #RewriteRule ^([^.]+)$ $1.html [QSA]
33
+ RewriteCond %{REQUEST_FILENAME} !-f
34
+ RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]
35
+
36
+ #DirectoryIndex dispatch.fcgi index.html index.htm index.php
37
+ # In case Rails experiences terminal errors
38
+ # Instead of displaying this message you can supply a file here which will be rendered instead
39
+ #
40
+ # Example:
41
+ # ErrorDocument 500 /500.html
42
+ # General Apache options
43
+ #AddHandler fcgid-script .fcgi
44
+ ErrorDocument 500 "<h2>Application error</h2>Rails application failed to start properly"
@@ -1,14 +1,15 @@
1
1
 
2
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)
3
+
4
+ Run this from a web server to actually work...
5
+
5
6
  -->
6
7
 
7
8
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
8
9
  <html xmlns="http://www.w3.org/1999/xhtml">
9
10
  <head>
10
11
  <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
11
- <title>YouTube Player API Sample</title>
12
+ <title>YouTube Edit Decision Listed</title>
12
13
  <style type="text/css">
13
14
  #videoDiv {
14
15
  margin-right: 3px;
@@ -39,24 +40,16 @@ Apache license (http://www.apache.org/licenses/LICENSE-2.0.html)
39
40
  // This function is called when the player changes state
40
41
  function onPlayerStateChange(newState) {
41
42
  updateHTML("playerState", newState);
42
- }
43
+ }
43
44
 
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
45
 
53
- // we will mute from 2->10 seconds, and skip from second 13 to 18, wash and repeat
46
+ // we will mute from 2->10 seconds, and then skip from second 13 to 18...
54
47
  // have to run this from a web server for it to work
55
48
 
56
- function muteFromSecondTwoToTen() {
57
- ytplayer.mute();
49
+ function muteFromSecondTwoToTen() { // also contains a skip from 13 to 18...
50
+ ytplayer.mute();
58
51
  setTimeout(
59
- function() {
52
+ function() {
60
53
  ytplayer.unMute();
61
54
  setTimeout(
62
55
  function() {
@@ -67,27 +60,40 @@ Apache license (http://www.apache.org/licenses/LICENSE-2.0.html)
67
60
  }, 8000);
68
61
  }
69
62
 
70
- var madeFirstTrans = false;
71
-
63
+ var mutes2=[<%= mutes.join(',') %>];
64
+ var splits=[<%= splits.join(',') %>];
65
+
66
+ function areWeWithin(thisArray) {
67
+ var cur_time = ytplayer.getCurrentTime();
68
+ for (key in thisArray) {
69
+ var item = thisArray[key];
70
+ var start_time = item[0];
71
+ var end_time = item[1];
72
+ if(cur_time > start_time && cur_time < end_time) {
73
+ return end_time;
74
+ }
75
+ }
76
+ return false;
77
+ }
72
78
  // Display information about the current state of the player
79
+ // I think this gets called...somewhat frequently, by the youtube player
73
80
  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
81
  if(ytplayer && ytplayer.getDuration) {
80
82
  updateHTML("videoDuration", ytplayer.getDuration());
81
83
  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());
84
+ if(areWeWithin(mutes2))
85
+ ytplayer.mute();
86
+ else
87
+ ytplayer.unMute();
88
+ if(last_end = areWeWithin(splits)) {
89
+ ytplayer.seekTo(last_end, true);
90
+ }
91
+
89
92
  }
90
- }
93
+ updateHTML("bytesTotal", ytplayer.getVideoBytesTotal());
94
+ updateHTML("startBytes", ytplayer.getVideoStartBytes());
95
+ updateHTML("bytesLoaded", ytplayer.getVideoBytesLoaded());
96
+ }
91
97
 
92
98
  // This function is automatically called by the player once it loads
93
99
  function onYouTubePlayerReady(playerId) {
@@ -103,7 +109,7 @@ Apache license (http://www.apache.org/licenses/LICENSE-2.0.html)
103
109
  // The "main method" of this sample. Called when someone clicks "Run".
104
110
  function loadPlayer() {
105
111
  // The video to load
106
- var videoID = "ylLzyHk54Z0"
112
+ var videoID = "<%= video_id %>"
107
113
  // Lets Flash from another domain call JavaScript
108
114
  var params = { allowScriptAccess: "always" };
109
115
  // The element id of the Flash embed
@@ -132,4 +138,4 @@ Apache license (http://www.apache.org/licenses/LICENSE-2.0.html)
132
138
  </td></tr>
133
139
  </table>
134
140
  </body>
135
- </html>
141
+ </html>
@@ -0,0 +1,25 @@
1
+ #!/home/wilkboar/local_installs/bin/ruby
2
+ #
3
+ require 'socket'
4
+ if Socket.gethostname =~ /bluehost.com/
5
+ ENV['GEM_PATH'] = '/home/wilkboar/.gems:/usr/lib/ruby/gems/1.8'
6
+ ENV['GEM_HOME'] = '/home/wilkboar/.gems'
7
+ $: << '/home/wilkboar/ruby/gems/gems/fcgi-0.8.8/lib' # what in the world? malformed gem?
8
+ end
9
+
10
+ require "fcgi"
11
+ require 'cgi'
12
+ require 'render_edited.rb'
13
+
14
+ FCGI.each { |request|
15
+ out = request.out
16
+ out.print "Content-Type: text/html\n\n"
17
+ incoming_params = CGI.parse(request.env["REQUEST_URI"].split('?')[1]) # assume they're like mute_starts=["33.0", "35.0"], mute_ends=["34.0", "36.0"]
18
+ begin
19
+ render_edited out, incoming_params
20
+ rescue Exception => e
21
+ out.puts "failure #{e}"
22
+ out.puts incoming_params.inspect
23
+ end
24
+ request.finish
25
+ }
@@ -0,0 +1,25 @@
1
+ require 'erb'
2
+ $template = ERB.new File.read("control_youtube.rhtml")
3
+
4
+ def combine_arrays array1, array2
5
+ array1 ||= []
6
+ array2 ||= []
7
+ raise unless array1.length == array2.length
8
+ out = []
9
+ array1.each_with_index{|start, idx|
10
+ start = start.to_f
11
+ endy = array2[idx].to_f
12
+ out << "[#{start},#{endy}]"
13
+ raise "bad #{endy} < #{start}" unless endy > start
14
+ }
15
+ out
16
+ end
17
+
18
+ def render_edited out, incoming_params
19
+ mutes = combine_arrays incoming_params['mute_start'], incoming_params['mute_end']
20
+ splits = combine_arrays incoming_params['skip_start'], incoming_params['skip_end']
21
+ video_id = incoming_params['youtube_video_id'][0]
22
+ out.puts $template.result(binding)
23
+ # html tag has already been closed...
24
+ out.puts 'mutes: ' + mutes.join(', ') + ' skips: ' + splits.join(', ') + "\n"
25
+ end