summaryrefslogtreecommitdiffstats
path: root/TOOLS
Commit message (Collapse)AuthorAgeFilesLines
* switch the build system to wafStefano Pigozzi2013-11-212-9/+13
| | | | | | | | | | | | | | | | | | | | | | | This commit adds a new build system based on waf. configure and Makefile are deprecated effective immediately and someday in the future they will be removed (they are still available by running ./old-configure). You can find how the choice for waf came to be in `DOCS/waf-buildsystem.rst`. TL;DR: we couldn't get the same level of abstraction and customization with other build systems we tried (CMake and autotools). For guidance on how to build the software now, take a look at README.md and the cross compilation guide. CREDITS: This is a squash of ~250 commits. Some of them are not by me, so here is the deserved attribution: - @wm4 contributed some Windows fixes, renamed configure to old-configure and contributed to the bootstrap script. Also, GNU/Linux testing. - @lachs0r contributed some Windows fixes and the bootstrap script. - @Nikoli contributed a lot of testing and discovered many bugs. - @CrimsonVoid contributed changes to the bootstrap script.
* osx bundle: remove embedded fonts.confStefano Pigozzi2013-11-141-120/+0
| | | | | | This could cause the bundle to recache stuff because of differences with configuration of other software using fonconfig. The defaults OS X directories should be added to fontconfig at build time (through configure).
* demux_mkv: fix compiler warningswm42013-11-041-1/+1
| | | | | | | | | | | | | | | | Make TOOLS/matroska.pl output structs with fields sorted by name in ebml_types.h to make the order of fields deterministic. Fix warnings in demux_mkv.c caused by the first struct fields switching between scalar and struct types due to non-deterministic ebml_types.h field order. Since it's deterministic now, this shouldn't change anymore. The warnings produced by the compilers are bogus, but we want to silence them anyway, since this could make developers overlook legitimate warnings. What commits 7b52ba8, 6dd97cc, 4aae1ff were supposed to fix. An earlier attempt sorted fields in the generated C source file, not the header file. Hopefully this is the last commit concerning this issue...
* tools: add --no-cache --no-config to mpv_identify.shChrisK22013-11-031-1/+1
|
* matroska.pl: Sort the generated struct field listDiogo Franco (Kovensky)2013-11-021-2/+2
| | | | | | | Newer versions of perl randomize the hash used for hashes every time it's run; this makes the order of the fields be non-deterministic. Tack a sort there to make it deterministic. Needed to fix (or allow fixing) a buggy gcc warning.
* Revert "osxbundle: fonts.conf: only look for fonts in ~/.mpv/fonts"Stefano Pigozzi2013-09-191-2/+5
| | | | | | | Commit broke text subtitles without embedded fonts. Will look for a better solution later. Revert it for now, since I'm starting to get bug reports. This reverts commit 4a9f618d9f3b2d964bcc819426cc3042b8e447f7.
* osxbundle: fonts.conf: only look for fonts in ~/.mpv/fontsStefano Pigozzi2013-09-181-5/+2
| | | | | | | | This is to avoid the 30s hang while mpv caches fonts. In practice all the fonts an average user is going to use are embedded in mkv files so there is no reason to build fontconfig's cache on all of OS X system directories. I might add something similar for terminal usage, but I am highly undecided.
* macosx: add webm the filetypes handled by the bundleBilal Syed Hussain2013-09-141-0/+2
|
* macosx_application: handle mpv:// linksStefano Pigozzi2013-09-071-0/+10
| | | | | | | Pretty useful for people writing userscripts for web browsers. Links starting with 'mpv://' are forwarded to the mpv OSX bundle. The leading 'mpv://' is stripped from the recived url and the rest of the string is inserted as is in the playlist.
* macosx_application: handle URL events as fileopen eventsStefano Pigozzi2013-09-071-36/+10
| | | | | This allows to open URLs directly with mpv. This is useful for streaming and libquvi supported sites.
* x11: add window iconwm42013-09-011-0/+15
| | | | | | | | | | | | | | | | | | | | | The png file added to etc/ are taken from the link mentioned in commit 303096b, except that they have been converted to 16 bit, sRGB (with color profile info dropped, if there was one), and transparent pixels reset for better compression. The file x11_icon.bin is generated by gen-x11-icon.sh. I'm adding it to the git repo directly, because the script requires ImageMagick, and we don't want to make building even more complicated. The way how this is done is basically a compromise between effort required in x11_common.c and in gen-x11-icon.sh. Ideally, x11_icon.bin would be directly in the format as required by _NET_WM_ICON, but trying to write the binary width/height values from shell would probably be a nightmare, so here we go. The zlib code in x11_common.c is lifted from demux_mkv.c, with some modifications (like accepting a gzip header, because I don't know how to make gzip write raw compressed data).
* change application iconStefano Pigozzi2013-09-017-67/+3
| | | | | | | | | | | | | | | | | | | | | | | | | I would like to thank Chris Ward (@tenzerothree, http://tenzerothree.com/) for working on the art for these icons and bringing some eye candy to the project. The PSDs made by Chris are available on our Dropbox [1], along with the exports I made to create OSX and Windows icons. The PSDs are almost completly vector and all the resolutions look really similar, except the 16px favicon which was handcrafted to look better and more recognizeable on the smaller pixel budget. For Mac OS X the icons were created using iconutils on the PNGs iconsets exported from the PSDs. These even support retina resolutions (except 512@2x). For Windows the .ico file was created with imagemagick. The included images are 16px, 24px, 32px, 48px 64px, 256px. These are the resolutions listed on MSDN for supporting Windows XP [2] and Windows versions based on Aero [3]. Only 32bit PNGs were used since it is 2013. For Linux nothing changed yet, even though @wm4 talked about using the PNGs directly there. This will probably be dealt with in a later commit. [1]: https://www.dropbox.com/sh/yelfoj9tbft7o06/A8vOT6JKaG [2]: http://msdn.microsoft.com/en-us/library/ms997636.aspx [3]: http://msdn.microsoft.com/en-us/library/aa511280.aspx
* mpv.rc: update Windows iconJames Ross-Gowan2013-07-301-0/+64
| | | | Based on the OSX bundle icon.
* build: fix build with vdpau, simplifywm42013-07-291-74/+0
| | | | | | | | | | | | Instead of generating vdpau_template.c with a Perl script, just include the generated file in git. This is ok because it changes very rarely, and the script is larger than the output it generates. It also simplify the Makefile, and fixes the build. The problem was that transitive dependencies do not work with generated files: there is no dependency information yet when building it the first time. I overlooked this because I didn't delete the .d files for testing (which contained the correct dependencies, but only _after_ a first successful build).
* TOOLS: add script for emulating "unique application" functionality on Linuxwm42013-07-281-0/+91
| | | | | | | See github issue #43. This comes with a load of caveats, so be sure to read the comments at the start of the script.
* osxbundle: suggest some ways to correct missing dependenciesStefano Pigozzi2013-06-301-2/+11
| | | | | Hopefully this can give some more clues to users about what broke if they find themselves in this situation.
* ildetect: $ILDETECT_RUN_INTERLACED_ONLY to only run the job if not progressiveRudolf Polzer2013-06-211-4/+10
|
* ildetect.sh: add a quiet mode; verify telecine decisionRudolf Polzer2013-06-201-5/+18
| | | | | | | For quiet mode: ILDETECT_QUIET=1 ildetect.sh ... Telecine decision (guess by ildetect.so) is verified by retrying the ildetect run with the pullup filter inserted.
* ildetect.sh: skip needlessly going through vo_lavcRudolf Polzer2013-06-201-2/+2
| | | | | We can now turn off encoding mode by command line and use vo_null instead.
* ildetect.sh: better interlace detection rangeRudolf Polzer2013-06-201-1/+1
|
* ildetect.sh: env vars supportRudolf Polzer2013-06-201-8/+35
|
* vf_dlopen ildetect: fix numdecidedadjacentframes counterRudolf Polzer2013-06-161-1/+5
|
* vf_dlopen ildetect: make the wrapper shell script more robustRudolf Polzer2013-06-161-7/+2
|
* vf_dlopen filters: add an "ildetect" filter that detects interlacingRudolf Polzer2013-06-163-1/+336
| | | | | The filter analyzes each frame for combing, and decides at the end whether the content is likely interlaced, telecined or progressive.
* vf_dlopen framestep: step width of 0Rudolf Polzer2013-05-201-0/+2
| | | | | This is now defined to mean to never output any frame again (except for the first).
* vf_dlopen framestep filter: add a parameter for the phaseRudolf Polzer2013-05-201-4/+9
| | | | | also, default to 0-indexed frame counts (so by default, the 1st frame is output). Old behaviour can be done by -vf dlopen=./framestep.so:42:41.
* vf_dlopen examples: slightly simply the framestep filterRudolf Polzer2013-05-161-8/+1
| | | | We don't need config() ;)
* vf_dlopen examples: add framestep filterRudolf Polzer2013-05-162-2/+106
| | | | Usage: -vf dlopen=./framestep.so:5
* Merge branch 'audio_changes'wm42013-05-121-0/+7
|\ | | | | | | | | Conflicts: audio/out/ao_lavc.c
| * uncrustify: add some instructionswm42013-05-121-0/+7
| |
* | change reverse DNS strings to io.mpv.*Stefano Pigozzi2013-04-161-1/+1
|/ | | | fixes #60
* make: add osxbundle-skip-depsStefano Pigozzi2013-04-081-21/+50
| | | | | | | This adds a way to generate a Mac OS X application bundle without the bundled dependencies. fixes #57
* vf_dlopen examples: add copyright headers (LGPL 2.1+)Rudolf Polzer2013-04-087-0/+147
|
* mpv_identify: add --quiet to mpv command linewm42013-03-261-1/+1
| | | | | | Prevents the status line from being printed. Otherwise, the status line is always printed due to --frames=1, and it's visible on the terminal because it's printed to stderr.
* mpv_identify: allow specifying mpv binary via MPVwm42013-03-261-1/+5
| | | | Useful for testing.
* core: output --playing-msg message only after at least one frame is shownwm42013-03-261-1/+1
| | | | | | | | | | | | | | | | This way it's possible to retrieve correct information about video, like actual width/height, which in general are available only after at least one frame has been sent to the video output, such as dwidth/dheight. mpv_identify.sh becomes a bit slower, because we let it decode enough audio and video to fill the audio buffers and to send one frame to the video output. Also, --playing-msg isn't shown anymore with --frames=0 (could be fixed by special-casing it, should this break any use cases). Note that in some corner cases, like when the demuxer for some reason returns lots of audio packets but no video packets at the start, but video actually starts later, the --playing-msg will still be output before video starts.
* command: export VO video width/height as propertieswm42013-03-261-0/+2
| | | | | | Add new properties "dwidth" and "dheight", which contain the video size as known by the VO (not necessarily what the VO makes out of them, i.e. without window scaling and panscan).
* demux_mkv: support V_UNCOMPRESSED video trackswm42013-01-241-0/+1
| | | | | | Tested with a sample generated by: ffmpeg -i in.mkv -an -vcodec rawvideo out.mkv Also add proper dependencies for the Matroska Perl stuff in Makefile.
* osxbundle: fix unicode support in fonts.confkax42013-01-071-5/+116
| | | | | | | | | Looks like unicode support was broken with this simple `fonts.conf`. Copy more (all) of fontconfig's default `fonts.conf`. Fixes #13 Signed-off-by: Stefano Pigozzi <stefano.pigozzi@gmail.com>
* osxbundle: print meaningful error when a dylib is missingStefano Pigozzi2012-12-161-1/+7
| | | | | | If one of the bundled libraries is pointing to a missing dylib stop the bundling and exit with an error. This can happen if the user uninstalled a dependency after he built the binary/libraries.
* osxbundle: add fonts.conf to distributed bundleStefano Pigozzi2012-12-151-0/+9
| | | | | | | | | | | | | | | The osxbundle target creates a bundle that is supposed to be distributable to third parties. As they may not have fontconfig installed they miss a fonts.conf pointing to the usual fonts directories in OSX. For people installing from source and using from the terminal this commit changes nothing. You just have to make sure that your fontconfig is installed with a sane configuration (XQuartz does). If you are installing fontconfig from source you can force a sane OSX default using `--with-add-fonts`. For example: `./configure --with-add-fonts=/Library/Fonts,~/Library/Fonts` Homebrew already addressed this with mxcl/homebrew@b242883
* TOOLS: remove checktree.shwm42012-11-141-350/+0
| | | | | | Nice idea, but essentially useless. Unmaintained even in mplayer-svn. Remove broken remains of the checkheaders target too.
* mpv_identify: stop using \n; fix property name handlingRudolf Polzer2012-11-121-2/+5
| | | | | Dashes are not valid in shell variable names. This changes them to underscores.
* Port several python scripts to PerlKovensky2012-11-0810-480/+1398
| | | | | | | | | | | | file2string.pl and vdpau_functions.pl are direct ports. matroska.py was reimplemented as the Parse::Matroska module in CPAN, and matroska.pl was made a client of Parse::Matroska. A copy of Parse::Matroska is included in TOOLS/lib, and matroska.pl looks there first when trying to load the module. osxbundle.py was not ported since I have no means to verify it. Python is always available on OSX though, so there is no harm in removing the check for it on configure.
* osxbundle: run install_name_tool -id only on direct dependenciesStefano Pigozzi2012-11-061-15/+14
| | | | | | | It looks like that only `install_name_tool -change` must be applied recursively. This allows to bundle up all our stuff without thinkering with the Mach-O headerpad size (which could even be impossible for libraries we don't compile and link ourselves).
* TOOLS: add script for osx bundle generationStefano Pigozzi2012-10-1610-0/+353
| | | | | | | | | | | | | Add a make task and python script to create a Mac OS X Application Bundle to be used when compiling with the --enable-macosx-finder and --enable-macosx-bundle configure flags. The main svg icon was created by me and heavily inspired by Apple's iTunes and AppStore icon designs. We are still looking for something better. For the audio, movie and subtitles icons I added the main logo to MPlayer OSX Extended icons. Use with `make osxbundle` after running configure and make.
* Merge branch 'input_changes' into masterwm42012-10-121-12/+11
|\ | | | | | | | | | | | | | | Conflicts: DOCS/man/en/vo.rst etc/input.conf input/input.c m_property.c
| * TOOLS/mplayer2_identify.sh: program property is not readablewm42012-10-121-1/+0
| | | | | | | | | | | | And it never was. This property is write-only and exists only for setting the program. Making it readable is possible, but would require demuxer changes.
| * commands: rename properties, update input.confwm42012-10-121-12/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Use "-" instead of "_" in property names. The intent is that property names and options names should be the same (if they refer to the same thing), and options use "-" as word separator. Rename some other properties too, e.g. "switch_audio" -> "audio". Add a way to translate the old property names to the new ones, similar to the input command legacy bridge. Update input.conf. Use the new property names, and don't use legacy commands.
* | Rename to "mpv"wm42012-10-122-226/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This changes the name of this project to mpv. Most user-visible mentions of "MPlayer" and "mplayer" are changed to "mpv". The binary name and the default config file location are changed as well. The new default config file location is: ~/.mpv/ Remove etc/mplayer.desktop. Apparently this was for the MPlayer GUI, which has been removed from mplayer2 ages ago. We don't have a logo, and the MS Windows resource files sort-of require one, so leave etc/mplayer.ico/.xpm as-is. Remove the debian and rpm packaging scripts. These contained outdated dependencies and likely were more harmful than useful. (Patches which add working and well-tested packaging are welcome.)
* | Fix string.format compatibility with Python 2.6Kovensky2012-10-011-3/+3
| |
* | build: use "python" instead of "python3" as interpreter namewm42012-09-293-3/+3
| | | | | | | | | | This works regardless whether "python" starts a Python 2 or Python 3 interpreter.
* | build: make Python scripts compatible with Python 2.xwm42012-09-292-1/+7
| | | | | | | | | | They were originally written for Python 3.x. Changing them to work on Python 2.x as well is trivial. Tested with Python 2.7.3 and 3.2.3.
* | TOOLS: fix first frame pts for dlopen/telecine.soRudolf Polzer2012-09-281-6/+13
|/ | | | | | | | | | | | | | | When the first frame of a telecine pattern did not generate an output frame (because it is a 0 or a 1), this could lead to the first two output frames getting equal pts values. When the first frame of a telecine pattern generates exactly one output frame (i.e. when the telecine pattern starts with 2 or 3), then the output was correct before this comment, and still is unchanged. When the first frame of a telecine pattern generates more than one output frame (i.e. when it starts with 4 to 9), then output pts are still broken. This is not really solvable without knowing the frame duration, or delaying output by one frame.
* TOOLS: add a new file identifier toolRudolf Polzer2012-09-181-0/+165
| | | | | It can provide properties of a file to the user on stdout, or when sourced by a script, put them into its variables.
* vf_dlopen: vf_rectangle filter moved to dlopen (unix only)Rudolf Polzer2012-09-182-1/+348
| | | | It is unix only, because vf_dlopen filters have no way to receive input (yet)
* vf_dlopen: improve performance for 1-frame-for-1-frame filtersRudolf Polzer2012-09-181-1/+6
| | | | | | This is done by requesting a buffer from the next filter in the chain, instead of always allocating our own. This allows the next filter to e.g. ensure its own preferred memory layout.
* vf_dlopen: add a generic filter to load external filtersRudolf Polzer2012-08-236-0/+547
| | | | | | Usage: -vf dlopen=filename.so:args... Examples of such filters are provided in TOOLS/vf_dlopen/
* TOOLS/uncrustify.cfg: add uncrustify profile for code reformattingwm42012-08-061-0/+158
| | | | | | | | | | | | There is lots of badly and inconsistently formatted code left, which leaves us with the frequent need for cleaning up. This uncrustify profile can be used for automatic reformatting. The author of this file is (perhaps) uau. It's different from mplayer-svn's TOOLS/mp-uncrustify-style.cfg. The differences and origins of these files are unclear, but the file added with this commit is probably more consistent with the heavily cleaned up areas of mplayer2 and this fork.
* TOOLS/fil2string.py: fix for use with binary fileswm42012-07-281-1/+1
| | | | | | | | | | The script was written to be able to deal with binary f