summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* vo_gpu: semi-fix --gpu-context/--gpu-api options and help outputwm42017-10-165-21/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This was confusing at best. Change it to output the actual choices. (Seems like in the end it's always me who has to clean up other people's bullshit.) Context names were not unique - but they should be, so fix it. The whole point of the original --opengl-backend option was to side-step the tricky auto-detection, so you know exactly what you get. The goal of this commit is to make --gpu-context work the same way. Fix the non-unique names by appending "vk" to the names. Keep in mind that this was not suitable for slecting the "UI" backend anyway, since "x11" would force GLX, whereas people on not-NVIDIA actually want "x11egl". Users trying to use --gpu-context=x11 to force the X11 backend would always end up with GLX, which would at least break VAAPI hardware decoding for them. Basically the idea that this option could select the "UI" type is completely broken - it selects an implementation, which implies a UI. Selecting the UI type This would require a separate mechanism. (Although in theory this separate mechanism could be part of the --gpu-context option - in any case, someone would have to implement it.) To achieve help output that can actually be understood, just duplicate the code. Most of that code is duplicated anyway, and trying to share just the list code with the result of making the output unreadable doesn't make too much sense. If we wanted to save code/effort, we could just remove the help output altogether. --gpu-api has non-unique entries, and it would be nice to group them (e.g. list all OpenGL capable contexts with "opengl"), but C makes this simple idea too much of a pain, so don't do it. Also remove a stray tab from the android entry on the manpage.
* mp_image: select an explicit fallback for chroma locationwm42017-10-161-0/+7
| | | | | | | | | | If the chroma location is missing, vo_gpu will use centered chroma. Select a better chroma location by default: normally, it will always be MPEG video chroma location. If full levels are used, use JPEG chroma location, because that sort of sounds like it could make sense as it might coincide with JPEG being decoded. See e.g. #4804.
* manpage: add Vulkan WSI extension name for --gpu-context=winJames Ross-Gowan2017-10-141-1/+1
| | | | This matches the other Vulkan contexts.
* vo_gpu: mali-fbdev: fix build errorTobias Jakobi2017-10-131-2/+2
| | | | Apparantly the context was renamed.
* Copyright: some more licensing clarificationswm42017-10-134-11/+519
| | | | | | Unfortunately I'm also adding the full text of the LGPL license text, because the GPL one was already present in this repository, and I don't want to imply that the GPL somehow has priority.
* options: add --vlang switchwm42017-10-132-0/+4
| | | | For symmetry with --alang and --slang. 100% useless, but why not?
* stats: add file sizeJulian2017-10-131-1/+2
| | | | also one minor cosmetic change: comment the "coming soon" dummy page
* stats: clarify documentationJulian2017-10-131-7/+7
| | | | | Change true/false to yes/no because lua script configs only take these values for booleans.
* input.conf: explicit bindings for stats overlayJulian2017-10-131-0/+2
|
* wayland_common: init output_list during main struct initRostislav Pehlivanov2017-10-121-1/+2
| | | | | Otherwise if display connection or xkb init failed the uninit function could segfault.
* manpage: correct some comments about ordered chapterswm42017-10-111-6/+5
| | | | | Ordered chapters behavior changed at some point, and all of this was outdated.
* wayland_common: require wl_output v2 and send MP_INPUT_RELEASE_ALL on uninitRostislav Pehlivanov2017-10-111-8/+13
| | | | | | Every compositor (including toy compositors) has had support for wl_output v2 since forever, so there's little point in supporting degraded output for 5 year old releases (especially considering we require zxdg6 which is far more recent).
* vo_gpu: shaderc: include debug info when --gpu-debug is setJames Ross-Gowan2017-10-111-0/+2
| | | | | | | This adds symbol information to the generated SPIR-V, which shows up in the SPIR-V assembly dump. It's also useful for potential RA backends that use SPIRV-Cross, since the symbol information is used in the generated shader source.
* audio: clarify GPL-only partswm42017-10-101-1/+2
|
* demux_mkv: remove remaining GPL codewm42017-10-102-9/+1
| | | | Fuck this thing.
* build: make LGPL mode final (via --enable-gpl)wm42017-10-102-37/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Rename --enable-preliminary-lgpl2 to --enable-gpl. This concludes the relicensing. Some things are still to do (relicensing some still-GPL optional code), but we consider the code included by --enable-gpl to be fully relicensed. The relicensing was performed by asking every known author for permission for relicensing it to LGPL version 2.1 "or later". If an author could not be contacted or permission could not be obtained, and the contribution was considered relevant for copyright purposes, the affected code was either excluded from LGPL mode (not built), or removed or rewritten. This is the standard in open source relicensing processes. Keep in mind that using LGPL mode is still on the user's own risk. Even though I claim that the relicensing was pretty clean and thorough (measured on the standards of the open source community¹), and I followed the advice of some actual experts, there is still a residual uncertainty due to the fact that I'm not an all-knowing entity (authors could have taken someone else's code and pretend it's their own) nor a lawyer (meaning I might lack associated authority or expertise), and the fact that the judicial system is far from deterministic. The relicensing was performed merely to the best of my knowledge. I reject all responsibility outside of that. This commit also cleans up the "Copyright" file to reflect the finalized relicensing process. ¹ Not to imply that the standards of commercial companies are much higher. Some major tech companies get away with stuff I would not consider clean. See #2033.
* Add checks for HAVE_GPL to various GPL-only source fileswm42017-10-1031-0/+148
| | | | | | | | This should actually cover all of them, if you take into account that some unchanged GPL source files include header files with such checks. Also this was done already for the libaf derived code. This is only for "safety" and to avoid misunderstandings.
* wayland_common: adjust default cursor size and scale its bufferRostislav Pehlivanov2017-10-101-2/+3
| | | | | | | It turns out compositors which do scaling scale the cursor as well, so every single surface needs to get scaled too. Also, 32 corresponds to the default size for both GTK+ and KDE.
* vo: fix reference to mediacodec_embedAman Gupta2017-10-091-2/+2
|
* vo_gpu: android: fix gpu contextAman Gupta2017-10-092-0/+5
|
* vo_opengl: hwdec_vaegl: Use vaExportSurfaceHandle() if presentMark Thompson2017-10-091-0/+80
| | | | | | | | | | | This new interface in libva2 offers a cleaner way to export surfaces which can then be imported to EGL. In particular, this works with the Mesa driver, so we can have proper playback without a pointless download and upload on AMD cards. This change does nothing with libva1, and will fall back to the libva1 interface (vaDeriveImage() + vaAcquireBufferHandle()) if vaExportSurfaceHandle() is not present.
* vaapi: Use libva2 message callbacksMark Thompson2017-10-091-3/+29
| | | | They are no longer global, so they work vaguely sensibly.
* stats: add documentationJulian2017-10-093-1/+165
| | | | stats.rst is heavily based on osc.rst
* lua: integrate stats.lua scriptJulian2017-10-097-2/+14
| | | | | | | | | Signed-off-by: wm4 <wm4@nowhere> Rename --stats to --load-stats-overlay and add an entry to options.rst over the original commit. Signed-off-by: wm4 <wm4@nowhere>
* stats: change the way toggling/oneshot works internallyJulian2017-10-091-106/+109
| | | | | | | | | | | | | | | | Previously multiple timers were used to realize oneshot, toggling (redrawing) and page keybindings. The oneshot case in particular also relied on mp.osd_message to display text only for a given duration. This was changed to only use one timer in total now. Because now each case has a defined "start" and "end" point (including oneshot) mp.set_osd_ass() can be used to print stats as well. This is currently optional and has to be activated using the config option persistent_overlay=true. One shortcoming: oneshot and toggling are mutual exclusive right now. Previously you could enter toggling while oneshot stats were shown, this is not possible anymore to reduce the number of cases to be considered. This can be added later on if desired.
* stats: stop coloring timing valuesJulian2017-10-091-26/+8
| | | | | | It used a bad heuristic that got even worse/less reliable with recent changes in mpv. In fact, it's not reliable at all. Watch out for dropped frames instead. That's a useful indicator.
* stats: add current and total chapter numberJulian2017-10-091-1/+8
| | | | | Fixes #44 (well, partially, I'm still not sure about the time)
* stats: add audio and video filtersJan Janssen2017-10-091-0/+55
|
* stats: reorganize the framedrop countersNiklas Haas2017-10-091-4/+5
| | | | | Clarified the relationship between `Dropped` and `VO`, and also merged the DS-exclusive stats into the DS line.
* stats: revert DR indicator as it's unnecessaryJulian2017-10-091-2/+1
| | | | | It's apparently already stated as part of the upload pass name. This reverts commit ec837f64c29a1b825e28b65edc34059b6c1cad40.
* stats: reduce default font size to 8Julian2017-10-091-1/+1
|
* stats: visually indicate direct renderingJulian2017-10-091-1/+2
|
* stats: change font weight of % sign as wellJulian2017-10-091-1/+1
| | | | Due to popular demand
* stats: fix indentation/newline of frame timing pageJulian2017-10-091-11/+11
| | | | There was a superfluous newline and some indentation
* stats: show % of a pass on frame timing pageJulian2017-10-091-9/+23
|
* stats: always print perfdata totalJulian2017-10-091-7/+4
| | | | There's no point in disabling it anyway
* stats: make add_header() append at current positionJulian2017-10-091-7/+7
|
* stats: print perfdata total by defaultJulian2017-10-091-1/+1
| | | | There is enough space now
* stats: mark dummy as suchJulian2017-10-091-1/+1
|
* stats: correctly re-eval ASS tag usageJulian2017-10-091-11/+17
| | | | Fixes #42
* stats: make page keybinding repeatableJulian2017-10-091-1/+1
| | | | There's no reason it's not.
* stats: remove table in tableJulian2017-10-091-14/+6
| | | | | | Almost cosmetic change. This tables-in-table was done back when we actually processed strings but that's long ago now and no longer needed nor useful.
* stats: resilience against accidential timer removalJulian2017-10-091-9/+12
| | | | | | | Previously I could trigger a bug with intense button mashing, however, was unable to reproduce it and therefore debug it. This change now seems to be resilient against button mashing, let's hope it really is.
* stats: allow keybindings for specific pageJulian2017-10-091-12/+21
| | | | | | A keybinding in input.conf like: e script-binding stats/display-page-2 can be used to directly show the respective page (2, in this case)
* stats: support for multiple "pages" of statsJulian2017-10-091-26/+124
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Please note that the latest version of this script needs a very recent version of mpv (from yesterday, to be precise, see the readme). For older versions, please go to "releases". HOW IT WORKS: While the stats are visible (i.e. text is printed to the OSD) a subsequent click on a numeric key (1, 2, ...) will display the corresponding "page". This works no matter if the stats are toggled or just shown as a single invocation. In case of a single invocation, the newly displayed page will be shown for the full duration again. The selected page will be remembered (not persistantly though). So far, only 3 pages are available. 1: the default page, stats as they used to be 2: extensive VO performance stats (to be redesigned/changed soon) 3: dummy In the future, many more pages are possible. Implementation is likely to change again (functionality will stay the same). A new timer had to be introduced to remove the forced keybindings in the oneshot case. The toggle case can remove them without a timer. Ensuring that each mode won't remove timers of the other mode didn't really turn out neat. Therefore, I intend to change this again, maybe by merging the oneshot case into the toggle case.
* stats: remove check for lua timer functionJulian2017-10-091-8/+0
| | | | | We now require a modern mpv version. `property_aliases` is kept for future use.
* stats: rescale graphs to make the average align with the center, if possibleNiklas Haas2017-10-091-4/+11
| | | | | For vsync measurements this is not currently done because they don't track their average
* stats: add support for `vo-passes`, which replaces `vo-performance`Niklas Haas2017-10-091-68/+60
| | | | | | | | | | | Due to the large amount of per-pass data, the function takes a parameter indicating whether or not to print a simplified view instead. The overall intent is to print the simplified view for now, but supposed printing the full view on a dedicated "tab" (or extra view type), and as such, `o.print_perfdata_passes` will go away again. I've only introduced it for now so users can play around with this functionality if they want to, until Argon- gets around to implementing stats "tabs".
* stats: update HDR peak for upstream changesNiklas Haas2017-10-091-2/+2
| | | | | This no longer reports cd/m² but now reports a relative peak as a multiple of the SDR reference brightness.
* stats: add support for deprecated propertiesJulian2017-10-091-11/+21
| | | | | | | | | | | | | | Previously, we used a property and when it was unavailable we assumed it doesn't exist before assuming it really is just unavailable. This lead to unnecessarily falling back to deprecated properties which made mpv print deprecation warnings. Now we can really check if a property is not known to mpv. The alternative would've been to check the error part of mp.get_property and perform string comparisons on the returned error message. Not sure if supporting old mpv versions is actually worth it though. Fixes #37 #36
* stats: comment to remind me about deprecated propertiesJulian2017-10-091-0/+1
|
* stats: add new versions of decoder and VO dropped frame countsRicardo Constantino2017-10-091-1/+5
|
* stats: put vsync ratio and jitter on the same lineJulian2017-10-091-15/+10
| | | | Free some vertical space. Hope this doesn't hurt visibility.
* stats: declare function as localJulian2017-10-091-1/+1
| | | | Apparently forgot this one
* stats: use container-fps together with fps (as fallback)Julian2017-10-091-1/+3
| | | | | This was already done for the actual stats a few months ago. Now it is also used by the perfdata coloring code.
* stats: rename option timing_total to print_perfdata_totalJulian2017-10-091-2/+2
| | | | | Should make its purpose more clear. Also add a comment to further explain its use.
* stats: add vsync-ratio and vsync-jitterJulian2017-10-091-69/+138
| | | | | | | | | | | | | | | | | | | Both come with graphs enabled by default. They can be disabled using the options plot_vsync_ratio and plot_vsync_jitter (see the readme regarding customization). In case both graphs are deactivated the ratio and jitter properties will be printed on the same line to save some space. One more user-visible/noticeable change: the maximum used to scale the values for each graph is no longer calculated each time the stats are shown but instead when collecting the data. This means the maximum can actually be higher than all values currently present in a graph's data buffer. This makes it easier to judge a graph's values, especially since as we have no axis labels. To prevent high values staying max forever graph data buffers are cleared when toggling (can be disabled). It was never useful to keep old data and simply append newer data (with a time skip) anyway.
* stats: add some documentation for generate_graph()Julian2017-10-091-1/+10
|
* stats: access less variables outside function's stateJulian2017-10-091-12/+10
|
* stats: add new container-fps that deprecates fpsRicardo Constantino (:RiCON)2017-10-091-1/+2
|
* stats: remove hwdec-active propertyRicardo Constantino (:RiCON)2017-10-091-7/+2
|
* stats: fix bug introduced in earlier commitJulian2017-10-091-5/+4
| | | | | Commit 76387aba26574d0d96af688cf11d10bd165171f7 broke the script in case of timing_total=true.
* stats: fix comment typoJulian2017-10-091-7/+7
|
* stats: disable coloring peak performance dataJulian2017-10-091-1/+2
| | | | | The peak value is probably not very well suited to draw many conclusions from it.
* stats: change coloring of performance dataJulian2017-10-091-7/+8
| | | | | Previously it used display-fps to determine coloration even when display-sync was not even used.
* stats: save ASS sequences locallyJulian2017-10-091-3/+10
| | | | | Instead of querying them constantly. Also add a tiny bit of documentation to some variables.
* stats: only print graphs when ASS tags are goodJulian2017-10-091-1/+1
|
* stats: clearify a few descriptions/labelsJulian2017-10-091-3/+3
|
* stats: don't show video/audio-speed-correction when 0Julian2017-10-091-1/+1
| | | | | | | | This used to be the case, I'm not sure when it changed. The current way of 'hiding' it in case of 0 is not exactly good and relies on the OSD representation. It could be done better by querying the video-sync-active property but that would require querying yet one more thing...
* stats: add HDR signal peak informationNiklas Haas2017-10-091-5/+15
| | | | | | | | Added to mpv in commit a14f9249. Simply shown after the gamma curve if available, since it's semantically attached to it. Also regroup some of the colorimetry options to make this fit (and for them to make more sense)
* stats: add sum of timing valuesJulian2017-10-091-7/+13
| | | | | | | Display an additional line with the sum of all three timing values. Disabled by default. I didn't see the necessity to also create a graph for this line
* stats: put colormatrix, primaries and gamma togetherJulian2017-10-091-3/+4
| | | | Saves a bit of space.
* stats: change highlighting of performance dataJulian2017-10-091-4/