401 Commits

Author SHA1 Message Date
casey langen
0497260ddb Fix use after free bug in FfmpegDecoder. 2021-09-20 08:18:25 -07:00
casey langen
042c857895 Fix sample back pressure leading to increased memory usage over time in
FfmpegDecoder.
2021-09-20 08:05:16 -07:00
casey langen
06bdf32959 * Updated WasapiOut to provide the preferred sample rate for the
selected device
* Updated FfmpegDecoder to accept the preferred sample rate from the
  output, and use it when resampling if it is non-negative. Otherwise,
  use the sample rate defined by the file.

Note: this is not wired up in the main app yet.
2021-09-19 21:50:54 -07:00
casey langen
f2e8fd45f8 Update IOutput and IDecoder interfaces to allow for querying and setting default/preferred output sample rates. Nothing is wired up yet. 2021-09-19 21:00:59 -07:00
casey langen
f91bee6a1c Fix parsing album art from FLAC files. 2021-09-05 14:49:55 -07:00
casey langen
c86230d3aa Fix rare PipeWire bug that may cause volume to not get set properly after restarting the app. 2021-07-15 22:50:34 -07:00
Tian Yunhao
00cf3eb59d
Build: ensure static library existence only when needed (#447)
The current cmake build script for flac, m4a and ogg
asserts the corresponding library existence. However,
when building in environments like buildroot, the static
library may not exist. Thus only check for them when
static build is actually needed.
2021-07-01 21:35:30 -07:00
eater
fea06d9674
Use pkg-config for pipewire library in cmake (#432) 2021-04-19 15:55:14 -07:00
casey langen
f44157a220 Copyright year updates. 2021-04-14 20:16:48 -07:00
casey langen
e35d117156 Better bad packet detection...? 2021-04-11 20:35:23 -07:00
casey langen
1230315a4e Detect and discard invalid packets in FfmpegDecoder. This seems to fix issues when playing WAV files that have embedded artwork. 2021-04-11 20:04:40 -07:00
casey langen
bdb624a187 More logging and improved seeking in FfmpegDecoder. 2021-04-11 18:22:27 -07:00
casey langen
3b95b17753 Don't show EOF errors by default when decoding, as they're usually nothing to worry about and pollute the log. 2021-04-11 17:31:27 -07:00
casey langen
229b282aec Check for libraries and fail fast if not found. 2021-04-10 22:33:33 -07:00
casey langen
8431598aa2 Upgraded Windows build to use ffmpeg4.4 2021-04-10 14:08:48 -07:00
casey langen
15134e9a80 Fixed USE_BUNDLED_TAGLIB=false, and renamed to ENABLE_BUNDLED_TAGLIB 2021-04-09 22:43:56 -07:00
casey langen
f2071d31aa Ensure debug is properly initialized for all plugins. 2021-03-21 22:15:10 -07:00
casey langen
56f3af3b96 Guard against null debug during shutdown. 2021-03-21 14:58:18 -07:00
casey langen
017bc1fdde Fixed StockEncoder's plugin name 2021-03-19 23:29:41 -07:00
casey langen
3b6768cb2d FFMPEG_ENABLED -> ENABLE_FFMPEG for consistency. 2021-03-19 23:29:03 -07:00
casey langen
9cacfb9832 Disable PipeWire by default; added ENABLE_PIPEWIRE flag to CMake. Added Hirsute build target that includes PipeWire. 2021-03-19 23:28:11 -07:00
casey langen
717b6066ec Converted PipeWireOut to use IDebug 2021-03-18 22:19:35 -07:00
casey langen
bd0db547ff Query device name. 2021-03-18 11:38:41 -07:00
casey langen
c8867a3b96 PipeWire device selection and persistence by ID. TODO: still need to resolve the name. 2021-03-18 00:41:41 -07:00
casey langen
0a0a192bbf Incremental changes to support device enumeration. TODO: (1) resolving device name, (2) actually changing to a non-default device. 2021-03-17 23:56:39 -07:00
casey langen
89bbdf6f54 Let PipeWire determine the best buffer size automatically. We had selected buffers that were too small and causing gapless playback to not always work properly. 2021-03-17 20:22:21 -07:00
casey langen
ae800d788d Implemented PipeWireOut::SetVolume 2021-03-17 19:15:04 -07:00
casey langen
75dac589d0 Stabilized Pipewire. Just a few TODOs left. 2021-03-16 23:44:47 -07:00
casey langen
4e2a46267c TODOify 2021-03-15 22:33:40 -07:00
casey langen
95564ef5cd Fix pause/resume in PipeWireOut 2021-03-15 22:32:01 -07:00
casey langen
a602b0efaf Ensure PipeWireOut shuts down cleanly 2021-03-15 22:28:31 -07:00
casey langen
dcb4e38921 We have audio! Cleaned up some debug logging. 2021-03-15 22:09:25 -07:00
casey langen
b561bf8fb6 Minor updates and more debugging cruft. Need to test on a machine with a working PipeWire installation. 2021-03-15 21:50:03 -07:00
casey langen
aa7efd3d5b Fix pointer arithmetic 2021-03-14 22:24:48 -07:00
casey langen
8172cac91f Still not producing accurate sound, but this update ensures we completely fill our input buffers before returning them... at least in theory... we're not producing sound yet in the VM. 2021-03-14 22:22:06 -07:00
casey langen
beb95e55a5 More scaffholding. 2021-03-14 18:52:12 -07:00
casey langen
dee5150c2e Fleshed out some PipeWire implementation, but no way to test it yet. 2021-03-05 09:32:02 -08:00
casey langen
104a65f183 Added scaffolding for a PipeWire output plugin. 2021-03-03 22:53:59 -08:00
casey langen
edce1d7c88
Warning and and precompiled headers fixes and cleanup (#408) 2021-01-25 19:03:57 -08:00
Casey Langen
d3bcb053b6 Fix libmicrohttpd integration in the server plugin statically linking 2020-12-06 16:52:30 -08:00
casey langen
c44343712d Add support for older versions of libcurl (e.g. those found on RHEL7) that do not have support for the newer CURLOPT_XFERINFODATA / CURLOPT_XFERINFOFUNCTION options. 2020-12-05 13:38:59 -08:00
casey langen
04e8acc416 Fixed a bug where aborted audio tracks may be added to the filesystem
cache.
2020-11-01 00:12:36 -07:00
casey langen
5a5985932d Fixed BSD compile. 2020-10-31 17:38:52 +00:00
Casey Langen
e0a2da7102 Fixed macOS compile. 2020-10-31 17:15:56 -07:00
casey langen
e141f7d555 Fixed Linux compile. 2020-10-31 17:09:12 -07:00
casey langen
6d16d602c4 enum -> enum class cleanup in SDK where applicable. 2020-10-31 17:00:59 -07:00
casey langen
783fb467ff Explicitly enable multi-processor compile. 2020-10-30 19:58:28 -07:00
Casey Langen
c92744d102 Let's use std::atomic<> instead of volatile. 2020-10-24 12:15:53 -07:00
Casey Langen
fbf8844c91 Tweaked retry count logic to be weighted based on failure type; if the
server is overloaded let's allow for more retries with longer tries
between attempts.
2020-10-24 12:14:00 -07:00
Casey Langen
a50c2467dc GmeDecoder variable renames for clarity 2020-10-23 23:54:40 -07:00