1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 15:38:10 +00:00
serenity/Userland/Libraries
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
..
LibArchive LibArchive: Extract logic for calculating ZIP statistics 2023-07-30 22:16:40 +01:00
LibAudio LibAudio: Skip ID3 tags before synchronizing to MP3 frames 2023-08-26 18:43:23 -04:00
LibC Kernel+Userland: Remove the {get,set}_thread_name syscalls 2023-08-25 11:51:52 +02:00
LibCards AK: Make "foo"_string infallible 2023-08-07 16:03:27 +02:00
LibChess Userland: Prefer _string over _short_string 2023-08-08 07:37:21 +02:00
LibCMake LibSyntax+Libraries: Replace TextStyle with Gfx::TextAttributes 2023-03-15 14:55:49 +01:00
LibCodeComprehension AK: Make "foo"_string infallible 2023-08-07 16:03:27 +02:00
LibCompress LibCompress: Let BrotliDecompressionStream take a MaybeOwned 2023-08-23 12:03:37 +01:00
LibConfig Userland: Convert config listener callbacks to use StringView 2023-06-27 15:37:00 +01:00
LibCore Kernel+Userland: Remove the {get,set}_thread_name syscalls 2023-08-25 11:51:52 +02:00
LibCoredump LibCoredump: Avoid unnecessary conversion to DeprecatedString 2023-05-27 17:30:55 +02:00
LibCpp Everywhere: Remove needless trailing semi-colons after functions 2023-07-08 10:32:56 +01:00
LibCrypt Everywhere: Resolve conflicts with LibC and libc++ 2023-06-27 12:40:38 +02:00
LibCrypto LibCrypto: Implement a generic 16-bit CRC 2023-08-12 12:25:26 -06:00
LibDebug LibDebug: Keep track of the SetEpilogueBegin LineProgram OpCode 2023-06-27 12:40:38 +02:00
LibDesktop Everywhere: Use MonotonicTime instead of Duration 2023-05-24 23:18:07 +02:00
LibDeviceTree Everywhere: Remove unused DeprecatedString includes 2023-04-09 22:00:54 +02:00
LibDiff LibDiff+patch: Support multiple patches in a single patch file 2023-07-30 07:47:22 +01:00
LibDNS AK: Rename Stream::write_entire_buffer to Stream::write_until_depleted 2023-03-13 15:16:20 +00:00
LibDSP Userland: Prefer _string over _short_string 2023-08-08 07:37:21 +02:00
LibEDID AK: Change standard casting method of FixedPoint to truncation 2023-08-14 14:20:45 -06:00
LibELF LibELF: Cache consecutive lookups for the same symbol 2023-08-19 05:15:08 +02:00
LibFileSystem LibFileSystem: Add FileSystem::is_regular_file 2023-07-13 10:29:30 +01:00
LibFileSystemAccessClient LibFSAC+Userland: Pass options for FSAC::open_file() using a struct 2023-06-11 09:40:17 +01:00
LibGemini Everywhere: Remove needless trailing semi-colons after functions 2023-07-08 10:32:56 +01:00
LibGfx LibGfx: Add FontDatabase::for_each_typeface_with_family_name() 2023-08-24 14:58:22 +02:00
LibGL Everywhere: Remove needless trailing semi-colons after functions 2023-07-08 10:32:56 +01:00
LibGLSL LibGLSL: Add tests for GLSL parser 2023-08-18 15:29:48 +02:00
LibGPU LibGPU: Remove DeprecatedString usage 2023-01-30 13:49:52 -05:00
LibGUI LibGUI: Fix search highlighting so that it matches the search query 2023-08-26 09:09:47 -04:00
LibHTTP LibCompress: Let BrotliDecompressionStream take a MaybeOwned 2023-08-23 12:03:37 +01:00
LibIDL LibIDL: Fix bug where Type::is_json doesn't look at parent interface 2023-08-23 12:11:21 +01:00
LibImageDecoderClient LibImageDecoderClient: Fix minor const-correctness issue 2023-02-21 00:54:04 +01:00
LibIMAP LibIMAP: Fix Parser::parse_disposition() 2023-08-12 11:45:52 -06:00
LibIPC Userland: Rename Core::Object to Core::EventReceiver 2023-08-06 20:39:51 +02:00
LibJS LibLocale+LibJS: Make relative time format APIs infallible 2023-08-23 05:29:21 +02:00
LibKeyboard Everywhere: Remove needless trailing semi-colons after functions 2023-07-08 10:32:56 +01:00
LibLine LibLine: Refresh the line after case-change operations 2023-08-07 22:51:49 +03:30
LibLocale LibLocale+LibJS: Make relative time format APIs infallible 2023-08-23 05:29:21 +02:00
LibMain Everywhere: Explicitly link all binaries against the LibC target 2022-11-01 14:49:09 +00:00
LibManual Userland: Prefer _string over _short_string 2023-08-08 07:37:21 +02:00
LibMarkdown LibMarkdown: Add render_for_raw_print methods to Node derived classes 2023-08-07 13:24:25 -06:00
LibPartition Everywhere: Remove needless trailing semi-colons after functions 2023-07-08 10:32:56 +01:00
LibPCIDB Everywhere: Remove needless trailing semi-colons after functions 2023-07-08 10:32:56 +01:00
LibPDF LibPDF: Add FIXME for CIDFontType2 creation 2023-08-14 16:26:09 +02:00
LibProtocol Ladybird: Add WebSocket server for use by Lagom networking 2023-08-03 09:55:20 +02:00
LibPublicSuffix LibPublicSuffix: Add Library and Generators 2023-08-17 15:30:23 +01:00
LibRegex LibRegex: Treat backwards jumps to IP 0 as normal backwards jumps too 2023-08-16 22:20:24 +03:30
LibSanitizer LibSanitizer: Add _abort variants of UBSan handlers 2023-08-13 05:14:07 +02:00
LibSoftGPU LibGfx+Everywhere: Change Gfx::Rect to be endpoint exclusive 2023-05-23 12:35:42 +02:00
LibSQL LibSQL: Remove Core::EventReceiver parent from SQL::Relation 2023-08-07 14:38:38 -04:00
LibSymbolication LibSymbolication: Use Core::File instead of Core::DeprecatedFile 2023-04-27 07:27:14 +02:00
LibSyntax Everywhere: Remove needless trailing semi-colons after functions 2023-07-08 10:32:56 +01:00
LibSystem Everywhere: Resolve conflicts with LibC and libc++ 2023-06-27 12:40:38 +02:00
LibTest Kernel+Userland: Remove the {get,set}_thread_name syscalls 2023-08-25 11:51:52 +02:00
LibTextCodec LibTextCodec: Add "get output encoding" from the Encoding specification 2023-06-19 06:12:26 +02:00
LibThreading LibThreading: Make Thread keep itself alive while its action is running 2023-08-07 10:40:34 -06:00
LibTimeZone Everywhere: Resolve conflicts with LibC and libc++ 2023-06-27 12:40:38 +02:00
LibTLS LibTLS: Allow applications to provide a custom default CA Cert path 2023-08-02 05:44:43 +02:00
LibUnicode LibUnicode: Generate data for bidirectional character types 2023-08-20 16:21:35 -04:00
LibUSBDB Everywhere: Remove needless trailing semi-colons after functions 2023-07-08 10:32:56 +01:00
LibVideo LibGfx+Userland: Rename Size::scaled_by to Size::scaled 2023-08-17 09:57:30 -04:00
LibVirtGPU Everywhere: Remove needless trailing semi-colons after functions 2023-07-08 10:32:56 +01:00
LibVT LibGUI: Add deprecated suffix to {set_,}tooltip in Widget 2023-08-18 10:43:37 +01:00
LibWasm LibWasm: Implement a few SIMD instructions 2023-08-21 13:39:32 +03:30
LibWeb LibWeb: Add CSSPixels::nearest_value_for(FloatingPoint) 2023-08-26 23:53:45 +02:00
LibWebSocket AK: Port URL scheme from DeprecatedString to String 2023-08-13 15:03:53 -06:00
LibWebView LibWebView: Allow using native/user style sheets on Lagom 2023-08-26 15:32:36 -04:00
LibX86 LibX86: Remove i686 support 2022-12-28 11:53:41 +01:00
LibXML LibXML: Set parents for text and comment nodes 2023-08-18 08:58:51 +03:30
CMakeLists.txt LibPublicSuffix: Add Library and Generators 2023-08-17 15:30:23 +01:00