summaryrefslogtreecommitdiffstats
path: root/TOOLS
Commit message (Collapse)AuthorAgeFilesLines
* umpv: remove unused importsJim Manos6 days1-2/+0
| | | | | | | * fcntl usage was replaced by socket usage in 518bd4c306d50e6772c39c5d7395b9d10b9386da * stat usage was removed in 51a3f13705f8b65b3bfcef5b991903d225759014 as the socket was created under the user's HOME.
* appveyor: use MSYS2 shaderc packageJames Ross-Gowan2020-12-191-11/+1
| | | | | There's a shaderc package in MSYS2 now. Using it should shave ten minutes off the appveyor build.
* matroska.py: remove python2 supportLaserEyess2020-11-271-6/+2
| | | | | | | | | | Since 0.33.0 mpv does not support python2. This commit removes python2 support from the file completely with the following changes: - __future__ import of print_function is python2 only - unicode literals are legacy in python3 - 'sys.version_info.major < 3' check is redundant
* file2string: remove question mark from safe charssfan52020-11-221-8/+3
| | | | | | | | | | Trigraphs such as "??=" (which are enabled by default with -std=c11) can mess up strings, so avoid them entirely by escaping question marks. This also drops Python 2 compatibility from file2string, making the change to the waf rule necessary. The input file is now opened in binary mode which is also more correct versus the old text mode which just happened to work even on binary files.
* stream_lavf: enable SRT protocol support through FFmpegAlexandre Iooss2020-10-151-0/+1
| | | | | Additionally, announce support for the protocol in Mac and Linux application metadata.
* command: extend subprocess command stdin, change behaviorwm42020-08-161-0/+19
| | | | | | | | | | | | | | | Make it possible to feed a string to stdin of a subprocess. Out of laziness, it can't be an arbitrary byte string. (Would require adding an option type that takes in a Lua byte string.) Do not set stdin of a subprocess to fd 0 (i.e. mpv's stdin) anymore, because it makes things more consistent. Enabling stdin didn't make too much sense in the first place, so this behavior change seems justifiable. win32 support missing. Fixes: #8003
* TOOLS/file2string: change to python3wm42020-08-121-1/+1
| | | | | | The same was done to matroska.py before, so at least it's consistent. Doesn't matter for waf, because it imports this script (rather than executing it).
* TOOLS/autocrop.lua: automatically crop at startupヒカリ2020-06-011-84/+292
|
* umpv: convert to python 3wm42020-04-031-2/+2
| | | | Sigh.
* umpv: change from legacy FIFO to socketwm42020-03-281-23/+14
| | | | --input-file is deprecated, and the JSON IPC is saner anyway.
* ci: remove libass enablementJan Ekström2020-03-221-1/+0
| | | | This is no longer a configurable option.
* client API: provide ways to finish property changes on file changeswm42020-03-071-0/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When the current file changes (or rather, when starting/finishing playback of a playlist entry), clients tend to have the problem that it's hard to tell whether a property change notification (via mpv_observe_property() and mechanisms layered on top of it) is from the previous or new playlist entry. The previous commit probably helps, but all the asynchronity is still a bit unhelpful. Try to make this better by adding new hooks, that are run before/after playback init/deinit. This is similar to the existing hooks, except they're outside of "initialized" playback, which excludes that you might accidentally get an overlap between the current and the previous/next playlist entry. That still doesn't seem quite enough, since normally, property change notifications come after the hook event. So basically a client would have to explicitly "drain" the event queue within the hook, and make the hook continue only after that is done. Knowing when property notifications are done is another asynchronous nightmare (how exactly it works keeps changing within client.c, and an API user probably can't tell anymore when all pending properties are truly done). So introduce another guarantee: properties that were changed before the hook happens will be returned before the hook event is returned. That means the client will have received all pending property notifications from the previous playlist entry (or whatever) before the hook is entered. As another minor complication, we shouldn't just keep the hook pending until _all_ property notifications are done, since the client's hook could produce new ones. (Or just consider things like the demuxer thread hammering the client with cache update events, while the "on_preloaded" hook is run.) So there is some extra untested, fragile logic in client.c to handle this (the waiting_for_hook flag). This probably works, but was barely tested. Not sure if this helps anyone, but I think it's fine for my own purposes. (I really hated this aspect of the API whenever I used it myself.)
* command: extend osd-overlay command with bounds reportingwm42020-03-061-0/+35
| | | | | | | | | | | | | | | | | | | | This is more or less a minimal hack to make _some_ text measurement functionality available to scripts. Since libass does not support such a thing, this simply uses the bounding box of the rendered text. This is far from ideal. Problems include: - using a bitmap bounding box - additional memory waste and/or flushing caches - dependency on window size - odd small deviations with different window sizes (run osd-test.lua and resize the window after each timer update; the bounding boxes aren't adjusted in an overly useful way) - inability to query the size _after_ actual rendering But I guess it's a start. Since I'm aware that it's crap, add a threat to the manpage that this may be changed/removed again. For now, I'm interested whether anyone will have use for it in its current form, as it's an often requested feature.
* skip-logo.lua: remove lua 5.2 warning messagewm42020-02-291-1/+0
| | | | (OK, I tested it.)
* *.py: cosmetic changesjnozsc2020-02-273-5/+5
|
* TOOLS/lua/autoload.lua: update script commentsThomas Carmichael2020-02-151-6/+6
| | | | | | | | | The example configuration uses values of true/false for the script options. As per DOCS/man/lua.rst boolean values should be represented with yes/no and using true/false will result in an error. This updates the comments and changes the true/false values under the example configuration to yes/no.
* mac: activate logging when started from the bundleder richter2020-02-081-0/+1
| | | | | | | | | | this creates a default log for the last mpv run when started from the bundle. that way one can get a log of what happened even after an issue occurred. also add a menu entry under Help to show the current log, but only when the bundle is used. Fixes #7396 Fixes #2547
* osxbundle: simplify process_libraries() to eliminate leafs()Down Thomas2019-12-151-22/+8
| | | | | | | | | | | | | | Instead of traversing across leafs() which can lead to an infinite loop issue with cross-linked libraries, use the dictionary (libs_dict) created by libraries() to create a set (libs_set) of every unique library. Every value in libs_dict is also a key in libs_dict, so every unique library linked to mpv will be a key in libs_dict. Use set() on libs_dict to return a set of the keys from libs_dict, and remove binary from the set so that a duplicate of the binary is not added to the libs directory. Iterate over libs_set to bundle dylibs while using the libs_dict to determine which install_names to change.
* osc: use custom symbols for window controlsPhilip Langdale2019-12-115-1/+94
| | | | | | | | | | | | | | | | | | | | | | | | I was recently informed that unicode has official symbols for window controls, and I put together a change to use them, which worked, as long as a suitable font was installed. However, it's not that hard to get a normal system that lacks an appropriate font, and libass wants to print warnings if the symbols aren't in the default font, which will almost always be true. So, I gave up and added the symbols to the custom osd font that we already have. This ensures they are always available, and that they are aligned consistently on all platforms. I took the symbols from the `symbola` font, as this has a suitable licence and the symbols look nice enough. Symbola Licence: Fonts are free for any use; they may be opened, edited, modified, regenerated, packaged and redistributed. Finally, as we now have access to an un-maximize symbol, I added logic to use it when the window is maximized.
* vo_gpu, options: don't return NaN through APIwm42019-10-251-0/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | Internally, vo_gpu uses NaN for some options to indicate a default value that is different depending on the context (e.g. different scalers). There are 2 problems with this: 1. you couldn't reset the options to their defaults 2. NaN is a damn mess and shouldn't be part of the API The option parser already rejected NaN explicitly, which is why 1. didn't work. Regarding 2., JSON might be a good example, and actually caused a bug report. Fix this by mapping NaN to the special value "default". I think I'd prefer other mechanisms (maybe just having every scaler expose separate options?), but for now this will do. See you in a future commit, which painfully deprecates this and replaces it with something else. I refrained from using "no" (my favorite magic value for "unset" etc.) because then I'd have e.g. make --no-scale-param1 work, which in addition to a lot of effort looks dumb and nobody will use it. Here's also an apology for the shitty added test script. Fixes: #6691
* skip-logo.lua: fix skipping in the first two frameswm42019-10-081-15/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | mpv typically decodes and filters at least 2 frames before starting playback. This happens during seeks, as well as when playback starts from the beginning of the file. skip-logo.lua receives notifications for all filtered frames, even during seeking. It should interrupt during seeking, so as a crude heuristic, it ignored all frames while the player was seeking. This does not mean all these frames are skipped due to seeking (thus it's a "crude hueristic"). In particular, it means that the first 2 frames of a video cannot be skipped, since they're filtered within the playback restart phase (equivalent to "seeking"). Fix this by making the heuristic slightly less crude. Since we observe the property as "none", the property is not actually read until we do it explicitly. By not reading it during seeking, we can let the frames internally queue up (vf_fingerprint discards them in a ringbuffer-like fashion if they're too many). Then, if seeking ends, we get the current playback timestamp, and check queued up frames that are at or after that timestamp. (In some ways, this duplicates what the player's seeking logic does.) A disadvantage is that this is racy. While playback-time is guaranteed to be set when seeking changes from false to true, playback could already have progressed to the next frame (or more) before the script gets time to react. In theory, we could add a seek restart hook or so, but I don't want to. A property that returns the last playback restart time would also do it, but feels to special. Not an important problem in practice anyway.
* player: "subprocess" command should stop immediately in idle modewm42019-10-041-3/+13
| | | | | | | | | | | | The description of the "playback_only" field in the "subprocess" command says "you can't start it outside of playback". This did not work correctly: if the player was started in idle mode in the first place, the subprocess was allowed to run even with playback_only=yes. This is a bug, and this change fixes it. Add a test for this to command-test.lua. For #7025.
* autoload.lua: Configurable autoload typesMarek Sebera2019-10-021-4/+42
| | | | | | | | | | | Autoload script now suppports loading of not only video, but also image and audio files, in a manner, where one can configure which of the groups (audio, videos, images) is currently enabled. Use file script-opts/autoload.conf with key=value configuration keys disabled,images,videos,audio to configure autoload script. See documentation on top of the script
* zsh completion: move generation to runtime and improvePhilip Sequeira2019-09-271-283/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The completion function itself now parses --list-options on the first tab press and caches the results. This does mean a slight delay on that first tab press, but it will only do this if the argument being completed looks like an option (i.e. starts with "-"), so there is never a delay when just completing a file name. I've also put some effort into making it reasonably fast; on my machine it's consistently under 100 ms, more than half of which is mpv itself. Installation of zsh completion is now done unconditionally because it's nothing more than copying a file. If you really don't want it installed, set zshdir to empty: `./waf configure --zshdir= ...` Improvements in functionality compared to the old script: * Produces the right results for mpv binaries other than the one it was installed with (like a dev build for testing changes). * Does not require running mpv at build time, so it won't cause problems with cross compilation. * Handles aliases. * Slightly nicer handling of options that take comma-separated values and/or sub-options: A space is now inserted at the end instead of a comma, allowing you to immediately start typing the next argument, but typing a comma will still remove the automatically added space, and = and : will now do that too, so you can immediately add a sub-option. * More general/flexible handling of values for options that print their possible values with --option=help. The code as is could handle quite a few more options (*scale, demuxers, decoders, ...), but nobody wants to maintain that list here so we'll just stick with what the old completion script already did.
* osxbundle: remove rpath definitions towards dev toolsder richter2019-09-221-1/+22
| | | | | | | | since the loading order of rpaths is system wide lib path, dev tool path and then bundle lib path it's possible for the xcode swift libs to be incompatible with the libs the bundle was build with. this leads to possible segfaults. if we distribute the bundle we don't want to load the libs from the dev tools anyway.
* build: fix swift linking with upcoming xcode 11der richter2019-09-221-0/+8
| | | | | | | in xcode 11 the dynamic swift libraries were moved to a separated versioned swift folder, which can't be used for linking and only for distribution. additional to the std dynamic swift lib folder the system wide folder is needed for linking too.
* video: add vf_fingerprint and a skip-logo scriptwm42019-09-191-0/+245
| | | | | | | | | | | | | | | | | | | | | | | | | skip-logo.lua is just what I wanted to have. Explanations are on the top of that file. As usual, all documentation threatens to remove this stuff all the time, since this stuff is just for me, and unlike a normal user I can afford the luxuary of hacking the shit directly into the player. vf_fingerprint is needed to support this script. It needs to scale down video frames as part of its operation. For that, it uses zimg. zimg is much faster than libswscale and generates more correct output. (The filter includes a runtime fallback, but it doesn't even work because libswscale fucks up and can't do YUV->Gray with range adjustment.) Note on the algorithm: seems almost too simple, but was suggested to me. It seems to be pretty effective, although long time experience with false positives is missing. At first I wanted to use dHash [1][2], which is also pretty simple and effective, but might actually be worse than the implemented mechanism. dHash has the advantage that the fingerprint is smaller. But exact matching is too unreliable, and you'd still need to determine the number of different bits for fuzzier comparison. So there wasn't really a reason to use it. [1] https://pypi.org/project/dhash/ [2] http://www.hackerfactor.com/blog/index.php?/archives/529-Kind-of-Like-That.html
* TOOLS/travis-rebuild-website: update condition after docker transitionRicardo Constantino2019-07-301-1/+1
| | | | Closes #6822
* osxbundle: bundle the dynamic swift std library when neededder richter2019-07-211-1/+20
|
* osxbundle: print the output of the dylib-unhell callder richter2019-07-211-2/+2
|
* appveyor: remove broken packages, install libplaceboJames Ross-Gowan2019-07-032-3/+1
| | | | | | | | Support for Ada and Objective-C was removed from MSYS2, which made pacman refuse to update GCC while the gcc-ada and gcc-objc packages were installed. Remove those packages before updating the others. Also remove ANGLE, which has been removed from MSYS2, and add libplacebo, which is now needed for the Vulkan VO.
* vo_gpu: d3d11: use the SPIRV-Cross C API directlyJames Ross-Gowan2019-06-122-5/+6
| | | | | | | | | | When the D3D11 backend was first written, SPIRV-Cross only had a C++ API and no guarantee of API or ABI stability, so instead of using SPIRV-Cross directly, mpv used an unofficial C wrapper called crossc. Now that KhronosGroup/SPIRV-Cross#611 is resolved, SPIRV-Cross has an official C API that can be used instead, so remove crossc and use SPIRV-Cross directly.
* appveyor: fix shaderc dependenciesJames Ross-Gowan2019-04-161-4/+3
| | | | | | Shaderc comes with a Python script that automatically fetches "known-good" versions of its dependencies. Use that instead of manually cloning dependencies to third-party.
* Merge commit '559a400ac36e75a8d73ba263fd7fa6736df1c2da' into ↵Anton Kindestam2018-12-051-0/+95
|\ | | | | | | | | | | wm4-commits--merge-edition This bumps libmpv version to 1.103
| * player: make various commands for managing external tracks abortablewm42018-05-241-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Until now, they could be aborted only by ending playback, and calling mpv_abort_async_command didn't do anything. This requires furthering the mess how playback abort is done. The main reason why mp_cancel exists at all is to avoid that a "frozen" demuxer (blocked on network I/O or whatever) cannot freeze the core. The core should always get its way. Previously, there was a single mp_cancel handle, that could be signaled, and all demuxers would unfreeze. With external files, we might want to abort loading of a certain external file, which automatically means they need a separate mp_cancel. So give every demuxer its own mp_cancel, and "slave" it to whatever parent mp_cancel handles aborting. Since the mpv demuxer API conflates creating the demuxer and reading the file headers, mp_cancel strictly need to be created before the demuxer is created (or we couldn't abort loading). Although we give every demuxer its own mp_cancel (as "enforced" by cancel_and_free_demuxer), it's still rather messy to create/destroy it along with the demuxer.
| * client API: kill async commands on terminationwm42018-05-241-0/+16
| | | | | | | | | | | | | | | | | | | | | | This affects async commands started by client API, commands with async capability run in a sync way by client API (think mpv_command_node() with "subprocess"), and detached async work. Since scripts might want to do some cleanup work (that might involve launching processes, don't ask), we don't unconditionally kill everything on exit, but apply an arbitrary timeout of 2 seconds until async commands are aborted.
| * lua: expose mpv_abort_async_command()wm42018-05-241-0/+9
| | | | | | | | Also somewhat cleans up mp.command_native_async() error handling.
| * command: add a subprocess commandwm42018-05-241-0/+5
| | | | | | | | | | | | | | This supports named arguments. It benefits from the infrastructure of async commands. The plan is to reimplement Lua's utils.subprocess() on top of it.
| * TOOLS: add a stupid test program for Lua async commandswm42018-05-241-0/+53
| |
* | TOOLS/autoload: Fixed broken "disabled" optionAndreas Wennerberg2018-06-231-0/+1
|/ | | | `--script-opts=autoload-disabled=yes` now properly stops the script from running.
* TOOLS/matroska.py: ignore some unused elementswm42018-04-291-1/+3
| | | | So that demux_mkv doesn't log them as unknown.
* TOOLS/autoload: be more robust with slow directory listingsRicardo Constantino2018-03-101-11/+24
| | | | | | | | | | Overall, just shuffled code around and added a few debugging messages for future issues. The issue could be reproduced easily by quickly navigating through the playlist inside a network mount. Closes #5618
* osxbundle: fix bundle creation with python3Akemi2018-03-081-6/+8
| | | | | | | | | | | | | | there were several problems that had to be fixed because of differences between python2 to python3: - subprocess.check_output returned an unicode instead of a string - filter() returns an iterator instead of a list - recursion limit was reached first two were fixed by explicitly converting to the needed type or using the proper function invocation. third was fixed by changing the recursive process_libraries function to an iterative one. Fixes #5600, #3316
* options: slightly improve filter help output for lavfi bridgewm42018-02-031-4/+4
| | | | | | | | | | | | | | --vf=help will now list libavfilter filters, and e.g. --vf=yadif=help will list libavfilter filter options. The latter is rather bare, because the AVOption API is really awful (holy shit how is it so bad), and would require us to handle _every_ option type manually. Alternatively we could call av_opt_show2(), which ffmpeg uses for help output in its CLI tools and which is much more detailed. But it's rather foreign and forces output through av_log(), so I don't really want to use it.
* travis: stop excluding ffmpeg-gitRicardo Constantino2017-12-221-1/+1
| | | | Signed-off-by: Stefano Pigozzi <stefano.pigozzi@gmail.com>
* appveyor: fix FFmpeg downloadJames Ross-Gowan2017-12-091-1/+1
| | | | | Broken in f19797dea62a. It seems like the Git server on git.ffmpeg.org doesn't like clone --depth=1, so use the GitHub mirror instead.
* Remove support for ffmpeg-mpvRostislav Pehlivanov2017-12-052-3/+3
|
* TOOLS/autoload.lua: update extensionsCkat2017-12-031-1/+1
| | | | | * duplicated 'ogv' renamed to 'ogm' * 'ogg' and 'opus' added as common audio file extensions
* appveyor: use git submodule update --initJames Ross-Gowan2017-11-131-2/+1
| | | | Thanks @jeeb.
* appveyor: update ffmpeg and test d3d11/vulkanJames Ross-Gowan2017-11-082-14/+57
| | | | | | | Build ffmpeg-mpv, shaderc and crossc from source, since they are not packaged in MSYS2. Also, add some more explicit --enable flags to the mpv build to make sure things like D3D11, D3D11VA hwaccels and Vulkan are auto-detected.
* travis: adjust ffmpeg URLwm42017-10-271-6/+2
| | | | No idea if this is correct.
* command: drop "audio-out-detected-device" propertywm42017-10-091-5/+0
| | | | | | Coreaudio stopped setting it a few releases ago (66a958bb4fa). There is not much of a user- or API-visible change, so remove it without deprecation.
* osx: fix bundle on macOS High Sierra (10.13)Akemi2017-10-034-14/+8
| | | | | | | | | | | | | | | | | | | | | | Apple slightly changed the App bundle mechanism which broke wrapper scripts that invoke the actual binary. it caused the bundle to always open a new instance of mpv instead of reusing the currently running one. just removing the wrapper script would lead to several regressions, so it was replaced with a symlink to the bundle binary. detection if mpv was started from the bundle was replaced by comparing the execution name of the binary, eg the name of the symlink "mpv-bundle". additionally, because we load a standard config from the Resources folder of the bundle again, we prevent that config from being loaded if mpv wasn't started via the bundle. the psn argument has to be removed manually again. the ability of loading your standard shell environment has been removed with the wrapper. a substitution will be added with another commit. as a side effect this fixes an issues when zsh was used with common NodeJS configuration scripts. Fixes #4926 #4866
* TOOLS/lua/autodeint: update to lavfi-bridgeRicardo Constantino2017-08-211-27/+38
| | | | | Also use lavfi setfield instead of removed field-dominance. Remove missing remainder of field-dominance in docs.
* video: add metadata handling for spherical videowm42017-08-211-0/+7
| | | | | | | | | | | | | | This adds handling of spherical video metadata: retrieving it from demux_lavf and demux_mkv, passing it through filters, and adjusting it with vf_format. This does not include support for rendering this type of video. We don't expect we need/want to support the other projection types like cube maps, so we don't include that for now. They can be added later as needed. Also raise the maximum sizes of stringified image params, since they can get really long.
* TOOLS/autocrop.lua: fix cropdetect black limit for 10-bit videosRicardo Constantino2017-08-171-3/+4
| | | | | Also update to use newer lavfi-bridges for the relevant filters to shut up warnings about deprecated crop filter.
* TOOLS/autoload.lua: implement natural sortingRicardo Constantino2017-08-161-9/+32
|
* travis: install missing x11 depsRicardo Constantino2017-08-071-1/+1
|
* acompressor.lua: Convert to use mp.options and lavfi filter bridgeJan Janssen2017-08-071-79/+108
|
* TOOLS/lua/status-line: improve and updateRostislav Pehlivanov2017-08-041-6/+27
| | | | | | | Updates the line once per second rather than once per frame, saving quite a bit of CPU. Also completely stops the script while paused. That aside, fixes the swapped checks for video and audio-only files and adds bitrate printing.
* travis: drop libav-stable supportwm42017-08-031-4/+0
| | | | | | | | | | | For libav-stable, we download the Libav tarball, which is failing, because their certificate is broken: ERROR: cannot verify libav.org's certificate, issued by `/C=US/O=Let\'s Encrypt/CN=Let\'s Encrypt Authority X3': Issued certificate has expired. I don't intend to support Libav's overly old releases anymore anyway, so if you want to use Libav, use its git master.
* osx: load the proper profiles and configs in the bundleAkemi2017-07-311-2/+11
| | | | | | | different shells need different args to load the expected profiles and configs, so we added a small heuristic to decide those args. also don't always load the profiles for a bash login shell and instead only use the standard shell without any args.
* osx: fix bundle for paths that need escapingAkemi2017-07-311-1/+2
| | | | | | this fixes the mpv binary call in our bundle wrapper script, in the case that the path to the binary needs escaping. examples are white spaces or special chars.
* travis: trigger website rebuild on VERSION changes tooRicardo Constantino2017-07-191-1/+1
| | | | Needed to update the stable manual if no DOCS were changed.
* x11: load icon differentlywm42017-07-011-15/+0
| | | | | | | | Now it's sourced from the etc/ PNG files directly, instead of preprocessing them with imagemagick. Add some ad-hoc code to decode PNG files with libavcodec. At least we can drop the zlib code in exchange.
* mpv_identify: replace deprecated fps propertyRicardo Constantino2017-06-251-1/+1
| | | | Closes #4550
* TOOLS: change license of some scripts involved in build to LGPLwm42017-06-243-10/+43
| | | | | wscript calls them directly, and thus are probably part of the build system. They seem to be fully covered by relicensing agreements.
* vf_dlopen: remove this filterwm42017-06-189-1417/+0
| | | | | | | | | | | | | | | | It was an attempt to move some MPlayer filters (which were removed from mpv) to external, loadable filters. That worked well, but then the MPlayer filters were ported to libavfilter (independently), so they're available again. Also there is a more widely supported and more advanced loadable filter system supported by mpv: vapoursynth. In conclusion, vf_dlopen is not useful anymore, confusing, and requires quite a bit of code (and probably wouldn't survive the rewrite of the mpv video filter chain, which has to come at some point). It has some implicit dependencies on internal conventions, like possibly the format names dropped in the previous commit. We also deprecated it last release. Drop it.
* TOOLS/lua/autoload.lua: ignores all files starting with "."Yue Zhu2017-05-201-0/+3
|
* TOOLS/lua/autoload.lua: actually sort files case insensitiveRicardo Constantino2017-05-041-1/+2
| | | | | Regression since 8996f79edbf. Closes #4398
* osx: fix mpv-wrapper.sh when used with csh or tcsh shelldownthomas2017-05-021-2/+2
| | | | | | | | If the default shell of the user is set to csh or tcsh, the use of "$SHELL -l -c" will fail to launch mpv because -l and -c cannot be used together with csh or tcsh. Signed-off-by: Akemi <der.richter@gmx.de>
* osd-font: make volume muted glyph slightly thickerRicardo Constantino2017-04-222-24/+21
|
* Add script to generate otf from sfdir using fontforgeRicardo Constantino2017-04-201-0/+9
| | | | | Uses python scripting on fontforge since native scripting is considered legacy and even Ubuntu Trusty seems to have python scripting.
* sub/osd_font.otf: replace triangle volume by speaker glyphRicardo Constantino2017-04-202-11/+12
| | | | | The triangle icon has potentially questionable copyright issues, see https://github.com/mpv-player/mpv/commit/a7e9bac13210834abd95380e89b5c3dae2336c52
* Add fontforge sfdir for mpv-osd-symbols fontRicardo Constantino2017-04-2031-0/+918
| | | | | | | Should make changes easier to inspect. This was created by opening the current osd_font.otf in Fontforge and saving as .sfdir.
* TOOLS: add lua script for runtime acompressor ffmpeg filter controlJan Janssen2017-03-251-0/+126
|
* af_drc: removeJan Janssen2017-03-251-99/+0
| | | | | | | | | | | | | | | | Remove low quality drc filter. Anyone whishing to have dynamic range compression should use the much more powerful acompressor ffmpeg filter: mpv --af=lavfi=[acompressor] INPUT Or with parameters: mpv --af=lavfi=[acompressor=threshold=-25dB:ratio=3:makeup=8dB] INPUT Refer to https://ffmpeg.org/ffmpeg-filters.html#acompressor for a full list of supported parameters. Signed-off-by: wm4 <wm4@nowhere>
* TOOLS/zsh.pl: don't leak regex match variablesPhilip Sequeira2017-03-061-0/+3
|
* osx: improve bundle handlingAkemi2017-02-163-2/+4
| | | | | | | | | | | | | | | | | we have two problems here. first when mpv is started from the bundle it uses its own environment variables and possibly can't find for example the youtube-dl binary for our youtube-dl hook. second we couldn't reliable determine when mpv was started from the bundle, which led to the pseudo-gui usage even when the binary was invoked from a shell. to prevent this we will wrap the bundle binary with a shell script, which will only be called when we start mpv from the bundle. this way we can get the same environment variables, like $PATH, for our bundle and additional we can set the pseudo-gui only when started through this script. it is also possible to detect the bundle usage properly and accurately through the usage of another environment var. Fixes #2061
* TOOLS/matroska.py: use python3wm42017-02-011-1/+1
| | | | | "python" usually maps to Python 2, while all Python 3 installations provide "python3". And the script requires Python 3.
* demux_mkv: passthrough BlockAdditions for libvpx alphawm42017-01-311-0/+6
| | | | | Dumb but simple thing. Requires the FFmpeg libvpx decoder wrapper, as its native decoder doesn't support alpha.
* TOOLS/matroska.py: fix some minor things for dumpingwm42017-01-311-5/+4
| | | | | | | | | | | | | | TOOLS/matroska.py can be used stand-alone for dumping Matroska file contents. Fix some related issues. Elements were treated as unknown if the element hex ID contained uppercase characters. Unknown elements stopped parsing. This was intentional, but I don't really see any reason for it. Dumping with Python 2 is broken. I don't care, but everytime I hit this, I find myself trying to find out why. So make it error out explicitly.
* TOOLS/file2string.py: fix standalone invocationwm42017-01-051-1/+1
|
* build: use matroska.py & file2string.py as python modulesStefano Pigozzi2017-01-053-7/+11
|
* mpv_identify.sh: add "duration" property to the list.Rudolf Polzer2016-12-171-0/+1
|
* TOOLS/matroska.py: format file dumper output slightly nicerwm42016-12-171-2/+2
|
* TOOLS/matroska.py: allow using as modulewm42016-12-171-46/+49
| | | | | | Don't force CLI usage. It can be imported, and generate_C_header() and generate_C_definitions() can be called with a file argument instead of writing to stdout always.
* Revert "Port several python scripts to Perl"wm42016-12-179-1401/+490
| | | | | | | | | | | | | | | | | | This reverts commit fae73079310eef9dce9737f2e37ff4b80c8830ee. Before the waf build system was used, we had a configure script written in shell. To drop the build dependency on Python, someone rewrote the Python scripts we had to Perl. Now the shell configure script is gone, and it makes no sense to have a build dependency on both Perl and Python. This isn't just a straight revert. It adds the new Matroska EBML elements to the old Python scripts, adjusts the waf build system, and of course doesn't add anything back needed by the old build system. It would be better if this used matroska.py/file2string.py directly by importing them as modules, instead of calling them via "python". But for now this is simpler.
* build: bump required minimum versions to FFmpeg 3.2.2 and Libav 12wm42016-12-071-2/+2
| | | | Fixes the build with Libav 11 (not).
* TOOLS/autoload: allow disabling through script-optsRicardo Constantino2016-12-051-1/+8
| | | | | | | | | | | This allows leaving autoload in auto-loaded scripts and to be used in a special profile like "pseudo-gui" without being troublesome to disable the behavior in profiles that get applied after pseudo-gui. Ex: [someprofile] script-opts=autoload-disabled=yes
* command: redefine some deprecated propertieswm42016-11-221-3/+1
| | | | | | | | | | | | | | As threatened by the API changes document. We can actually keep the deprecated --playlist-pos and --cache options, since they are aliases and not used by the corresponding properties. They are inconsistent, but do no harm. Keep them for now for the sake of the command line user. mpv_identify.sh partially stopped working, because it was never updated. The shell magic can't deal with property names that contain "/", so we can't replace "samplerate" with "audio-params/samplerate" - just remove these properties. (How about you use ffprobe?)
* travis: fix ffmpeg-git buildStefano Pigozzi2016-11-171-1/+1
|
* demux_mkv: parse colorimetry metadataNiklas Haas2016-11-081-0/+27
| | | | | | | | | Matroska actually has lots of colorimetry metadata that video tracks can use, including mastering metadata (HDR signal peak) etc. This commit adds the EBML definitions and parses the most basic fields. Note that nothing uses these fields yet, this commit is just adding the necessary parsing and infrastructure.
* TOOLS/appveyor-install: install uchardet release insteadRicardo Constantino2016-10-211-1/+1
|
* TOOLS/stats-conv.py: use different colors for symbols toowm42016-10-061-5/+6
| | | | | Also, not setting pen=None seems to draw horizontal lines for the dots, which is fine too.
* player: do not let pseudo-gui override user config settingswm42016-09-231-1/+1
| | | | | | | | Seems like this confused users quite often. Instead of --profile=pseudo-gui, --player-operation-mode=pseudo-gui now has to be used to invoke pseudo GUI mode. The old way still works, and still behaves in the old way.
* TOOLS/lua/observe-all: explicitly observe all optionswm42016-09-231-1/+9
|
* TOOLS/zsh.pl: don't filter files by extensionPhilip Sequeira2016-09-101-2/+1
| | | | | | | Closes #2273. See that issue for explanation/discussion. I'll add examples on how to filter in your own config to the wiki soon: https://github.com/mpv-player/mpv/wiki/Zsh-completion-customization
* TOOLS/zsh.pl: die if we can't parse main optionsPhilip Sequeira2016-09-101-0/+3
| | | | | | | | | | | | | | | | This will catch cases where mpv runs without error, but the --list-options output isn't what we expect. Otherwise, we'll make a broken completion file that will result in cryptic errors when pressing tab, like: _mpv:18: command not found: *:files:->mfiles That's been the case for most of the zsh completion issues we've had reported, that I can remember. Also make uninitialized variable access fatal so that failures to parse other options will also make the script die eventually, albeit with a less nice message.
* travis: trigger website rebuild only on docs changesRicardo Constantino2016-09-041-0/+5
|
* travis: rebuild website for updated docs on pushStefano Pigozzi2016-09-041-0/+24
|
* TOOLS/zsh.pl: add m4a to zsh completion filetype listwgmk2016-08-261-1/+1
|
* Use - as command-name separator everywhereTimotej Lazar2016-07-141-1/+1
| | | | | | | Old-style commands using _ as separator (e.g. show_progress) were still used in some places, including documentation and configuration files. This commit updates all such instances to the new style (show-progress) so that commands are easier to find in the manual.
* vo_opengl: remove nnedi3 prescalerBin Jin2016-06-181-1/+0
|
* TOOLS/zsh.pl: add .f4v extension in zsh completionsYen Chi Hsuan2016-05-271-1/+1
|
* travis: move travis-deps script to TOOLSwm42016-05-121-0/+147
| | | | Don't let it clutter the top level directory.
* Add Appveyor CI integration for Windows buildsJames Ross-Gowan2016-05-122-0/+58
|
* TOOLS/zsh.pl: complete --audio-devicePhilip Sequeira2016-04-161-6/+22
|
* TOOLS/zsh.pl: properly escape last changePhilip Sequeira2016-04-081-2/+2
| | | | | | I'm an idiot. Fixes #3032.
* TOOLS/zsh.pl: don't complete URLs by defaultPhilip Sequeira2016-04-081-1/+7
| | | | | | | ...unless no files match. Fixes #2892. To get the old behaviour back, use something like: zstyle ':completion:*:*:mpv:*' tag-order
* TOOLS/zsh.pl: add .wv extension in zsh completionsMartin Herkt2016-03-261-1/+1
|
* TOOLS/lua/README: link to list of user scripts on wikiwm42016-03-181-1/+7
|
* TOOLS/lua/zones.lua: RemoveRicardo Constantino2016-03-081-74/+0
| | | | Check wiki/User-Scripts for more up-to-date version.
* TOOLS/lua/autoload.lua: remove the extension prior to sortAlexis Nootens2016-02-021-0/+5
| | | | | | When the directory contains files named such as xx-14.ext and xx-14.5.ext, remove the extension to sort the table to load the 14 before the 14.5.
* TOOLS/lua/ao-null-reload.lua: send ao-reload on audio-device-list changeKevin Mitchell2016-01-281-0/+20
| | | | | | | Only triggers if ao=null. This is required for ao=wasapi to recover from periods with no available devices. fixes #2738
* TOOLS/stats-conv: slightly better colorwm42016-01-121-3/+9
| | | | | | | | pyqtgraph's intColor() is less than ideal, especially on white background. Can't see anything. Unfortunately the rendering of the legend can't be fixed, because pyqtgraph is terrible and hardcodes its rendering, including colors.
* TOOLS: remove old build systemwm42016-01-102-1500/+0
| | | | I'll still use it privately, but nobody else should.
* Fix build on older libavcodec versionswm42016-01-081-0/+1
| | | | avcodec_profile_name() was added only a week ago or so.
* bundle: remove git sha from the Info.plist versionStefano Pigozzi2016-01-051-1/+10
| | | | Fixes #2677
* TOOLS/zsh.pl: add .opus extension in zsh completionsEric G2015-12-291-1/+1
|
* old-configure: add a missing definewm42015-12-231-0/+1
| | | | (Why am I maintaining 2 build systems?)
* win32: input: use Vista CancelIoExJames Ross-Gowan2015-12-201-1/+0
| | | | | | | | | | | | | | | | | libwaio was added due to the complete inability to cancel synchronous I/O cleanly using the public Windows API in Windows XP. Even calling TerminateThread on the thread performing I/O was a bad solution, because the TerminateThread function in XP would leak the thread's stack. In Vista and up, however, this is no longer a problem. CancelIoEx can cancel synchronous I/O running on other threads, allowing the thread to exit cleanly, so replace libwaio usage with native Vista API functions. It should be noted that this change also removes the hack added in 8a27025 for preventing a deadlock that only seemed to happen in Windows XP. KB2009703 says that Vista and up are not affected by this, due to a change in the implementation of GetFileType, so the hack should not be needed anymore.
* vo_opengl: prefix per-backend source files with context_wm42015-12-191-3/+3
|
* vo_opengl: split backend code from common.c to context.cwm42015-12-191-0/+1
| | | | | | | | Now common.c only contains the code for the function loader, while context.c contains the backend loader/dispatcher. Not calling it "backend.c", because the central struct is called MPGLContext.
* vo_opengl: x11egl: retrieve framebuffer depthwm42015-12-191-1/+2
| | | | | | | | | | This is used for dithering, although I'm not aware of anyone who got higher than 8 bit depth support to work on Linux. Also put this into egl_helpers.c. Since EGL is pseudo-portable at best I have no hope that the EGL context creation code in all the backends can be fully shared. But some self-contained functionality can definitely be shared.
* sub: rename sd_lavc_conv.c to lavc_conv.cwm42015-12-181-1/+1
| | | | | | | | The previous commit turned sd_lavc_conv from a sd_driver to free-standing functions. Do the rename to reflect this change separately to avoid confusing git's content tracking. (Or did git solve this, making separating renames and content changes unnecessary?)
* sub: remove sd_srt.cwm42015-12-151-1/+0
| | | | | | | | The FFmpeg subtitle converter does the same. There used to be some deficiencies in FFmpeg's code, but it seems at least some of them have been fixed. There also used to be the timestamp issue (see previous commit messages), but this doesn't matter anymore. So no reason to keep this code - get rid of it.
* sub: remove sd_microdvd.cwm42015-12-151-1/+0
| | | | | | | This can be dropped for the same reasons as in the previous commits. It removes MicroDVD conversion support on Libav, although MicroDVD files couldn't be read in the first place ever since demux_subreader.c was removed.
* sub: remove sd_lavf_srt.cwm42015-12-151-1/+0
| | | | | | | This restored timestamps when demuxing srt subtitles in Libav, which was important for avoiding slightly overlapping subtitles. Since the way this works was changed, there is no real reason to maintain proper timestamps anymore on this level - this can be dropped without issues.
* sub: remove sd_movtext.cwm42015-12-151-1/+0
| | | | | libavcodec's movtext-to-ass converter does the same and has more features. On Libav, this commit disables mp4 subtitle display.
* demux: remove old subtitle parserwm42015-12-101-1/+0
| | | | | | | | | All of these are supported by FFmpeg now. It was disabled by default too (with FFmpeg). If compiled against Libav, mpv will lose the ability to read some subtitle formats (but the most important ones, srt and ass, still should work).
* stream: drop PVR supportwm42015-12-102-6/+0
| | | | | | | | | This is only for specific Hauppage cards. According to the comments in who is actively using this feature. Get it out of the way. Anyone who still wants to use this should complain. Keeping this code would not cause terribly much additional work, and it could be restored again. (But not if the request comes months later.)
* win32: add option to set VO MMCSS profilewm42015-12-061-0/+1
| | | | This was requested.
* vo_opengl: require --enable-gpl3 for nnediwm42015-12-031-0/+1
| | | | | | | | | There are claims that nnedi3.c doesn't constitute its own new implementation, but is derived from existing HLSL or OpenCL shaders distributed under the LGPLv3 license. Until these are resolved, do the "correct" thing and require --enable-gpl3 to build nnedi.
* old-configure: add a missing config.h entrywm42015-11-191-0/+1
| | | | Yes, the old build system still exists in-tree.
* demux_libass: remove this demuxerwm42015-11-111-2/+1
| | | | | | | | | This loaded external .ass files via libass. libavformat's .ass reader is now good enough, so use that instead. Apparently libavformat still doesn't support fonts embedded into text .ass files, but support for this has been accidentally broken in mpv for a while anyway. (And only 1 person complained.)
* vo_opengl: add DRM EGL backendrr-2015-11-081-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Notes: - Unfortunately the only way to talk to EGL from within DRM I could find involves linking with GBM (generic buffer management for Mesa.) Because of this, I'm pretty sure it won't work with proprietary NVidia drivers, but then again, last time I checked NVidia didn't offer proper screen resolution for VT. - VT switching doesn't seem to work at all. It's worth mentioning that using vo_drm before introduction of VT switcher had an anomaly where user could switch to another VT and input text to it, while video played on top of that VT. However, that isn't the case with drm_egl: I can't switch to other VT during playback like this. This makes me think that it's either a limitation coming from my firmware or from EGL/KMS itself rather than a bug with my code. Nonetheless, I still left (untestable) VT switching code in place, in case it's useful to someone else. - The mode_id, connector_id and device_path should be configurable for power users and people who wish to watch videos on nonprimary screen. Unfortunately I didn't see anything that would allow OpenGL backends to register their own set of options. At the same time, adding them to global namespace is pointless. - A few dozens of lines could be shared with vo_drm (setting up VT switching, most of code behind page flipping). I don't have any strong opinion on this. - Sometimes I get minor visual glitches. I'm not sure if there's a race condition of some sort, unitialized variable (doubtful), or if it's buggy driver. (I'm using integrated Intel HD Graphics 4400 with Mesa) - .config and .control are very minimal. Signed-off-by: wm4 <wm4@nowhere>
* old-makefile: update with latest source additionswm42015-11-051-0/+6
| | | | Yes, I'm still using this.
* file2string: mark question mark as non-safeBin Jin2015-11-051-2/+2
| | | | | Escaping all question marks as well, they can be used to form trigraph characters which are effective even within string literal.
* TOOLS/gen-x11-icon.sh: fix for recent ImageMagickJames Ross-Gowan2015-11-041-1/+1
| | | | | Apparently ImageMagick no longer appends a newline to the format. This also sets the execute bit on the script.
* sd_lavc: take care of AVPicture deprecationwm42015-10-231-0/+6
|
* TOOLS/autoload: avoid throwing an error when playing e.g. youtubebitingsock2015-10-201-1/+6
| | | | Signed-off-by: wm4 <wm4@nowhere>
* build: remove explicit checks for VPPwm42015-10-172-7/+1
| | | | | This was once done when old versions of libva without VPP had to be supported. Some parts of it were removed earlier already.
* TOOLS/stats-conv: rewrite for pygtgraphwm42015-10-151-14/+26
| | | | | | | | matplotlib is pathetically slow, which makes using stats-conv.py to view dumps longer than a few seconds a huge pain. pyqtgraph is slightly faster than matplotlib. Other than that, it seems to be worse in every aspect (at least for plotting), but such is life.
* Revert "vo_x11: remove this video output"wm42015-09-301-1/+2
| | | | | | | | | | | | | | | This reverts commit d11184a256ed709a03fa94a4e3940eed1b76d76f. Unfortunately, there was a lot of unexpected resistance. Do note that this is still extremely slow, crappy, etc. Note that vo_x11.c was further edited. Compared to the removed vo_x11.c, an additional ~200 lines of code was removed in order to simplify it. I tried to strip it down as much as possible. In particular, support for odd non-32 bit formats (24, 16, 15, 8 bit) is dropped. Closes #2300.
* Take care of libavcodec convergence_duration deprecationwm42015-09-291-0/+6
| | | | | | This AVPacket field was a hack against the fact that the duration field was merely an int (too small for things like subtitle durations). Newer libavcodec drops this field and makes duration 64 bit.
* video: remove VDA supportwm42015-09-281-5/+0
| | | | | | | | | VideoToolbox is preferred. Now that FFmpeg released 2.8, there's no reason to support VDA anymore. In fact, we had a bug that made VDA not useable with older FFmpeg versions in some newer mpv releases. VideoToolbox is supported even on slightly older OSX versions, and if not, you still can run mpv without hw decoding.
* vo_opengl: vaapi: add Wayland supportwm42015-09-271-0/+6
| | | | | | Pretty trivial with the new EGL interop. Fixes #478.
* vo_opengl: refactor EGL context information callbackwm42015-09-271-0/+1
| | | | | Move the ugliness from x11egl.c to common.c, so that the ugliness doesn't have to be duplicated in wayland.c.
* vaapi: remove dependency on X11wm42015-09-271-0/+2
| | | | | | | | | | | | | There are at least 2 ways of using VAAPI without X11 (Wayland, DRM). Remove the X11 requirement from the decoder part and the EGL interop. This will be used by a following commit, which adds Wayland support. The worst about this is the decoder part, which includes a bad hack for using the decoder without any VO interop (also known as "vaapi-copy" mode). Separate the X11 parts so that they're self-contained. For the EGL interop code we do something similar (it's kept slightly simpler, because it essentially only has to translate between our silly MPGetNativeDisplay abstraction and the vaGetDisplay...() call).
* vo_opengl: vaapi: redo how EGL extensions are loadedwm42015-09-271-1/+0
| | | | | | | It looks like my hope that we can unconditionally include EGL headers in the OpenGL code is not coming true, because OSX does not support EGL at all. So I prefer loading the VAAPI EGL/GL specific extensions manually, because it's less of a mess. Partially reverts commit d47dff3f.
* video: refactor GPU memcpy usagewm42015-09-252-0/+2
| | | | | | | | | | | | | | | | | Make the GPU memcpy from the dxva2 code generally useful to other parts of the player. We need to check at configure time whether SSE intrinsics work at all. (At least in this form, they won't work on clang, for example. It also won't work on non-x86.) Introduce a mp_image_copy_gpu(), and make the dxva2 code use it. Do some awkward stuff to share the existing code used by mp_image_copy(). I'm hoping that FFmpeg will sooner or later provide a function like this, so we can remove most of this again. (There is a patch, bit it's stuck in limbo since forever.) All this is used by the following commit.
* vo_opengl: support new VAAPI EGL interopwm42015-09-252-0/+5
| | | | | | | | | | | | | | | | | | | | | | | Should work much better than the old GLX interop code. Requires Mesa 11, and explicitly selecting the X11 EGL backend with: --vo=opengl:backend=x11egl Should it turn out that the new interop works well, we will try to autodetect EGL by default. This code still uses some bad assumptions, like expecting surfaces to be in NV12. (This is probably ok, because virtually all HW will use this format. But we should at least check this on init or so, instead of failing to render an image if our assumption doesn't hold up.) This repo was a lot of help: https://github.com/gbeauchesne/ffvademo The kodi code was also helpful (the magic FourCC it uses for EGL_LINUX_DRM_FOURCC_EXT are nowhere documented, and EGL_IMAGE_INTERNAL_FORMAT_EXT as used in ffvademo does not actually exist). (This is the 3rd VAAPI GL interop that was implemented in this player.)
* vo_opengl: load certain EGL extensions needed for VAAPI EGL interopwm42015-09-251-0/+1
| | | | | | | | | These extensions use a bunch of EGL types, so we need to include the EGL headers in common.h to use our GL function loader with this. In the future, we should probably require presence of the EGL headers to reduce the hacks. This might be not so simple at least with OSX, so for now this has to do.
* player: rename and move find_subfiles.cwm42015-09-201-1/+1
| | | | | | This was in sub/, because the code used to be specific to subtitles. It was extended to automatically load external audio files too, and moving the file and renaming it was long overdue.
* TOOLS/zsh.pl: only check the actual exit code when calling mpvPhilip Sequeira2015-09-201-2/+2
| | | | | Ignore the other bits of $?. Apparently they can be set even if the command succeeded.
* video/filter: remove some vf_lavfi wrapperswm42015-09-111-4/+0
| | | | | | | | | | | | | | | | I see no point in keeping these around. Keeping wrappers for some select libavfilter filters just because MPlayer had these filters is not a good reason. Ultimately, all real filtering work should go to libavfilter, and users should get used to using vf_lavfi directly. We might even not require the awful double-nested syntax for using libavfilter one day. vf_rotate, vf_yadif, vf_stereo3d are kept because mpv uses them internally. (They all extend the lavfi filters or change their defaults.) vf_mirror is kept for symmetry with vf_flip. vf_gradfun and vf_pullup are probably semi-popular, so I'll remove them not yet - only after some more discussion.
* video: do not use deprecated libavutil pixdesc fieldswm42015-09-101-0/+6
| | | | | | These were normalized and are saner now. We want to use the new fields, and also get rid of the deprecation warnings, so use them. There's no release yet which uses these, so some ifdeffery is unfortunately needed.
* old-makefile: update for recent OpenGL refactorswm42015-09-091-9/+14
|
* Use setfield, not --field-dominance. See #2297.Rudolf Polzer2015-09-091-6/+6
|
* audio/filter: remove af_bs2b toowm42015-09-042-4/+0
| | | | | | | Some users still use this filter, so the filter was going to be kept. But I overlooked that libavfilter provides this filter. Remove the redundant wrapper from mpv. Something like --af=lavfi=bs2b should work and give exactly the same results.
* audio/filter: remove some useless filterswm42015-09-032-16/+0
| | | | | | | | | | | | | | | | | | | | | | | | All of these filters are considered not useful anymore by us. Some have replacements in libavfilter (useable through af_lavfi). af_center, af_extrastereo, af_karaoke, af_sinesuppress, af_sub, af_surround, af_sweep: pretty simple and useless filters which probably nobody ever wants. af_ladspa: has a replacement in libavfilter. af_hrtf: the algorithm doesn't work properly on most sources, and the implementation was buggy and complicated. (The filter was inherited from MPlayer; but even in mpv times we had to apply fixes that fixed major issues with added noise.) There is a ladspa filter if you still want to use it. af_export: I'm not even sure what this is supposed to do. Possibly it was meant for GUIs rendering audio visualizations, but it couldn't really work well. For example, the size of the audio depended on the samplerate (fixed number of samples only), and it couldn't retrieve the complete audio, only fragments. If this is really needed for GUIs, mpv should add native visualization, or a proper API for it.
* TOOLS/lua/autoload: fix adding more files at end of auto-playlistRicardo Constantino2015-08-201-2/+5
| | | | | | | | | Fixes regression in dfd8a5f that made autoload not add more files at the end of the current playlist if playlist was made by the script. This still prevents loading the script if more than one (media or playlist) file was manually added.
* TOOLS/lua/autoload: add all files on startwm42015-08-201-2/+2
| | | | | | Or almost. I don't know or care. Fixes #2219 (maybe, I don't know or care).
* old-configure: avoid a warningwm42015-08-191-0/+1
|
* stream: libarchive wrapper for reading compressed archiveswm42015-08-172-0/+5
| | | | | | | | | | | | | | | | | | | | This works similar to the existing .rar support, but uses libarchive. libarchive supports a number of formats, including zip and (most of) rar. Unfortunately, seeking does not work too well. Most libarchive readers do not support seeking, so it's emulated by skipping data until the target position. On backwards seek, the file is reopened. This works fine on a local machine (and if the file is not too large), but will perform not so well over network connection. This is disabled by default for now. One reason is that we try libarchive on every file we open, before trying libavformat, and I'm not sure if I trust libarchive that much yet. Another reason is that this breaks multivolume rar support. While libarchive supports seeking in rar, and (probably) supports multivolume archive, our support of libarchive (probably) does not. I don't care about multivolume rar, but vocal users do.
* atomics: cleanup HAVE_ATOMICS definewm42015-08-131-0/+3
| | | | | | | The waf build system generates this already. No point in redoing it in the header file. The legacy build system (which we really should drop) didn't; fix it.
* TOOLS/stats-conv: allow passing regex via command linewm42015-08-101-1/+4
|
* TOOLS/lua/autoload: don't run if playlist is loadedRicardo Constantino2015-08-101-0/+4
|
* TOOLS/lua: Add zones.luaRicardo Constantino2015-08-091-0/+74
| | | | | | | | | | | | | | | | | Lua script that enables handling of certain commands depending on where the mouse pointer is. Mostly useful for mouse-wheel handling via input.conf. Example: MOUSE_BTN3 script-message-to zones commands "*-left: add volume +5" "default: seek +10" MOUSE_BTN4 script-message-to zones commands "*-left: add volume -5" "default: seek -10" Will changes behavior of Mouse Wheel Up/Down to alter volume if mouse is in the left zone of the window, but re-adds the default to seek if wheel is used on other parts.
* old-configure: add dummies for recently added config.h entrieswm42015-08-051-0/+9
| | | | | | | Also add a note that you should not use the old build system. (It's only kept because of the "asshole maintainer" rule: no matter how broken or pointless someting is, as long as you're the maintainer and want to keep it, it stays in the repo.)
* player: remove higher-level remains of DVD/BD menu supportwm42015-08-031-1/+0
| | | | | | | | | | | | | | | Nobody wanted to restore this, so it gets the boot. If anyone still wants to volunteer to restore menu support, this would be welcome. (I might even try it myself if I feel masochistic and like wasting a lot of time for nothing.) But if it does get restored, it should be done differently. There were many stupid things about how it was done. For example, it somehow tried to pull mp_nav_events through all the layers (including needing to "buffer" them in the demuxer), which was needlessly complicated. It could be done simpler. This code was already inactive, so this commit actually changes nothing. Also keep in mind that normal DVD/BD playback still works.
* charset_conv: add uchardet supportwm42015-08-021-0/+2
| | | | | | | | | | | | | | For now, it needs to be explicitly selected. ENCA is still the default. This assumes uchardet returns iconv names. This doesn't seem to be always the case, and the result are lots of iconv errors. So explicitly check for this situation, and print a warning if it occurs. It's entirely possible that uchardet support is actually useless, because names are not necessarily iconv-compatible (but uchardet doesn't seem to document whether it attempts to return iconv-compatible names if possible). Fixes #908.
* audio: remove af_dummywm42015-08-011-1/+0
| | | | Was used internally once; has no function anymore.
* old-configure: some adjustmentswm42015-08-011-2/+2
|
* TOOLS: remove youtube-starttime.luawm42015-07-291-34/+0
| | | | Obsolete due to native youtube-dl start time support.
* TOOLS: unbreak osxbundle.pyChrisK22015-07-211-1/+1
| | | | broekn by 739d345d6cf0ead2b25f03ca83123a081b506267
* TOOLS/zsh.pl: die loudly if mpv fails to runPhilip Sequeira2015-07-191-2/+13
|
* TOOLS: make autodeint detect telecine in parallelKevin Mitchell2015-07-161-45/+26
| | | | This avoids having to rewind the video for a second telecine detection pass.
* build: don't make version.sh create version.h by defaultwm42015-07-141-4/+4
| | | | | You could actually run version.sh, and then the waf build system could accidentally pick up the generated (and most likely stale) version.h.
* vf_vdpaurb: Add a new filter for reading back vdpau decoded framesPhilip Langdale2015-07-111-1/+2
| | | | | | | | | | | | | | | | | Normally, vdpau decoded frames are passed directly to a suitable vo (vo_vdpau or vo_opengl) without ever touching system memory. This is efficient for output purposes, but prevents any of the regular filters from being used with such frames. This new filter implements a read-back step to pull the frames back into system memory where they can be acted on by other filters. Eventually the frames will be sent to the vo as if they were normal software-decoded frames. Note that a vdpau compatible vo must still be used to ensure that the decoder is properly initialised. Signed-off-by: wm4 <wm4@nowhere>
* av_log: print FFmpeg versionwm42015-07-031-0/+6
| | | | | The individual library versionsd are pretty useless. This will actually tell us at least the git hash or git tag of the FFmpeg build.
* vo_x11: remove this video outputwm42015-06-261-2/+1
| | | | | | | It only causes additional maintenance work. Even if you wanted to have a fallback, it's probably better to use --vo=sdl or so.
* demux_mkv: don't use byte stringswm42015-06-241-1/+1
| | | | | | Use char* for strings instead of bstr (data ptr + length pair). Matroska actually (probably) allows "padding" strings with \0 bytes, so using normal C strings instead of byte strings is more appropriate.
* af_convert24: remove this filterwm42015-06-161-1/+0
|
* audio: remove S8, U16, U24, U32 formatswm42015-06-161-1/+0
| | | | | | | | | | | | | They are useless. Not only are they actually rarely in use; but libavcodec doesn't even output them, as libavcodec has no such sample formats for decoded audio. Even if it should happen that we actually still need them (e.g. if doing direct hardware output), there are better solutions. Swapping the sign is a fast and lossless operation and can be done inplace, so AO actually needing it could do this directly. If you wonder why we keep U8 instead of S8: because libavcodec does it.
* idet.sh: Support larger files.Rudolf Polzer2015-06-021-1/+1
|
* vdpau: add support for the "new" libavcodec vdpau APIwm42015-05-281-1/+1
| | | | | | | | | Yet another of these dozens of hwaccel changes. This time, libavcodec provides utility functions, which initialize the vdpau decoder and map codec profiles. So a lot of work the API user had to do falls away. This also will give us support for high bit depth profiles, and possibly HEVC once libavcodec supports it.
* video: rename vdpau.c to vdpau_old.cwm42015-05-281-1/+1
| | | | vdpau.c will be used for new code.
* TOOLS/lua/status-bar: update use of a deprecated propertywm42015-05-251-1/+3
| | | | | Also mention that this code does not reflect the status line of current mpv.
* demux_cue: move cue parser to a separate filewm42015-05-191-0/+1
| | | | Preparation for the next commit.
* Remove trailing whitespacesMichael Vetter2015-05-152-3/+3
|
* TOOLS/stats-conv.py: add another event typewm42015-05-111-2/+11
|
* build: exclude -Wredundant-declswm42015-05-091-1/+1
| | | | | | | It's useless, and creates a bogus warning in subprocess-posix.c. Since I don't know which compilers might have it by default, just change it to -Wno-redundant-decls.
* old-configure: hidewm42015-05-092-0/+1471
| | | | It shouldn't be used, but it's still in the repo because I say so.
* osxbundle: remove unnecessary config file entrywm42015-05-011-1/+0
| | | | This is done via pseudo-gui now.
* TOOLS/autoload: load only files that make senseMarcin Kurczewski2015-04-211-0/+30
|
* TOOLS/autoload: add blank lines for readabilityMarcin Kurczewski2015-04-211-0/+7
|
* TOOLS: autoload.lua: sort files case insensitivewm42015-04-181-1/+3
| | | | | Suggested by a user. The suggested code which was added her comes from PIL.
* TOOLS/umpv: fix typo in docstringAdrian Sadłocha2015-04-171-1/+1
|
* OSX/mpv.app/mpv.conf: Use pseudo-guirobin007bond2015-04-131-2/+1
| | | | | | | | The player is now forced to use the pseudo-gui profile. Fixes #1808 and #1754. Signed-off-by: wm4 <wm4@nowhere>
* TOOLS/zsh.pl: complete multiple values for ao, vo, af, vfPhilip Sequeira2015-03-311-21/+9
| | | | It still doesn't deal with sub-options, but that's for another day.
* TOOLS/zsh.pl: cosmeticsPhilip Sequeira2015-03-311-26/+25
|
* TOOLS/zsh.pl: use --no-config when calling mpvPhilip Sequeira2015-03-311-8/+8
|
* TOOLS: add a lua scripts for extracting and setting starttime with ytdlPatrick Hipp2015-03-231-0/+34
| | | | Signed-off-by: wm4 <wm4@nowhere>
* TOOLS: add a lua script for a -stay on top only during playback- modePatrick Hipp2015-03-231-0/+19
| | | | Signed-off-by: wm4 <wm4@nowhere>
* TOOLS: remove youtube-dl_mpv.shwm42015-03-131-22/+0
| | | | It lost all reason to exist, since mpv includes ytdl_hook.lua by default.
* demux_mkv: make matroska.pl script output deterministicwm42015-03-111-1/+1
| | | | | | Work around the randomized Perl hashtables by sorting the elements. Fixes #1673.
* w32_common: support the "window-minimized" propertyJames Ross-Gowan2015-03-091-2/+0
|
* cocoa: support the "window-minimized" propertyJaime Marquínez Ferrándiz2015-03-081-1/+1
| | | | Signed-off-by: Stefano Pigozzi <stefano.pigozzi@gmail.com>
* osxbundle: config file special case isn't needed anymorewm42015-02-151-0/+0
| | | | | | The previous commit effectively fixes the mess caused by 'config' vs. 'mpv.conf', and the hack introduced by commit e01a6dac and extended by commit db167cd4 isn't needed anymore.
* ao_coreaudio: add support for hotplug notificationsStefano Pigozzi2015-02-141-0/+5
| | | | | | | | | | This commit adds notifications for hot plugging of devices. It also extends the old behaviour of the `audio-out-detected-device` property which is now backed by the hotplugging code. This allows clients to be notified when the actual audio output device changes. Maybe hotplugging should be supported for ao_coreaudio_exclusive too, but it's device selection code is a bit fragile.
* player: deprecate 'config' files (use mpv.conf), warn against clasheswm42015-02-131-0/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | Apparently there's at least one distro which ships a /etc/mpv/mpv.conf file (mpv doesn't install such a file). This breaks config files named 'config' located in the user's mpv config directory, because mpv first loads files named 'config' and then 'mpv.conf'. There is no mechanism for putting files with different names into the same config path order. (Even worse, that mpv.conf file only set an option to the default value. Why do distros always do very stupid things?) Print a warning on collisions. Although using 'config' was well-supported, supporting both names is starting to become messy, so deprecate 'config' and print a warning if one is found. At least we will be able to remove the whole mess once 'config' files are ignored... This also affects the osx-bundle, which intentionally used these not-so- optimal semantics. Solve it in a different way. (Unfortunately with an ifdef - it's not required, but having to explain everyone why mpv tries to load a osx-bundle.mpv file on Linux and Windows would consume energy.) Closes #1569.
* audio: add device change notification for hotpluggingwm42015-02-122-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | Not very important for the command line player; but GUI applications will want to know about this. This only adds the internal API; support for specific audio outputs comes later. This reuses the ao struct as context for the hotplug event listener, similar to how the "old" device listing API did. This is probably a bit unclean and confusing. One argument got reusing it is that otherwise rewriting parts of ao_pulse would be required (because the PulseAudio API requires so damn much boilerplate). Another is that --ao-defaults is applied to the hotplug dummy ao struct, which automatically applies such defaults even to the hotplug context. Notification works through the property observation mechanism in the client API. The notification chain is a bit complicated: the AO notifies the player, which in turn notifies the clients, which in turn will actually retrieve the device list. (It still has the advantage that it's slightly cleaner, since the AO stuff doesn't need to know about client API issues.) The weird handling of atomic flags in ao.c is because we still don't require real atomics from the compiler. Otherwise we'd just use atomic bitwise operations.
* osxbundle: don't try to package PythonStefano Pigozzi2015-02-021-0/+1
| | | | | | | | This fixes usage when the bundle is used on the same machine that Python/Cython was compiled on. It doesn't fix the harder problem of packaging a full Python installation in the mpv app bundle (and I'm not sure we actually want that). Fixes #1549
* TOOLS/stats-conv: change unit of X-axis to secondswm42015-02-011-3/+5
| | | | ...instead of milliseconds.
* youtube-dl_mpv.sh: unquote ${video_url}Vítor Galvão2015-01-231-1/+1
|
* youtube-dl_mpv.sh: use curly braces and double quotes consistentlyVítor Galvão2015-01-221-8/+8
|
* TOOLS/zsh.pl: complete options based on typesPhilip Sequeira2015-01-061-31/+70
| | | | | | | | | | No more equals signs for options that don't take values. Complete values for options with preset choices. Complete --no-whatever where applicable. Fixes #997.
* TOOLS/lua/observe-all: add a warningwm42015-01-031-0/+4
| | | | This is just natural, but it's also not that obvious.
* TOOLS/lua/autoload: fix behavior with network URLswm42015-01-031-0/+3
| | | | | readdir() fails if the directory is an URL, so just exit instead of letting the Lua script fail.
* TOOLS/stats-conv: more improvementswm42015-01-031-13/+20
| | | | | | | | | | Add an explicit "signal" event type, because the implicit one was confusing. Don't rescale the Y axis of the second graph, it was nonsense. Make the legend for the second graph separate (and cleanup the code creating the graphs).
* TOOLS/stas-conv: add timed value event typewm42015-01-021-0/+8
|
* TOOLS/stats-conv: better outputwm42015-01-021-11/+20
| | | | | | Sort the legend by the used y value of binary events/signals, add a way to filter branches (although that requires editing the script), and use the full screen if the second subplot is not used.
* osxbundle: fix cascading config loadingStefano Pigozzi2014-12-261-0/+0
| | | | | | | | | | | | | | | | | mpv does 'cascading' configs by overriding options as the config become more important (bundle -> system level -> user level). Unfortunately mpv also loads two sets of configs files one after the other [1]. First it looks for 'config', then for 'mpv.conf'. For this reason a mpv.conf in ANY location will override ANY config files named config (even if the mpv.conf is in a system path and config in a user path). [1]: Relevant code in player/configfiles.c load_all_cfgfiles(mpctx, section, "config"); load_all_cfgfiles(mpctx, section, "mpv.conf"); Fixes: #1361
* options: deprecate 'lua' based options/dirs for 'script'Avi Halachmi (:avih)2014-12-153-5/+5
| | | | | | | | | | | | - --lua and --lua-opts change to --script and --script-opts - 'lua' default script dirs change to 'scripts' - DOCS updated - 'lua-settings' dir was _not_ modified The old lua-based names/dirs still work, but display a warning. Signed-off-by: wm4 <wm4@nowhere>
* osxbundle: don't use sed but pure pythonMihai Moldovan2014-12-131-1/+3
| | | | | | | | GNU sed and BSD sed don't share the same options for editing files in-place, so a workaround is needed. The most simple way is to use a pure python implementation of applying the changes.
* cocoa: bundle: use idle=onceStefano Pigozzi2014-12-071-1/+1
|
* cocoa: use --idle when running inside bundleStefano Pigozzi2014-12-061-0/+2
| | | | | Previously when using the bundle we used a custom bizarro thing to wait for events. Just use `--idle` and greatly simplify the code.
* cocoa: save screenshots to desktop when using app bundleStefano Pigozzi2014-12-051-0/+1
| | | Fixes #947
* video: remove internal QP passingwm42014-12-032-121/+1
| | | | | | | | | | | This was required by vf_pp, which was just removed. vf_dlopen has this stuff in its API. This API is considered stable, so the related fields are not removed from it. But the fields are always 0 now, so there's no point in keeping the example program around. vf_pullup.c did some extremely awkward passthrough of this information, but didn't actually use it.
* cocoa: add https:// url scheme to bundle's plistStefano Pigozzi2014-12-021-0/+1
|
* cocoa: add mk3d UTI to bundle's plistNyx0uf2014-12-021-0/+23
| | | | | | This should allow lauching a mk3d file directly from the Finder. Fixes #1311
* cocoa: split mkv/webm for imported UTI in plistNyx0uf2014-12-011-0/+20
|
* lua: add a function that formats Lua values as stringswm42014-11-291-8/+2
| | | | | | | | Yep, Lua is so crappy that the stdlib doesn't provide anything like this. Repurposes the undocumented mp.format_table() function and moves it to mp.utils.
* TOOLS/lua: add script that pauses playback when minimizing the windowwm42014-11-291-0/+22
| | | | | | Uses functionality that was added a month ago for exactly this purpose. Fixes #1237.
* TOOLS/idet.sh: Adjust for changes in FFmpeg.Rudolf Polzer2014-11-221-5/+1
| | | | Compatibility to older idet is preserved.
* umpv: update comment for the new FIFO locationBen Boeckel2014-11-151-1/+1
|
* demux_mkv: read CueRelativePosition/CueDuration elementswm42014-11-051-0/+2
| | | | | | | | Nothing is done with them yet. This is preparation for the following commit. CueRelativePosition isn't even saved anywhere, because I don't intend to use it. (Too messy for no gain.)
* demux_mkv: implement audio skipping/trimmingwm42014-11-031-0/+3
| | | | | | | | | | | | | This mechanism was introduced for Opus, and allows correct skipping of "preroll" data, as well as discarding trailing audio if the file's length isn't a multiple of the audio frame size. Not sure how to handle seeking. I don't understand the purpose of the SeekPreRoll element. This was tested with correctness_trimming_nobeeps.opus, remuxed to mka with mkvmerge v7.2.0. It seems to be correct, although the reported file duration is incorrect (maybe a mkvmerge issue).
* TOOLS/lua/autoload: fix operation outside of working dirwm42014-10-261-3/+7
| | | | Fixes #1222. (This commit is based on a patch posted there.)
* TOOLS/lua/autoload: don't shadow local variablewm42014-10-261-4/+4
| | | | "dir" is already used somewhere above. This was ok, but not nice.
* TOOLS/umpv: create FIFO in user directorywm42014-10-241-22/+2
| | | | Makes these security measures unnecessary.
* TOOLS/lua: update README.mdKevin Mitchell2014-10-211-9/+2
|
* TOOLS/lua: remove tabs from some lua scriptsKevin Mitchell2014-10-213-50/+50
|
* TOOLS/lua: add autodeint.luaKevin Mitchell2014-10-211-0/+164
| | | | | | | This isn't quite as robust as idet.sh as the default detection interval is only 4 seconds vs 35 for idet.sh. idet.sh can have such a large sample time since it turns off the vo and uses --untimed, which is currently not possible from lua.
* TOOLS/vf_dlopen/ildetect.sh: remove duplicated assigmentshdown2014-10-161-1/+0
|
* TOOLS/umpv: drop unnecessary checkwm42014-09-241-2/+0
| | | | | This was supposed to make sure that argv[1:] does not fail, but Python actually allows mismatching bounds for slicing.
* TOOLS/umpv: use python octal notationshdown2014-09-241-1/+1
|
* TOOLS/mpv_identify.sh: remove pointless escapeshdown2014-09-241-1/+1
|
* TOOLS/idet.sh: add descriptionshdown2014-09-241-0/+3
| | | | | | Just a copy of c0cd58e3f5b1daff58ad5ca48b964a2b1fb86d6d commit message (with a small fix: ildetect.sh+ildetect.so, not ildetect.sh+ildetect.sh).
* TOOLS/idet.sh: remove unused and duplicated assignmentsshdown2014-09-241-2/+0
|
* TOOLS: idet: remove extra '$' in $(()) expansionBen Boeckel2014-09-211-4/+4
|
* TOOLS/umpv: make URL detection consistent with mpv methodshdown2014-09-201-6/+4
| | | | See mp_is_url in options/path.c.
* TOOLS/umpv: print error message to stderrshdown2014-09-201-1/+2
|
* TOOLS/umpv: use MPV environment variable, not UMPV_OPTIONSshdown2014-09-201-10/+8
| | | | Just like the rest of TOOLS/*.sh scripts.
* TOOLS/idet.sh: Handle the case of multiple Parsed_idet_0: output lines.Rudolf Polzer2014-09-171-14/+23
| | | | This seems to happen frequently now. It is handled by adding their values.
* TOOLS: eliminate echoes with variable substitutionsshdown2014-09-172-16/+18
| | | | | echo behaviour with backslash escapes seems to be non-portable: dash does expand such an escapes and bash does not, so use cat/printf instead.
* TOOLS/mpv_identify.sh: simplify line-by-line readingshdown2014-09-161-18/+6
| | | | Use here-document idiom to read mpv output line-by-line.
* TOOLS/mpv_identify.sh: mark as executablewm42014-09-161-0/+0
|
* TOOLS: idet: use quotes for the verdict valueBen Boeckel2014-09-161-8/+8
| | | | | ShellCheck warns about "vara-varb" about not being in $(()), but we actually want the literal string, so quote it. Also fix a typo.
* TOOLS: shellcheck: quote variable expansionsBen Boeckel2014-09-162-17/+17
|
* TOOLS: shellcheck: remove '$' on variables in $(()) expansionBen Boeckel2014-09-162-9/+9
|
* TOOLS, version.sh: shellcheck: replace `cmd` with $(cmd)Ben Boeckel2014-09-161-1/+1
| | | | Signed-off-by: wm4 <wm4@nowhere>
* TOOLS: idet: remove unused codeBen Boeckel2014-09-161-9/+0
|
* TOOLS/zsh.pl: complete options that take file namesPhilip Sequeira2014-09-131-0/+7
|
* malloc+memset(0) to callocBruno George de Moraes2014-09-055-10/+5
| | | | Signed-off-by: wm4 <wm4@nowhere>
* video: initial Matroska 3D supportwm42014-08-301-0/+1
| | | | | | | | | | | | | | | | | | | | | This inserts an automatic conversion filter if a Matroska file is marked as 3D (StereoMode element). The basic idea is similar to video rotation and colorspace handling: the 3D mode is added as a property to the video params. Depending on this property, a video filter can be inserted. As of this commit, extending mp_image_params is actually completely unnecessary - but the idea is that it will make it easier to integrate with VOs supporting stereo 3D mogrification. Although vo_opengl does support some stereo rendering, it didn't support the mode my sample file used, so I'll leave that part for later. Not that most mappings from Matroska mode to vf_stereo3d mode are probably wrong, and some are missing. Assuming that Matroska modes, and vf_stereo3d in modes, and out modes are all the same might be an oversimplification - we'll see. See issue #1045.
* TOOLS/mpv_identify.sh: simplify $MPV handlingshdown2014-08-301-6/+2
|
* TOOLS/mpv_identify.sh: various style improvementsshdown2014-08-301-32/+27
| | | | | Double-quote everything, eliminate unneeded evals and deprecated `backtits` substitution syntax.
* TOOLS/mpv_identify.sh: move script body to a functionshdown2014-08-301-147/+143
| | | | | Don't prepend each variable with __midentify__, just make them local to the function.
* TOOLS/youtube-dl_mpv.sh: simplify $MPV handlingshdown2014-08-301-5/+1
|
* TOOLS/youtube-dl_mpv.sh: disable globbing before expanding $video_urlshdown2014-08-301-0/+1
| | | | | $video_url can contain a question mark, which can be expanded to a character in an existing file name if globbing is enabled.
* TOOLS/youtube-dl_mpv: allow playing multiple URLswm42014-08-291-4/+2
| | | | | Unfortunately this also means you can't pass extra mpv options after the URL anymore. You can prefix the script with MPV='mpv --options' though.
* TOOLS: youtube wrapper: allow overriding mpv binarywm42014-08-261-1/+5
|
* TOOLS/stats-conv.py: improvementswm42014-08-191-18/+31
| | | | This is still pretty useful for debugging timing-dependent things.
* TOOLS/zsh.pl: protect global environmentPhilip Sequeira2014-08-171-0/+4
|
* TOOLS/zsh.pl: fix a ret that hadn't been changed to rcPhilip Sequeira2014-08-171-1/+1
|
* TOOLS/zsh.pl: complete profilesPhilip Sequeira2014-08-171-0/+36
| | | | Implemented in shell, because it has to be done at runtime.
* TOOLS/zsh.pl: properly set the return valueAlessandro Ghedini2014-08-131-9/+12
| | | | | | The previous commit made the completion script always return non-zero, even when a match is found. This explicitly sets the return value to zero whenever a match is found but defaults to non-zero in case nothing is matched.
* TOOLS/zsh.pl: properly return non-zero when no matches are foundc_142014-08-131-0/+1
| | | | | | | | Returning a non-zero value signals to the zsh completion system that no matches were added by the script so that it can try the user-defined matchers (e.g. those defined with matcher-list). Fixes #1008.
* Move status-line.luawm42014-08-111-0/+69
| | | | | Looks like TOOLS/lua/ is now established as dumping ground for random Lua scripts, so DOCS/lua_examples/ is not needed anymore.
* TOOLS: add test script for property change notificationswm42014-08-021-0/+16
|
* idet.sh: Fix a typo.Rudolf Polzer2014-07-161-1/+1
|
* osxbundle: fix detection of user librariesTsukasa OMOTO2014-07-161-4/+4
| | | | | Previous code would detect for example `libcaca.0.dylib` as a system library, because it matched the `libc` condition.
* idet.sh: Fix telecine detection.Rudolf Polzer2014-07-151-5/+5
|
* OS X bundle: Add more imported UTINyx0uf2014-07-041-0/+84
| | | Not that there are widely used formats, but it will allow to play them directly from the Finder.
* TOOLS/zsh.pl: complete URL schemes based on --list-protocolsAlessandro Ghedini2014-07-031-2/+7
|
* TOOLS/zsh.pl: sort options in reverse order by lengthAlessandro Ghedini2014-07-031-0/+9
| | | | | This stops options that are prefixes of other options from blocking completion of values for the longer ones.
* TOOLS/zsh.pl: untabifyPhilip Sequeira2014-07-031-26/+26
|
* TOOLS/zsh.pl: fix _arguments linePhilip Sequeira2014-07-031-1/+1
| | | | | | | | | Don't use _x_arguments, as we don't support X arguments. Get rid of -s, because we don't support multiple single-letter options in one argument. Add -S, because we ignore options after "--".
* TOOLS/zsh.pl: don't consume extra argumentsPhilip Sequeira2014-07-031-10/+18
| | | | | | | | | | | | Completion now uses "--opt=value" instead of "--opt value". Once the user presses space and starts a new argument, the option just completed is out of the picture, whether or not it was given an argument. This handles options with no arguments or optional arguments much better; previously, completing such an option would effectively disable completion for the next argument. Custom completed options such as "--ao" and friends will no longer claim to consume an extra argument.
* TOOLS/zsh.pl: escape all colons in option descriptionsPhilip Sequeira2014-07-031-1/+1
|
* TOOLS: add script for generating a zsh completion scriptAlessandro Ghedini2014-06-081-0/+129
| | | | As discussed in #775
* idet.sh: An alternative to ildetect.sh.Rudolf Polzer2014-05-271-0/+161
| | | | | This script uses ffmpeg's "idet" filter for interlace detection. In the long run this should replace ildetect.sh+ildetect.sh.
* lua: fix compilation with lua 5.2wm42014-05-261-2/+4
| | | | | | | | | | | Commit e2e450f9 started making use of luaL_register(), but OF COURSE this function disappeared in Lua 5.2, and was replaced with a 5.2-only alternative, slightly different mechanism. So just NIH our own function. This is actually slightly more correct, since it forces the user to call "require" to actually make the module visible for builtin C-only modules other than "mp". Fix autoload.lua accordingly.
* autoload.lua: fix autoloading of files to prependwm42014-05-251-1/+1
| | | | This used the wrong index variable, and thus didn't work.
* TOOLS: add a Lua script to autoload playlist entrieswm42014-05-251-0/+69
| | | | | | This will load other files in the same directory when a single file is played. It's an often requested feature, but we definitely don't want it in the core.
* osxbundle: fix recursion terminationTsukasa OMOTO2014-05-251-1/+1
| | | | Prevents the binary from being copied over to the lib directory.
* TOOLS/vf_dlopen: use new pixelformats, fix usage for newstyle argsKevin Mitchell2014-05-156-13/+13
|
* TOOLS/mpv_identify.sh: unbreakwm42014-05-141-1/+1
|
* TOOLS/stats-conv: don't crash on empty lineswm42014-05-111-0/+3
|
* TOOLS/stats-conv: draw playloop and AO thread events separatelywm42014-05-111-0/+5
| | | | | Use for all AO thread events y=0.5, while playloop events remain at y=1. This makes the graph easier to read.
* osxbundle: split and optimize bundling scriptStefano Pigozzi2014-05-092-66/+94
| | | | | | | | | | | Move the code that copies the dylib's to the bundle to a new script (dylib-unhell.py) which is called by osxbundle.py. dylib-unhell is about 20x faster than the previous implementation. This is accomplished by removing superflous shell-out operations which are kept track of using an in memory tree of all the needed dependencies. Moreover the shell-outs have been further optimized by not requiring a complete shell for every operation and just using subprocess.call (which is equivalent to Popen).
* TOOLS/lua: add cycle-deinterlace-pullup scriptKevin Mitchell2014-05-061-0/+56
| | | | Override the shift+d hotkey to add a pullup step to the cycle.
* TOOLS/lua: conform to whitespace coding-styleKevin Mitchell2014-05-062-24/+24
|
* TOOLS/lua: use double quotes unless there's a good reasonKevin Mitchell2014-05-042-26/+26
|
* TOOLS/lua/autocrop: handle case of user hitting hotkey while cropdetection ↵Kevin Mitchell2014-05-041-3/+11
| | | | already running
* TOOLS/lua: no longer gsub out "lua/" prefix, now that its no longer thereKevin Mitchell2014-05-042-2/+2
|
* options: rename video-related options/propertiesMartin Herkt2014-05-041-1/+1
| | | | | | | | | | | Renamed options: --aspect → --video-aspect --fstype → --x11-fstype --native-fs → --fs-missioncontrol --name → --x11-name Renamed properties: aspect → video-aspect
* TOOLS: better documentation of lua scriptsKevin Mitchell2014-04-293-0/+66
|
* TOOLS: improve autocrop.luaKevin Mitchell2014-04-291-9/+75
| | | | | | | | | | It now inserts no filters and does nothing until the hot-key is pressed. This makes it more suitable to be put in ~/.mpv/lua. When the hot-key is pressed, it now inserts the cropdetect filter and waits 1 second (or a --lua-opts specified duration) before gathering the cropdetect metadata and inserting the appropriate crop filter. A second press of the hotkey removes the crop.
* TOOLS/umpv: make it work with Python 3 (again)wm42014-04-291-3/+6
| | | | | | | Apparently, the 3rd (2nd) parameter to string.translate() function was removed. Also, make_abs() had a mistake - not sure how this passed testing.
* TOOLS/umpv: don't mangle URLswm42014-04-291-1/+16
| | | | | This attempted to prefix the current directory to URLs, because it didn't recognize them as already absolute paths.
* TOOLS/umpv, mpv.desktop: use --no-terminal instead of --really-quietwm42014-04-291-1/+1
| | | | | So this won't initialize terminal handling if stdout happens to be a terminal. It also suppresses all output to stdout/stderr.
* TOOLS/umpv: allow passing 0 fileswm42014-04-291-2/+1
| | | | | Some might use that to just create an empty window with --force-window --idle (for whatever reasons).
* TOOLS/umpv: allow passing optionswm42014-04-291-2/+14
| | | | But only via a special environment variable.
* TOOLS/umpv: make it work with Python 3wm42014-04-291-1/+1
| | | | Apparently they removed octal literals, and made them invalid syntax.
* TOOLS: make youtube-dl_mpv.sh executablewm42014-04-281-0/+0
|
* TOOLS: indent lua scripts by 4 spaces instead of 3Kevin Mitchell2014-04-272-55/+55
|
* TOOLS: add lua/drc-controlKevin Mitchell2014-04-271-0/+80
| | | | allows live insertion/deletion/adjustment of drc audio filter
* TOOLS: move autocrop.lua to TOOLS/luaKevin Mitchell2014-04-271-0/+0
| | | | in anticipation of more lua scripts
* OS X bundle: add UTImportedTypeDeclarationsNyx0uf2014-04-251-1/+504
| | | | | | | | | | | | | | | | Allows to declare UTIs [1] for types of file that OS X doesn't know, like mkv, mka, etc. For example: instead of having a dynamically generated UTI for .mkv like 'dyn.somerandomstring', 'io.mpv.mkv' is registered and conforms to public.movie and is known system wide. Note: The list is far from being complete but it should cover the most used type of files. [1]: https://developer.apple.com/library/ios/documentation/FileManagement/Conceptual/understanding_utis/understand_utis_conc/understand_utis_conc.html#//apple_ref/doc/uid/TP40001319-CH202-CHDHIJDE Fixes: #734
* player: add a --dump-stats optionwm42014-04-171-0/+88
| | | | | | | | | | | | | | | | | | | | | | | This collects statistics and other things. The option dumps raw data into a file. A script to visualize this data is included too. Litter some of the player code with calls that generate these statistics. In general, this will be helpful to debug timing dependent issues, such as A/V sync problems. Normally, one could argue that this is the task of a real profiler, but then we'd have a hard time to include extra information like audio/video PTS differences. We could also just hardcode all statistics collection and processing in the player code, but then we'd end up with something like mplayer's status line, which was cluttered and required a centralized approach (i.e. getting the data to the status line; so it was all in mplayer.c). Some players can visualize such statistics on OSD, but that sounds even more complicated. So the approach added with this commit sounds sensible. The stats-conv.py script is rather primitive at the moment and its output is semi-ugly. It uses matplotlib, so it could probably be extended to do a lot, so it's not a dead-end.
* TOOLS: vf-metadata: lua cropdetect example scriptKevin Mitchell2014-04-131-0/+11
| | | | Signed-off-by: wm4 <wm4@nowhere>
* TOOLS: add script for using mpv with youtube-dlNikoli2014-04-091-0/+23
| | | | Signed-off-by: wm4 <wm4@nowhere>
* Parse::Matroska::Reader: get rid of `bigrat`Diogo Franco (Kovensky)2014-02-151-17/+20
| | | | | | | | | | | | | | | It seems that it was causing issues with certain perl setups (such as the one on issue #549). It also turns out that it was not behaving correctly (not all constants were being promoted to big nums as they should), so we use explicit objects to derive the constants. There were also precedence issues. I wonder if this even worked right to begin with. The 'double' path (8-byte floats) is untested, as I couldn't easily find a file with such a field. Closes #549.
* umpv: silence mpv terminal outputwm42014-02-051-2/+4
| | | | | Now it does basically the same as mkv.desktop. Explanation is included in the description comment.
* umpv: improve descriptionwm42014-02-051-9/+11
|
* umpv: use --force-windowwm42014-02-051-4/+2
| | | | This makes it show a window even when playing audio-only files.
* ildetect: add ILDETECT_FORCE_RUN (if interlacing could not be decided, ↵Rudolf Polzer2013-12-181-1/+7
| | | | assume yadif).
* osxbundle: use mpv's version.sh instead of osxbundle'sChrisK22013-12-092-16/+1
|
* 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 files, but it had a bug corrupting some data: e.g. a byte sequence 0x1 0x37 was printed as "\17" (0x1 = escaped as "\1", and 0x37 = kept as literal "7"), which would be interpreted as single character 0xF. Always pad octal literals to length 3, which makes the escape sequences unambiguous.
* TOOLS: remove useless crapwm42012-07-2831-5245/+0
| | | | | | | | | | | | | | | | | | | | Most of the scripts in TOOLS seem entirely useless. Remove them. There were about 3 types of scripts: - apparent developer tools (like file format dumpers, benchmarks) => I doubt any mplayer developer still alive even uses these - helpers for encoding or ripping stuff => mencoder is gone, at least from this version of mplayer - helpers meant for users (launching mplayer in weird ways, etc.) => just no, it will cause you more pain than gain So no, there is nothing useful. Under the scripts not deleted, these are needed for building mplayer: file2string.py matroska.py vdpau_functions.py These might have _some_ use (but still questionable): binary_codecs.sh checktree.sh
* Remove TOOLS/realcodecswm42012-07-289-3892/+0
| | | | | | | I have no idea what these are about, but it's probably useless outdated crap. According to TOOLS/README, they are wrappers around some Real binary codecs. They were added in 2003, and never touched again (except for cosmetic changes).
* build, codec-cfg.c: simplify builtin codecs.conf handlingUoti Urpala2012-07-161-0/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | The player can read codec mapping (codecs.conf) from an external file or use embedded defaults. Before, the defaults were stored in the player binary in the form of final already-parsed data structures. Simplify things by storing the text of the codecs.conf file instead, and parse that at runtime the same way an external file would be parsed. To create the previous parsed form, the build system first compiled a separate binary named "codec-cfg", which parsed etc/codecs.conf and then wrote the results as a C data structure that could be compiled into the program. The new simple conversion of codecs.conf into a C string is handled by the new script TOOLS/file2string.py. After removing the codec-cfg binary, HOST_CC is no longer used for anything. Remove the --host-cc configure option and associated logic. Also remove the codec2html and codec-cfg-test functionality. Building those was already broken and nobody cared. There was a broken 3-character-long "fourcc" entry in etc/codecs.conf. This happened to be accepted before but triggered a parse error after the changes. Remove the broken entry and make the parsing functions explicitly test for this error.
* build: use python3 to generate some files previously in gitUoti Urpala2012-07-162-1/+3
| | | | | | | | | | | | Some files used during build are generated with Python scripts in TOOLS/. Before, the generated files were included in the git tree. Start creating them at build time. This introduces a build-dependency on python3. The files in question are: libvo/vdpau_template.c libmpdemux/ebml_types.h libmpdemux/ebml_defs.c
* vo_vdpau: implement screenshotswm42011-11-251-0/+1
|
* TOOLS/matroska.py: recognize CodecNameUoti Urpala2011-04-081-0/+1
|
* TOOLS/: minor fixes in tool codesiretart2011-01-312-3/+9
| | | | | | | | | | | | | | | | | | | | | Fix printf format string warning fixes this warning: asfinfo.c: In function 'print_video_header': asfinfo.c:158: warning: format '%.4s' expects type 'char *', but argument 3 has type 'long int *' git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32774 b3059339-0415-0410-9bf9-f77b7e298cf2 add missing fclose git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32775 b3059339-0415-0410-9bf9-f77b7e298cf2 add missing fclose() found by cppcheck: [avisubdump.c:199]: (error) Resource leak: f git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32776 b3059339-0415-0410-9bf9-f77b7e298cf2
* Merge branch 'sub'Uoti Urpala2011-01-261-2/+2
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * sub: sub/OSD: move some related files to sub/ subtitles: options: enable -ass by default subtitles: change default libass rendering style demux_mkv, chapters: change millisecond arithmetic to ns cleanup: rename ass_* functions to mp_ass_* subs: use correct font aspect ratio for libass + converted subs cleanup: some random minor code simplification and cleanup vf_vo: fix EOSD change detection bug sd_ass: remove subreader use, support plaintext markup subtitles: style support for common SubRip tags and MicroDVD core: ordered chapters: fix bad subtitle parameter subs/demux: don't try to enable sub track when creating it subtitles/demux: store duration instead of endpts in demux packets subtitles: add framework for subtitle decoders options: add special -leak-report option subtitles: remove code trying to handle text subs with libavcodec cleanup: move MP_NOPTS_VALUE definition to mpcommon.h subtitles: move global ass_track to struct osd_state core: move most mpcommon.c contents to mplayer.c core: move global "subdata" and "vo_sub_last" to mpctx subtitles: remove sub_last_pts hack options: move -noconfig to option struct, simplify
| * sub/OSD: move some related files to sub/Uoti Urpala2011-01-261-2/+2
| |
* | TOOLS: Remove most of the mencoder scripts and referencesClément Bœsch2011-01-257-1467/+5
|/
* TOOLS/matroska.py: recognize 3 more elementsUoti Urpala2010-11-211-0/+3
| | | | | | Add definitions for DisplayUnit, OutputSamplingFrequency and FileDescription in matroska.py. Regenerate the C template files to allow using all current definitions in code.
* cleanup: remove NULL checks before free() all over the codecboesch2010-11-141-3/+3
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32624 b3059339-0415-0410-9bf9-f77b7e298cf2
* TOOLS/matroska.py: recognize MaxCache elementUoti Urpala2010-11-081-0/+1
|
* TOOLS/binary_codecs.sh: make indentation consistentsiretart2010-11-071-143/+136
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32561 b3059339-0415-0410-9bf9-f77b7e298cf2
* TOOLS/matroska.py: stop cleanly at EOF of complete file when parsingUoti Urpala2010-11-021-2/+10
| | | | | | | When using the script to parse a Matroska file, the script used to exit with an exception at EOF. Change it to exit quietly instead if the file was parsed successfully. Keep showing an exception if EOF is encountered in the middle of an element (truncated file).
* TOOLS/matroska.py: change to python3 syntaxUoti Urpala2010-11-021-37/+39
|
* TOOLS/binary_codecs.sh: avoid creating fake "bestsites"siretart2010-11-021-2/+3
| | | | | | | | | Do not create a fake 'bestsites' if neither 'fping' nor 'netselect' is installed. change developed by A Mennucc <mennucc1 [at] debian [dot] org> git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32485 b3059339-0415-0410-9bf9-f77b7e298cf2
* TOOLS/binary_codecs.sh: fix obsolete dpkg syntaxsiretart2010-11-021-1/+1
| | | | | | | Use 'dpkg --print-architecture', the option --print-installation-architecture is deprecated. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32484 b3059339-0415-0410-9bf9-f77b7e298cf2
* TOOLS/subrip: fix linking failurediego2010-11-021-0/+3
| | | | | | Work around linking failure due to unresolved reference to mplayer_version. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32328 b3059339-0415-0410-9bf9-f77b7e298cf2
* cleanup: malloc+memset->calloc, sizeof(TYPE)->sizeof(*ptr)reimar2010-11-021-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Replace malloc+memset by calloc git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32181 b3059339-0415-0410-9bf9-f77b7e298cf2 Replace malloc+memset by calloc. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32182 b3059339-0415-0410-9bf9-f77b7e298cf2 Replace malloc+memset by calloc. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32183 b3059339-0415-0410-9bf9-f77b7e298cf2 Replace some sizeof(type) by sizeof(*pointer) git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32184 b3059339-0415-0410-9bf9-f77b7e298cf2 Replace malloc+memset by calloc. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32186 b3059339-0415-0410-9bf9-f77b7e298cf2 Replace malloc+memset by calloc. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32187 b3059339-0415-0410-9bf9-f77b7e298cf2 Replace malloc+memset by calloc git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32188 b3059339-0415-0410-9bf9-f77b7e298cf2 Replace sizoef(type) by sizeof(*ptrvar). Besides being consistent with FFmpeg style, this reduces the size of a patch to rename these types to not conflict with the windows.h definitions. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32189 b3059339-0415-0410-9bf9-f77b7e298cf2 Replace malloc+memset by calloc. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32191 b3059339-0415-0410-9bf9-f77b7e298cf2 Replace malloc+memset by calloc. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32192 b3059339-0415-0410-9bf9-f77b7e298cf2 Replace sizeof(type) by sizeof(*ptrvar) git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32193 b3059339-0415-0410-9bf9-f77b7e298cf2 Remove a useless cast. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32194 b3059339-0415-0410-9bf9-f77b7e298cf2 Replace sizeof(type) git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32195 b3059339-0415-0410-9bf9-f77b7e298cf2 Remove a useless cast. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32196 b3059339-0415-0410-9bf9-f77b7e298cf2 Replace several sizeof(WAVEFORMATEX) git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32197 b3059339-0415-0410-9bf9-f77b7e298cf2 Replace one more instance of sizeof(WAVEFORMATEX); fix compilation. patch by Clément Bœsch, ubitux gmail com git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32199 b3059339-0415-0410-9bf9-f77b7e298cf2 Avoid some pointless uses of sizeof() and one related cast. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32200 b3059339-0415-0410-9bf9-f77b7e298cf2 Merge one malloc() + memset() invocation into calloc(). git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32202 b3059339-0415-0410-9bf9-f77b7e298cf2 Replace malloc+memset by calloc git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32203 b3059339-0415-0410-9bf9-f77b7e298cf2 Replace sizeof(WAVEFORMATEX) occurrences. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32205 b3059339-0415-0410-9bf9-f77b7e298cf2 Replace malloc+memset by calloc. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32206 b3059339-0415-0410-9bf9-f77b7e298cf2 Replace sizeof(BITMAPINFOHEADER) git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32207 b3059339-0415-0410-9bf9-f77b7e298cf2
* build: Rename configure.log file to config.logdiego2010-11-021-1/+1
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31415 b3059339-0415-0410-9bf9-f77b7e298cf2
* TOOLS/matroska.py: recognize ChapCountryUoti Urpala2010-10-211-0/+1
|
* demux_mkv: read tags.Anton Khirnov2010-05-221-0/+9
|
* TOOLS/matroska.py: support 8-byte floats in parsing modeUoti Urpala2010-03-111-2/+7
| | | | | Support parsing and printing the value of 8-byte floats when using the script to parse and display contents of Matroska files.
* Merge svn changes up to r30748Uoti Urpala2010-03-103-7/+8
|\
| * Do not cast the results of malloc/calloc/realloc.diego2010-02-262-3/+3
| | | | | | | | | | | | | | | | These functions return void*, which is compatible with any pointer, so there is no need for casts. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30744 b3059339-0415-0410-9bf9-f77b7e298cf2
| * mention that on windows, you've to use the netstream.exe to build theattila2010-02-261-4/+5
| | | | | | | | | | | | | | netstream binary git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30743 b3059339-0415-0410-9bf9-f77b7e298cf2
* | Merge svn changes up to r30675Uoti Urpala2010-03-104-12/+0
|\|
| * cosmetics: Remove pointless empty lines at EOF.diego2010-02-2014-22/+0
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30675 b3059339-0415-0410-9bf9-f77b7e298cf2
* | Merge svn changes up to r30663Uoti Urpala2010-03-104-8/+0
|\| | | | | | | | | | | | | Conflicts: gui/cfg.c libmpcodecs/vd_dmo.c mplayer.c
| * TOOLS/realcodecs: Remove pointless '#if 1' preprocessor directives.diego2010-02-194-8/+0
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30652 b3059339-0415-0410-9bf9-f77b7e298cf2
* | Merge svn changes up to r30463Uoti Urpala2010-03-0910-8/+158
|\| | | | | | | | | | | Note that r30455 is wrong, that commit does not in fact change the default behavior as claimed in the commit message. It only breaks "-af-adv force=0", which was already pretty much useless though.
| * Add standard license header to C tools missing them.diego2010-01-3010-8/+158
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30458 b3059339-0415-0410-9bf9-f77b7e298cf2
* | Merge branch 'matroska'Uoti Urpala2010-01-281-0/+397
|\ \
| * | matroska: add new parsing codeUoti Urpala2010-01-271-0/+397
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add a new EBML parser implementation that should allow significant improvements to the Matroska demuxer. The new parsing code is not actually used yet by the demuxer. The only changes to existing code in this commit are to generate the MATROSKA_ID_* / EBML_ID_* macro definitions from the new implementation and to rename some of them (the new implementation uses names matching the official Matroska spec). The main parser implementation is added in ebml.c. There are two new generated files, ebml_defs.c and ebml_types.h, that contain definitions of EBML elements. Those are generated by the new script TOOLS/matroska.py. There's a new Makefile target "generated_ebml" that run the script to refresh the content of the generated files.
* | | Merge svn changes up to r30419Uoti Urpala2010-01-251-6/+8
|\ \ \ | |/ / |/| / | |/
| * clean up netstream docs in TOOLS/READMEcompn2010-01-231-6/+8
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30406 b3059339-0415-0410-9bf9-f77b7e298cf2
* | vo_vdpau: Add support for high-quality scaling featureUoti Urpala2009-11-151-0/+1
| | | | | | | | | | | | | | Part of the code is currently under #ifdef to allow compilation with older VDPAU library versions; that can be removed later. Partially based on a patch by Carl Eugen Hoyos.
* | Implement vsync-aware frame timing for VDPAUUoti Urpala2009-11-151-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Main things added are custom frame dropping for VDPAU to work around the display FPS limit, frame timing adjustment to avoid jitter when video frame times keep falling near vsyncs, and use of VDPAU's timing feature to keep one future frame queued in advance. NVIDIA's VDPAU implementation refuses to change the displayed frame more than once per vsync. This set a limit on how much video could be sped up, and caused problems for nearly all videos on low-FPS video projectors (playing 24 FPS video on a 24 FPS projector would not work reliably as MPlayer may need to slightly speed up the video for AV sync). This commit adds a framedrop mechanism that drops some frames so that no more than one is sent for display per vsync. The code tries to select the dropped frames smartly, selecting the best one to show for each vsync. Because of the timing features needed the drop functionality currently does not work if the correct-pts option is disabled. The code also adjusts frame timing slightly to avoid jitter. If you for example play 24 FPS video content on a 72 FPS display then normally a frame would be shown for 3 vsyncs, but if the frame times happen to fall near vsyncs and change between just before and just after then there could be frames alternating between 2 and 4 vsyncs. The code changes frame timing by up to one quarter vsync interval to avoid this. The above functionality depends on having reliable vsync timing information available. The display refresh rate is not directly provided by the VDPAU API. The current code uses information from the XF86VidMode extension if available; I'm not sure how common cases where that is inaccurate are. The refresh rate can be specified manually if necessary. After the changes in this commit MPlayer now always tries to keep one frame queued for future display using VDPAU's internal timing mechanism (however no more than 50 ms to the future). This should make video playback somewhat more robust against timing inaccuracies caused by system load.
* | Merge branch 'vdpau' into buildUoti Urpala2009-09-191-0/+58
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * vdpau: (22 commits) VO: Prefer vo_vdpau over vo_xv again vo_vdpau: Fix X event handling bugs vo_vdpau: Fix memory corruption bug with MP_IMGTYPE_NUMBERED core/VO: Allow VO drivers to add/modify frames video_out.h: Cosmetics VO interface: Remove obsolete draw_frame() from new interface vo_vdpau: Support recovering from VDPAU display preemption vo_vdpau: Support updating OSD while paused vo_vdpau.c: Reindent control() switch statement vo_vdpau: Allocate one large surface for EOSD content vo_vdpau.c: cosmetics vo_vdpau: reindent after GUI code removal vo_vpdau: Clean up uninit logic vo_vdpau: Make CHECK_ST macro safer vo_vdpau: Move all remaining static/global variables to context vo_vdpau: Move things to context struct vo_vdpau: Make info struct const vo_vdpau: Replace global function table with context variable vo_vdpau: Move VDPAU interface pointers into one struct vo_vdpau: Add template file for VDPAU functions ...
| * | vo_vdpau: Support recovering from VDPAU display preemptionUoti Urpala2009-09-071-0/+1
| | | | | | | | | | | | | | | | | | | | | Add code to reinitialize all VDPAU objects if a display preemption condition occurs. Reinitializing them in the middle of playback will cause video corruption at least until the next keyframe when using hardware decoding, but decoding does seem to recover after a keyframe.
| * | vo_vdpau: Allocate one large surface for EOSD contentUoti Urpala2009-09-051-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Create a single large bitmap surface for EOSD objects and pack all the bitmap rectangles inside that. The old code created a separate bitmap surface for every bitmap and then resized the cached surfaces when drawing later frames. The number of surfaces could be large (at least about 2000 for one sample subtitle script) so this was very inefficient. The old code also used a very simple strategy for pairing existing surfaces to new bitmaps; it could resize tiny surfaces to hold large glyphs while using existing large surfaces to hold tiny glyphs and as a result allocate arbitrarily much more total surface area than was necessary. The new code only supports using a single surface, freeing it and allocating a larger one if necessary. It would be possible to support multiple surfaces in case of hitting the maximum bitmap surface size, but I'll wait to see if that is actually needed before implementing it. NVIDIA seems to support bitmap surface sizes up to 8192x8192, so it would take either a really pathological subtitle script rendered at a high resolution or an implementation with lower limits before multiple surfaces would be necessary. The packing algorithm should successfully pack the bitmaps into a surface of size w*h as long as the total area of the bitmaps does not exceed 16/17 (w-max_bitmap_width)*(h-max_bitmap_height), so there should be no totally catastrophic failure cases. The 16/17 factor comes from approximate sorting used in the algorithm. On average performance should be better than this minimum guaranteed level.
| * | Merge branch 'vdpau_old' into vdpauUoti Urpala2009-08-311-0/+56
| |\ \
| | * | vo_vdpau: Add template file for VDPAU functionsUoti Urpala2009-08-291-0/+56
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add a template file that contains a single listing of various information needed about the VDPAU interface functions, and is then included multiple times to create required declarations and tables. Previously some of the information needed to be duplicated for each of those uses.
* | | | Merge svn changes up to r29684Uoti Urpala2009-09-162-5/+5
|\ \ \ \ | |/ / / |/| | / | | |/ | |/|
| * | Convert to UTF-8.diego2009-09-101-1/+1
| | | | | | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29670 b3059339-0415-0410-9bf9-f77b7e298cf2
| * | Fix bashism: Use '$(( ))' syntax instead of '(( ))' for arithmetic expressions.diego2009-09-101-2/+2
| | | | | | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29669 b3059339-0415-0410-9bf9-f77b7e298cf2
| * | Avoid bash-specific 'let' syntax in shell scripts.diego2009-09-071-2/+2
| | | | | | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29653 b3059339-0415-0410-9bf9-f77b7e298cf2
| * | whitespace cosmetics: Remove all trailing whitespace.diego2009-05-1323-128/+128
| |/ | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29305 b3059339-0415-0410-9bf9-f77b7e298cf2
* / Remove trailing whitespace from most filesUoti Urpala2009-07-0726-138/+128
|/
* commit remaining binary_codecs.sh changes from debian.siretart2009-04-231-7/+30
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29228 b3059339-0415-0410-9bf9-f77b7e298cf2
* check for missing libstdc++siretart2009-04-231-0/+13
| | | | | | | | | this version of the check assumes that we run on a system with apt-get installed and configured. We should probably check that this is actually true. Or more ideally add support for yum for fedora systems. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29227 b3059339-0415-0410-9bf9-f77b7e298cf2
* more cosmeticssiretart2009-04-231-5/+3
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29226 b3059339-0415-0410-9bf9-f77b7e298cf2
* whitespace cosmeticsdiego2009-04-231-8/+8
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29225 b3059339-0415-0410-9bf9-f77b7e298cf2
* Part 3 of syncing binary_codecs.sh with Debiansiretart2009-04-231-7/+7
| | | | | | | | This patch contains no functional changes again, only whitespace fixes that has been misse from Part 1 have been included. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29223 b3059339-0415-0410-9bf9-f77b7e298cf2
* Part 2 of syncing binary_codecs.sh with Debiansiretart2009-04-231-6/+16
| | | | | | | This patch contains the OKed parts of Diego's review from 23. Apr 2009 git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29222 b3059339-0415-0410-9bf9-f77b7e298cf2
* Part 1 of syncing binary_codecs.sh with Debiansiretart2009-04-221-12/+12
| | | | | | | | This patch contains no functional changes, only whitespace fixes from Debian. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29220 b3059339-0415-0410-9bf9-f77b7e298cf2
* Replace duplicated code by a macro.diego2009-03-121-45/+16
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28938 b3059339-0415-0410-9bf9-f77b7e298cf2
* Fix and restructure fastmemcpybench. It is now one binary that runs alldiego2009-03-102-26/+137
| | | | | | | available memcpy variants and prints benchmark results about them. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28929 b3059339-0415-0410-9bf9-f77b7e298cf2
* Make fastmemcpybench almost working - only thing missing is a way toreimar2009-03-091-1/+2
| | | | | | | override HAVE_MMX etc. from config.h. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28906 b3059339-0415-0410-9bf9-f77b7e298cf2
* comment/output cosmeticsdiego2009-03-091-9/+9
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28904 b3059339-0415-0410-9bf9-f77b7e298cf2
* whitespace cosmetics:diego2009-03-091-74/+75
| | | | | | | | | - Remove all tabs and trailing whitespace. - Indent with 4 spaces. - K&R-ify and prettyprint some parts. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28903 b3059339-0415-0410-9bf9-f77b7e298cf2
* Add test for C memcpy()michael2009-03-081-0/+2
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28894 b3059339-0415-0410-9bf9-f77b7e298cf2
* Resurrect script needed for easy use of fastmemcpybench.c.michael2009-03-081-0/+19
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28893 b3059339-0415-0410-9bf9-f77b7e298cf2
* Revert michael2009-03-081-2/+2
| | | | | | | | | r3082 | michael | 2001-11-23 13:00:40 +0100 (Fri, 23 Nov 2001) | 2 lines missaligned arrays, as nick requested Reason: idiotic idea git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28890 b3059339-0415-0410-9bf9-f77b7e298cf2
* Remove now unnecessary linking hacks.diego2009-03-011-5/+0
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28781 b3059339-0415-0410-9bf9-f77b7e298cf2
* HAVE_WINSOCK2_H is now a 0/1 definition.diego2009-02-011-1/+1
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28443 b3059339-0415-0410-9bf9-f77b7e298cf2
* Add missing 'void' keyword to parameterless function declarations.diego2009-01-0510-39/+42
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28267 b3059339-0415-0410-9bf9-f77b7e298cf2
* Relicense to GPLv2 or later with the author's permission.diego2009-01-029-45/+171
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28230 b3059339-0415-0410-9bf9-f77b7e298cf2
* Fix reference to wrong DLL filename in header comment.diego2009-01-021-1/+1
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28229 b3059339-0415-0410-9bf9-f77b7e298cf2
* Fix confused references to DLL filenames.diego2009-01-018-8/+8
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28228 b3059339-0415-0410-9bf9-f77b7e298cf2
* Replace all occurrences of '__volatile__' and '__volatile' by plain 'volatile'.diego2008-10-161-1/+1
| | | | | | | | We were using an inconsistent mix of the three variants and 'volatile' should be the most correct and portable variant. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27791 b3059339-0415-0410-9bf9-f77b7e298cf2
* Change all occurrences of asm and __asm to __asm__, same as was done for FFmpeg.diego2008-10-161-1/+1
| | | | | | | Neither variant is valid C99 syntax, but __asm__ is the most portable variant. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27788 b3059339-0415-0410-9bf9-f77b7e298cf2
* Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make itdiego2008-10-161-1/+1
| | | | | | | clearer that netstream.h belongs to stream_netstream.c. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27779 b3059339-0415-0410-9bf9-f77b7e298cf2
* Remove MinGW cruft.diego2008-10-031-5/+0
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27695 b3059339-0415-0410-9bf9-f77b7e298cf2
* cosmetics: prettyprintingdiego2008-09-281-149/+167
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27668 b3059339-0415-0410-9bf9-f77b7e298cf2
* Upgrade license of LGPL 2 or later files to LGPL 2.1 or later.diego2008-09-151-1/+1
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27614 b3059339-0415-0410-9bf9-f77b7e298cf2
* Remove encode2mpeglight, it is only an outdated stripped-down version of thediego2008-09-072-2016/+0
| | | | | | | tool maintained externally at http://encode2mpeg.sf.net/. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27537 b3059339-0415-0410-9bf9-f77b7e298cf2
* license header cosmeticsdiego2008-09-061-2/+2
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27536 b3059339-0415-0410-9bf9-f77b7e298cf2
* Fix incorrect FSF address in license header.diego2008-09-061-3/+3
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27535 b3059339-0415-0410-9bf9-f77b7e298cf2
* Rename HAVE_WINSOCK preprocessor condition to HAVE_WINSOCK_H.diego2008-08-291-1/+1
| | | | | | | | | This is what it is called in FFmpeg and more consistent with other names for similar conditionals. This fixes a potential compilation failure on MinGW, as described in Bugzilla #1262. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27493 b3059339-0415-0410-9bf9-f77b7e298cf2
* Change a bunch of video-output-specific preprocessor directives from a HAVE_diego2008-08-021-2/+2
| | | | | | | prefix to a CONFIG_ prefix. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27397 b3059339-0415-0410-9bf9-f77b7e298cf2
* Rename binary-codecs.sh to binary_codecs.sh as it is called in Debian.diego2008-07-312-3/+3
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27384 b3059339-0415-0410-9bf9-f77b7e298cf2
* Revert previous broken rename of binary-codecs.sh that had random changes.diego2008-07-312-67/+23
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27383 b3059339-0415-0410-9bf9-f77b7e298cf2
* Rename binary-codecs.sh once more to binary_codecs.sh as it is called in Debian.diego2008-07-312-23/+67
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27382 b3059339-0415-0410-9bf9-f77b7e298cf2
* Rename install-w32codecs.sh --> binary-codecs.sh.diego2008-07-312-3/+3
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27381 b3059339-0415-0410-9bf9-f77b7e298cf2
* Run bash-specific shell scripts with bash, not sh.diego2008-07-074-4/+4
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27231 b3059339-0415-0410-9bf9-f77b7e298cf2
* Give all shell scripts a .sh suffix for consistency.diego2008-07-077-27/+27
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27230 b3059339-0415-0410-9bf9-f77b7e298cf2
* Replace bash-specific [[]] construct by proper a proper [] test.diego2008-07-071-1/+1
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27229 b3059339-0415-0410-9bf9-f77b7e298cf2
* Replace == in []/test constructs with =, == is a bashism.diego2008-07-074-35/+35
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27228 b3059339-0415-0410-9bf9-f77b7e298cf2
* Remove unnecessary function keyword from shell script function declarations,diego2008-07-073-5/+5
| | | | | | | it is a bashism. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27227 b3059339-0415-0410-9bf9-f77b7e298cf2
* Fix the linking of TOOLS/netstream and TOOLS/vivodump.diego2008-06-062-53/+17
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26995 b3059339-0415-0410-9bf9-f77b7e298cf2
* cosmetics: Remove useless parentheses from return statements.diego2008-05-162-23/+23
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26791 b3059339-0415-0410-9bf9-f77b7e298cf2
* Use standard license headers with standard formatting.diego2008-05-142-33/+30
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26775 b3059339-0415-0410-9bf9-f77b7e298cf2
* Remove loader/wine/avifmt.h #include, the AVI types declared there conflictdiego2008-04-301-1/+0
| | | | | | | with the ones from libmpdemux/aviheader.h, which is #included below. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26612 b3059339-0415-0410-9bf9-f77b7e298cf2
* Add missing string.h #include to fix a bunch of implicit declaration warnings.diego2008-04-301-0/+1
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26611 b3059339-0415-0410-9bf9-f77b7e298cf2
* Remove unused fast_memcpy() function and link against the object thatdiego2008-04-301-6/+0
| | | | | | | contains fast_memcpy() instead. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26610 b3059339-0415-0410-9bf9-f77b7e298cf2
* Disable unused function.diego2008-04-301-0/+2
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26608 b3059339-0415-0410-9bf9-f77b7e298cf2
* Mark all functions that are only used within the file as static.diego2008-04-308-18/+18
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26607 b3059339-0415-0410-9bf9-f77b7e298cf2
* Remove useless 0 flag from s printf conversion specifier, fixes the warning:diego2008-04-231-1/+1
| | | | | | | TOOLS/movinfo.c:332: warning: '0' flag used with '%s' printf format git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26506 b3059339-0415-0410-9bf9-f77b7e298cf2
* Remove redundant definitions that are already present on the command line.diego2008-04-221-2/+0
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26488 b3059339-0415-0410-9bf9-f77b7e298cf2
* Merge TOOLS/Makefile into the top-level Makefile.diego2008-04-221-74/+0
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26487 b3059339-0415-0410-9bf9-f77b7e298cf2
* Remove pointless '0' flag from fprintf call, fixes the warning:diego2008-04-218-8/+8
| | | | | | | warning: '0' flag ignored with precision and '%d' printf format git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26481 b3059339-0415-0410-9bf9-f77b7e298cf2
* Add $(EXESUF) to netstream rule.diego2008-04-201-2/+2
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26480 b3059339-0415-0410-9bf9-f77b7e298cf2
* Only build modify_reg on x86.diego2008-04-201-1/+4
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26479 b3059339-0415-0410-9bf9-f77b7e298cf2
* Simplify list of files to remove on make clean.diego2008-04-201-1/+1
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26478 b3059339-0415-0410-9bf9-f77b7e298cf2
* fastmemcpybench is a phony target. Do not try to remove a file by that name.diego2008-04-201-1/+1
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26477 b3059339-0415-0410-9bf9-f77b7e298cf2
* Remove Win32 linker option for netstream. Other winsock using code does notdiego2008-04-111-4/+0
| | | | | | | | need it, it should be set from configure and the reason why it was set in the first place has been lost in the mists of time. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26387 b3059339-0415-0410-9bf9-f77b7e298cf2