aboutsummaryrefslogtreecommitdiffhomepage
Commit message (Collapse)AuthorAge
...
* cocoa-cb: fix building with Swift 4.2Gravatar Akemi2018-06-12
| | | | | | | | | init is a reserved keyword and Swift 4.2 got a bit stricter about using it. this could be fixed by adding apostrophes around init but makes the code uglier. hence i just renamed init to initialized and for consistency uninit to uninitialized. Fixes #5899
* build: manually add standard library search paths for linkingGravatar Akemi2018-06-12
| | | | | | | | | | | this reverts commit a174566 since the actually reason for failing has been found. the isysroot flag overwrites the framework and library search paths. though we only need to overwrite the former and there is no way to just overwrite that one. we manually add the standard library search paths to the very end of the linking command, so it won't interfere with the search paths extracted by waf. Fixes #5791
* cocoa-cb: remove pre-allocation of window, view and layerGravatar Akemi2018-06-12
| | | | | | | | | | | the pre-allocation was needed because the layer allocated a opengl context async itself and we couldn't influence that. so we had to start the core after the context was actually allocated. furthermore a window, view and layer hierarchy had to be created so the layer would create a context. now, instead of relying on the layer to create a context we do this manually and re-use that context later when the layer wants to create one async itself.
* vo_libmpv: pass vo struct to the control callbackGravatar Akemi2018-06-12
|
* options.c: display additional metadata tags during video playbackGravatar Stephen Hutchinson2018-06-11
| | | | | | | | The currently-displayed tags make sense for music files, but similar information for video is more commonly - or at least should be - put under other tags, while the audio-related tags are often used for other information on video files (particularly with youtube-dl's output).
* stats: remove superfluous line breaksGravatar Julian2018-06-09
| | | | | Those accidentally slipped in with 9975835bdeec3f2b04b136ef40c70b02487bb0e6 due to bad copy & paste.
* hwdec_drmprime_drm: Do not show error message during probingGravatar Anton Kindestam2018-06-08
| | | | | Change the log-level of an error message that would sometimes show up during hwdec probing, and could be misleading.
* stream_file: enable cache for FUSE filesystems on OpenBSD and FreeBSDGravatar gall0ws2018-06-05
|
* osc: fix accidentally skipping files when seeking with sliderGravatar fatalis2018-06-04
| | | | | | | When seeking near the end of the file and the next file loads, seeking continues on the next file at the same position and then immediately the file after that. This patch stops slider seeking when a new file is loaded, which is the standard behavior of many other players.
* ao_alsa: simplify get_space()Gravatar Jan Ekström2018-06-04
|
* ao_alsa: replace snd_pcm_status() with snd_pcm_avail() in get_space()Gravatar Muhammad Faiz2018-06-04
| | | | | | | | | | Fixes a bug with alsa dmix on Fedora 29. After several minutes, audio suddenly becomes bad and muted. Actually, I don't know what causes this. Probably this is a bug in alsa. In any case, as snd_pcm_status() returns not only 'avail', but also other fields such as tstamp, htstamp, etc, this could be considered a good simplification, as only avail is required for this function.
* vo_sdl: add support for screensaver VOCTRL'sGravatar sfan52018-06-02
| | | | | Previously vo_sdl would unconditonally disable the screensaver, ignoring the `stop-screensaver` option.
* vo_gpu: desaturate after peak detectionGravatar Niklas Haas2018-05-31
| | | | | | | | | | This sacrifices some dynamic range for well-behaved sources, but prevents catastrophic desaturation on badly mastered / too bright sources. I think that's the better trade-off. This makes the desaturation algorithm much "safer" to deploy by default, as well. One could even argue going up to strength 1.0, which works better for some sources but worse for others. But I think the current strength is the best trade-off even after this change.
* player: fix coding styleGravatar wm42018-05-31
| | | | | I'm also not sure whether this condition doesn't subtly break a lot of things.
* demux_lavf: drop obscure genpts optionGravatar wm42018-05-31
| | | | | This code shouldn't even exist in libavformat. If you still need it, you can enable it via --demuxer-lavf-o.
* options: add --http-proxyGravatar wm42018-05-31
| | | | Often requested, trivial.
* player: remove deprecated vo/ao auto profilesGravatar wm42018-05-31
| | | | | These were deprecated almost 2 years ago. Now they happen to be in the way.
* m_config: remove outdated commentGravatar wm42018-05-31
|
* m_config: check for int16_t offset overflowGravatar wm42018-05-31
| | | | | | | | For some reason shadow_offset is a int16_t variable (to save some space or something), which means the static part of the entire option list must be below 32KB. This is fine, but still add a check against overflows. (Currently it's 3.6KB. This does not include dynamic allocations like strings.)
* m_config: remove an unused functionGravatar wm42018-05-31
|
* m_option: remove an unused fieldGravatar wm42018-05-31
|
* m_config: cosmetics: fix 2 typosGravatar wm42018-05-31
|
* manpage: update --demuxer-thread optionGravatar wm42018-05-31
| | | | Be a bit more detailed, and discourage disabling it.
* player: simplify edition switchingGravatar wm42018-05-31
| | | | | | | | | | | | | | The player fully restarts playback when the edition or disk title is changed. Before this, the player tried to reinitialized playback partially. For example, it did not print a new "Playing: <file>" message, and did not send playback end to libmpv users (scripts or applications). This playback restart code was a bit messy and could have unforeseen interactions with various state. There have been bugs before. Since it's a mostly cosmetic thing for an obscure feature, just change it to a full restart. This works well, though since it may have consequences for scripts or client API users, mention it in interface-changes.rst.
* cmd: do not use a random value for MP_CMD_OPT_ARGGravatar wm42018-05-25
| | | | | | | | | | | This flag is used only by the command parser. Its value overlapped with some of the existing m_option flags, but only flags that did not matter for the command parser (i.e. the flag bits used had mostly private uses in each component). It's still a bit unclean and dangerous to use an essentially random value, so reuse M_OPT_OPTIONAL_PARAM for it. Since M_OPT_OPTIONAL_PARAM has a slightly longer name than MP_CMD_OPT_ARG, I'm going to keep the old name.
* player: use canonical playback time for video refreshesGravatar wm42018-05-25
| | | | | | | | | | | | | | | | When changing video filters during initialization, there was a small time window where video was initialized, but playback restart was not complete yet. In this time window, playback_pts is not set. But since issue_refresh_seek() was using this, it could lead to no refresh being done _if_ the "video" had only 1 frame (such as cover art). Fix this by using get_current_time() instead, which is the current time with corner cases such as ongoing loading or seeks taken into account. See also the previous commit. Without that, get_current_time() could return NOPTS during init. Fixes #5831.
* manpage: mention that fd:// file descriptors may be modifiedGravatar wm42018-05-25
| | | | | For example, we call setmode() to switch a FD from text to binary mode on garbage OSes.
* stream_file: properly detect stdin as pipeGravatar wm42018-05-25
| | | | | | | | | | | | There is some code that checks a FD for whether it is a regular file or not. If it's not a regular file, it e.g. enables use of poll() to avoid blocking forever. But this was done only for FDs that were open()ed by us, not from stdin special handling or fd://. Consequently, " | mpv -" could block the player. Fix this by moving the code and running for it on all FDs. Also, set p->regular_file even on mingw.
* manpage: remove a reference to a removed optionGravatar wm42018-05-25
|
* demux: fix/improve aspects of EOF signalingGravatar wm42018-05-25
| | | | | | | | | | | | | | | | | | | | | | When the current packet queue was completely empty, and EOF was reached, the queue->is_eof flag was not correctly set to true. Change this by reading ds->eof to check whether the stream is considered EOF. We also need to make sure update_seek_ranges() is called in this case, so change the code to simply call it when queue->is_eof changes. Also, read_packet() needs to call adjust_seek_range_on_packet() if ds->eof changes. In that case, the decoder also needs to be notified about EOF. So both of these should be called when ds->eof changes to true. (Other code outside of this function deals with the case when ds->eof is changed to false.) In addition, this code was kind of shoddy about calling wakeup_ds() correctly. It looks like there was an inverted condition, and sent a wakeup to the decoder only when ds->eof was already true, which is obviously bogus. The final EOF case tried to be somehow clever about checking in->last_eof for notifying the codec, which is sort of OK, but seems to be strictly worse than just checking whether ds->eof changed. Fix these things.
* ipc: cosmetic: switch a negated if/elseGravatar wm42018-05-25
|
* ipc: alias set_property_string to set_propertyGravatar wm42018-05-25
| | | | | | | | | The only effective difference is that the former explicitly checks whether the JSON value type is string, and errors out if not. The rest is exactly the same (mpv_set_property_string is mpv_set_property with MPV_FORMAT_STRING). It seems silly to keep this, so just remove it.
* video: trust container FPS early on if possibleGravatar wm42018-05-25
| | | | | If the container FPS is correct, this can help getting ideal mix factors for vo_gpu interpolation mode. Otherwise, it doesn't matter.
* manpage: mention that --no-correct-pts can break seeking tooGravatar wm42018-05-25
|
* dispatch: add an assert()Gravatar wm42018-05-25
|
* input: move an enum back to its correct placeGravatar wm42018-05-25
| | | | This was accidentally moved together with the cmd stuff.
* demux_lavf: remove ffm blacklist entryGravatar wm42018-05-25
| | | | ffm (ffserver) was removed from ffmpeg.
* input: add a define for the number of mouse buttons and use itGravatar wm42018-05-25
| | | | (Why the fuck are there up to 20 mouse buttons?)
* vd_lavc: minor simplification for get_format fallbackGravatar wm42018-05-25
| | | | | | | | | | | The default get_format does exactly do this, so we don't need to duplicate it. The only potential problem with this is that the logic doesn't entirely prevent that the avcodec_default_get_format hw_device_ctx path is triggered, which would probably work, but has unknown consequences and interactions. But the way the logic currently works it can't happen, provided the hwaccel metadata libavcodec provides is correct.
* terminal-unix: stop trying to read when terminal disappearsGravatar wm42018-05-25
| | | | | | | | Avoids 100% CPU usage due to terminal code retrying read(). Seems like this was "forgotten" (or there was somehow the assumption poll() would not signal POLLIN anymore). Fixes #5842.
* x11: support Shift+TABGravatar Niklas Haas2018-05-24
| | | | | | | | | | | | | | For some reason, the X default modifier map binds shift+tab to ISO_Left_Tab instead of the regular Tab. So to get Shift+TAB recognized by mpv, we also need to accept ISO_Left_Tab. This patch matches what other programs like e.g. Qt do, which treat Tab and ISO_Left_Tab as the same thing. God only knows why the distinction exists, and why X decides to mix up its bindings like that. Fixes #5849
* demux, player: fix playback of sparse video streams (w/ still images)Gravatar Aman Gupta2018-05-24
| | | | | | | | | | | | | | | Fixes several issues playing back mpegts with video streams marked as having "still images". For example, see this video which has frames only every 6s: https://s3.amazonaws.com/tmm1/music-choice.ts Changes include: - start playback right away, without waiting for first video frame - do not consider the sparse video stream in demuxer underrun detection - do not require multiple video frames for the VO - use audio as the master stream for demuxer metadata events - use audio stream for playback time Signed-off-by: Aman Gupta <aman@tmm1.net>
* demux_lavf: co-locate disposition checksGravatar Aman Gupta2018-05-24
| | | | Signed-off-by: Aman Gupta <aman@tmm1.net>
* waf: require wayland-protocols >= 1.14Gravatar Rostislav Pehlivanov2018-05-20
| | | | Needed for the new xdg-wm tiling enums.
* wayland_common: require wl_compositor of version 3Gravatar Rostislav Pehlivanov2018-05-20
| | | | | We already did require it, in order to call set_buffer_scale. This just makes it error out more gracefully.
* wayland_common: fix maximized stateGravatar Rostislav Pehlivanov2018-05-20
| | | | Window size should not change if the window has been maximized or tiled.
* vo_gpu: allow higher icc-contrast and improve loggingGravatar Niklas Haas2018-05-17
| | | | | | | | | | With the advent of actual HDR devices, my real measured ICC profile has an "infinite" contrast, since the display is completely off on pure black inputs. 100k:1 might not be enough, so let's just bump it up to 1m:1 to be safe. Also, improve the logging in the case that the detected contrast is too high by default.
* stats: show sample format of audio trackGravatar sfan52018-05-17
|
* waftools: update clang_compilation_databaseGravatar Bin Jin2018-05-17
| | | | | The old copy is broken with waf-1.9.8, update to the latest commit (waf-project/waf@5e4b86b81df3b9819738d757eb8d2c8646ef0ede) instead.
* manpage: fix typoGravatar Niklas Haas2018-05-17
|