aboutsummaryrefslogtreecommitdiffhomepage
path: root/player
Commit message (Collapse)AuthorAge
* demux: export demuxer cache sizes in bytesGravatar wm42017-11-10
| | | | | | Plus sort of document them, together with the already existing undocumented fields. (This is mostly for debugging, so use is discouraged.)
* player: change license of some code surrounding --frames to LGPLGravatar wm42017-11-06
| | | | The original author of the patch has agreed now.
* player: log if NDEBUG is definedGravatar wm42017-11-04
| | | | I sure want to know whether assert()s were unexpectedly not compiled in.
* osc: make cycling visibility an input.conf key bindingGravatar wm42017-11-03
| | | | | As builtin script, it should not register global key bindings, and add them to input.conf instead. This is similar to what stats.lua does.
* osc: render seek ranges a bit less uglyGravatar ChrisK22017-11-02
|
* osc: render seek rangesGravatar wm42017-11-02
| | | | | | Pretty fucking ugly, but I'm not a UI designer. Of course only does something with --demuxer-seekable-cache.
* screenshot: create directories from templateGravatar Nicolas F2017-11-02
| | | | | screenshot-template could be set to e.g. "%F/%04n", so we want to make sure that the path generated from the template actually exists.
* demux: refactor to export seek rangesGravatar wm42017-10-30
| | | | | | | | | | | | | | | | | | | | Even though only 1 seek range is supported at the time. Other than preparation for possibly future features, the main gain is actually that we finally separate the reporting for the buffering, and the seek ranges. These can be subtly different, so it's good to have a clear separation. This commit also fixes that the ts_reader wasn't rebased to the start time, which could make the player show "???" for buffered cache amount in some .ts files and others (especially at the end, when ts_reader could become higher than ts_max). It also fixes writing the cache-end field in the demuxer-cache-state property: it checked ts_start against NOPTS, which makes no sense. ts_start was never used (except for the bug mentioned above), so get rid of it completely. This also makes it convenient to move the segment check for last_ts to the demux_add_packet() function.
* lavfi: fix warnings with newer libavfilter versionsGravatar wm42017-10-27
| | | | | Most likely will cause new warnings with avfilter_graph_alloc_filter() on old libavfilter versions. Ingore that part.
* audio: fix small memory leakGravatar wm42017-10-27
| | | | | Most commonly happened with --end, in which case that field tends to be set.
* command: change demuxer-cache-state property to return multiple rangesGravatar wm42017-10-26
| | | | | | | | | | | | | | | | | | Even if the demuxer cache does not multiple ranges yet. This is to reduce the pain should caching of multiple ranges ever be implemented. Also change it from the sub properties stuff to return a mpv_node directly, which is less roundabout. Sub-property access won't work anymore, though. Remove the seekable-start/-end fields as well, as they're redundant with the ranges. All this would normally be considered an API change, but since it's been only a few days with no known users, change it immediately. This adds some node.c helpers as well, as the code would be too damn fugly otherwise.
* demux: drop redundant SEEK_BACKWARD flagGravatar wm42017-10-23
| | | | | | | | | | | | | Seems like most code dealing with this was for setting it in redundant cases. Now SEEK_BACKWARD is redundant, and SEEK_FORWARD is the odd one out. Also fix that SEEK_FORWARD was not correctly unset in try_seek_cache(). In demux_mkv_seek(), make the arbitrary decision that a video stream is not required for the subtitle prefetch logic to be active. We might want subtitles with long duration even with audio only playback, or if the file is used as external subtitle.
* video: fix typo in log messageGravatar Nicolas F2017-10-22
|
* command: read the diff if you want to knowGravatar wm42017-10-21
|
* demux: add a back buffer and the ability to seek into itGravatar wm42017-10-21
| | | | | | | | | | | | | | | | | | | | | | | | This improves upon the previous commit, and partially rewrites it (and other code). It does: - disable the seeking within cache by default, and add an option to control it - mess with the buffer estimation reporting code, which will most likely lead to funny regressions even if the new features are not enabled - add a back buffer to the packet cache - enhance the seek code so you can seek into the back buffer - unnecessarily change a bunch of other stuff for no reason - fuck up everything and vomit ponies and rainbows This should actually be pretty usable. One thing we should add are some properties to report the proper buffer state. Then the OSC could show a nice buffer range. Also configuration of the buffers could be made simpler. Once this has been tested enough, it can be enabled by default, and might replace the stream cache's byte ringbuffer. In addition it may or may not be possible to keep other buffer ranges when seeking outside of the current range, but that would be much more complex.
* video: fix poitential NULL derefGravatar wm42017-10-18
| | | | | Regression introduced by direct rendering code additions. Found by same static analyzer.
* video: remove special path for hwdec screenshotsGravatar wm42017-10-16
| | | | | | | This was phased out, and was used only by vdpau by now. Drop the mechanism and the vdpau special code, which means screenshots won't include the vf_vdpaupp processing anymore. (I don't care enough about vdpau, it's on its way out.)
* stats: add file sizeGravatar Julian2017-10-13
| | | | also one minor cosmetic change: comment the "coming soon" dummy page
* audio: clarify GPL-only partsGravatar wm42017-10-10
|
* lua: integrate stats.lua scriptGravatar Julian2017-10-09
| | | | | | | | | 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 internallyGravatar Julian2017-10-09
| | | | | | | | | | | | | | | | 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 valuesGravatar Julian2017-10-09
| | | | | | 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 numberGravatar Julian2017-10-09
| | | | | Fixes #44 (well, partially, I'm still not sure about the time)
* stats: add audio and video filtersGravatar Jan Janssen2017-10-09
|
* stats: reorganize the framedrop countersGravatar Niklas Haas2017-10-09
| | | | | 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 unnecessaryGravatar Julian2017-10-09
| | | | | It's apparently already stated as part of the upload pass name. This reverts commit ec837f64c29a1b825e28b65edc34059b6c1cad40.
* stats: reduce default font size to 8Gravatar Julian2017-10-09
|
* stats: visually indicate direct renderingGravatar Julian2017-10-09
|
* stats: change font weight of % sign as wellGravatar Julian2017-10-09
| | | | Due to popular demand
* stats: fix indentation/newline of frame timing pageGravatar Julian2017-10-09
| | | | There was a superfluous newline and some indentation
* stats: show % of a pass on frame timing pageGravatar Julian2017-10-09
|
* stats: always print perfdata totalGravatar Julian2017-10-09
| | | | There's no point in disabling it anyway
* stats: make add_header() append at current positionGravatar Julian2017-10-09
|
* stats: print perfdata total by defaultGravatar Julian2017-10-09
| | | | There is enough space now
* stats: mark dummy as suchGravatar Julian2017-10-09
|
* stats: correctly re-eval ASS tag usageGravatar Julian2017-10-09
| | | | Fixes #42
* stats: make page keybinding repeatableGravatar Julian2017-10-09
| | | | There's no reason it's not.
* stats: remove table in tableGravatar Julian2017-10-09
| | | | | | 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 removalGravatar Julian2017-10-09
| | | | | | | 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 pageGravatar Julian2017-10-09
| | | | | | 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 statsGravatar Julian2017-10-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 functionGravatar Julian2017-10-09
| | | | | 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 possibleGravatar Niklas Haas2017-10-09
| | | | | 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`Gravatar Niklas Haas2017-10-09
| | | | | | | | | | | 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 changesGravatar Niklas Haas2017-10-09
| | | | | 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 propertiesGravatar Julian2017-10-09
| | | | | | | | | | | | | | 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 propertiesGravatar Julian2017-10-09
|
* stats: add new versions of decoder and VO dropped frame countsGravatar Ricardo Constantino2017-10-09
|
* stats: put vsync ratio and jitter on the same lineGravatar Julian2017-10-09
| | | | Free some vertical space. Hope this doesn't hurt visibility.
* stats: declare function as localGravatar Julian2017-10-09
| | | | Apparently forgot this one