The config "advanced" flag was unused and has been removed by
6a7a137f7b.
It has been removed from many add_*() macros, but not all. Remove it
from the remaining macros.
where identical to shorttext, or near enough.
bad because:
- wastes resources.
- useless tooltips in prefs GUI (poor UX) - tooltip longtext should add
something of value.
- useless repetition of text in certain help output.
in some cases they differed only in full-stop, creating unnecessary extra
burden on translators.
This callback is not mandatory. If it is NULL, the core will wait for the delay
returned by time_get(). This was already the case for most aout plugins:
PulseAudio, coreaudio, Android, DirectSound, Wasapi, and Jack.
Do not declare *_sys_t typedefs globally in vlc_common.h. Instead,
declare them locally in each module that provides a definition.
This paves the way to move C++ definitions into anonymous namespaces in
order to respect C++ ODR.
The picture_resource_t and sout_stream_id_sys_t typedefs will be handled
separately, since they require specific additional changes.
See #18033
Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
Audio outputs don't need the channel mask for S/PDIF or HDMI passthrough.
This will be convenient for Dolby Atmos that can have a higher channel count
that can't be mapped.
The ringbuffer will be locked and later unlocked (during jack_ringbuffer_free),
on systems which implement mlock().
Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
Suspending audio processing in Flush() was breaking playback
for larger values of frames per period. Fixes#8551
Signed-off-by: Rémi Denis-Courmont <remi@remlab.net>
Instead, use a jack_ringbuffer which is shared between the thread
calling Play() and JACK's audio Process() thread. The ringbuffer is
a lock-free structure, safe for one writer and one reader thread to
use.
Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
Re-license almost all the playback modules to LGPLv2.1+ with
authorization from their respective contributors (230+)
This includes:
- access, codec, packetizers, demux
- audio filters, audio mixers, audio output
- video filters, video chroma, video output
- text renderers
- XML parser
- ARM NEON and SSE2 optimisations (mostly for chromas and filters)
Some modules are not concerned:
- BDA and DShow access modules because Manol Manolov is AWOL
- Real RTSP, because it is derived from Xine
- x264 and t140 because they are encoders only
- DLL Loader, because it is derived from MPlayer
- DTS packetizer, because Jon Lech Johansen is AWOL
- Shine and WMAfixed, because they are derived from Rockbox
- Real demuxer, as it is derived from MPlayer and Wang Bo is AWOL
- MPC demuxer, as Yavor Doganov is AWOL
- Tivo demuxer, because it is derived from an MPlayer fork
- Playlist demuxer, (WPL and ZPL parts missing), because suheaven is AWOL
- iOS audio output and video display, because author refuses the license change
- Equalizer and compressor, because Ronald Wright is AWOL
- Mono, Headphone and Dolby, because author refuses the license change
- hqdn3d and yadif, because they are from MPlayer/libavfilter
- remoteosd, because it derives from RealVNC code
- MMX optimisations, because Ollie Lho, from SiS, is AWOL
- Rotate, because it depends on GPL motion
Nota Bene:
- Some modules depend on GPL-only libraries, a LGPL module does not mean
that the resulting binary module will be LGPL.
Libraries affected would include liba52, libdvdcss, libdvdnav, libdvdread,
faad2, libdca, libmad, libmpeg2, libpostproc, SRC, sid, zvbi and probably others.
This would enable the input manager to hold an audio output plugin at
all times. Then it would be possible to keep track of output devices,
volume, policy and (JACK) routing continuously. For this to work,
outputs will need to be patched so that device selection and volume
handling works even when playing back.
Note though that this commit only introduces the change in the
audio_output_t interface; it does not implement the features above.
aout_PacketInit() does not allocate anything yet, but it will have too.
By the way, the error paths of the (untouched by the commit)
DirectSound plugin seem a bit suspicious to me...
This provides aout_PacketPlay(), aout_PacketPause() and
aout_PacketFlush() helpers for legacy audio outputs. They conveniently
match the callback prototypes of pf_play, pf_pause and pf_flush
respectively.
Audio output plugins can use this to expedite discarding pending
buffers. This reduces latency upon seeking or stopping the input.
This new callback also supports explicit draining, but this is not
used for the time being.
This is required for PulseAudio synchronization and to pause/resume
with low-latency. This should also be useful for other buffered
audio outputs such as ALSA or CoreAudio.