441 Commits

Author SHA1 Message Date
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
casey langen
001afe6e9a Don't crash on malformed input when configuring a remote library. 2020-10-23 11:01:54 -07:00
casey langen
c6f7faa3cb Minor bug fixes in HttpDataStream's LruCache and added the ability to
specify the maximum number of simultaneous transcoders in the server.
2020-10-22 22:39:46 -07:00
Casey Langen
fa694408c3 Fixed FfmpegDecoder read callback returning EOF incorrectly. 2020-10-22 18:15:13 -07:00
casey langen
60a206a2d6 Ensure remote library settings are always saved. 2020-10-22 17:03:47 -07:00
Casey Langen
ed4869298c Compiler compatibility fixes. 2020-10-22 00:28:33 -07:00
casey langen
ed4f2440a6 Use an atomic variable for tracking instanceIds in HttpDataStream 2020-10-22 00:06:42 -07:00
casey langen
b563d512d1 Variable naming updates for clarity 2020-10-22 00:01:58 -07:00
casey langen
08a547253f More HttpStream bugfixes around simultaenous Players with the same
endpoint.
2020-10-21 23:58:38 -07:00
casey langen
70579d097f Fixed bugs around trying to cache the same file multiple times
simultaneously. Also fixed a bug where the remote track "uri" type was
incorrect when the transcoder is enabled.
2020-10-21 23:01:29 -07:00
casey langen
62cd360c3d Had read/connection timeout defaults swapped. 2020-10-21 17:15:17 -07:00