content-editing-movie-player 0.38.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (273) hide show
  1. data/.gitmodules +3 -0
  2. data/.rvmrc +1 -0
  3. data/LICENSE.TXT +20 -0
  4. data/README.TXT +225 -0
  5. data/Rakefile +206 -0
  6. data/TODO +740 -0
  7. data/VERSION +1 -0
  8. data/_DO_NOT_RUN_IT_FROM_HERE_DOWNLOAD_THE_RELEASE_ZIP_FROM_SOURCEFORGE_INSTEAD +0 -0
  9. data/bin/sensible-cinema +60 -0
  10. data/bin/sensible-cinema-cli +161 -0
  11. data/business_ideas.txt +21 -0
  12. data/change_log_with_feature_list.txt +952 -0
  13. data/documentation/DOCUMENTATION_README.TXT +44 -0
  14. data/documentation/how_to_get_files_from_dvd.txt +30 -0
  15. data/documentation/is_it_legal_to_copy_dvds.txt +97 -0
  16. data/documentation/troubleshooting.txt +30 -0
  17. data/documentation/upconversion.txt +4 -0
  18. data/experimental_online_player_ocr_readme.txt +45 -0
  19. data/go +1 -0
  20. data/go.bat +2 -0
  21. data/go.sh +1 -0
  22. data/go_ocr_tracker.bat +1 -0
  23. data/goc +1 -0
  24. data/goc.bat +1 -0
  25. data/goc.sh +1 -0
  26. data/gpl-2.0.txt +339 -0
  27. data/gplv3.txt +219 -0
  28. data/history_and_related_works_list.txt +108 -0
  29. data/inventionzy_files/cone.png +0 -0
  30. data/inventionzy_files/md5s.txt +53 -0
  31. data/inventionzy_files/play_with_inserted_scene.bat +8 -0
  32. data/inventionzy_files/play_with_overlay.bat +24 -0
  33. data/inventionzy_files/transcript_mute_vlc.txt +117 -0
  34. data/legal_draft +23 -0
  35. data/lib/add_any_bundled_gems_to_load_path.rb +32 -0
  36. data/lib/auto_window_finder.rb +41 -0
  37. data/lib/blanker.rb +104 -0
  38. data/lib/check_installed_mac.rb +34 -0
  39. data/lib/convert_thirty_fps.rb +20 -0
  40. data/lib/edl_parser.rb +387 -0
  41. data/lib/eight_three.rb +28 -0
  42. data/lib/extract/dumpstream.bat +1 -0
  43. data/lib/extract/get_init.bat +3 -0
  44. data/lib/extract/pause_early.rb +13 -0
  45. data/lib/fake_blanker.rb +35 -0
  46. data/lib/frame_accurate.rb +3 -0
  47. data/lib/gui/base.rb +748 -0
  48. data/lib/gui/create-file.rb +24 -0
  49. data/lib/gui/create.rb +581 -0
  50. data/lib/gui/dependencies.rb +219 -0
  51. data/lib/gui/normal.rb +123 -0
  52. data/lib/gui/upconvert.rb +284 -0
  53. data/lib/keyboard_input.rb +60 -0
  54. data/lib/media_info_parser.rb +27 -0
  55. data/lib/mouse_forever.rb +19 -0
  56. data/lib/movie_hasher.rb +27 -0
  57. data/lib/mplayer_edl.rb +42 -0
  58. data/lib/muter.rb +87 -0
  59. data/lib/ocr.rb +125 -0
  60. data/lib/ocr_seed/netflix_b9.bmp +0 -0
  61. data/lib/overlayer.rb +373 -0
  62. data/lib/screen_tracker.rb +269 -0
  63. data/lib/subtitle_profanity_finder.rb +294 -0
  64. data/lib/vlc_programmer.rb +112 -0
  65. data/lib/zoom_player_max_edl.rb +50 -0
  66. data/never_do +40 -0
  67. data/notes_for_potential_developers.txt +46 -0
  68. data/preamble +17 -0
  69. data/roadmap_possibilities +12 -0
  70. data/spec/arse.srt +41 -0
  71. data/spec/auto_window_finder.spec.rb +65 -0
  72. data/spec/bad_beginning.srt +3778 -0
  73. data/spec/blanker.spec.rb +60 -0
  74. data/spec/common.rb +81 -0
  75. data/spec/convert_image.rb +25 -0
  76. data/spec/deity_end.srt +11 -0
  77. data/spec/dragon.srt +34 -0
  78. data/spec/edl_parser.spec.rb +270 -0
  79. data/spec/frame_accurate.spec.rb +71 -0
  80. data/spec/keyboard_input.spec.rb +73 -0
  81. data/spec/media_info_parser.spec.rb +29 -0
  82. data/spec/mplayer_edl.spec.rb +100 -0
  83. data/spec/muter.spec.rb +50 -0
  84. data/spec/notes +4996 -0
  85. data/spec/ocr.spec.rb +119 -0
  86. data/spec/overlayer.spec.rb +440 -0
  87. data/spec/screen_tracker.spec.rb +318 -0
  88. data/spec/sensible_cinema_gui.spec.rb +452 -0
  89. data/spec/subtitle_profanity_finder.spec.rb +224 -0
  90. data/spec/test_yaml.yml +4 -0
  91. data/spec/tsmuxer.output +33 -0
  92. data/spec/vlc_programmer.spec.rb +124 -0
  93. data/spec/youtube_edl.spec.rb +28 -0
  94. data/spec/zoom_player_max_edl.spec.rb +29 -0
  95. data/template_bats/README_DISTRO.TXT +8 -0
  96. data/template_bats/RUN SENSIBLE CINEMA CLICK HERE WINDOWS.bat +25 -0
  97. data/template_bats/_DO_NOT_RUN_IT_FROM_HERE_DOWNLOAD_THE_RELEASE_ZIP_FROM_SOURCEFORGE_INSTEAD +0 -0
  98. data/template_bats/mac/RUN SENSIBLE CINEMA CLICK HERE.command +5 -0
  99. data/template_bats/mac/advanced--create or edit sensible cinema edit list files.command +3 -0
  100. data/template_bats/mac/advanced--run-upconverting-video-player.command +3 -0
  101. data/template_bats/pc/advanced--create or edit sensible cinema edit list files.bat +2 -0
  102. data/template_bats/pc/advanced--run-upconverting-video-player.bat +2 -0
  103. data/todo.build_library.txt +11 -0
  104. data/todo.inventionzy.txt +162 -0
  105. data/todo.open_edl_list_org.txt +169 -0
  106. data/todo.propaganda +107 -0
  107. data/todo.subtitle +17 -0
  108. data/todo.upconvert +53 -0
  109. data/upconvert.bat +1 -0
  110. data/upconvert_from_screen/go_upscaling.bat +12 -0
  111. data/upconvert_from_screen/go_upscaling_works +0 -0
  112. data/upconvert_from_screen/old/latest2/combine_video.avs +23 -0
  113. data/upconvert_from_screen/old/latest2/go_no_upscaling.bat +1 -0
  114. data/upconvert_from_screen/old/latest2/go_upscaling.bat +12 -0
  115. data/upconvert_from_screen/old/latest2/push2.GRF +0 -0
  116. data/upconvert_from_screen/old/latest2/push3.grf +0 -0
  117. data/upconvert_from_screen/old/latest2/setup_capture_coords.rb +27 -0
  118. data/upconvert_from_screen/old/latest2/setup_directshow_filter_params.rb +29 -0
  119. data/upconvert_from_screen/old/latest2/upconvert_from_screen_me2.avs +19 -0
  120. data/upconvert_from_screen/old/latest_now_possibly_oudated/push2.GRF +0 -0
  121. data/upconvert_from_screen/old/latest_now_possibly_oudated/upconvert_from_screen_me2.avs +18 -0
  122. data/upconvert_from_screen/old/position_window.png +0 -0
  123. data/upconvert_from_screen/old/push_source_desktop.GRF +0 -0
  124. data/upconvert_from_screen/old/record_screen/record.bat +2 -0
  125. data/upconvert_from_screen/old/upconvert_from_screen.avs +21 -0
  126. data/upconvert_from_screen/old/upconvert_from_screen_me.avs +21 -0
  127. data/upconvert_from_screen/old/upconvert_from_screen_me2.avs +3 -0
  128. data/upconvert_from_screen/old/upconvert_from_screen_me_push_source.avs +3 -0
  129. data/upconvert_from_screen/old/uscreen.GRF +0 -0
  130. data/upconvert_from_screen/old/uscreen_me.GRF +0 -0
  131. data/upconvert_from_screen/push3.grf +0 -0
  132. data/upconvert_from_screen/upconvert_from_screen_me2.avs +19 -0
  133. data/vendor/movie-content-editor-read-only/.metadata/.lock +0 -0
  134. data/vendor/movie-content-editor-read-only/.metadata/.mylyn/.tasks.xml.zip +0 -0
  135. data/vendor/movie-content-editor-read-only/.metadata/.mylyn/repositories.xml.zip +0 -0
  136. data/vendor/movie-content-editor-read-only/.metadata/.mylyn/tasks.xml.zip +0 -0
  137. data/vendor/movie-content-editor-read-only/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/history.version +1 -0
  138. data/vendor/movie-content-editor-read-only/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.index +0 -0
  139. data/vendor/movie-content-editor-read-only/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.version +1 -0
  140. data/vendor/movie-content-editor-read-only/.metadata/.plugins/org.eclipse.core.resources/.root/2.tree +0 -0
  141. data/vendor/movie-content-editor-read-only/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources +0 -0
  142. data/vendor/movie-content-editor-read-only/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.core.resources.prefs +3 -0
  143. data/vendor/movie-content-editor-read-only/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.ui.prefs +14 -0
  144. data/vendor/movie-content-editor-read-only/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.context.core.prefs +3 -0
  145. data/vendor/movie-content-editor-read-only/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.ide.prefs +5 -0
  146. data/vendor/movie-content-editor-read-only/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.prefs +3 -0
  147. data/vendor/movie-content-editor-read-only/.metadata/.plugins/org.eclipse.jdt.core/nonChainingJarsCache +0 -0
  148. data/vendor/movie-content-editor-read-only/.metadata/.plugins/org.eclipse.jdt.core/variablesAndContainers.dat +0 -0
  149. data/vendor/movie-content-editor-read-only/.metadata/.plugins/org.eclipse.jdt.ui/OpenTypeHistory.xml +2 -0
  150. data/vendor/movie-content-editor-read-only/.metadata/.plugins/org.eclipse.jdt.ui/QualifiedTypeNameHistory.xml +2 -0
  151. data/vendor/movie-content-editor-read-only/.metadata/.plugins/org.eclipse.jdt.ui/dialog_settings.xml +10 -0
  152. data/vendor/movie-content-editor-read-only/.metadata/.plugins/org.eclipse.ui.ide/dialog_settings.xml +11 -0
  153. data/vendor/movie-content-editor-read-only/.metadata/.plugins/org.eclipse.ui.intro/dialog_settings.xml +4 -0
  154. data/vendor/movie-content-editor-read-only/.metadata/.plugins/org.eclipse.ui.workbench/dialog_settings.xml +10 -0
  155. data/vendor/movie-content-editor-read-only/.metadata/.plugins/org.eclipse.ui.workbench/workbench.xml +232 -0
  156. data/vendor/movie-content-editor-read-only/.metadata/.plugins/org.eclipse.ui.workbench/workingsets.xml +4 -0
  157. data/vendor/movie-content-editor-read-only/.metadata/version.ini +1 -0
  158. data/vendor/movie-content-editor-read-only/.project +17 -0
  159. data/vendor/movie-content-editor-read-only/.pydevproject +11 -0
  160. data/vendor/movie-content-editor-read-only/.settings/org.eclipse.core.resources.prefs +6 -0
  161. data/vendor/movie-content-editor-read-only/SubIt.py +171 -0
  162. data/vendor/movie-content-editor-read-only/VLCMacVideo.py +257 -0
  163. data/vendor/movie-content-editor-read-only/VideoMac.ui +102 -0
  164. data/vendor/movie-content-editor-read-only/badwords.txt +4 -0
  165. data/vendor/movie-content-editor-read-only/blank.srt +4 -0
  166. data/vendor/movie-content-editor-read-only/edit.py +197 -0
  167. data/vendor/movie-content-editor-read-only/mergeCommands.py +73 -0
  168. data/vendor/movie-content-editor-read-only/mute.txt +5 -0
  169. data/vendor/movie-content-editor-read-only/panda.srt +4235 -0
  170. data/vendor/movie-content-editor-read-only/panda_custom.txt +3 -0
  171. data/vendor/movie-content-editor-read-only/panda_edit.srt +4235 -0
  172. data/vendor/movie-content-editor-read-only/subtitle.py +90 -0
  173. data/vendor/movie-content-editor-read-only/vlc.py +5579 -0
  174. data/vendor/movie-content-editor-read-only/vlcwidget.py +154 -0
  175. data/vendor/mplayer_patches/how_to_doze.bat +6 -0
  176. data/vendor/mplayer_patches/port_dir/PortIndex.quick +2 -0
  177. data/vendor/mplayer_patches/port_dir/how_to +20 -0
  178. data/vendor/mplayer_patches/port_dir/multimedia/mplayer-edl/Portfile +285 -0
  179. data/vendor/mplayer_patches/port_dir/multimedia/mplayer-edl/files/configure.x11.patch +20 -0
  180. data/vendor/mplayer_patches/port_dir/multimedia/mplayer-edl/files/llvm-gcc-workaround.patch +11 -0
  181. data/vendor/mplayer_patches/port_dir/multimedia/rdp-projects/Portfile +43 -0
  182. data/vendor/mplayer_patches/port_dir_is_for_mac +0 -0
  183. data/www/content_editor.html +92 -0
  184. data/www/index.html +47 -0
  185. data/www/upconverting_movie_player.html +62 -0
  186. data/www/video reel.jpg +0 -0
  187. data/www/youtube_edl/.htaccess +44 -0
  188. data/www/youtube_edl/control_youtube.rhtml +141 -0
  189. data/www/youtube_edl/dispatch.fcgi +25 -0
  190. data/www/youtube_edl/render_edited.rb +25 -0
  191. data/www/youtube_edl/server_this_dir.rb +6 -0
  192. data/www/youtube_edl/todo +23 -0
  193. data/www/zoomplayer_max.png +0 -0
  194. data/zamples/edit_decision_lists/dvds/Harry Potter 2 chamber of secrets.txt +22 -0
  195. data/zamples/edit_decision_lists/dvds/aa_example_delete_list_that_has_no_cuts_in_it.txt +10 -0
  196. data/zamples/edit_decision_lists/dvds/aladdin.txt +30 -0
  197. data/zamples/edit_decision_lists/dvds/bambi.txt +17 -0
  198. data/zamples/edit_decision_lists/dvds/big_buck_bunny_dvd.txt +23 -0
  199. data/zamples/edit_decision_lists/dvds/bob the builder pets in a pickle.txt +10 -0
  200. data/zamples/edit_decision_lists/dvds/bobs_big_plan.txt +10 -0
  201. data/zamples/edit_decision_lists/dvds/cars_2.txt +26 -0
  202. data/zamples/edit_decision_lists/dvds/cars_disney.txt +40 -0
  203. data/zamples/edit_decision_lists/dvds/condor_man_widescreen.txt +22 -0
  204. data/zamples/edit_decision_lists/dvds/cool runnings.txt +53 -0
  205. data/zamples/edit_decision_lists/dvds/court_jester.txt +24 -0
  206. data/zamples/edit_decision_lists/dvds/edls_being_edited/amazing_grace.txt +49 -0
  207. data/zamples/edit_decision_lists/dvds/edls_being_edited/father_goose.txt +41 -0
  208. data/zamples/edit_decision_lists/dvds/edls_being_edited/harry_potter_and_the_goblet_of_fire.txt +45 -0
  209. data/zamples/edit_decision_lists/dvds/edls_being_edited/hugo.txt +31 -0
  210. data/zamples/edit_decision_lists/dvds/edls_being_edited/making_marriage_work.txt +15 -0
  211. data/zamples/edit_decision_lists/dvds/edls_being_edited/national_treasure.txt +26 -0
  212. data/zamples/edit_decision_lists/dvds/edls_being_edited/percy_jackson_lightening_thief.txt +40 -0
  213. data/zamples/edit_decision_lists/dvds/edls_being_edited/percy_jackson_lightening_thief_mute_scary.txt +23 -0
  214. data/zamples/edit_decision_lists/dvds/edls_being_edited/prince_of_egypt.txt +28 -0
  215. data/zamples/edit_decision_lists/dvds/edls_being_edited/puss_in_boots.txt +33 -0
  216. data/zamples/edit_decision_lists/dvds/edls_being_edited/ratatouille.txt +35 -0
  217. data/zamples/edit_decision_lists/dvds/edls_being_edited/rio.txt +24 -0
  218. data/zamples/edit_decision_lists/dvds/edls_being_edited/test_delete_list_for_experimenting_with.txt +10 -0
  219. data/zamples/edit_decision_lists/dvds/edls_being_edited/the_explorers.txt +49 -0
  220. data/zamples/edit_decision_lists/dvds/finding_neverland.txt +32 -0
  221. data/zamples/edit_decision_lists/dvds/flight_of_the_navigator.txt +40 -0
  222. data/zamples/edit_decision_lists/dvds/happiest baby on the block.txt +9 -0
  223. data/zamples/edit_decision_lists/dvds/harry_potter_3_prisoner_of_azkaban.txt +37 -0
  224. data/zamples/edit_decision_lists/dvds/hitchhiker's_guide_to_the_galaxy.txt +32 -0
  225. data/zamples/edit_decision_lists/dvds/how_to_train_your_dragon.txt +25 -0
  226. data/zamples/edit_decision_lists/dvds/if_a_man_answers.txt +43 -0
  227. data/zamples/edit_decision_lists/dvds/innerspace.txt +77 -0
  228. data/zamples/edit_decision_lists/dvds/iq.txt +32 -0
  229. data/zamples/edit_decision_lists/dvds/king_of_kings.txt +28 -0
  230. data/zamples/edit_decision_lists/dvds/kung_fu_panda_1.txt +17 -0
  231. data/zamples/edit_decision_lists/dvds/legend_of_the_guardians_the_owls_of_gahoole.txt +18 -0
  232. data/zamples/edit_decision_lists/dvds/monsters_vs_aliens.txt +41 -0
  233. data/zamples/edit_decision_lists/dvds/muppet_treasure_island.txt +21 -0
  234. data/zamples/edit_decision_lists/dvds/nanny_mcphee.txt +31 -0
  235. data/zamples/edit_decision_lists/dvds/narnia_voyage_of_the_dawn_treader.txt +16 -0
  236. data/zamples/edit_decision_lists/dvds/pack_jackson_wedding_2007-03-03.txt +31 -0
  237. data/zamples/edit_decision_lists/dvds/peter_pan.txt +29 -0
  238. data/zamples/edit_decision_lists/dvds/remember_the_titans.txt +35 -0
  239. data/zamples/edit_decision_lists/dvds/sintel_open_source_blender_ntsc_dvd.txt +22 -0
  240. data/zamples/edit_decision_lists/dvds/snow_white_and_the_7_dwarfs_1937.txt +19 -0
  241. data/zamples/edit_decision_lists/dvds/speed_racer.txt +47 -0
  242. data/zamples/edit_decision_lists/dvds/tangled.txt +21 -0
  243. data/zamples/edit_decision_lists/dvds/tron_legacy.txt +29 -0
  244. data/zamples/edit_decision_lists/dvds/turn_around_alma_younger.txt +17 -0
  245. data/zamples/edit_decision_lists/files/conference_music_video.txt +10 -0
  246. data/zamples/edit_decision_lists/netflix_instant/avatar-last-air-bender-movie.txt +13 -0
  247. data/zamples/edit_decision_lists/netflix_instant/avatar-last-airbender-series.txt +1 -0
  248. data/zamples/edit_decision_lists/netflix_instant/greatest_story_ever_told_netflix.txt +10 -0
  249. data/zamples/edit_decision_lists/netflix_instant/wrinkle-in-time.txt +23 -0
  250. data/zamples/edit_decision_lists/notes_on_movies_without_edls_yet/tron.txt +10 -0
  251. data/zamples/edit_decision_lists/old_not_yet_updated/dvds/White Christmas.txt +15 -0
  252. data/zamples/edit_decision_lists/old_not_yet_updated/dvds/all_dogs_go_to_heaven.txt +9 -0
  253. data/zamples/edit_decision_lists/old_not_yet_updated/dvds/cars_disney.txt +24 -0
  254. data/zamples/edit_decision_lists/old_not_yet_updated/dvds/happy_feet.txt +12 -0
  255. data/zamples/edit_decision_lists/old_not_yet_updated/dvds/labyrinth.txt +17 -0
  256. data/zamples/edit_decision_lists/old_not_yet_updated/dvds/star_trek_generations_hulu.txt +8 -0
  257. data/zamples/edit_decision_lists/old_not_yet_updated/example_edit_decision_list.txt +14 -0
  258. data/zamples/edit_decision_lists/old_not_yet_updated/youtube/gummy_bear_song_youtube.txt +9 -0
  259. data/zamples/edit_decision_lists/youtube/demo_mutes.txt +12 -0
  260. data/zamples/edit_decision_lists/youtube/nuki_song_youtube.txt +14 -0
  261. data/zamples/edit_decision_lists/youtube/nuki_song_youtube_pointer.txt +3 -0
  262. data/zamples/players/how_to_create_more_players.txt +24 -0
  263. data/zamples/players/hulu/total_length_over_an_hour.txt +25 -0
  264. data/zamples/players/netflix/netflix_firefox_non_maximized.txt +25 -0
  265. data/zamples/players/vlc/full_screened_total_length_over_an_hour.txt +27 -0
  266. data/zamples/players/vlc/windowed_total_length_over_an_hour.txt +26 -0
  267. data/zamples/players/vlc/windowed_total_length_under_an_hour.txt +22 -0
  268. data/zamples/players/youtube/full_screened_1024x768.txt +20 -0
  269. data/zamples/players/youtube/full_screened_1152x864.txt +20 -0
  270. data/zamples/players/youtube/full_screened_1680x1050.txt +20 -0
  271. data/zamples/players/youtube/normal_in_youtube.com.chrome.txt +23 -0
  272. data/zamples/players/youtube/note_these_assume_less_than_10_minutes_length.txt +2 -0
  273. metadata +483 -0
@@ -0,0 +1,3 @@
1
+ [submodule "lib/jruby-swing-helpers"]
2
+ path = lib/jruby-swing-helpers
3
+ url = https://github.com/rdp/jruby-swing-helpers.git
data/.rvmrc ADDED
@@ -0,0 +1 @@
1
+ rvm use jruby
@@ -0,0 +1,20 @@
1
+ All files (c) Roger Pack 2010-2011
2
+
3
+ All files released under the GPLv3 license [1] unless otherwise specified. Ping me if you want/need this changed at some point.
4
+
5
+ EDL (delete list/edit list/EDL) files are released under the Creative Commons License, however.
6
+
7
+ Note: may call out to some 3rd party libraries/executables under their own (separate, open source) licenses and distributions, but they are contained
8
+ packaged for convenience. They have their own source codes available.
9
+
10
+ Note also that we used parts of the 7-Zip program, that 7-Zip is licensed under the GNU LGPL license, see http://www.7-zip.org, where its source code can be found.
11
+
12
+ Ffmpeg is included, under the GPLv2: http://www.ffmpeg.org/legal.html http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
13
+
14
+ unzip.exe is herein included, under the info-zip license: http://www.info-zip.org/license.html
15
+
16
+ Some binary builds of dvdid are also distributed here. See http://www.srcf.ucam.org/~cjk32/dvdid (in an email he said he'd release them under a BSD or other permissive type license)
17
+
18
+ TsMuxer binaries are included, with their own license, see vendor/tsmuxer1.10.6/licence.txt (it allows for redistribution).
19
+
20
+ See first also the file "documentation/is_it_legal_to_copy_dvds.txt" for more information on legal implications in your country.
@@ -0,0 +1,225 @@
1
+ This is a README description for the Clean Editing Movie Player
2
+
3
+ For installation/download instructions, see http://rogerdpack.t28.net/sensible-cinema
4
+
5
+ ===
6
+
7
+ CEM Player allows you to use pre-programmed edit lists
8
+ (e.g. Edit Decision Lists [2]) to watch movies that you own.
9
+ I.e. you can watch a DVD while "muting out" or skip certain scenes, deemed objectionable.
10
+ This allows you to sit back and relax as you watch a more "sanitized" showing of your DVD.
11
+
12
+ It is currently in alpha/beta, and is free (probably both forever, gplv3 license currently).
13
+ It also includes a library of EDL's that go along with various DVD's. We need volunteers/contributors
14
+ to help it grow!
15
+
16
+ To use, basically install, then insert an original DVD that you want to edited, then run sensible cinema.
17
+ It will pop up some windows where you choose what to do (watch edited, create a new EDL file, etc.).
18
+
19
+ Note: please install from the zip files at https://sourceforge.net/projects/sensible-cinema/files/
20
+ and not from github's "download" button.
21
+
22
+ CEM Player has a few "realtime viewing" options available, based on some freely available
23
+ open source popular video players [3].
24
+
25
+ On a more moral note, just because an edited video lacks profanity/sex scenes...does not
26
+ automatically make it a wholesome experience.
27
+ CEM Player does not necessarily "a clean movie make of a dirty one" even if it can cut profanity.
28
+ Don't watch it if it's not uplifting! Be nice to yourself!
29
+
30
+ dove.org and common sense media are good references for discovering the "uplifting" level of movies [4].
31
+ kids-in-mind.com is also a good reference for profanity levels, though sometimes it misses profanities,
32
+ and it also lacks timestamps to know when the profanities occur, and doesn't allow for community
33
+ contribution. Hence this project existing.
34
+
35
+ That being said, some videos are quite enjoyable once you strip out profanity/questionable content.
36
+ It's your call.
37
+
38
+ Enjoy your movies!
39
+
40
+ [1] http://en.wikipedia.org/wiki/Linear_video_editing
41
+ [2] http://www.mplayerhq.hu/DOCS/HTML/en/edl.html and http://en.wikipedia.org/wiki/Edit_decision_list
42
+ [3] mostly GPL programs, see http://www.gnu.org/licenses/ VLC Media Player, Mplayer/mencoder, ffmpeg, et al.
43
+ [4] http://lds.org/library/display/0,4945,161-1-11-1,00.html search for the word "wholesome"
44
+
45
+ == Installation ==
46
+
47
+ Installation and usage instructions available here: http://rogerdpack.t28.net/sensible-cinema
48
+ NB that you want to download it sourceforge, not from github downloads.
49
+
50
+ == Creating Your Own Edit Lists, or modifying previously existing ones ==
51
+
52
+ Sometimes the movie you want doesn't have an EDL (edit list) available for it yet.
53
+ Not to worry, you can create your own!
54
+ See https://github.com/rdp/sensible-cinema/wiki/How-to-create-your-own-EDL's
55
+
56
+ == Feedback/Contributing to Development ==
57
+
58
+ Feedback, including feature requests, comments, etc. all welcome:
59
+
60
+ See website: http://cleaneditingmovieplayet.inet2.org contact section
61
+
62
+ If you're a developer and want to help out with programmming or look and feel, etc., please do!
63
+ See notes_for_potential_developers.txt file, and also http://github.com/rdp/sensible-cinema for source, and/or
64
+ the wiki there.
65
+
66
+ If you want to donate something, please consider donating to a charity of your choice.
67
+ No really, feel free, go ahead.
68
+
69
+ == FAQ ==
70
+
71
+ Q. How do I watch these on my TV, not just on my computer?
72
+ A. One way is to plug your computer into your TV.
73
+ For instance, position a laptop near your TV and hook it in. Newer TV's support this.
74
+ Or buy a very long monitor cord and plug it in from your desktop/laptop.
75
+ You could also buy a projector, attach it to your computer/laptop, and then use that to watch it.
76
+ If you're interested in also being able to "beam" it from your computer to your game console (ex: PS3) ping me--I might have
77
+ something in mind that could help, though hasn't been created yet. (Playon.tv does something like this, too, but
78
+ I might come up with a competitor to it if desired, as the existing one costs money).
79
+ You may be able to create your own edited version of a DVD, see section "Creating an edited DVD"
80
+ Another good option is to purchase and use a clearplay player, with accompanying subscription.
81
+
82
+ Q. I want to give an edited DVD to a friend, how do I do that well?
83
+ A. Give them the original, non-edited DVD and then give them a link to sensible-cinema's website :)
84
+
85
+ Q. Can I use this with Windows Media Center?
86
+ A. Yes, just use some WMC plugin that allows you to "call out" to a 3rd party software to play your files.
87
+ Then use the "advanced" mode "create side-by-side EDL file" to create an EDL for your previously existing file.
88
+ Then make your WMC plugin "call out" to smplayer to play those files (through whatever means it necessary), and
89
+ it will automatically pick up and use the EDL file.
90
+ You could also use the same side-by-side EDL file with XBMC, which also honors them (need at least an Eden release version).
91
+
92
+ Q. Is it unethical to watch edited movies?
93
+ Well, producers have been making "airplane edited" movies forever, why should this offend them? :)
94
+ http://en.wikipedia.org/wiki/Re-edited_film
95
+ But anyway if you don't find it ethical, then do yourself a favor don't watch them.
96
+
97
+ Q. Can I know if movies in the theaters have profanity in them?
98
+ A. You can--you can download their subtitle file, then use the "part subtitle" button to tell if even movies
99
+ *in the theater* have profanity (this won't help you skip that profanity, obviously, if you go to see it, but it's
100
+ a heads up). Kids-in-mind.com and common sense media reviews are helpful, as well, though sometimes they miss
101
+ profanity words, one or two.
102
+
103
+ == Caveats ==
104
+
105
+ NB that "someone" has to first create a edit list, per DVD.
106
+ If one doesn't yet exist for the DVD you want edited,
107
+ you could create it yourself, or employ somebody to create it. Make sure to submit it
108
+ back to us when you're done, so that the rest of the users can benefit from it.
109
+ Fortunately just one person has to do it, once, for everybody to benefit, and the
110
+ editing process is not too bad.
111
+
112
+ We also have a subtitle parser which really helps locate profanity more conveniently, so that will help you
113
+ build your edit list.
114
+
115
+ Also note that if your DVD has scratches that cause it to skip, the time signatures will be off,
116
+ so we recommend to always clean your discs first!
117
+
118
+ == Motivation ==
119
+
120
+ The initial motivation for the project was that I dislike deity profanity in movies.
121
+ And really any profanity is jarring, if you're not used to it in real life, and can
122
+ put me a bit on edge when I watch an otherwise enjoyable movie.
123
+ Also sometimes producers put in certain scenes (read: sex scenes)
124
+ just to get a desired rating.
125
+ I don't want those scenes, but still want to be able to enjoy more movies :)
126
+
127
+ I once tried Clearplay (a "filter"ed DVD player)
128
+ but (for me) it didn't cut it. It costs money monthly (I'm too cheap to pay--and many
129
+ many other people don't use it because of this...). Casual users no longer have the
130
+ option to buy specific "filters" but are obliged to purchase a monthly subscription,
131
+ so it doesn't make sense financially for many casual movie viewers.
132
+ For instance, if you use redbox every week, and then have to subscribe to clearplay,
133
+ it could triple your total cost.
134
+ Their filters sometimes don't cut out all undesired content (ex: Saints and
135
+ Soldiers left several profanities in...which was unexpected).
136
+ If your standards differ from theirs, I guess you're out of luck.
137
+ Clearplay apparently also runs a rather
138
+ confusing subscription policy, or so I'm told [1], and their DVD players that
139
+ are a bit shaky at times [2], so I'm told. Their DVD players aren't quite as readily accessible (read:
140
+ can't buy them at walmart), nor as cheap to buy as some others.
141
+ Clearplay also doesn't seem to have much community collaboration/review (though you can email them feedback).
142
+ They also did't have filters for all movies that I, at times, wanted to watch edited (Condorman and Tron
143
+ lacking last time I checked...probably because they were too
144
+ obscure. Also it doesn't have filters for educational videos, etc.)
145
+ If there isn't a filter, you basically have to request one and then *hope* they get around to it.
146
+ It might take a bit longer than you'd hope (read: years). Or it might never be made.
147
+ Also, some people watch movies only on computer, and they
148
+ no longer seem to offer a computer player, just hardware players. They also don't edit streamed
149
+ online movies either (last time I checked, anyway), nor offer an edited blu-ray player.
150
+ I also emailed them once (2003?) to inform them I'd be making an open source
151
+ equivalent, and haven't heard back, which I assume to mean implicitly
152
+ they're all for it (in reality this project is more like in-home cleanflicks than clearplay, anyway)
153
+ Also clearplay isn't quite flexible enough, editing out only profanity/sex/violence et al (and based
154
+ only on their own criteria). Some users may want to,
155
+ for example, skip the intro's to specific movies (like older movies with long songs and no
156
+ content during the intro) because...they want to get to the movie faster.
157
+ Or skip commercials in some personal DVD recording.
158
+ Or use it on their home dvd's. Clearplay does not allow for any of these.
159
+ Also clearplay doesn't seem to users for example leave comments on their filters, to improve them, etc.
160
+ Also you can't tell from clearplay's list whether a DVD is absent because it's clean, or because they
161
+ haven't done a filter for it.
162
+ Also sometimes certain DVD's "don't work" with clearplay for some reason (rental versions?) [3]
163
+ As a friend once said "Clearplay is a bit of a hassle to use in today's day and age.
164
+ It should either have wireless or an ethernet port on it. I should
165
+ enter my login credentials to the box. When I stick a move in, it
166
+ should go to the website and download the filter."
167
+
168
+ So overall I wanted to build my own that overcame some of these hurdles.
169
+
170
+ I also wanted to get a prototype out there of some ideas so that
171
+ others can't later patent them and pretend that they were first inventors later :)
172
+
173
+ See also the "Overly Verbose History" section.
174
+
175
+ [1] http://www.amazon.com/gp/product/B002YPRW7S/ref=cm_rdp_product
176
+ "...I agree that it is not made clear on their website that if you don't continue your membership, you can't continue
177
+ to use the [previously downloaded] filters"
178
+
179
+ [2] http://deseretbook.com/ClearPlay-HDMI-DVD-Player-30-Day-Trial-Membership/i/5038491
180
+ "We bought a clearplay player about 2 years ago. It worked great, until it just stopped working. I called their support line,
181
+ and they told us the model we got was defective, and that the new one was much better and we could get it at a discount, but
182
+ the next one just died also."
183
+
184
+ [3] http://blog.clearplay.com/2010/02/time-travelers-wife.html comments
185
+
186
+ == History ==
187
+
188
+ See the file history_and_related_works_list.txt for an overly verbose history.
189
+ Also see the file change_log_with_feature_list.txt.
190
+
191
+ == Related Works ==
192
+
193
+ See the file history_and_related_works_list.txt
194
+
195
+ == License ==
196
+
197
+ See the included LICENSE.TXT file for licensing and usage terms (basically it's released under gplv3).
198
+ Some other programs are (distributed separately and) used, if present. These are
199
+ typically released under their own copy of the gplv2 license, though some have differing licenses.
200
+
201
+ EDL files themselves are released under the Creative Commons License, however.
202
+ See first also the file "is_it_legal_to_copy_dvds.txt" for more information on legal use in your country.
203
+
204
+ == Troubleshooting ==
205
+
206
+ See the file documentation/troubleshooting.txt, or contact (see the feedback/development section).
207
+
208
+ == Thanks ==
209
+
210
+ Thanks to Jarmo for the win32-screenshot gem, the mini_magick gem authors, jruby guys, etc.
211
+ The combination of these tools made programming this actually something of a pleasure,
212
+ and a breeze cross platform.
213
+ CEM Player leverages code from lots of other projects (see LICENSE.TXT)--many thanks to
214
+ the authors and maintainers of said libraries, and anybody else I forgot to mention.
215
+ CEM Player also includes a conglomeration of the good ideas from several people who contacted me
216
+ over time. Thanks for your contributions.
217
+
218
+ == Competition/re-use of files ==
219
+
220
+ Note that competition/use of files from sensible cinema is welcome!
221
+
222
+ In fact, the current end goal is to publish the edit lists (EDL's) to a separate repository with its
223
+ own API under the CC license, meaning that even "for profit" users can use them for whatever other use they want, hopefully
224
+ good uses :) More direct direct competitors are also welcome here. I only made this because I had to
225
+ and nothing like it existed, so if something else springs up, I'm actually happy to use it instead, too.
@@ -0,0 +1,206 @@
1
+ require 'rubygems'
2
+ require 'jeweler' # gem
3
+ require 'os' # gem
4
+
5
+ ENV['PATH'] = "C:\\Program Files (x86)\\Git\\cmd;" + ENV['PATH'] # for jeweler's git gem hackaround...
6
+
7
+ Jeweler::Tasks.new do |s|
8
+ s.name = "content-editing-movie-player"
9
+ s.summary = "an EDL scene-skipper/bleeper that works with DVD's and files and online players like netflix instant"
10
+ s.email = "rogerdpack@gmail.com"
11
+ s.homepage = "http://github.com/rdp"
12
+ s.authors = ["Roger Pack"]
13
+
14
+ # IF CHANGED PUBLISH NEW GEM [and delete pkg] :)
15
+ s.add_dependency 'os', '>= 0.9.4'
16
+ s.add_dependency 'sane', '>= 0.25.4'
17
+ s.add_dependency 'rdp-win32screenshot', '= 0.0.9'
18
+ s.add_dependency 'mini_magick', '>= 3.1' # for ocr...
19
+ s.add_dependency 'whichr', '>= 0.3.6'
20
+ s.add_dependency 'rdp-rautomation', '> 0.6.3' # LODO use mainline with next release, though I can't remember why
21
+ s.add_dependency 'rdp-ruby-wmi' # for windows
22
+ s.add_dependency 'plist' # for mac
23
+ s.add_dependency 'jruby-win32ole' # jruby-complete.jar doesn't include windows specifics...
24
+ s.add_dependency 'ffi' # mouse, etc. needed for windows MRI, probably jruby too [windows]
25
+ s.files.exclude '**/*.exe', '**/*.wav', '**/images/*', 'vendor/*'
26
+ s.add_development_dependency 'hitimes' # now jruby compat!
27
+ s.add_development_dependency 'rspec', '> 2'
28
+ s.add_development_dependency 'jeweler'
29
+ s.add_development_dependency 'rake'
30
+ if ENV['for_gem_release']
31
+ # add as real dependencies for now, as gem install --development is still broken https://github.com/rubygems/rubygems/issues/309
32
+ for gem in s.development_dependencies #['hitimes', 'rspec', 'jeweler', 'rake']
33
+ s.add_dependency gem.name, gem.requirement
34
+ end
35
+ end
36
+ end
37
+
38
+ desc 'run all specs'
39
+ task 'spec' do
40
+ failed = []
41
+ Dir.chdir 'spec' do
42
+ for file in Dir['*spec*.rb'] do
43
+ puts "Running " + file
44
+ if !system(OS.ruby_bin + " " + file)
45
+ failed << file
46
+ end
47
+ end
48
+ end
49
+ if failed.length == 0
50
+ p 'all specs passed!'
51
+ else
52
+ p 'at least one spec failed!', failed
53
+ end
54
+
55
+ end
56
+
57
+ def get_transitive_dependencies dependencies
58
+ new_dependencies = []
59
+ dependencies.each{|d|
60
+ gem d.name # make sure it's loaded so that it'll be in Gem.loaded_specs
61
+ begin
62
+ dependency_spec = Gem.loaded_specs.select{|name, spec| name == d.name}[0][1]
63
+ rescue
64
+ raise 'possibly dont have that gem are you running jruby for sure?' + d.name + Gem.loaded_specs.select{|name, spec| name}.inspect
65
+ end
66
+ transitive_deps = dependency_spec.runtime_dependencies
67
+ new_dependencies << transitive_deps
68
+ }
69
+ new_dependencies.flatten.uniq
70
+ end
71
+
72
+ desc 'clear_and_copy_vendor_cache'
73
+ task 'clear_and_copy_vendor_cache' do
74
+ FileUtils.rm_rf "../cache.bak"
75
+ system("cp -r vendor/cache ../cache.bak") # so we can retrieve it back later
76
+ Dir['vendor/cache/*'].each{|f|
77
+ FileUtils.rm_rf f
78
+ raise 'unable to delete: ' + f if File.exist?(f)
79
+ }
80
+ end
81
+
82
+ def read_spec
83
+ eval File.read('content-editing-movie-player.gemspec')
84
+ end
85
+
86
+ desc 'collect binary and gem deps for distribution'
87
+ task 'rebundle_copy_in_dependencies' => 'gemspec' do
88
+ spec = read_spec
89
+ dependencies = spec.runtime_dependencies
90
+ dependencies = (dependencies + get_transitive_dependencies(dependencies)).uniq
91
+ FileUtils.mkdir_p 'vendor/cache'
92
+ Dir.chdir 'vendor/cache' do
93
+ dependencies.each{|d|
94
+ system("#{OS.ruby_bin} -S gem unpack #{d.name}")
95
+ }
96
+ end
97
+ end
98
+
99
+ desc 'create distro zippable dir'
100
+ task 'create_distro_dir' => :gemspec do # depends on gemspec...
101
+ raise 'need rebundle deps first' unless File.directory? 'vendor/cache'
102
+ require 'fileutils'
103
+ spec = read_spec
104
+ dir_out = spec.name + "-" + spec.version.version + '/cem-player'
105
+ old_glob = spec.name + '-*'
106
+ FileUtils.rm_rf Dir[old_glob] # remove any old versions' distro files
107
+ raise 'unable to delete...' if Dir[old_glob].length > 0
108
+
109
+ existing = Dir['*']
110
+ FileUtils.mkdir_p dir_out
111
+ FileUtils.cp_r(existing, dir_out) # copies files, subdirs in
112
+ # these belong in the parent dir, by themselves.
113
+ root_distro = "#{dir_out}/.."
114
+ FileUtils.cp_r(dir_out + '/template_bats/mac', root_distro) # the executable bit carries through somehow..
115
+ FileUtils.cp_r(dir_out + '/template_bats/pc', root_distro) # the executable bit carries through somehow..
116
+ FileUtils.cp(dir_out + '/template_bats/RUN SENSIBLE CINEMA CLICK HERE WINDOWS.bat', root_distro)
117
+ FileUtils.cp('template_bats/README_DISTRO.TXT', root_distro)
118
+ p 'created (still need to zips it) ' + dir_out
119
+ FileUtils.rm_rf Dir[dir_out + '/**/{spec}'] # don't need to distribute those..save 3M!
120
+ end
121
+
122
+ def cur_ver
123
+ File.read('VERSION').strip
124
+ end
125
+
126
+ def delete_now_packaged_dir name
127
+ FileUtils.rm_rf name
128
+ end
129
+
130
+ desc 'create *.zip,tgz'
131
+ task 'zip' do
132
+ name = 'cem-player-' + cur_ver
133
+ raise 'doesnt exist yet to zip?' unless File.directory? name
134
+ if OS.doze?
135
+ raise 'please distro from linux only so we can get mac distros too'
136
+ else
137
+ sys "zip -r #{name}.zip #{name}"
138
+ end
139
+ sys "tar -cvzf #{name}.mac-os-x.tgz #{name}"
140
+ delete_now_packaged_dir name
141
+ p 'created ' + name + '.zip,tgz and also deleted its [create from] folder'
142
+ end
143
+
144
+ def sys arg, failing_is_ok = false
145
+ 3.times { |n|
146
+ if n > 0
147
+ p 'retrying ' + arg
148
+ end
149
+ if system arg
150
+ return
151
+ end
152
+ }
153
+ raise arg + ' failed 3x!' unless failing_is_ok
154
+ end
155
+
156
+ desc 'deploy to sourceforge, after zipping'
157
+ task 'deploy' do
158
+ p 'creating sf shell'
159
+ sys "ssh rdp@ilab1.cs.byu.edu 'ssh rogerdpack,sensible-cinema@shell.sourceforge.net create'" # needed for the next command to be able to work [weird]
160
+ p 'creating sf dir'
161
+ sys "ssh rdp@ilab1.cs.byu.edu 'ssh rogerdpack,sensible-cinema@shell.sourceforge.net \"mkdir /home/frs/project/s/se/sensible-cinema/#{cur_ver}\"'", true
162
+ for suffix in [ '.zip', '.mac-os-x.tgz']
163
+ name = 'cem-player-' + cur_ver + suffix
164
+ if File.exist? name
165
+ p 'copying to ilab ' + name
166
+ sys "scp #{name} rdp@ilab1.cs.byu.edu:~/incoming"
167
+ p 'copying into sf from ilab ' + name
168
+ sys "ssh rdp@ilab1.cs.byu.edu 'scp ~/incoming/#{name} rogerdpack,sensible-cinema@frs.sourceforge.net:/home/frs/project/s/se/sensible-cinema/#{cur_ver}/#{name}'"
169
+ else
170
+ p 'not copying:' + name
171
+ end
172
+ end
173
+ p 'successfully deployed to sf! ' + cur_ver
174
+ end
175
+
176
+ # task 'gem_release' do
177
+ # FileUtils.rm_rf 'pkg'
178
+ # Rake::Task["build"].execute
179
+ # sys("#{Gem.ruby} -S gem push pkg/content-editing-movie-player-#{cur_ver}.gem")
180
+ # FileUtils.rm_rf 'pkg'
181
+ # end
182
+
183
+ def on_wbo command
184
+ sys "ssh rdp@ilab1.cs.byu.edu \"ssh wilkboar@rogerdpack.t28.net '#{command}' \""
185
+
186
+ end
187
+
188
+ desc 'sync wbo website'
189
+ task 'sync_wbo_website' do
190
+ on_wbo 'cd ~/sensible-cinema/source && git pull'
191
+ end
192
+
193
+ desc ' (releases with clean cache dir, which we need now)'
194
+ task 'full_release' => [:clear_and_copy_vendor_cache, :rebundle_copy_in_dependencies, :create_distro_dir] do # this is :release
195
+ p 'remember to run all the specs!! Have any!'
196
+ require 'os'
197
+ raise 'need jruby' unless OS.jruby?
198
+ raise unless system("git pull")
199
+ raise unless system("git push origin master")
200
+ #Rake::Task["gem_release"].execute
201
+ Rake::Task["zip"].execute
202
+ Rake::Task["deploy"].execute
203
+ Rake::Task["sync_wbo_website"].execute
204
+ system(c = "cp -r ../cache.bak/* vendor/cache")
205
+ system("rm -rf ../cache.bak")
206
+ end