| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
"playthread" is a confusing name which doesn't describe what it really
is. Rename it to ao_thread, and ao_wakeup_playthread to ao_wakeup,
in the same style as VO threads. This makes call stack function names
less confusing.
|
|
|
|
| |
warning: `static' is not at beginning of declaration
|
|
|
|
|
| |
'name' was in fact unused when reading fields or methods, so it can be merged with 'method'.
Also changed the type of 'mandatory' to bool.
|
| |
|
|
|
|
|
|
| |
- split mapping from field struct
- mark field struct static
- define list of classes to reduce more repetitive code
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
I'd like some names to be more descriptive, but to work with 15 chars
limit we have to make some sacrifice.
Also because of the limit, remove the `mpv/` prefix and prioritize
actuall thread name.
|
|
|
|
|
|
|
| |
Pull AOs work off of a callback that relies on mpv's internal timer. So
like with the related video changes, convert all of these to nanoseconds
instead. In many cases, the underlying audio API does actually provide
nanosecond resolution as well.
|
|
|
|
|
| |
Those changes will alow to change vsync base to more precise time base.
In general there is no reason to truncate values returned by system.
|
| |
|
|
|
|
| |
Since recent commits this should work 100% as well as s16.
|
| |
|
|
|
|
| |
maybe this is good for something, who knows
|
|
|
|
|
|
|
|
| |
The difference this makes is that the OS API will notice
when we underrun (as opposed to being fed silence).
Other AOs mostly seem to not do this because they've committed
to filling a buffer of a certain size no matter what, but I have
not observed any ill effects for AudioTrack in my testing.
|
| |
|
|
|
|
|
|
| |
This looks like a pretty bad bug but only became a problem
with the last commit that allows rates like 22.5kHz to pass through
directly instead of being resampled.
|
|
|
|
|
| |
Resampling when the driver says it isn't outputting more than
a certain rate anyway makes sense, the inverse does not.
|
|
|
|
|
| |
The exception always has to be checked and cleared even if we
can already see that no valid value was returned.
|
|
|
|
|
| |
The piece of code where it would make sense to use this
never runs with API 21 or newer, so calling it there would be useless.
|
|
|
|
|
|
| |
c78482045444c488bb7948305d583a55d17cd236 introduced a bool option type
as a replacement for the flag type, but didn't actually transition and
remove the flag type because it would have been too much mundane work.
|
| |
|
|
|
|
|
|
|
|
| |
Previously number of channels was being ignored.
The buffer will now be between 75ms and 150ms
Signed-off-by: Aman Karmani <aman@tmm1.net>
|
|
|
|
| |
Signed-off-by: Aman Karmani <aman@tmm1.net>
|
|
|
|
|
|
| |
Fixes issues streaming to echo speaker pair from firetv devices.
Signed-off-by: Aman Karmani <aman@tmm1.net>
|
|
|
|
| |
Signed-off-by: Aman Karmani <aman@tmm1.net>
|
|
|
|
|
|
| |
Fixes deprecation warnings printed when using this driver.
Signed-off-by: Aman Karmani <aman@tmm1.net>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This affects "pull" AOs only: ao_alsa, ao_pulse, ao_openal, ao_pcm,
ao_lavc. There are changes to the other AOs too, but that's only about
renaming ao_driver.resume to ao_driver.start.
ao_openal is broken because I didn't manage to fix it, so it exits with
an error message. If you want it, why don't _you_ put effort into it? I
see no reason to waste my own precious lifetime over this (I realize the
irony).
ao_alsa loses the poll() mechanism, but it was mostly broken and didn't
really do what it was supposed to. There doesn't seem to be anything in
the ALSA API to watch the playback status without polling (unless you
want to use raw UNIX signals).
No idea if ao_pulse is correct, or whether it's subtly broken now. There
is no documentation, so I can't tell what is correct, without reverse
engineering the whole project. I recommend using ALSA.
This was supposed to be just a simple fix, but somehow it expanded scope
like a train wreck. Very high chance of regressions, but probably only
for the AOs listed above. The rest you can figure out from reading the
diff.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Change all OPT_* macros such that they don't define the entire m_option
initializer, and instead expand only to a part of it, which sets certain
fields. This requires changing almost every option declaration, because
they all use these macros. A declaration now always starts with
{"name", ...
followed by designated initializers only (possibly wrapped in macros).
The OPT_* macros now initialize the .offset and .type fields only,
sometimes also .priv and others.
I think this change makes the option macros less tricky. The old code
had to stuff everything into macro arguments (and attempted to allow
setting arbitrary fields by letting the user pass designated
initializers in the vararg parts). Some of this was made messy due to
C99 and C11 not allowing 0-sized varargs with ',' removal. It's also
possible that this change is pointless, other than cosmetic preferences.
Not too happy about some things. For example, the OPT_CHOICE()
indentation I applied looks a bit ugly.
Much of this change was done with regex search&replace, but some places
required manual editing. In particular, code in "obscure" areas (which I
didn't include in compilation) might be broken now.
In wayland_common.c the author of some option declarations confused the
flags parameter with the default value (though the default value was
also properly set below). I fixed this with this change.
|
|
|