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
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.28.1
1
+ 0.34.0
@@ -18,24 +18,24 @@ This file is part of Sensible Cinema.
18
18
  =end
19
19
 
20
20
 
21
- # load sane
22
- print 'Starting Sensible Cinema...'
21
+ puts 'Starting Sensible Cinema...'
23
22
 
24
23
  require File.expand_path(File.dirname(__FILE__) + "/../lib/add_any_bundled_gems_to_load_path.rb")
25
24
  begin
26
25
  require 'sane'
27
- rescue LoadError
28
- p 'please run $ rake rebundle_copy_in_dependencies first, as we dislike needing locally installed rubygems'
29
- raise
26
+ require 'whichr'
27
+ rescue LoadError => e
28
+ raise 'please run $ rake copy dependencies command first, as we dislike needing locally installed rubygems ' + e.to_s
30
29
  end
31
30
 
32
31
  raise 'need jruby' unless OS.java?
33
- raise 'need newer jruby!' unless RUBY_DESCRIPTION >= 'jruby 1.6.0' # may not need this since we still have to accomodate for so many...oddities in it :P
34
32
 
35
- require_relative '../lib/gui/sensible-cinema-base'
36
- require_relative '../lib/gui/sensible-cinema-normal'
37
- require_relative '../lib/gui/sensible-cinema-create'
38
- require_relative '../lib/gui/sensible-cinema-upconvert'
33
+ require_relative '../lib/gui/dependencies'
34
+ require_relative '../lib/gui/base'
35
+ require_relative '../lib/gui/normal'
36
+ require_relative '../lib/gui/create' # LODO maybe don't need to require all these...
37
+ require_relative '../lib/gui/create-file'
38
+ require_relative '../lib/gui/upconvert'
39
39
 
40
40
  if $0 == __FILE__
41
41
  if ARGV.index('-h') || ARGV.index('--help')
@@ -43,13 +43,14 @@ if $0 == __FILE__
43
43
  # jruby bin/sensible-cinema # DVD/file EDL player
44
44
  $ jruby bin/sensible-cinema --create-mode # DVD output "parser/cutter" create mode [advanced]
45
45
  $ jruby bin/sensible-cinema --upconvert-mode # DVD/file upconverting player
46
+ --exit-immediately # don't show the GUI, for benchmarking startup times
46
47
  $ jruby bin/sensible-cinema-cli # the experimental OCR tracker for edited arbitrary online/local/internet players.
47
- See "Advanced" section in the developer_how_to.txt file, has its own set of options
48
-
49
- --exit-immediately [don't show the GUI, for benchmarking startup times]
48
+ run it with --help to see its various options.
49
+
50
+ $ jruby lib/**.rb Many library files have their own "main" method for example to 'just' parse an EDL file, etc. Ask for more details.
50
51
  EOL
51
52
  else
52
- a = SensibleSwing::MainWindow.new
53
+ a = SensibleSwing::MainWindow.new true, ARGV
53
54
  a.setup_default_buttons
54
55
  puts 'Please use the Sensible Cinema GUI window popup...'
55
56
  if ARGV.index('--exit-immediately')
@@ -28,7 +28,7 @@ end
28
28
  require_relative '../lib/jruby-swing-helpers/mouse'
29
29
 
30
30
  def choose_file title, dir
31
- SwingHelpers::FileDialog.new_previously_existing_file_selector_and_go title, dir
31
+ SwingHelpers.new_previously_existing_file_selector_and_go title, dir
32
32
  end
33
33
 
34
34
  def go_sc(args)
@@ -10,4 +10,12 @@ Or pay x to use filter once, or charge a "donation fee" when downloading
10
10
  SC at all, or a cut of the filter per download, or a "donation"
11
11
  per filter (with a cut) per download.
12
12
 
13
+ people can send you a file and you send it back edited to them LOL (file meani
14
+ ng a rip of some DVD they own, +- requiring them to send in an original DVD too
15
+ LOL.
16
+
17
+
13
18
  Or make it all free and rely on charitable community crowd-sourcing only :P
19
+
20
+ google TV app for $4.99
21
+ They send you the original DVD and the ripped version, you send them back an edited ripped version and their original DVD.
@@ -1,4 +1,195 @@
1
- == 0.28.1 ==
1
+ = 0.34.1 1-17-12 =
2
+
3
+ minor subtitle scanning improvements, EDL scanning improvements.
4
+
5
+ = 0.34.0 1-6-12 =
6
+
7
+ Add a youtube "user controlled playback" device yes!
8
+ Parse EDL's barely slightly more friendlier.
9
+
10
+ = 0.33.8 1-2-12 =
11
+
12
+ When you scan for profanities, it shows you a euphemized version for you to look through. Minor UI and mac fixes.
13
+
14
+ = 0.33.7 12-31-11 =
15
+
16
+ Add entry number for when it asks you for subtitles, so you won't get confused as to which one it is if there are multiple.
17
+
18
+ = 0.33.6 12-28-11 =
19
+
20
+ Some aesthetic changes to the profanity scanner and create mode.
21
+
22
+ = 0.33.5 12-24-11 =
23
+
24
+ Allow for mutes to brush up against each other, like muting from [1.0, 2.0] and then [2.0, 3.0] will work now.
25
+ Fix some other minor bugs.
26
+
27
+ = 0.33.4 12-21-11 =
28
+
29
+ Add ability to write out "euphemized" synchronized subtitle files now. Make subtitle profanity finder slightly better.
30
+
31
+ = 0.33.3 12-19-11 =
32
+
33
+ Make sync'ing the srt files *much* easier, and more automated.
34
+ Now it parses the .srt files for you, and shows you the text, so that it's human usable.
35
+ If your subtitle files already match then this doesn't matter much, but it seems like 75% of them don't.
36
+ Hooray for synchro!
37
+
38
+ Also added a new working ZoomPlayer MAX create EDL button. Ping me if anybody wants this automated like "auto start zoom player" for me
39
+ or the like. Another player, and it seems high quality, though costs.
40
+
41
+ = 0.33.2 12-19-11 =
42
+
43
+ Make it possible to programmatically spit out an EDL from a subtitle file.
44
+
45
+ = 0.33.1 12-16-11 =
46
+
47
+ Make it a user preference for how much buffering to have.
48
+
49
+ = 0.33.0 12-16-11 =
50
+
51
+ Allow for "tighter" synchronization with onscreen display timestamps, for higher accuracy compared to the underlying MPEG stream.
52
+ This is useful for DVD's that have timestamp resets in them--they should be quite accurate now.
53
+
54
+ = 0.32.5 12-15-11 =
55
+
56
+ Fix a bug in showing prompts, try to have better timing calculation for higher accuracy.
57
+
58
+ = 0.32.3,4 12-14-11 =
59
+
60
+ Fix some synchronization issues for notifying when a DVD has been inserted. Hopefully this won't crash anybody's computers :P
61
+
62
+ = 0.32.2 12-12-11 =
63
+
64
+ Add a "zoom player" prompt to the beginning. Minor license verbiage change.
65
+
66
+ = 0.32.1 12-10-11=
67
+
68
+ Fix a bug in updating DVD disk drives too frequently, which was causing WMI to crash [!]
69
+
70
+ NB that for several versions, we have been able to "extrapolate" from the DVD NAV packet time plus elapsed difference in MPEG time,
71
+ more accurate muting/frame skipping within DVD's.
72
+ Another way to do it would be to infer "more precise" actual time by "time elapsed" since the last DVD time.
73
+
74
+ ZoomPlayer Max has an excellent UI for editing EDL's, with lots of features.
75
+ can do "inverse edit" (play only lists)
76
+ can do "cut section", "jump to position", "mute audio", "hude subtitles", "end of playback"
77
+ also nice would/might be "jump to title with position" or the other mentioned in the other files herein.
78
+ It can play DVD's back edited splendidly.
79
+
80
+ = 0.32.0 12-6-11 =
81
+
82
+ New version with an "upconvert from online player" button and instructions. I haven't actually tried it out yet, but it's there.
83
+ Also new DVD defaults
84
+
85
+ Note also that the source code itself and its various commits is a description of the several inventions contained herein, esp.
86
+ when combined with their descriptions in this file and todo.inventionzy file
87
+
88
+ see also http://www.youtube.com/watch?feature=player_profilepage&v=0AsJtVyVMzk sensible cinema using keystroke combinations which mute the applications volume while tracking. the unmute actually uses volume adjustment, as well, in this example, using keyboard strokes.
89
+ see http://www.youtube.com/watch?v=8cUV8DKLOK8 sensible cinema using keystroke combinations which mute the system volume while tracking
90
+ see http://www.youtube.com/rogerdpack#p/a/u/2/gJ4jFCFPan0 show off new feature of sensible cinema v0.21.6 See the changelog for sensible cinema for details
91
+
92
+ = 0.31.8 12-3-11 =
93
+
94
+ subtitles almost work in smplayer, mac require new packages
95
+
96
+ = 0.31.7 12-3-11 =
97
+
98
+ hopefully added subtitles_to_display_relative_path
99
+
100
+ = 0.31.6 12-2-11 =
101
+
102
+ Ok this time it's squashed, ok? Please?
103
+
104
+ = 0.31.5 12-1-11 =
105
+
106
+ Cleanup DVD list bug.
107
+
108
+ = 0.31.4 11-30-11 =
109
+
110
+ Fix some windows usability issues, refresh DVD list bug. Also bump mplayer-edl
111
+
112
+ = 0.31.3 - 9-30-11
113
+
114
+ Better (again) for macs, requires mplayer-edl for everything now, better install procedures for windows
115
+ some UI improvements, more automation for creating new EDL's.
116
+ Fix some bugs on mac.
117
+
118
+ = 0.31.2 == 11-23-11
119
+
120
+ Make it work better on macs.
121
+
122
+ = 0.31.1 == 11-19-11
123
+
124
+ Always use mplayer-edl for now--this "should" allow EDl's to work with DVD's past MPEG PTS resets now.
125
+
126
+ == 0.31.0 == 11-18-11
127
+
128
+ fix mplayer-edl to actually *skip* within DVD's now. And work without any concern for mplayer_splits et al.
129
+
130
+ == 0.30.5 == 11-9-11
131
+
132
+ minor UI tweaks, and also make it have more sane testing button for create mode (more accurate now, in that it keeps the audio in sync
133
+ so you can tell if your mutes are accurate again)
134
+
135
+ == 0.30.4 == 11-8-11
136
+
137
+ Fix it to parse profanities better than a postceded by punctuation.
138
+ Add some EDL's
139
+ Minor gui tweakages.
140
+
141
+ NB that we can output XMl or JSON to transmit the EDl timestamp information easily back and forth, and
142
+ cross application, cross platform, client to service and vice versa, etc.
143
+
144
+ == 0.30.3 ==
145
+
146
+ fix bug preventing smplayer from working in normal mode (oops).
147
+ tighten up mplayer-edl timings
148
+
149
+ == 0.30.2 ==
150
+
151
+ Fix it to use custom mplayer.exe in smplayer better now [whoops], cleanup mplayer-edl
152
+
153
+ == 0.30.1 ==
154
+
155
+ There has been a user-submitted "upload/download/differentiate" location created.
156
+ new mplayer-edl was released
157
+
158
+ == 0.30.0 ==
159
+
160
+ have it use (on windows) a more powerful mplayer-edl!
161
+ cleanup UI a bit
162
+
163
+ NB that we have examplars of not doing muting all the way, but just "almost muting" or "obscuring" volume
164
+
165
+ == 0.29.1 ==
166
+
167
+ allow for creating edlout file on the fly via button
168
+
169
+ == 0.29.1 ==
170
+
171
+ Fix bugs so that file based processing will work again, attempt to humanize it a little better.
172
+
173
+ == 0.29.0 ==
174
+
175
+ Included EDL file that represents keeping things "in" instead of cutting things "out" only. And file md5sum et al, regarding said file.
176
+
177
+ Big change: if you want to edit a file, it now requires a "dvd_start_offset" so that it can coordinate between DVD's and files themselves.
178
+ I hope this coordinates "enough" or "right" now.
179
+
180
+ == 0.28.4 ==
181
+
182
+ Add button for "fast preview" with mplayer. Attempt simplify UI.
183
+
184
+ == 0.28.3 ==
185
+
186
+ Fix typo. Small other notes added.
187
+
188
+ == 0.28.{1,2} ==
189
+
190
+ NB that you can run VobSub Ripper to extract subtitles from DVD's, then use
191
+ those for editing purposes, without ever extracting images/video from the DVD.
192
+ run vsrip, choose F:\VIDEO_TS\VTS_01_0.IFO
2
193
 
3
194
  NB that we have auto-coordinating subtitle morphing software now
4
195
  to automagically align it with the actual audio/video tracks.
@@ -10,6 +201,12 @@ Also in XP: http://blogs.msdn.com/b/larryosterman/archive/2007/03/06/how-do-i-ch
10
201
 
11
202
  First attempt at mac friendly release.
12
203
 
204
+ Also has normal "user ratings" like x stars out of y.
205
+
206
+ Added also an example of "binding" or "associating" it with various review sites online/information sites about the DVD.
207
+
208
+ Also "could" use opensubtitles to auto-download subtitles, test with or without user feedback, and/or parse.
209
+
13
210
  == 0.28.0 ==
14
211
 
15
212
  Includes vendored support (experimental) for EDL playback via VLC via its internal libVLC control API
@@ -1,33 +1,35 @@
1
1
  So...is this legal?
2
2
 
3
- Unclear. In general ripping personal DVD's is legal.
3
+ Unclear. In general ripping home DVD's is legal.
4
+ Note: do not redistribute or re-sell edited DVD's, that has been deemed illegal in the US.
4
5
 
5
6
  Note also that if you don't feel it is legal in your country, you can still use the timing info given
6
- to "manually" skip/mute scenes you dislike.
7
- Also the playback in "realtime" edited (see README
8
- for a list of related works that might also do this) is probably legal
9
- under the The Family Home Movie Act of 2005.
7
+ to "manually" skip/mute scenes you dislike, via remote control.
10
8
 
11
- And making verbatim "backup copies" of commercial DVD's (I think--I'm no laywer) may fall under
12
- fair use [3]. http://fanedit.org/49/ also lists some interesting copyright ideas in the footer.
9
+ Also the playback in "realtime edited" mode (see README
10
+ for a list of related projects that also do this) is probably legal
11
+ under the The Family Home Movie Act of 2005, in the US.
12
+
13
+ Making verbatim "backup copies" of commercial DVD's (I think--I'm no laywer) might fall under
14
+ fair use [3]. http://fanedit.org/49/ also lists some interesting copyright implications in its footer.
13
15
 
14
16
  Sensible cinema doesn't include any ability to actually rip DVD's,
15
17
  and relies on you to use something else for that, to avoid liability.
16
18
  We choose a
17
19
  "you have to do the ripping through some other means" philosophy, to avoid legal issues.
18
20
  You can ask the authors of the ripping programs you use if their software is legal. Apparently
19
- libdvdcss (which some programs use) has never been legally challenged in court (or so they say),
20
- and uses a slightly different algorithm than those that have, so the jury's still out.
21
- It has been challenged in French courts and apparently found legal so this may vary
21
+ libdvdcss (which some programs use) has never been legally challenged in court (or so the authors say),
22
+ and uses a slightly different algorithm than those that have, so the jury's still out there.
23
+ It has apparently been challenged in French courts and apparently found legal so this may vary
22
24
  from country to country, as well [4].
23
25
 
24
- Using sensible-cinema also might not be more unethical than ripping your DVD collection to your hard
25
- drive so you can "keep your DVD's all in one place" or what not (which might perhaps be termed fair use), since it
26
- basically only saves parts from the original concatenated. Only original content is saved. It just happens to be bits and
26
+ Using sensible-cinema "file mode" also might not be more unethical than ripping your DVD collection to your hard
27
+ drive so you can "keep your DVD's all in one place" or what not (which might perhaps be deemed fair use), since it
28
+ basically only saves parts from the original, concatenated. Only original content is saved. It just happens to be bits and
27
29
  pieces that don't have the profanity.
28
30
  Note also that fair use at times does allow one to "record" things for personal use/backup (for example off the TV).
29
- Note also that sensible cinema does require the original DVD to be present when using it, to help enforce legality,
30
- at least for watching it/using from within sensible cinema. Certainly, do not rip DVD's you don't own.
31
+ Note also that sensible cinema does require the original DVD to be present when using it, to help enforce ownership,
32
+ at least for watching it/using from within sensible cinema. Certainly, do not rip DVD's if it's illegal to you.
31
33
 
32
34
  If general, if it's not legal in your country, then don't use it!
33
35
  You are responsible for your actions and use of the program.
@@ -35,45 +37,57 @@ It is possible that the authors of sensible-cinema are not cupable of anything
35
37
  regarding its use themselves, since they re-distribute no edited media,
36
38
  nor distribute cracking codes. Check your country's rules first. You have been warned.
37
39
 
38
- Note: do not redistribute or re-sell edited DVD's, certainly that is illegal in the US.
39
40
  We have learned from clean flicks that redistributing
40
- (well at least renting/selling) edited commercial DVD's is illegal in the US.
41
- Please don't redistribute. Consult your lawyer if you have any questions/concerns.
41
+ (well at least renting/selling) edited commercial DVD's is against copyright in the US.
42
+ Please don't. Consult your lawyer if you have any questions/concerns.
42
43
  DO NOT MAKE ILLEGAL COPIES.
43
44
  USE AT YOUR OWN RISK.
44
45
 
45
46
  In terms of copyright, some uses of sensible cinema may be legal under The Family Home Movie Act of 2005,
46
47
  at least in the United States, when viewed using the "playlist" option or "realtime" options
47
- (v 0.10'ish, later removed--used VLC), the "realtime" option (0.18.0 -> 0.21'ish +, using mplayer).
48
+ (v 0.10'ish, later removed--used VLC), the "realtime" option (v0.18.0 -> current, using mplayer).
49
+
48
50
  In general, if I have the original DVD sitting next to my TV, I don't feel bad about watching
49
51
  it edited, but please consult a laywer first if you have concerns.
50
52
 
51
- This program can also be used for editing home movies, etc (example, the "pack wedding" file herein included).
53
+ This program can also be used for editing home movies, etc (example, the "pack wedding" file included in the distro., for example).
52
54
 
53
55
  Note that this software might well be legal in the EU,
54
56
  as it is only software (if you watch it on your computer), and therefore possibly not subject to patents in certain countries
55
57
  (see "Patents and codec" in [2]).
56
58
 
57
- Also note that several ideas have been released in various releases that are disabled in later releases. Please see the mailing list and/or blog
59
+ Also note that several "new" inventionzy ideas have been released in various releases that are disabled in later releases,
60
+ for convenience reasons.
61
+ Please see the mailing list and/or blog
58
62
  for release notes http://betterlogic.com/roger, as well as http://ruby-forum.com (ruby talk ML there), and rubygems.org
59
- which lists the various released ruby sources, including release notes, and also github.com/rdp/sensible-cinema which,
60
- lists commits and changes and release notes, and is publicly available. And see also the changelog file included herein for a list.
63
+ list the various released source codes, including release notes and features available/mentioned/thought of,
64
+ and also github.com/rdp/sensible-cinema which,
65
+ lists commits, change logs, and release notes, and is publicly available and published.
66
+ And see also the changelog file included herein for a list of features/ideas published here.
61
67
  See also the README text file which contains some invention related notes.
62
- A more ancient history of various brainstorming thoughts was also described here:
68
+ A more ancient history of various brainstorming thoughts was here:
63
69
  http://betterlogic.com/roger/?p=2618
70
+
71
+ Also note that Sensible Cinema authors don't charge or make money off it.
64
72
 
65
- Never download files from the Internet and use those--we all know this is illegal.
73
+ Never download video files from the Internet and use them--this is probably illegal.
74
+ You have been warned.
66
75
 
67
- Note also that since SC requires larger raw JPEG's, this discourages piracy since those are usually for compressed videos, which don't work.
76
+ NB: YOU MUST AGREE TO THE gplv3 in order to use this software. See accompanying
77
+ LICENSE.TXT file.
68
78
 
69
- NB: YOU MUST AGREE TO THE gplv3 in order to use this software. See LICENSE.TXT file.
79
+ Have a nice day.
70
80
 
71
81
  [2] http://www.videolan.org/legal.html
72
82
  [3] http://www.macworld.com/article/150731/2010/04/dvdripping_faqs.html
73
83
  [4] http://www.videolan.org/legal.html
74
84
 
75
- http://en.wikipedia.org/wiki/DVD_Decrypter mentions fair use a bit, though in context of a different program, still interesting nonetheless.
85
+ http://en.wikipedia.org/wiki/DVD_Decrypter mentions fair use a bit, in a related context,
86
+ though in context of a different program.
87
+
88
+ Also note that this project was done under the gplv3 in Roger Pack's jurisdiction, not a product of anybody else or any other owner, nor copyright elsewise.
76
89
 
77
- Also note that this project was done under the gplv3 in Roger's jurisdiction, not a product of anybody else or any other owner, nor copyright elsewise.
90
+ Also the footnotes to fanedit.org which have some interesting related and applicable discussion of legal issues.
78
91
 
79
- Also the footnotes to fanedit.org have some related and applicable discussion of legal issues.
92
+ Also http://arstechnica.com/tech-policy/news/2010/07/apple-loses-big-in-drm-ruling-jailbreaks-are-fair-use.ars ripping "for the purpose of criticism or comment"
93
+ may be related/interesting in terms of legality
data/goc.bat CHANGED
@@ -1 +1 @@
1
- call j %* bin\sensible-cinema --create-mode
1
+ call j %* bin\sensible-cinema --create-mode --developer-mode
@@ -0,0 +1,339 @@
1
+ GNU GENERAL PUBLIC LICENSE
2
+ Version 2, June 1991
3
+
4
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
5
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
6
+ Everyone is permitted to copy and distribute verbatim copies
7
+ of this license document, but changing it is not allowed.
8
+
9
+ Preamble
10
+
11
+ The licenses for most software are designed to take away your
12
+ freedom to share and change it. By contrast, the GNU General Public
13
+ License is intended to guarantee your freedom to share and change free
14
+ software--to make sure the software is free for all its users. This
15
+ General Public License applies to most of the Free Software
16
+ Foundation's software and to any other program whose authors commit to
17
+ using it. (Some other Free Software Foundation software is covered by
18
+ the GNU Lesser General Public License instead.) You can apply it to
19
+ your programs, too.
20
+
21
+ When we speak of free software, we are referring to freedom, not
22
+ price. Our General Public Licenses are designed to make sure that you
23
+ have the freedom to distribute copies of free software (and charge for
24
+ this service if you wish), that you receive source code or can get it
25
+ if you want it, that you can change the software or use pieces of it
26
+ in new free programs; and that you know you can do these things.
27
+
28
+ To protect your rights, we need to make restrictions that forbid
29
+ anyone to deny you these rights or to ask you to surrender the rights.
30
+ These restrictions translate to certain responsibilities for you if you
31
+ distribute copies of the software, or if you modify it.
32
+
33
+ For example, if you distribute copies of such a program, whether
34
+ gratis or for a fee, you must give the recipients all the rights that
35
+ you have. You must make sure that they, too, receive or can get the
36
+ source code. And you must show them these terms so they know their
37
+ rights.
38
+
39
+ We protect your rights with two steps: (1) copyright the software, and
40
+ (2) offer you this license which gives you legal permission to copy,
41
+ distribute and/or modify the software.
42
+
43
+ Also, for each author's protection and ours, we want to make certain
44
+ that everyone understands that there is no warranty for this free
45
+ software. If the software is modified by someone else and passed on, we
46
+ want its recipients to know that what they have is not the original, so
47
+ that any problems introduced by others will not reflect on the original
48
+ authors' reputations.
49
+
50
+ Finally, any free program is threatened constantly by software
51
+ patents. We wish to avoid the danger that redistributors of a free
52
+ program will individually obtain patent licenses, in effect making the
53
+ program proprietary. To prevent this, we have made it clear that any
54
+ patent must be licensed for everyone's free use or not licensed at all.
55
+
56
+ The precise terms and conditions for copying, distribution and
57
+ modification follow.
58
+
59
+ GNU GENERAL PUBLIC LICENSE
60
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
61
+
62
+ 0. This License applies to any program or other work which contains
63
+ a notice placed by the copyright holder saying it may be distributed
64
+ under the terms of this General Public License. The "Program", below,
65
+ refers to any such program or work, and a "work based on the Program"
66
+ means either the Program or any derivative work under copyright law:
67
+ that is to say, a work containing the Program or a portion of it,
68
+ either verbatim or with modifications and/or translated into another
69
+ language. (Hereinafter, translation is included without limitation in
70
+ the term "modification".) Each licensee is addressed as "you".
71
+
72
+ Activities other than copying, distribution and modification are not
73
+ covered by this License; they are outside its scope. The act of
74
+ running the Program is not restricted, and the output from the Program
75
+ is covered only if its contents constitute a work based on the
76
+ Program (independent of having been made by running the Program).
77
+ Whether that is true depends on what the Program does.
78
+
79
+ 1. You may copy and distribute verbatim copies of the Program's
80
+ source code as you receive it, in any medium, provided that you
81
+ conspicuously and appropriately publish on each copy an appropriate
82
+ copyright notice and disclaimer of warranty; keep intact all the
83
+ notices that refer to this License and to the absence of any warranty;
84
+ and give any other recipients of the Program a copy of this License
85
+ along with the Program.
86
+
87
+ You may charge a fee for the physical act of transferring a copy, and
88
+ you may at your option offer warranty protection in exchange for a fee.
89
+
90
+ 2. You may modify your copy or copies of the Program or any portion
91
+ of it, thus forming a work based on the Program, and copy and
92
+ distribute such modifications or work under the terms of Section 1
93
+ above, provided that you also meet all of these conditions:
94
+
95
+ a) You must cause the modified files to carry prominent notices
96
+ stating that you changed the files and the date of any change.
97
+
98
+ b) You must cause any work that you distribute or publish, that in
99
+ whole or in part contains or is derived from the Program or any
100
+ part thereof, to be licensed as a whole at no charge to all third
101
+ parties under the terms of this License.
102
+
103
+ c) If the modified program normally reads commands interactively
104
+ when run, you must cause it, when started running for such
105
+ interactive use in the most ordinary way, to print or display an
106
+ announcement including an appropriate copyright notice and a
107
+ notice that there is no warranty (or else, saying that you provide
108
+ a warranty) and that users may redistribute the program under
109
+ these conditions, and telling the user how to view a copy of this
110
+ License. (Exception: if the Program itself is interactive but
111
+ does not normally print such an announcement, your work based on
112
+ the Program is not required to print an announcement.)
113
+
114
+ These requirements apply to the modified work as a whole. If
115
+ identifiable sections of that work are not derived from the Program,
116
+ and can be reasonably considered independent and separate works in
117
+ themselves, then this License, and its terms, do not apply to those
118
+ sections when you distribute them as separate works. But when you
119
+ distribute the same sections as part of a whole which is a work based
120
+ on the Program, the distribution of the whole must be on the terms of
121
+ this License, whose permissions for other licensees extend to the
122
+ entire whole, and thus to each and every part regardless of who wrote it.
123
+
124
+ Thus, it is not the intent of this section to claim rights or contest
125
+ your rights to work written entirely by you; rather, the intent is to
126
+ exercise the right to control the distribution of derivative or
127
+ collective works based on the Program.
128
+
129
+ In addition, mere aggregation of another work not based on the Program
130
+ with the Program (or with a work based on the Program) on a volume of
131
+ a storage or distribution medium does not bring the other work under
132
+ the scope of this License.
133
+
134
+ 3. You may copy and distribute the Program (or a work based on it,
135
+ under Section 2) in object code or executable form under the terms of
136
+ Sections 1 and 2 above provided that you also do one of the following:
137
+
138
+ a) Accompany it with the complete corresponding machine-readable
139
+ source code, which must be distributed under the terms of Sections
140
+ 1 and 2 above on a medium customarily used for software interchange; or,
141
+
142
+ b) Accompany it with a written offer, valid for at least three
143
+ years, to give any third party, for a charge no more than your
144
+ cost of physically performing source distribution, a complete
145
+ machine-readable copy of the corresponding source code, to be
146
+ distributed under the terms of Sections 1 and 2 above on a medium
147
+ customarily used for software interchange; or,
148
+
149
+ c) Accompany it with the information you received as to the offer
150
+ to distribute corresponding source code. (This alternative is
151
+ allowed only for noncommercial distribution and only if you
152
+ received the program in object code or executable form with such
153
+ an offer, in accord with Subsection b above.)
154
+
155
+ The source code for a work means the preferred form of the work for
156
+ making modifications to it. For an executable work, complete source
157
+ code means all the source code for all modules it contains, plus any
158
+ associated interface definition files, plus the scripts used to
159
+ control compilation and installation of the executable. However, as a
160
+ special exception, the source code distributed need not include
161
+ anything that is normally distributed (in either source or binary
162
+ form) with the major components (compiler, kernel, and so on) of the
163
+ operating system on which the executable runs, unless that component
164
+ itself accompanies the executable.
165
+
166
+ If distribution of executable or object code is made by offering
167
+ access to copy from a designated place, then offering equivalent
168
+ access to copy the source code from the same place counts as
169
+ distribution of the source code, even though third parties are not
170
+ compelled to copy the source along with the object code.
171
+
172
+ 4. You may not copy, modify, sublicense, or distribute the Program
173
+ except as expressly provided under this License. Any attempt
174
+ otherwise to copy, modify, sublicense or distribute the Program is
175
+ void, and will automatically terminate your rights under this License.
176
+ However, parties who have received copies, or rights, from you under
177
+ this License will not have their licenses terminated so long as such
178
+ parties remain in full compliance.
179
+
180
+ 5. You are not required to accept this License, since you have not
181
+ signed it. However, nothing else grants you permission to modify or
182
+ distribute the Program or its derivative works. These actions are
183
+ prohibited by law if you do not accept this License. Therefore, by
184
+ modifying or distributing the Program (or any work based on the
185
+ Program), you indicate your acceptance of this License to do so, and
186
+ all its terms and conditions for copying, distributing or modifying
187
+ the Program or works based on it.
188
+
189
+ 6. Each time you redistribute the Program (or any work based on the
190
+ Program), the recipient automatically receives a license from the
191
+ original licensor to copy, distribute or modify the Program subject to
192
+ these terms and conditions. You may not impose any further
193
+ restrictions on the recipients' exercise of the rights granted herein.
194
+ You are not responsible for enforcing compliance by third parties to
195
+ this License.
196
+
197
+ 7. If, as a consequence of a court judgment or allegation of patent
198
+ infringement or for any other reason (not limited to patent issues),
199
+ conditions are imposed on you (whether by court order, agreement or
200
+ otherwise) that contradict the conditions of this License, they do not
201
+ excuse you from the conditions of this License. If you cannot
202
+ distribute so as to satisfy simultaneously your obligations under this
203
+ License and any other pertinent obligations, then as a consequence you
204
+ may not distribute the Program at all. For example, if a patent
205
+ license would not permit royalty-free redistribution of the Program by
206
+ all those who receive copies directly or indirectly through you, then
207
+ the only way you could satisfy both it and this License would be to
208
+ refrain entirely from distribution of the Program.
209
+
210
+ If any portion of this section is held invalid or unenforceable under
211
+ any particular circumstance, the balance of the section is intended to
212
+ apply and the section as a whole is intended to apply in other
213
+ circumstances.
214
+
215
+ It is not the purpose of this section to induce you to infringe any
216
+ patents or other property right claims or to contest validity of any
217
+ such claims; this section has the sole purpose of protecting the
218
+ integrity of the free software distribution system, which is
219
+ implemented by public license practices. Many people have made
220
+ generous contributions to the wide range of software distributed
221
+ through that system in reliance on consistent application of that
222
+ system; it is up to the author/donor to decide if he or she is willing
223
+ to distribute software through any other system and a licensee cannot
224
+ impose that choice.
225
+
226
+ This section is intended to make thoroughly clear what is believed to
227
+ be a consequence of the rest of this License.
228
+
229
+ 8. If the distribution and/or use of the Program is restricted in
230
+ certain countries either by patents or by copyrighted interfaces, the
231
+ original copyright holder who places the Program under this License
232
+ may add an explicit geographical distribution limitation excluding
233
+ those countries, so that distribution is permitted only in or among
234
+ countries not thus excluded. In such case, this License incorporates
235
+ the limitation as if written in the body of this License.
236
+
237
+ 9. The Free Software Foundation may publish revised and/or new versions
238
+ of the General Public License from time to time. Such new versions will
239
+ be similar in spirit to the present version, but may differ in detail to
240
+ address new problems or concerns.
241
+
242
+ Each version is given a distinguishing version number. If the Program
243
+ specifies a version number of this License which applies to it and "any
244
+ later version", you have the option of following the terms and conditions
245
+ either of that version or of any later version published by the Free
246
+ Software Foundation. If the Program does not specify a version number of
247
+ this License, you may choose any version ever published by the Free Software
248
+ Foundation.
249
+
250
+ 10. If you wish to incorporate parts of the Program into other free
251
+ programs whose distribution conditions are different, write to the author
252
+ to ask for permission. For software which is copyrighted by the Free
253
+ Software Foundation, write to the Free Software Foundation; we sometimes
254
+ make exceptions for this. Our decision will be guided by the two goals
255
+ of preserving the free status of all derivatives of our free software and
256
+ of promoting the sharing and reuse of software generally.
257
+
258
+ NO WARRANTY
259
+
260
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
261
+ FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
262
+ OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
263
+ PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
264
+ OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
265
+ MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
266
+ TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
267
+ PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
268
+ REPAIR OR CORRECTION.
269
+
270
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
271
+ WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
272
+ REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
273
+ INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
274
+ OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
275
+ TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
276
+ YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
277
+ PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
278
+ POSSIBILITY OF SUCH DAMAGES.
279
+
280
+ END OF TERMS AND CONDITIONS
281
+
282
+ How to Apply These Terms to Your New Programs
283
+
284
+ If you develop a new program, and you want it to be of the greatest
285
+ possible use to the public, the best way to achieve this is to make it
286
+ free software which everyone can redistribute and change under these terms.
287
+
288
+ To do so, attach the following notices to the program. It is safest
289
+ to attach them to the start of each source file to most effectively
290
+ convey the exclusion of warranty; and each file should have at least
291
+ the "copyright" line and a pointer to where the full notice is found.
292
+
293
+ <one line to give the program's name and a brief idea of what it does.>
294
+ Copyright (C) <year> <name of author>
295
+
296
+ This program is free software; you can redistribute it and/or modify
297
+ it under the terms of the GNU General Public License as published by
298
+ the Free Software Foundation; either version 2 of the License, or
299
+ (at your option) any later version.
300
+
301
+ This program is distributed in the hope that it will be useful,
302
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
303
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
304
+ GNU General Public License for more details.
305
+
306
+ You should have received a copy of the GNU General Public License along
307
+ with this program; if not, write to the Free Software Foundation, Inc.,
308
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
309
+
310
+ Also add information on how to contact you by electronic and paper mail.
311
+
312
+ If the program is interactive, make it output a short notice like this
313
+ when it starts in an interactive mode:
314
+
315
+ Gnomovision version 69, Copyright (C) year name of author
316
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
317
+ This is free software, and you are welcome to redistribute it
318
+ under certain conditions; type `show c' for details.
319
+
320
+ The hypothetical commands `show w' and `show c' should show the appropriate
321
+ parts of the General Public License. Of course, the commands you use may
322
+ be called something other than `show w' and `show c'; they could even be
323
+ mouse-clicks or menu items--whatever suits your program.
324
+
325
+ You should also get your employer (if you work as a programmer) or your
326
+ school, if any, to sign a "copyright disclaimer" for the program, if
327
+ necessary. Here is a sample; alter the names:
328
+
329
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
330
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
331
+
332
+ <signature of Ty Coon>, 1 April 1989
333
+ Ty Coon, President of Vice
334
+
335
+ This General Public License does not permit incorporating your program into
336
+ proprietary programs. If your program is a subroutine library, you may
337
+ consider it more useful to permit linking proprietary applications with the
338
+ library. If this is what you want to do, use the GNU Lesser General
339
+ Public License instead of this License.