summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* vo_gpu: index desc namespaces by raNiklas Haas2019-04-215-5/+5
| | | | | No reason to require them be constant. This allows them to depend on runtime characteristics of the `ra`.
* 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.
* version.sh: update MPVCOPYRIGHT to include the current year, 2019JCount2019-04-161-1/+1
|
* options/path: fix url detection per RFC3986john2019-04-051-3/+7
|
* ao/audiounit: include AVAudioSession buffer in latency calcAman Gupta2019-04-051-1/+1
| | | | Signed-off-by: Aman Gupta <aman@tmm1.net>
* ao/audiounit: improve a/v syncAman Gupta2019-04-053-4/+18
| | | | | | | This more closely mimics ao_coreaudio, on which this driver was originally based. Signed-off-by: Aman Gupta <aman@tmm1.net>
* man/input: clarify behavior of seek's +exactNoSuck2019-04-021-2/+3
| | | | | | As discussed here: https://github.com/mpv-player/mpv/issues/6545#issuecomment-476015318
* cocoa-cb: add support for custom colored title barder richter2019-04-027-0/+44
|
* cocoa-cb: refactor title bar stylingder richter2019-04-027-63/+192
| | | | | | | | | | | | | half of the materials we used were deprecated with macOS 10.14, broken and not supported by run time changes of the macOS theme. furthermore our styling names were completely inconsistent with the actually look since macOS 10.14, eg ultradark got a lot brighter and couldn't be considered ultradark anymore. i decided to drop the old option --macos-title-bar-style and rework the whole mechanism to allow more freedom. now materials and appearance can be set separately. even if apple changes the look or semantics in the future the new options can be easily adapted.
* cocoa-cb: add support for mac 10.14 Dark mode and run time switchingAkemi2019-04-021-5/+10
| | | | | | setting the appearance of the window to nil will always use the system setting and changes on run time switches too. this is only the case for macOS 10.14.
* cocoa-cb: move all title bar related functionality in its own fileder richter2019-04-025-156/+179
| | | | | | | | | quite a lot of the title bar functionality and logic was within our window. since we recently added a custom title bar class to our window i decided to move all that functionality into that class and in its own file. this is also a preparation for the next commits.
* cocoa-cb: remove an unused variableAkemi2019-04-021-1/+0
|
* cocoa-cb: simplify CGL pixel format creationAkemi2019-04-021-57/+75
| | | | | | | | | | | | | | | i found the old pixel format creation a bit too messy. pixel format attribute arrays and look ups were all over the place, the actual logic what kind of format was created was inscrutable, the software pixel format was hardcoded and no probing was done. i split the attributes into mandatory and optional ones, one mandatory for a hardware and software pixel format each, and moved those to the top of the class. that way new attributes can be easily added to either the mandatory or optional attributes and they don't mess up the actual pixel creation logic any more. furthermore both hardware and software pixel formats are being probed the same way now. to minimise code duplications the probing was moved into its own function.
* cocoa-cb: add support for dragging certain strings onto the windowAkemi2019-04-021-2/+31
| | | | | | | | | | | | | | | only the dragged types NSFilenamesPboardType and NSURLPboardType were supported to be dropped on the window, which was inconsistent with the dragged types the dock icon supports. the dock icon additional supports strings that represents an URL or a path. the system takes care of validating the strings properly in the case of the dock icon, but in the case of dropping on the window it needs to be done manually. support for strings is added by also allowing the NSPasteboardTypeString type and manually validating the strings. strings are split by new lines and trimmed, to also support a list of URLs and paths. every new element is checked if being an URL or path and only then being added to the playlist.
* cocoa-cb: synchronise the flush with the renderAkemi2019-04-022-4/+6
| | | | | | | this could lead to a crash on deinit when flush was called while the opengl state was cleaned up. Fixes #6323
* cocoa-cb: fix a Cocoa window position on init bugAkemi2019-04-021-0/+13
| | | | | | | | | | | | on init an NSWindow can't be placed on a none Main screen NSScreen outside the Main screen's frame bounds. To fix this we just check if the target screen is different from the main screen and if that is the case we check the actual position with the expect one. if they are different we try to reposition the window to the wanted position. Fixes #6453
* cocoa-cb: fix Space switching when quitting fsAkemi2019-04-021-4/+6
| | | | | | | when quitting mpv in fullscreen the System always switchs to Space 1 regardless of which Space mpv was on previous to switching to fs. to fix this we close the window before quitting fs. that way the System switches back the the Space mpv was previous on before fs.
* cocoa-cb: notify vo when window is minimisedAkemi2019-04-021-0/+8
|
* cocoa-cb: fix crash when querying window stateAkemi2019-04-021-1/+2
| | | | Fixes #6489
* cocoa-cb: wakeup vo when new events are availableAkemi2019-04-022-0/+3
| | | | | | | new events were added but not fetched by the vo, because we didn't signal the vo that new events were available. actually wakeup the vo when new events are available.
* build: bump minimum swift version to 3.0.2Akemi2019-04-021-1/+1
| | | | | | | | | | #6299 reported problems with earlier 3.0.x swift versions. i tested with 3.0.2/SDK 10.12.2 and just assumed it also works with the older 3.0.x swift and 10.12.x SDK versions. due to the unstable nature of swift there were slight API differences that caused build problems. since swift is bundled with the SDK we just bump the minimum swift version.
* build: slightly adjust swift check output messages on failder richter2019-04-021-3/+7
| | | | to make it consistent with the other checks and their output messages.
* build: use StrictVersion for swift version comparisonAkemi2019-04-022-7/+7
|
* demux: support cue sheets longer than 100 minuteszc622019-04-011-7/+8
| | | | | | | Remove the 2-digit-number restriction when reading the number of minutes in the cue sheet INDEX command. Fixes #6481
* player: show restart positionAman Gupta2019-04-011-1/+1
| | | | Signed-off-by: Aman Gupta <aman@tmm1.net>
* DOCS/man/mpv.rst: Fix big-cache profile exampleLeo Izen2019-03-161-1/+2
| | | | | | The cache options were changed, and this commit fixes the example big-cache profile to use the new cache options.
* x11: fix cursor hiding initial statePhilip Sequeira2019-03-162-2/+4
| | | | | | | | | Regression from 8e3308d687c3acdd0d572015b06efd5b492d93ee. Broken cases were: * --no-cursor-autohide acted like --cursor-autohide=always. * --cursor-autohide-fs-only always hid the cursor if starting non-fullscreen; entering fullscreen at least once fixed it.
* vo_gpu: increase user shader size limitBin Jin2019-03-131-1/+1
| | | | | | | | | | | | | The old size limit was chosen before LUT texture was supported in user shader. At that time, the whole user shader will be compiled and run on GPU, which makes large user shader impractical to be used. With the introduction of LUT texture, the old size limit doesn't make any sense. For example, a 1024x1024 rgba16f LUT will cost 32MB shader size. Fix this by increasing the size limit to a value that's unlikely be reached.
* build: fix adding of object files to linking with cplugins disabledAkemi2019-03-131-1/+1
| | | | | | | | | | | | this was meant to be fixed by 546f038, but with --disable-cplugins the do_the_symbol_stuff function was never called and the handle_add_object function was again always called before the actual linking task was created. to fix this we explicitly call handle_add_object only after all the tasks the do_the_symbol_stuff function is called after too. Fixes #6028
* macosx_events: fix crash when shutting down during window animationsRodger Combs2019-03-131-1/+3
|
* build: enable swift debug information when requestedRodger Combs2019-03-131-0/+3
|
* player: fix core activity state checkAvi Halachmi (:avih)2019-03-121-1/+1
| | | | | | | | | | | | Adds the negation missed in 8816e1117ee65039dbb5700219ba3537d3e5290e when moving from a positive-is-active to positive-is-idle variable. This leads to proper updates to properties such as "eof-reached", as well as fixes screensaver state updates. Separately found and fixed by avih and wnoun. Co-authored-by: wnoun <wnoun@outlook.com>
* vo_libmpv: fix null pointer dereferencewnoun2019-03-111-3/+5
| | | | Closes: #6507
* Merge branch 'master' into pr6360Jan Ekström2019-03-1132-318/+583
|\ | | | | | | | | | | Manual changes done: * Merged the interface-changes under the already master'd changes. * Moved the hwdec-related option changes to video/decode/vd_lavc.c.
| * vo_gpu: add two useful operators to user shaderBin Jin2019-03-092-0/+7
| | | | | | | | | | | | | | | | modulo operator could be used to check if size is multiple of a certain number. equal operator could be used to verify if size of different textures aligns.
| * vo_gpu: make texture offset available to CHROMA hooksBin Jin2019-03-091-16/+25
| | | | | | | | | | | | | | | | | | | | Before this commit, texture offset is set after all source textures are finalized. Which means CHROMA hooks won't be able to align with luma planes. This could be problematic for chroma prescalers utilizing information from luma plane. Fix this by find the reference texture early, and set global texture offset early.
| * lcms: allow infinite contrastzc622019-03-092-3/+5
| | | | | | | | Fixes #5980
| * demux_edl: don't assume data follows a comment linePhilip Sequeira2019-03-031-1/+3
| | | | | | | | | | | | There could be another comment line or the end of the file. Fixes #6529.
| * sub: recognize UTF-8 characters in SDH subtitle filterzc622019-03-021-1/+4
| | | | | | | | | | | | | | | | | | | | | | Only printable ASCII characters were considered to be valid texts. Make it possible that UTF-8 contents are also considered valid. This does not make the SDH subtitle filter support non-English languages. This just prevents the filter from blindly marking lines that have only UTF-8 characters as empty. Fixes #6502
| * options: do not enable WMV3 hwdec by defaultMartin Herkt2019-03-012-2/+2
| | | | | | | | | | | | Crashes NVIDIA, probably buggy on others. No one ever tests this shit. See #2192
| * demux: fix seek range update after head packets are prunedGunnar Marten2019-03-011-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | The seek range update was to early and did not take the removed head packets into account. And therefore missed that the queue was not BOF anymore. This led to not be able to backward seek before the first packet of the first seek range. Fix it by moving the seek range update after the possible removal and the change of the BOF flag. Fixes: #6522
| * player: do not rebase start time for subtitle streamszc622019-02-281-1/+1
| | | | | | | | | | | | | | | | | | | | As stated in the original commit message, if the demuxer set the start time to the first subtitle packet, the subtitles would be shifted incorrectly. It appears that it is the case for external PGS subtitles. This reverts commit 520fc7403621156676b1ca183aed4911bf6c47b5. Fixes #5485
| * context_drm_egl: implement n-bufferingAnton Kindestam2019-02-251-59/+150
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This allows context_drm_egl to use as many buffers as libgbm or the swapchain_depth setting allows (whichever is smaller). On pause and on still images (cover art etc.) to make sure that output does not lag behind user input, the swapchain is drained and reverts to working in a dual buffered (equivalent to swapchain-depth=1) manner. When possible (swapchain-depth>=2), the wait on the page flip event is now not done immediately after queueing, but is deferred to the next invocation of swap_buffers. Which should give us more CPU time between invocations. Although, since gbm_surface_has_free_buffers() can only tell us a boolean value and not how many buffers we have left, we are forced to do this contortionist dance where we first overshoot until gbm_surface_has_free_buffers() reports 0, followed by immediately waiting so we can free a buffer, to be able to get the deferred wait on page flip rolling. With this commit we do not rely on the default vsync fences/latency emulation of video/out/opengl/context.c, but supply our own, since the places we create and wait for the fences needs to be somewhat different for best performance. Minor fixes: * According to GBM documentation all BO:s gotten with gbm_surface_lock_front_buffer must be released before gbm_surface_destroy is called on the surface. * We let the page flip handler function handle the waiting_for_flip flag.
| * opengl: Support GL_ARB_sync style fences on OpenGL ES 3.0Anton Kindestam2019-02-251-0/+1
| | | | | | | | | | OpenGL ES 3.0 and up has suppport for for GL_ARB_sync style fences. Make sure that mpv can use them.
| * audio: fix segfault caused by incorrect number of planeszc622019-02-231-1/+1
| | | | | | | | | | | | | | Use `mp_aframe_get_planes` to properly get the number of planes, instead of assuming it to be the number of channels. Fixes #6092
| * vo_gpu: fix initial seeding of the peak detect ssboNiklas Haas2019-02-182-5/+7
| | | | | | | | | | | | | | This solves some edge cases when using files with very weird metadata (e.g. MaxCLL 10k and so forth). Instead of just blindly seeding it with the tagged metadata, forcibly set the initial state from the detected values.
| * vo_gpu: use dB units for scene change detectionNiklas Haas2019-02-184-14/+15
| | | | | | | | | | | | | | Rather than the linear cd/m^2 units, these (relative) logarithmic units lend themselves much better to actually detecting scene changes, especially since the scene averaging was changed to also work logarithmically.
| * vo_gpu: clamp sigmoid functionNiklas Haas2019-02-181-0/+2
| | | | | | | | Can explode on some clips otherwise
| * vo_gpu: tone map before gamut mappingNiklas Haas2019-02-181-5/+4
| | | | | | | | | | | | Gamut mapping can take very bright out-of-gamut colors into the negatives, which completely destroys the color balance (which tone mapping tries its best to preserve).
| * vo_gpu: make --gamut-warning warn on negative colorsNiklas Haas2019-02-181-1/+2
| | | | | | | | | | As is the case for actually out-of-gamut colors (rather than just too bright colors).
| * vo_gpu: improve numerical accuracy of PQ OETF constantNiklas Haas2019-02-181-1/+1
| | | | | | | | | | Not a huge deal, but we can do the division in C, which makes the float constant larger.
| * vo_gpu: allow color management in dumb modeNiklas Haas2019-02-181-5/+6
| | | | | | | | | | There's no point to disallow target-trc/prim in dumb mode, since they still work fine.
| * vo_gpu: improve accuracy of HDR brightness estimationNiklas Haas2019-02-182-10/+14
| | | | | | | | | | | | | | This change switches to a logarithmic mean to estimate the average signal brightness. This handles dark scenes with isolated highlights much more faithfully than the linear mean did, since the log of the signal roughly corresponds to the perceptual brightness.
| * vo_gpu: allow boosting dark scenes when tone mappingNiklas Haas2019-02-185-1/+13
| | | | | | | | | | | | | | | | | | | | | | | | In theory our "eye adaptation" algorithm works in both ways, both darkening bright scenes and brightening dark scenes. But I've always just prevented the latter with a hard clamp, since I wanted to avoid blowing up dark scenes into looking funny (and full of noise). But allowing a tiny bit of over-exposure might be a good thing. I won't change the default just yet (better let users test), but a moderate value of 1.2 might be better than the current 1.0 limit. Needs testing especially on dark scenes.
| * vo_gpu: redesign peak detection algorithmNiklas Haas2019-02-185-77/+86
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The previous approach of using an FIR with tunable hard threshold for scene changes had several problems: - the FIR involved annoying hard-coded buffer sizes, high VRAM usage, and the FIR sum was prone to numerical overflow which limited the number of frames we could average over. We also totally redesign the scene change detection. - the hard scene change detection was prone to both false positives and false negatives, each with their own (annoying) issues. Scrap this entirely and switch to a dual approach of using a simple single-pole IIR low pass filter to smooth out noise, while using a softer scene change curve (with tunable low and high thresholds), based on `smoothstep`. The IIR filter is extremely simple in its implementation and has an arbitrarily user-tunable cutoff frequency, while the smoothstep-based scene change curve provides a good, tunable tradeoff between adaptation speed and stability - without exhibiting either of the traditional issues associated with the hard cutoff. Another way to think about the new options is that the "low threshold" provides a margin of error within which we don't care about small fluctuations in the scene (which will therefore be smoothed out by the IIR filter).
| * vo_gpu: improve tone mapping desaturationNiklas Haas2019-02-186-87/+111
| | | | | | | | | | | | | | | | | | | | | | | | | | Instead of desaturating towards luma, we desaturate towards the per-channel tone mapped version. This essentially proves a smooth roll-off towards the "hollywood"-style (non-chromatic) tone mapping algorithm, which works better for bright content, while continuing to use the "linear" style (chromatic) tone mapping algorithm for primarily in-gamut content. We also split up the desaturation algorithm into strength and exponent, which allows users to use less aggressive desaturation settings without affecting the overall curve.
| *