content-editing-movie-player 0.38.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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