1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 10:38:11 +00:00
serenity/Userland/Libraries/LibAudio
Zaggy1024 49be09e5b2 LibAudio: Skip ID3 tags before synchronizing to MP3 frames
Previously, we would just start from byte 0 and check individual bytes
of the file until we find two bytes starting with `FF F`, and then
assume that that was the MP3 frame sync code. However, some ID3v2 tags
do not have to be what is referred to as "unsynchronized", meaning that
they can contain that `FF F` sequence and cause our decoder to think it
has found a frame.

To avoid this happening, we can read a minimal amount of the ID3 header
to determine how many bytes to skip before attempting to find the MP3
frames.

This allows the recent podcast with Andreas to play here:

https://changelog.com/podcast/554
2023-08-26 18:43:23 -04:00
..
CMakeLists.txt LibAudio: Add a FLAC encoder 2023-08-12 12:25:26 -06:00
ConnectionToManagerServer.cpp AudioServer+Userland: Separate audio IPC into normal client and manager 2023-06-25 00:16:44 +02:00
ConnectionToManagerServer.h AudioServer+Userland: Separate audio IPC into normal client and manager 2023-06-25 00:16:44 +02:00
ConnectionToServer.cpp AudioServer+Userland: Decouple client sample rates from device rate 2023-07-01 23:27:24 +01:00
ConnectionToServer.h Userland: Rename Core::Object to Core::EventReceiver 2023-08-06 20:39:51 +02:00
Encoder.h LibAudio: Generalize an encoder interface 2023-08-12 12:25:26 -06:00
FlacLoader.cpp LibAudio: Add a FLAC encoder 2023-08-12 12:25:26 -06:00
FlacLoader.h LibAudio: Optimize FlacLoader by avoiding allocations 2023-07-06 19:13:36 +01:00
FlacTypes.h LibAudio: Add a FLAC encoder 2023-08-12 12:25:26 -06:00
FlacWriter.cpp LibAudio: Write final FLAC audio data instead of discarding it 2023-08-16 01:10:35 +02:00
FlacWriter.h LibAudio: Use channel coupling for stereo FLAC encoding 2023-08-16 01:10:35 +02:00
Forward.h LibAudio: Create a playback class with a PulseAudio implementation 2023-08-04 13:49:36 -06:00
GenericTypes.cpp LibAudio: Don't return a seek point if it is after the desired sample 2023-07-06 14:27:57 +01:00
GenericTypes.h LibAudio: Prevent multiple kinds of buffer overruns in FLAC picture load 2023-07-04 12:47:08 +02:00
Loader.cpp LibAudio: Use ReadonlyBytes instead of Bytes for buffer parameters 2023-07-20 08:02:12 +01:00
Loader.h LibAudio: Use ReadonlyBytes instead of Bytes for buffer parameters 2023-07-20 08:02:12 +01:00
LoaderError.h LibAudio: Stop using and remove LOADER_TRY 2023-07-04 13:24:17 -06:00
Metadata.cpp LibAudio: Add a generic audio metadata container 2023-03-13 12:35:17 -04:00
Metadata.h LibAudio: Add a generic audio metadata container 2023-03-13 12:35:17 -04:00
MP3HuffmanTables.h LibAudio: Handle bitstream errors in MP3 Huffman decode 2023-07-02 02:15:32 +02:00
MP3Loader.cpp LibAudio: Skip ID3 tags before synchronizing to MP3 frames 2023-08-26 18:43:23 -04:00
MP3Loader.h LibAudio: Skip ID3 tags before synchronizing to MP3 frames 2023-08-26 18:43:23 -04:00
MP3Tables.h LibAudio+LibDSP: Switch samples to 32-bit float instead of 64-bit float 2022-05-07 20:20:16 +02:00
MP3Types.h LibAudio: Default-initizalize all types in MP3Types.h 2023-08-26 18:43:23 -04:00
MultiChannel.h LibAudio: Optimize FlacLoader by avoiding allocations 2023-07-06 19:13:36 +01:00
PlaybackStream.cpp LibAudio: Create a playback class with a PulseAudio implementation 2023-08-04 13:49:36 -06:00
PlaybackStream.h LibAudio: Create a playback class with a PulseAudio implementation 2023-08-04 13:49:36 -06:00
PlaybackStreamPulseAudio.cpp LibAudio: Remove the strong reference to the PulseAudio control thread 2023-08-07 10:40:34 -06:00
PlaybackStreamPulseAudio.h LibAudio: Remove the strong reference to the PulseAudio control thread 2023-08-07 10:40:34 -06:00
PulseAudioWrappers.cpp LibAudio: Add a test for creating and destructing a PlaybackStream 2023-08-07 10:40:34 -06:00
PulseAudioWrappers.h LibAudio: Add a test for creating and destructing a PlaybackStream 2023-08-07 10:40:34 -06:00
QOALoader.cpp LibAudio: Stop using and remove LOADER_TRY 2023-07-04 13:24:17 -06:00
QOALoader.h LibAudio: Extract loader stream creation from the plugins 2023-06-27 15:28:22 +01:00
QOATypes.cpp LibAudio: Implement the Quite Okay Audio format 2023-03-10 04:07:14 -07:00
QOATypes.h LibAudio: Implement the Quite Okay Audio format 2023-03-10 04:07:14 -07:00
Queue.h LibAudio+Userland: Remove Audio::LegacyBuffer 2022-05-03 23:09:20 +02:00
Resampler.h LibAudio: Tolerate a file sample rate lower than the AudioServer's 2022-12-31 00:04:34 +01:00
RIFFTypes.cpp LibAudio: Load WAV metadata 2023-05-31 16:23:07 +02:00
RIFFTypes.h LibAudio: Load WAV metadata 2023-05-31 16:23:07 +02:00
Sample.h Piano: Use Sample struct from LibDSP 2023-08-04 12:56:27 +02:00
SampleFormats.cpp LibAudio: Add integer sample format-specific support 2023-08-12 12:25:26 -06:00
SampleFormats.h LibAudio: Add integer sample format-specific support 2023-08-12 12:25:26 -06:00
UserSampleQueue.cpp LibAudio: Prevent int overflow in the user buffer queue 2022-12-31 00:08:05 +01:00
UserSampleQueue.h Everywhere: Remove unused includes of AK/Format.h 2023-01-02 20:27:20 -05:00
VorbisComment.cpp LibAudio: Update stream APIs used when reading audio metadata 2023-03-13 12:46:42 -04:00
VorbisComment.h LibAudio: Detect and read FLAC metadata 2023-03-13 12:35:17 -04:00
WavLoader.cpp LibAudio: Use ReadonlyBytes instead of Bytes for buffer parameters 2023-07-20 08:02:12 +01:00
WavLoader.h LibAudio: Use ReadonlyBytes instead of Bytes for buffer parameters 2023-07-20 08:02:12 +01:00
WavWriter.cpp LibAudio: Use Encoder interface for WavWriter 2023-08-12 12:25:26 -06:00
WavWriter.h LibAudio: Use Encoder interface for WavWriter 2023-08-12 12:25:26 -06:00