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