aboutsummaryrefslogtreecommitdiffhomepage
Commit message (Collapse)AuthorAge
...
* player: add --keep-open-pause=no optionGravatar Dan Oscarsson2017-04-14
| | | | | | | | | | | Instead of pausing if --keep-open is active, stop at end but continue playing if seeking backwards. And then stop again when end is reached. Signed-off-by: wm4 <wm4@nowhere> Over the PR, the option was renamed, and the manpage additions were slightly changed/enhanced.
* vo_opengl: minor cosmeticsGravatar wm42017-04-14
|
* win32: fix mismatched free/talloc_freeGravatar wm42017-04-12
| | | | Might fix #4315.
* win32: rewrite getcwd() using GetFullPathNameWGravatar wm42017-04-11
| | | | _wgetcwd is apparently not available in all runtimes. Well, whatever.
* osc: use "loop-playlist" instead of "loop" propertyGravatar wm42017-04-11
|
* win32: add UTF-8 getcwd() wrapperGravatar wm42017-04-11
|
* command, manpage: some leftover mentions of renamed --loop optionGravatar wm42017-04-11
|
* command: update sub-fps etc. options on runtime changesGravatar wm42017-04-10
| | | | | | | | | | | | | Un-special-case the sub-speed property, and apply subtitle speed updates in more cases. In particular, this respects runtime changes of the sub-fps option. (A minor consequence of this is that the subtitle speed is recomputed more often even in cases when it's not necessary. Also, the subtitle update is slightly "delayed" rather than strictly instant. Both of these likely are absolutely not observable by the user, although the subtitle speed verbose log message will be printed more often if the subtitle format is MicroDVD.)
* manpage: group --loop options togetherGravatar wm42017-04-10
|
* options: deprecate --loopGravatar wm42017-04-10
| | | | | | | | | | Also "announce" the plans to undeprecate it with changed semantics later. The deprecation period is needed to warn script authors and client API users (etc.) of the change. This is done because everyone seems to expect --loop to loop the current file, not the playlist. Even in cases when only 1 file is on the playlist, the --loop-file semantics seem to be preferred.
* vo_opengl: add option for caching shaders on diskGravatar wm42017-04-08
| | | | | | | | | | | | | Mostly because of ANGLE (sadly). The implementation became unpleasantly big, but at least it's relatively self-contained. I'm not sure to what degree shaders from different drivers are compatible as in whether a driver would randomly misbehave if it's fed a binary created by another driver. The useless binayFormat parameter won't help it, as they can probably easily clash. As usual, OpenGL is pretty shit here.
* vo_opengl: fix a confused commentGravatar wm42017-04-08
|
* vo_opengl: remove two unused symbolsGravatar wm42017-04-08
|
* encoding_profiles.conf: update and remove deprecated stuffGravatar Ricardo Constantino2017-04-07
| | | | | | | | | - libfaac and libvo_aacenc were removed from FFmpeg - add libopus profile - modify vp8's ovcopts and add vp9 - switch enc-f-webm to vp9 + opus - remove obsolete devices profiles using deprecated filters
* wscript: don't make dvdread-common an optionGravatar Ricardo Constantino2017-04-07
| | | | | | | | This just checks if dvdread or dvdnav are enabled so it can compile dvdread code. Change description to be clearer on what this does differently from --enable-dvdread.
* vo_opengl: add our own copy of OpenGL headersGravatar wm42017-04-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | gl_headers.h is basically header_fixes.h done consequently. It contains all OpenGL defines (and some typedefs) we need. We don't include GL headers provided by the system anymore. Some care has to be taken by certain windowing APIs including all of gl.h anyway. Then the definitions could clash. Fortunately, redefining preprocessor symbols to the same content is allowed and ignored. Also, redefining typedefs to the same thing is allowed in C11. Apparently the latter is not allowed in C99, so there is an imperfect attempt to avoid the typedefs if required API symbols are apparently present already. The nost risky part about this are the standard typedefs and GLAPIENTRY. The latter is different only on win32 (and at least consistently so). The typedefs are mostly based on stdint.h typedefs, which khrplatform.h clumsily emulates on platforms which don't have it. The biggest difference is that we define GLsizeiptr directly to ptrdiff_t, instead of checking for the _WIN64 symbol and defining it to long or long long. This also typedefs GLsync to __GLsync, just like the khronos headers. Although symbols prefixed with __ are implementation reserved, khronos also violates this rule, and having the same definition as khronos will avoid problems on duplicate definitions. We can simplify the build scripts too. The ios-gl check seems a bit wrong now (what we really want to test for is EAGLContext), but I can't test and thus can't improve it. cuda_dynamic.h redefined two GL symbols; just include the new headers directly instead.
* demux_lavf: disable half-working mp4 edit list support in libavcodecGravatar wm42017-04-07
| | | | | Instead, enable the "old" code, which uses this for gapless info (audio padding/trailing) only.
* vd_lavc: fix return value in receive_frame()Gravatar wm42017-04-07
| | | | | Pointed out by uau. Not sure why gcc doesn't warn (it uses ((void*)0) for NULL).
* vo_opengl: add a generic EGL function loader functionGravatar wm42017-04-06
| | | | | | | This is pretty trivial, but also quite annoying due to details like mismatching eglGetProcAddress() function signature (most callers just cast the function pointer), and ARM/Linux hacks. So move them all to one place.
* vo_opengl: fix windows build if GLES3 is detectedGravatar wm42017-04-06
| | | | | | | | | With the recent GLES3 header detection, and if ANGLE is in the search path, the ANGLE headers will be used over the desktop GL ones. It appears the ANGLE headers do not include <windows.h>, which leads to the dxinterop code to fail building. Oops. Fix this by including <windows.h> is dxinterop is compiled in.
* wscript: avoid compose_checks in one caseGravatar wm42017-04-06
| | | | | Avoid it where we can, because it tends to have unexpected side-effects. (Probably not in this case, but still a reason to avoid it.)
* vo_opengl: header_fixes.h: merge IOS GLES blockGravatar wm42017-04-06
| | | | | | | | It appears we expect IOS to provide GLES 3. The IOS block contains all symbols from the GLES block. Weirdly not all, so it's possible that some symbols will be redefined, which is annoying, but harmless. I don't have an iOS setup to test, otherwise it's likely that a modification of the IOS include statements would take care of this.
* build: replace android-gl check with a standard GLES3 checkGravatar wm42017-04-06
| | | | | There's no reason to make it Android specific, as it uses standard include paths.
* vf_lavfi, af_lavfi: remove unused/deprecated includeGravatar wm42017-04-05
| | | | | Looks like Libav is going to drop it, unnecessarily making compilation fail.
* etc/mpv.conf: remove deprecated optionsGravatar wm42017-04-05
| | | | | | This hasn't been updated for a while. Some options are deprecated (--softvol), semi-deprecated or virtually useless (e.g. --vo and --ao), or use old-syntax (--sub-codepage).
* options: assing proper default value for --audio-channelsGravatar wm42017-04-05
| | | | | This will make --list-options (and some other code paths) actually return the proper default. Shouldn't change behavior.
* vf: fix another broken case of conversion filter auto-insertionGravatar wm42017-04-05
| | | | | | | | | | | | | | | | | | | | If the VO doesn't support a format output by vf_lavfi, no conversion filter was inserted, and filter chain creation failed. This is because vf_lavfi doesn't properly follow the format negotiation model, which means the format negotiation pass does not catch all cases where conversion is needed. Specifically, vf_lavfi supports that all output formats are supported for any given input format, but then does not actually call vf_next_query_format() in reconfig() to check which format it uses, but outputs whatever it gets from libavfilter. I think this is ok to avoid excessive complexity in vf_lavfi.c, but it also means adding more kludges to vf.c. I justify this (and the code duplication) with the idea that the current filter chain code will die anyway at some point. The .log field additions for c->first/c->last are strictly speaking not needed, but useful for debugging.
* demux_cue: include io.h for Windows UTF-8 filesystem functionsGravatar wm42017-04-04
|
* DOCS/interface-changes.rst: document --vf/--af deprecationsGravatar wm42017-04-04
| | | | | And also future directions. Basically, it tells the user that he can't hope for perfect forward-compatibility.
* audio: deprecate most audio filtersGravatar wm42017-04-04
| | | | | Well, ok, only 4 filters. The rest will survive in one or the other form.
* af: implement generic lavfi option bridge tooGravatar wm42017-04-04
| | | | | | Literally copy-pasted from the same commit for video filters. (Once new code for filters is implemented, this will all go away or at least get unified anyway.)
* af_lavfi: remove forced "format" filterGravatar wm42017-04-04
| | | | | | | This was supposed to restrict output to formats supported by us. But we usually support all FFmpeg sample formats anyway (if not, it will error out gracefully, and we would add the missing format). Basically, it's just useless bloat.
* parse_commandline: guard glob() useGravatar wm42017-04-04
| | | | Might make porting to batshit environments simpler.
* w32_common: refactor mouse button handlingGravatar James Ross-Gowan2017-04-04
| | | | | | | Previously, the shared behaviour for each mouse-button message lived at the bottom of the WndProc. Move it into handle_mouse_down/up functions (similar to the handle_key_down/up functions.) This makes the WndProc slightly less complicated. There should be no change in behaviour.
* vo_opengl: use 16 bit textures with angleGravatar wm42017-04-03
| | | | | | Regression due to 03fe506. It accidentally changed the default value if glGetTexLevelParameteriv() is not available, which is the case with ANGLE.
* video: support positional arguments for automatic lavfi option bridgeGravatar wm42017-04-03
| | | | | | Now e.g. --vf=pad=1000:1000 works. All in all pretty ugly and hacky. Just look away.
* osx: fix Touch Bar access on systems without Touch Bar supportGravatar Akemi2017-04-02
| | | | | | when building with a deployment target older than an SDK with Touch Bar support we still tried to access the TouchBar, since the compile time checks are positive. to prevent this we add two runtime checks.
* video: add automatic libavfilter bridge to option parsingGravatar wm42017-04-02
| | | | | | | | | | Now you can for example do "--vf=hue=h=60" - there is no "hue" filter in mpv, so libavfilter's will be used. This has certain caveats (see manpage). The point of this is providing a relatively smooth transition path to removing our own filter stuff.
* video: deprecate almost all video filtersGravatar wm42017-04-02
| | | | | | | | | | | | | The plan is to nuke the custom filter chain completely. It's not clear what will happen to the still needed builtin filters (mostly hardware deinterlacing and vf_vapoursynth). Most likely we'll replace them with different filter chain concept (whose main purpose will be providing builtin things and bridging to libavfilter). The undocumented "warn" options are there to disable deprecation warnings when the player inserts filter automatically. The same will be done to audio filters, at a later point.
* audio: lower "Disabling multichannel output." warning to verboseGravatar wm42017-04-02
| | | | Not sure why it was a warning in the first place.
* image_writer: make it work with libavcodec's jpg encoderGravatar wm42017-04-02
| | | | | | | | | | | Now taking a screenshot actually works, if libjpeg is disabled at compile time. In particular, the AV_PIX_FMT_YUVJ formats (with the "J") cause us problems. They have been deprecated years ago, but the libavcodec jpg encoder won't accept anything else. This is made worse by the fact that mpv doesn't have J formats internally - it always uses the color levels metadata to decide the range instead.
* manpage, client API: add some clarifications when commands use OSDGravatar wm42017-04-01
| | | | | The APIs that run commands in a more API-like manner disable OSD and string expansion by default.
* manpage: finish cut off sentenceGravatar wm42017-04-01
|
* screenshot: cleanup: use normal MSGL_ definesGravatar wm42017-04-01
| | | | Remove the weird custom thing.
* player: make screenshot commands honor the async flagGravatar wm42017-04-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | And also change input.conf to make all screenshots async. (Except the every-frame mode, which always uses synchronous mode and ignores the flag.) By default, the "screenshot" command is still asynchronous, because scripts etc. might depend on this behavior. This is only partially async. The code for determining the filename is still always run synchronously. Only encoding the screenshot and writing it to disk is asynchronous. We explicitly document the exact behavior as undefined, so it can be changed any time. Some of this is a bit messy, because I wanted to avoid duplicating the message display code between sync and async mode. In async mode, this is called from a worker thread, which is not safe because showing a message accesses the thread-unsafe OSD code. So the core has to be locked during this, which implies accessing the core and all that. So the code has weird locking calls, and we need to do core destruction in a more "controlled" manner (thus the outstanding_async field). (What I'd really want would be the OSD simply showing log messages instead.) This is pretty untested, so expect bugs. Fixes #4250.
* ta_talloc: add missing include statementGravatar wm42017-04-01
| | | | Some array functions call memmove().
* input: add "async" flagGravatar wm42017-04-01
| | | | | | | | | | | Obviously, this has no effect on commands which do not support this explicitly. A later commit will enable this for screenshots. Also add some wording on mpv_command_async(), which has nothing to do with this. Having a more elegant, unified behavior would be nice. But the API function was not created for this - it's merely for running commands _synchronously_ on the core, but without blocking the client API caller (if the API user consistently uses only async functions).
* misc: add a thread poolGravatar wm42017-04-01
| | | | To be used by the following commits.
* player: enable "buffering" pausing for DASH streams tooGravatar wm42017-04-01
| | | | | | | | | | This wasn't enabled if no stream cache was used. It can work with only the demuxer cache. In theory this could be always enabled (even for local files), but still try to avoid this, and enable it only if the source is marked as potentially being a "network" stream. The intention is mostly to enable it for the youtube-dl pseudo-DASH support.
* external_files: enable autoloading with URLsGravatar Ricardo Constantino2017-04-01
| | | | Closes #3264