| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Under some conditions, hide_osc() was calling render(), which then called
hide_osc() again, and so forth, until the stack overflows.
Tracking the exact conditions where this happens (and then managing them
to prevent it) is an excercise in futility.
Remove the osc directly - instead of going through the entire rendering
procedure just to end up rendering nothing.
Fixes #4900 .
|
|
|
|
|
| |
FFmpeg/mpv don't do it automatically.
See #4827
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Mouse wheel bindings have always been a cause of user confusion.
Previously, on Wayland and macOS, precise touchpads would generate AXIS
keycodes and notched mouse wheels would generate mouse button keycodes.
On Windows, both types of device would generate AXIS keycodes and on
X11, both types of device would generate mouse button keycodes. This
made it pretty difficult for users to modify their mouse-wheel bindings,
since it differed between platforms and in some cases, between devices.
To make it more confusing, the keycodes used on Windows were changed in
18a45a42d524 without a deprecation period or adequate communication to
users.
This change aims to make mouse wheel binds less confusing. Both the
mouse button and AXIS keycodes are now deprecated aliases of the new
WHEEL keycodes. This will technically break input configs on Wayland and
macOS that assign different commands to precise and non-precise scroll
events, but this is probably uncommon (if anyone does it at all) and I
think it's a fair tradeoff for finally fixing mouse wheel-related
confusion on other platforms.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
mpv's mouse button numbering is based on X11 button numbering, which
allows for an arbitrary number of buttons and includes mouse wheel input
as buttons 3-6. This button numbering was used throughout the codebase
and exposed in input.conf, and it was difficult to remember which
physical button each number actually referred to and which referred to
the scroll wheel.
In practice, PC mice only have between two and five buttons and one or
two scroll wheel axes, which are more or less in the same location and
have more or less the same function. This allows us to use names to
refer to the buttons instead of numbers, which makes input.conf syntax a
lot easier to remember. It also makes the syntax robust to changes in
mpv's underlying numbering. The old MOUSE_BTNx names are still
understood as deprecated aliases of the named buttons.
This changes both the input.conf syntax and the MP_MOUSE_BTNx symbols in
the codebase, since I think both would benefit from using names over
numbers, especially since some platforms don't use X11 button numbering
and handle different mouse buttons in different windowing system events.
This also makes the names shorter, since otherwise they would be pretty
long, and it removes the high-numbered MOUSE_BTNx_DBL names, since they
weren't used.
Names are the same as used in Qt:
https://doc.qt.io/qt-5/qt.html#MouseButton-enum
|
|
|
|
|
|
|
| |
Unbreaks segmented DASH with the change in
https://github.com/rg3/youtube-dl/commit/1141e9104 which made each
segment URL only use relative path from fragment_base_url with a
different key.
|
|
|
|
|
|
| |
youtube-dl supports bypassing some geographic restrictions by
setting X-Forwarded-For header when used with geo-bypass and
geo-bypass-country.
|
|
|
|
|
| |
Also, comma-separated list doesn't actually work, even quote-surrounded.
Switch to using | instead.
|
|
|
|
|
|
|
|
|
| |
This is more of a niche usecase than --ytdl-format and --ytdl-raw-options,
so a simple script option should be enough.
Either create lua-settings/ytdl_hook.conf with
'exclude=example.com,sub.example.com' option or
"--script-opts=ytdl_hook-exclude=example.com,sub.example.com"
|
|
|
|
| |
Not really important, but still interesting to know.
|
|
|
|
| |
Available since 2017.05.07 but only on certain extractors.
|
|
|
|
| |
This affects resuming playback from a watch_later directory so that you can resume playback even for URLs that have a start parameter.
|
| |
|
|
|
|
| |
Add "or URLs" to the default OSD message when mpv is launched without parameters.
Since this works flawlessly with youtube-dl integration, the fact that you can drop URLs directly to the window should be advertised more.
|
|
|
|
| |
Seems much more resource efficient than concatenating a string.
|
|
|
|
|
|
| |
Considered semantically equivalent with mouse_btn3/4.
This is a preemptive fix for upcoming changes to AXIS_* events.
|
| |
|
| |
|
|
|
|
|
| |
The default of 80 is conservative to allow relatively wide fonts, but
with many common fonts a bigger number can be used without overflow.
|
|
|
|
|
| |
Glyphs taken and based on U+1F507 to U+1F50A from Symbola, which
is available under public domain: http://users.teilar.gr/~g1951d/
|
| |
|
| |
|
|
|
|
|
| |
Click to toggle mute, mouse wheel to change volume.
OSD is shown on volume change.
|
| |
|
|
|
|
| |
Use a helper function for these safety checks.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
This reverts commit 6573b73462e336da0daca845ba4df02782afc2b6.
|
|
|
|
| |
Close #4221
|
| |
|
| |
|
|
|
|
|
|
|
| |
Compensates for wider fonts like DejaVu Sans Mono.
Further compensate for the minus sign in the right timecode by 10px.
Closes #3952
|
|
|
|
| |
This removes the twitch of the right-aligned cache status.
|
|
|
|
|
|
|
|
|
|
| |
Will still hide playlist items with long enough filenames and osd-font-size
but not as soon.
osc messages should now preserve their scaling with fullscreen toggling and
cycling through audio-only files and files with video.
Closes #4081, #4083, #4102
|
|
|
|
|
|
|
| |
initialise OSC with a zero mouse area so mp_input_test_dragging returns
a proper value.
Fixes #1819
|
|
|
|
|
|
|
|
|
|
|
|
| |
Seen with a VOD of a recently ended livestream on Youtube.
They seem to use segmented DASH but unlike normal Youtube
segmented DASH, the segments don't seem to need the initialization
segment.
The video actually fails to start to play if the init segment is
prepended with a lot of 'Found duplicated MOOV Atom. Skipped it' errors
popping up.
|
|
|
|
| |
They're unsupported only in MP4 DASH mode.
|
|
|
|
|
| |
All entries must be separated by ";" or "\n". The parser just doesn't
enforce it if an entry uses quoting.
|
| |
|
|
|
|
|
|
|
|
|
| |
We use the metadata provided by youtube-dl to sort-of implement
fragmented DASH streaming.
This is all a bit hacky, but hopefully a makeshift solution until
libavformat has proper mechanisms. (Although in danger of being one
of those temporary hacks that become permanent.)
|
| |
|
|
|
|
| |
Closes #4092
|
| |
|
| |
|
|
|
|
|
|
| |
Only used once for now.
Also, support switched format strings, like bestaudio+bestvideo.
|
| |
|
|
|
|
|
| |
Worked with librtmp, but ffrtmp needs to set rtmp_swfurl in addition
to rtmp_swfverify, even if they're the same value.
|
|
|
|
|
|
|
| |
Only FFmpeg supports them and they need to be in the format data://
like other protocols or prefixed with ffmpeg:// or lavf://.
Closes #4058
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
I'm still getting some crashes after issue #3210 was fixed in commit
5beb2306904b4437b5acf136b02aeaa073c351c7. It's hard to reproduce those
crashes, they happen maybe once a month, so I guess it could be a race
condition. But in any case, I don't see anything wrong in applying some
defensive programming here.
For reference, here is what was happening on 0.23.0-1 from Debian
testing:
Playing: ytdl://usL5CeP_row
(+) Video --vid=1 (*) (h264)
(+) Audio --aid=1 --alang=und (*) (aac)
[osc]
[osc] stack traceback:
[osc] @osc.lua:2074: in function 'process_event'
[osc] @osc.lua:2246: in function 'cb'
[osc] mp.defaults:107: in function 'fn'
[osc] mp.defaults:60: in function 'handler'
[osc] mp.defaults:339: in function 'handler'
[osc] mp.defaults:448: in function 'call_event_handlers'
[osc] mp.defaults:485: in function 'dispatch_events'
[osc] mp.defaults:441: in function <mp.defaults:440>
[osc] [C]: in ?
[osc] [C]: in ?
[osc] Lua error: @osc.lua:2074: attempt to index field 'eventresponder' (a nil value)
Note that the location is different from where issue #3210 happens.
Signed-off-by: Roland Hieber <rohieb@rohieb.name>
|
| |
|
|
|
|
|
|
|
| |
1px squares to 2px triangles and layout=box markers from 1px
squares to 2x1px rectangles.
While we're at it, wrap a few lines to 80col again.
|
|
|
|
|
|
| |
Length property is deprecated and no longer works. This fixes
a bug when the total file duration wasn't visible if the
option to display milliseconds was activated.
|
|
|
|
|
|
|
|
| |
Having empty space before the title in layout=*bar looks worse
than the floating buttons in layout=box.
Also disable both playlist buttons selectively according to the
current position.
|
| |
|
|
|
|
| |
Fixes regression since 7201fd7d
|
|
|
|
|
|
|
|
|
|
|
| |
As threatened by the API changes document.
This commit also removes or stubs equivalent calls in IPC and Lua
scripting.
The stubs are left to maintain ABI compatibility. The semantics of the
API functions have been close enough to doing nothing that this probably
won't even break existing API users. Probably.
|
| |
|
|
|
|
|
| |
mpv doesn't work well with unordered chapters.
ex: https://youtu.be/DIKPUL6b4N8
|
|
|
|
|
|
|
|
| |
Most code from @leiserfg in #2365.
Closes #2365
Cut guides to the center of the knob. This makes the knob
knob look more like IRL knob sliders.
|
|
|
|
| |
Fixes #3210
|
|
|
|
| |
Fixes #3737
|
|
|
|
|
| |
Fixes lingering tooltip with full alpha if mouse leaves window
with OSC still active.
|
|
|
|
|
| |
Basically, there's two less values to revert to previous defaults and
top/bottombar now look at scale=1 like they looked with scale=1.5.
|
| |
|
|
|
|
|
|
| |
This way people can still use the mouse to quickly check the elapsed time
without moving it all the way to the bottom while still having half the screen
to ignore mouse movement.
|
| |
|
|
|
|
| |
Same behavior as box/slimbox.
|
| |
|
| |
|
|
|
|
| |
Also, chapter position which wasn't changed to work with 1-based.
|
|
|
|
|
|
|
|
|
|
|
| |
* Fixes: when on the end of playlist only half of entries are displayed.
* Simplifies the logic of limited_list so it's easy to follow.
* limited_list's pos parameter is now 1 based which seem more natural.
* Few changes to comply with code style thorough the file.
* Small format change:
"Playlist: (%d/%d):" -> "Playlist [%d/%d]:"
"Chapters: (%d/%d):" -> "Chapters [%d/%d]:"
|
|
|
|
|
|
|
|
|
|
| |
These can be used in input.conf for pretty formatting of lists as
with shift+clicking the OSC buttons.
Ex:
z script-message osc-playlist
Z script-message osc-chapterlist
x script-message osc-tracklist
|