| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
| |
This could produce an extra frame, because reaching the maximum merely
signals the playloop to exit, without strictly enforcing the limit.
Fixes #1181.
CC: @mpv-player/stable
|
|
|
|
| |
Forgotten.
|
|
|
|
| |
Pretty dumb oversights.
|
|
|
|
|
|
| |
Dump chapters and track list to the log for demo purposes.
Compile in debug mode.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This provides some helper functions and classes for C++/Qt. As the top
of qthelper.hpp says, this is built on top of the client API, and is a
mere helper provided for convenience.
Maybe this should be a separate library, but on the other hand I don't
see much of a point in that. It's also header-only, but C++ people like
such things. This makes it easier for us, because we don't need to care
about ABI compatibility.
The client API doesn't change, but bump it so that those who are using
this header can declare a proper dependency.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Also, don't set an empty string for the fallback device if an AO doesn't
list any devices.
|
|
|
|
|
|
|
| |
With some files, the extradata variable can remain uninitialized, but
will be used for memory access.
CC: @mpv-player/stable (with high priority)
|
|
|
|
|
| |
Some filters still (or will) behave badly on these errors, so explicitly
log when it happens.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Instead of letting the window-scale property return the old value until
X11 actually executed the resize, just set the new assumed internal
window size immediately. This avoids a "lag" between setting and reading
the window-scale property, like OSD controls typically do.
Remove the additional calls from vo_x11_highlevel_resize() - they're
pointless and slightly wrong, and resize events will take care of
updating these things correctly anyway.
Fixes #1176.
("window-scale" works via VOCTRL_[S|G]ET_UNFS_WINDOW_SIZE.)
|
|
|
|
|
| |
Not all functions are for creating filters. Consider for example
LoadPlugin.
|
|
|
|
|
| |
This affects the script filename passed to the filter. Resolve "~" (and
some other variants) as described in the "Paths" section of mpv.rst.
|
|
|
|
| |
Don't refer to fields that were removed.
|
|
|
|
|
| |
The CoreAudio API is built around device IDs so we store the integer as string
and read it back.
|
|
|
|
|
|
|
|
| |
Oops.
Fixes #1172.
CC: @mpv-player/stable
|
| |
|
|
|
|
|
|
| |
This probably led to confusing output.
CC: @mpv-player/stable
|
| |
|
|
|
|
|
|
| |
In theory, vsscript should be doing it, but it's not there yet, neither
did there seem to be any interest in making it flexible enough to handle
more than 1 scripting language.
|
|
|
|
|
|
|
|
|
|
| |
This allows mpv's view to take key and send events to mpv's core.
To set key status correctly, clients must call -[NSWindow selectNextKeyView:]
during reconfig on the main thread. All is 'documented' in the cocoabasic
example.
If someone knows a better way to handle giving key to the embedded view,
let me know!
|
|
|
|
|
| |
Objective-C categories need special linker flags from the user when statically
linking (-ObjC LDFLAG), so make everyone's life simpler and remove them.
|
|
|
|
|
|
|
|
|
| |
Showed "Volume: (unavailable)%". That was dumb.
The message string is now a bit convoluted; mostly because the property
expand syntax can't do "if-else", just "if".
CC: @mpv-player/stable
|
|
|
|
|
|
|
|
|
|
| |
This does nothing good. This reverts a change made over a year ago - I
don't remember why this was originally done this way.
The main problem is that even if the volume option is set (something
like "--volume=75"), the volume property will always return "100" until
audio is initialized. If audio is uninitialized again, the volume
property will remain frozen at its last value.
|
| |
|
|
|
|
| |
Fixes #1164
|
|
|
|
|
|
| |
An attempt at fixing #1168.
I see black frames flashing, so it's certainly not perfect.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This can hang if the window was destroyed externally (or that's what I
suspect happens), and we somehow didn't receive the DestroyNotify event.
I'm not sure why we wouldn't receive this event (since it should just be
in the xlib event queue), but on the other hand there's no real need to
wait for window destruction.
This essentially reverts 97fc74e2.
|
|
|
|
|
| |
Users using binary packages don't have obvious access to them, so this
seems like a good idea.
|
|
|
|
| |
This follows the docs, which say the result parameter is optional.
|
| |
|
|
|
|
| |
Also, use the zsh default location (rather than the Debian one).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Some VS filters will requests frames from their parent filters while
they're initialized. Thy do this in a blocking manner, and
initialization will not succeed until the frame request is satisfied.
This deadlocked mpv, because we can feed frames to the filter only after
initialization is finished.
Return an error instead of deadlocking.
Note that we (probably) can handle frames being requested during init
fine, as long as the requests don't block initialization. But we can
distinguish this situation, and a simple test seems to indicate VS
usually doesn't do this.
See #1168.
|
|
|
|
| |
This is the Lua equivalent of mpv_command_node().
|
|
|
|
|
|
|
|
|
| |
Allows passing native types as arguments.
Also some minor doc improvements, including giving some (natural)
improvements to mpv_free_node_contents().
Note: mpv_command_node_async() is completely untested.
|
|
|
|
|
|
|
|
|
| |
playlist-pos is 0-based, but everyone thinks it's 1-based. Stupid crap.
(The "not the same as MPlayer" refers to a playlist manipulation command
that doesn't exist anymore in mpv.)
CC: @mpv-player/stable
|
| |
|
| |
|
|
|
|
| |
Minor simplification, also drops some useless stuff.
|
|
|
|
| |
For future client API enhancements.
|
| |
|
| |
|
|
|
|
| |
That's what this variable is for. This was missed in commit 9d5d031b.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Manually setting can break things forever, because it puts the VO cursor
state out of sync with the remembered state by handle_cursor_autohide().
Use the normal autohide code during idle mode too instead. (Originally
the idea was to make the cursor always visible in idle mode, but not so
important.)
Regression since e1e8b07c. Fixes #1166.
CC: @mpv-player/stable
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
While conceptually this sink stuff in PulseAudio does just the right
thing, actually listing the sinks is unbelievable complicated. Not only
is the idea that listing them should happen asynchronously completely
bullshit (who the fuck runs the PulseAudio server on a separate
computer), but the way this is done is full of bullshit too. Why
separate callbacks for each device? Why this obtuse mainloop shit?
Especially the mainloop shit makes it actively worse than doing things
manually with pthread primitives, and the reason for that (different
mainloop implementations for GUIs?) is laughable too. It's like they
chose the most complicated API possible just because they attempted
to "abstract" basic mechanisms in order to handle "everything". While
I don't claim to design the best APIs, this API is fucking terrible
without any excuse. (End of rant.)
|
|
|
|
|
|
|
| |
All the dumb crap in pa_init_boilerplate() is needed to talk to the
audio server at all. Might also fix some subtle bugs in the init code
(which is strange, because the original file was contributed by the
devil himself).
|
|
|
|
|
| |
Now we run ao_driver->list_devs on a dummy AO instance, which will
probably confuse everyone. This is done for the sake of PulseAudio.
|
|
|
|
|
|
| |
Seems logical. For some reason, the player allows deselecting both audio
and video stream without quitting (a deliberate feature of which I have
no idea why it was added years ago), so this is needed.
|
| |
|
| |
|
|
|
|
| |
I don't see much of a reason for this extra corner case.
|
|
|
|
|
| |
This reimplements the feature reverted in the previous commit in a
different way.
|
|
|
|
|
|
|
|
|
| |
This reverts commit 45c8b97efbaff7a5031b008223eeed56f7b0607a.
Some else complained (github issue #1163).
The feature requested in #1148 will be implemented differently in
the following commit.
|
|
|
|
|
|
|
| |
The one in msg.c was mistakenly removed with commit e99a37f6.
I didn't actually test the change in ao_sndio.c (but obviously "ap"
shouldn't be static).
|
|
|
|
|
|
|
|
| |
Don't wait after the audio thread has pushed the remaining audio to the
AO. Avoids hard hangs if the heuristic fails completely (could still
happen if get_delay returns absurd values).
CC: @mpv-player/stable
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Since the internal AO driver API has no proper way to determine EOF, we
need to guess by querying get_delay. But some AOs (e.g. ao_pulse with
no-latency-hacks set) may never reach 0, maybe because they naively add
the latency to the buffer level. In this case our heuristic can break.
Fix by always using the delay to estimate the EOF time. It's not even
that important - it's mostly used to avoid blocking draining. So this
should be ok.
CC: @mpv-player/stable (maybe)
|
|
|
|
| |
Now everything compiles with no warnings! yay!
|
|
|
|
|
| |
Our code worked under the assumption that the event monitor is always active
and we did remove the keydown and keyup overrides from our cocoa view.
|
| |
|
|
|
|
|
|
| |
The event monitor is used to get keyboard events when there is no window, but
since it is a global monitor to the current process, we don't want it in a
library setting.
|
|
|
|
|
| |
I think this doesn't make a difference, since in Objective-C nil responds as
a NullObject, but better not depend on this crappy language feature.
|
|
|
|
|
|
|
| |
After @frau's split of macosx_events from macosx_application, `is_cplayer' is
not needed anymore. At the moment only global events such as Media Keys and
Apple Remote work, because the VO-level ones were hardcoded to be disabled.
(that will be fix in a later commit ).
|
|
|
|
| |
Add closing ">" and specify what is the default value.
|
|
|
|
|
|
|
| |
Worryingly wrong. Fixes #1162.
Also fix another issue (window title was set anyway), which was why I
didn't notice this and testing it seemed to be fine.
|
|
|
|
|
| |
So someone reading this at least has a chance to find out what this is
needed for.
|
|
|
|
|
|
|
| |
Unfortunately, ALSA is particularly bad with this, because mpv has to
add all sorts of magic crap to the device name to make things work. The
device selection overrides this, so explicitly selecting devices will
most likely break your audio. This has yet to be solved.
|
|
|
|
|
|
|
| |
Not sure how good of an idea this is.
This commit doesn't add support for this to any AO yet; the AO
implementations will follow later.
|
|
|
|
| |
In particular, add a basic description of how Cocoa embedding works.
|
|
|
|
|
| |
Apparently we need this for Cocoa too. (The option was X11 specific in
the hope that only X11 would need this hack.)
|
|
|
|
| |
Or so I think. Not like it matters anyway.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
For cover art, we pretend that the video stream is infinite, but also
stop decoding once we have an image on the VO (this seems advantageous
for the case when strange filters are inserted or the VO image gets
lost). Since |