From c8c69366b556d93ee5eb48185bfcf9b5196d7742 Mon Sep 17 00:00:00 2001 From: Katajisto Date: Wed, 29 Apr 2026 06:57:46 +0300 Subject: [PATCH] initial --- CLAUDE.md | 52 + ai/aesthetic.md | 32 + ai/architecture.md | 52 + ai/decisions.md | 63 + ai/todo.md | 35 + build.jai | 73 + build/player | Bin 0 -> 4841304 bytes data/fonts/OpenSans-BoldItalic.ttf | Bin 0 -> 213292 bytes lib/libcurl.so | 1 + modules/Jaison/.editorconfig | 16 + modules/Jaison/.gitignore | 4 + modules/Jaison/.gitmodules | 3 + modules/Jaison/LICENSE | 21 + modules/Jaison/examples/example.jai | 391 + modules/Jaison/generic.jai | 370 + modules/Jaison/module.jai | 219 + modules/Jaison/readme.md | 63 + modules/Jaison/typed.jai | 625 + modules/Jaison/unicode_utils/module.jai | 59 + modules/audio_decoders/linux/decoders.a | Bin 0 -> 197248 bytes modules/audio_decoders/module.jai | 32 + modules/audio_decoders/source/build.sh | 27 + modules/audio_decoders/source/decoders.c | 74 + modules/audio_decoders/source/dr_flac.h | 12536 +++++++++++++++++ modules/audio_decoders/source/dr_mp3.h | 4834 +++++++ modules/stb_image/android/arm64/stb_image.a | Bin 0 -> 160804 bytes modules/stb_image/android/arm64/stb_image.so | Bin 0 -> 133064 bytes modules/stb_image/android/x64/stb_image.a | Bin 0 -> 175444 bytes modules/stb_image/android/x64/stb_image.so | Bin 0 -> 143520 bytes modules/stb_image/bindings.jai | 145 + modules/stb_image/generate.jai | 151 + modules/stb_image/linux/stb_image.a | Bin 0 -> 166596 bytes modules/stb_image/linux/stb_image.so | Bin 0 -> 146568 bytes modules/stb_image/macos/stb_image.a | Bin 0 -> 311496 bytes modules/stb_image/macos/stb_image.dylib | Bin 0 -> 306120 bytes modules/stb_image/module.jai | 12 + modules/stb_image/source/stb_image.c | 11 + modules/stb_image/source/stb_image.h | 7985 +++++++++++ modules/stb_image/windows/stb_image.dll | Bin 0 -> 277504 bytes modules/stb_image/windows/stb_image.lib | Bin 0 -> 289394 bytes src/audio/analysis.jai | 109 + src/audio/decoders.jai | 110 + src/audio/fft.jai | 82 + src/audio/index.jai | 5 + src/audio/player.jai | 129 + src/audio/queue.jai | 36 + src/core/app.jai | 99 + src/core/config.jai | 87 + src/core/imports.jai | 24 + src/core/index.jai | 6 + src/core/time.jai | 7 + src/core/window.jai | 71 + src/gfx/images.jai | 240 + src/gfx/index.jai | 2 + src/gfx/shaders.jai | 90 + src/jellyfin/async.jai | 165 + src/jellyfin/auth.jai | 57 + src/jellyfin/client.jai | 129 + src/jellyfin/images.jai | 25 + src/jellyfin/index.jai | 6 + src/jellyfin/library.jai | 240 + src/jellyfin/stream.jai | 18 + src/main.jai | 23 + src/ui/fonts.jai | 18 + src/ui/index.jai | 3 + src/ui/theme.jai | 13 + src/ui/views/index.jai | 3 + src/ui/views/library_view.jai | 246 + src/ui/views/login_view.jai | 87 + src/ui/views/now_playing_view.jai | 188 + src/util/index.jai | 2 + src/util/log.jai | 22 + src/util/path.jai | 26 + 73 files changed, 30254 insertions(+) create mode 100644 CLAUDE.md create mode 100644 ai/aesthetic.md create mode 100644 ai/architecture.md create mode 100644 ai/decisions.md create mode 100644 ai/todo.md create mode 100644 build.jai create mode 100755 build/player create mode 100644 data/fonts/OpenSans-BoldItalic.ttf create mode 120000 lib/libcurl.so create mode 100644 modules/Jaison/.editorconfig create mode 100644 modules/Jaison/.gitignore create mode 100644 modules/Jaison/.gitmodules create mode 100644 modules/Jaison/LICENSE create mode 100644 modules/Jaison/examples/example.jai create mode 100644 modules/Jaison/generic.jai create mode 100644 modules/Jaison/module.jai create mode 100644 modules/Jaison/readme.md create mode 100644 modules/Jaison/typed.jai create mode 100644 modules/Jaison/unicode_utils/module.jai create mode 100644 modules/audio_decoders/linux/decoders.a create mode 100644 modules/audio_decoders/module.jai create mode 100755 modules/audio_decoders/source/build.sh create mode 100644 modules/audio_decoders/source/decoders.c create mode 100644 modules/audio_decoders/source/dr_flac.h create mode 100644 modules/audio_decoders/source/dr_mp3.h create mode 100644 modules/stb_image/android/arm64/stb_image.a create mode 100644 modules/stb_image/android/arm64/stb_image.so create mode 100644 modules/stb_image/android/x64/stb_image.a create mode 100644 modules/stb_image/android/x64/stb_image.so create mode 100644 modules/stb_image/bindings.jai create mode 100644 modules/stb_image/generate.jai create mode 100644 modules/stb_image/linux/stb_image.a create mode 100755 modules/stb_image/linux/stb_image.so create mode 100644 modules/stb_image/macos/stb_image.a create mode 100644 modules/stb_image/macos/stb_image.dylib create mode 100644 modules/stb_image/module.jai create mode 100644 modules/stb_image/source/stb_image.c create mode 100644 modules/stb_image/source/stb_image.h create mode 100644 modules/stb_image/windows/stb_image.dll create mode 100644 modules/stb_image/windows/stb_image.lib create mode 100644 src/audio/analysis.jai create mode 100644 src/audio/decoders.jai create mode 100644 src/audio/fft.jai create mode 100644 src/audio/index.jai create mode 100644 src/audio/player.jai create mode 100644 src/audio/queue.jai create mode 100644 src/core/app.jai create mode 100644 src/core/config.jai create mode 100644 src/core/imports.jai create mode 100644 src/core/index.jai create mode 100644 src/core/time.jai create mode 100644 src/core/window.jai create mode 100644 src/gfx/images.jai create mode 100644 src/gfx/index.jai create mode 100644 src/gfx/shaders.jai create mode 100644 src/jellyfin/async.jai create mode 100644 src/jellyfin/auth.jai create mode 100644 src/jellyfin/client.jai create mode 100644 src/jellyfin/images.jai create mode 100644 src/jellyfin/index.jai create mode 100644 src/jellyfin/library.jai create mode 100644 src/jellyfin/stream.jai create mode 100644 src/main.jai create mode 100644 src/ui/fonts.jai create mode 100644 src/ui/index.jai create mode 100644 src/ui/theme.jai create mode 100644 src/ui/views/index.jai create mode 100644 src/ui/views/library_view.jai create mode 100644 src/ui/views/login_view.jai create mode 100644 src/ui/views/now_playing_view.jai create mode 100644 src/util/index.jai create mode 100644 src/util/log.jai create mode 100644 src/util/path.jai diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..3d18892 --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,52 @@ +# player — Jellyfin music player in Jai + +This is a vibe-coded project. Pure AI-assisted work. Take agency, but check `ai/` for current direction before making big calls. + +## What this is + +A desktop music player that talks to a Jellyfin server. End goal: looks like a ridiculous 2000s audio player that shipped on a CD-ROM with an album — chunky skinned UI, neon gradients, glossy buttons, a spectrum visualizer behind the now-playing screen, music-reactive shaders, artist art front and center. + +## Build + +``` +cd /home/katajisto/player +/home/katajisto/bin/jai/bin/jai-linux build.jai +./build/player +``` + +`build.jai` is a metaprogram. It points the import path at `./modules` (vendored: `Jaison`, `stb_image`) and falls back to the standard Jai modules at `/home/katajisto/bin/jai/modules`. + +## Code layout + +`src/main.jai` is intentionally tiny — it just `#load`s an `index.jai` from each subfolder. Each subfolder owns its surface area: + +- `core/` — app state, window, frame loop, time +- `jellyfin/` — HTTP client (libcurl), auth, library browsing, image fetch, stream URLs +- `audio/` — Sound_Player wrapper, queue, FFT analysis for the visualizer +- `ui/` — theme, fonts, and `views/` (one file per screen) +- `gfx/` — custom shaders, texture loading +- `util/` — log, helpers + +Each folder has an `index.jai` that `#load`s every file in that folder. To add a file, drop it in and add a `#load` line. + +## Dependencies + +- **Simp** (Jai stdlib) — rendering +- **GetRect_LeftHanded** (Jai stdlib) — UI widgets +- **Sound_Player** (Jai stdlib) — audio playback (ALSA on linux, CoreAudio on mac) +- **Curl** (Jai stdlib) — HTTP to Jellyfin +- **Jaison** (vendored) — JSON +- **stb_image** (vendored) — single-header PNG/JPG decode for artist images + +Cross-platform target: linux + macOS. + +## AI notes + +See `ai/` for live design notes: + +- `ai/aesthetic.md` — visual direction +- `ai/architecture.md` — code layout rationale +- `ai/decisions.md` — decision log +- `ai/todo.md` — running todo / scratch + +Update `ai/decisions.md` when you make a non-obvious choice. Update `ai/todo.md` when you punt on something. diff --git a/ai/aesthetic.md b/ai/aesthetic.md new file mode 100644 index 0000000..afd054c --- /dev/null +++ b/ai/aesthetic.md @@ -0,0 +1,32 @@ +# Aesthetic direction + +Target: a ridiculous audio player from the early 2000s — the kind that shipped on a CD-ROM with an album. Think: + +- The Linkin Park *Meteora* player +- Björk's *Biophilia* app (later, but same energy) +- Custom Winamp skins from skins.com circa 2002 +- Limited-edition iPod-companion players + +## Visual cues + +- **Chunky** UI elements. Big buttons, big knobs, big sliders. No sleek minimalism. +- **Neon + metallic gradients**. Electric blue, hot pink, lime, chrome silver. Glossy highlights on buttons. +- **Drop shadows, glows, bevels**. Embrace the skeuomorphism. +- **Non-grid layouts**. The play controls don't have to live in a tidy bottom bar — they can be a curved cluster off to the side. +- **Album art is huge**. Artist photo as a backdrop with a darkened gradient over it. +- **Spectrum visualizer** behind the now-playing screen, reacting to the audio FFT. +- **Custom shader effects** — bloom, scanlines, chromatic aberration, plasma, whatever fits. +- **Cheesy fonts**. Bold italic, maybe a script font for the artist name. + +## What to avoid + +- Spotify/Apple Music minimalism +- Material Design / Fluent UI +- Flat design +- Anything that looks like it was designed in 2018+ + +## Practical notes for the codebase + +- We get rect-based widgets from `GetRect_LeftHanded`, but we should freely draw on top of them with `Simp.immediate_*` and custom shaders for the album-skin aesthetic. +- `gfx/shaders.jai` is where custom GLSL lives. +- The visualizer is a fullscreen quad behind the UI sampling FFT bins from `audio/analysis.jai`. diff --git a/ai/architecture.md b/ai/architecture.md new file mode 100644 index 0000000..252ecf9 --- /dev/null +++ b/ai/architecture.md @@ -0,0 +1,52 @@ +# Architecture + +## File layout + +``` +player/ +├── build.jai # metaprogram, sets import_path +├── CLAUDE.md # project context +├── ai/ # AI-collaboration notes +├── data/ # fonts, static assets +├── modules/ # vendored: Jaison, stb_image +└── src/ + ├── main.jai # tiny entry, #loads each index.jai + ├── core/index.jai # app state, window, time + ├── jellyfin/index.jai # http client + endpoints + ├── audio/index.jai # Sound_Player wrapper, queue, FFT + ├── ui/index.jai # theme, fonts, views + ├── gfx/index.jai # custom shaders, textures + └── util/index.jai # log, helpers +``` + +## Convention: `index.jai` per folder + +Each folder has an `index.jai` that `#load`s every other `.jai` file in the folder. `main.jai` only loads the `index.jai` files. This keeps `main.jai` ~10 lines and lets us add a new file by editing one `#load` line. + +## Convention: one giant `App` struct + +`core/app.jai` defines `App :: struct { ... }` and a global `app: App;`. Everything that needs to live across frames hangs off `app` — the window handle, fonts, the jellyfin client, the audio player, the UI state, the current view. + +This is on purpose. We don't want plumbing arguments through five layers. The whole codebase has implicit access to `app`. + +## Convention: views + +A "view" is a screen (login, library, now-playing). Each lives in `src/ui/views/_view.jai` and exposes one proc: + +```jai +draw__view :: (dt: float) +``` + +`app.current_view` is an enum that picks which one runs each frame. Transitions are `app.current_view = .LIBRARY;`. + +## Convention: HTTP + +`jellyfin/client.jai` wraps libcurl with a small `http_get` / `http_post` helper that returns a string body + status code. The auth token gets stamped into headers automatically once `auth.login()` succeeds. + +## Convention: audio + +`audio/player.jai` owns a single `*Sound_Stream` for the currently playing track plus a queue of pending tracks. `Sound_Player` handles the actual decoding and output. + +## Convention: gfx + +`gfx/shaders.jai` keeps GLSL strings inline (compiled via Simp's GL backend). The visualizer is a fullscreen quad with a fragment shader that reads from FFT data uploaded as a 1D texture. diff --git a/ai/decisions.md b/ai/decisions.md new file mode 100644 index 0000000..7c7a6c2 --- /dev/null +++ b/ai/decisions.md @@ -0,0 +1,63 @@ +# Decisions log + +Append-only. Most recent first. Keep entries short — one paragraph max. Reference files with paths. + +## 2026-04-28 — Image cache with capped concurrency; on-main-thread texture upload + +`gfx/images.jai` is a small async image cache. UI calls `image_request(item_id, size)` from the draw loop; it always returns an `*Image` immediately whose `.loaded` flips true once the bytes arrive. Concurrency is capped at `MAX_CONCURRENT_IMAGE_FETCHES = 4` via a pending queue (`image_pending`) drained by `image_pump()` once per frame — without this, a 500-album library would spawn 500 worker threads at first scroll. Decode + texture upload runs in the http callback (which is already main-thread per `jellyfin/async.jai`), satisfying OpenGL's no-cross-thread rule. Two cache buckets per item, keyed `t:` (128 px thumb) and `l:` (512 px). Sizing is requested from Jellyfin via `?fillHeight=N&fillWidth=N&quality=80` so we get a tight payload instead of full-resolution originals. + +## 2026-04-28 — Visualizer reads a real FFT from the active stream's PCM + +`audio/fft.jai` ships a small in-place radix-2 Cooley-Tukey FFT (~80 lines, no deps). `audio/analysis.jai` pulls FFT_SIZE=1024 frames from `app.current_stream.sound_data.samples` around `play_cursor` each frame, mixes to mono, applies a Hann window, FFTs, then bins magnitudes into SPECTRUM_BINS (=64) log-spaced bands between 30 Hz and the stream's Nyquist. Asymmetric smoothing (fast attack 0.45, slow decay 0.10) gives the classic VU-meter feel. Spectrum decays toward zero when the stream is paused or when there's no LINEAR_SAMPLE_ARRAY data. Since /universal-fetched tracks always decode through dr_libs to LINEAR_SAMPLE_ARRAY, the OGG-pass-through fallback rarely triggers. + +## 2026-04-28 — Track download uses `/Audio/{id}/universal`, not `/stream` + +`/Audio/{id}/stream` returns the raw original file. For libraries with M4A / AAC / Opus / ALAC / WMA tracks, `dr_mp3`/`dr_flac` can't decode the bytes and Sound_Player can't either — the user's "B-Roll" track came back as `format=UNKNOWN` then crashed in the diagnostic. `/Audio/{id}/universal?container=mp3,flac,ogg,wav&audioCodec=mp3&maxStreamingBitrate=320000` lets the server send unmodified bytes when the source is in our container list, and transcodes to MP3 otherwise. Required params are `userId` + `deviceId`; `api_key` is also added as a query param because some streaming proxies strip the X-Emby-Authorization header. libcurl `FOLLOWLOCATION` is enabled — `/universal` 302-redirects to the transcoded stream URL. + +## 2026-04-28 — Keep Sound_Player; add MP3/FLAC decoders, don't swap to miniaudio + +User feedback when I proposed replacing Sound_Player with miniaudio: "I wouldn't change sound_player out, I would just add decoding from a few formats." So MP3/FLAC support is added by decoding bytes to s16 PCM via vendored `dr_mp3.h`/`dr_flac.h` and feeding the result into Sound_Player as `Sound_Data` with `type = .LINEAR_SAMPLE_ARRAY`. OGG and WAV continue to go through `Sound.load_audio_data` directly. Bigger libraries that prefer streaming (long tracks) might want a real decoder backend, but for now full-decode-to-PCM is simple and works. + +## 2026-04-28 — HTTP runs on a per-request worker thread + +All Jellyfin requests block the calling thread (libcurl `easy_perform`), and on the main thread that froze the UI for hundreds of ms (listings) or seconds (track downloads). Each request now spawns a `Thread` via `Thread.thread_init` + `thread_start`, the worker writes the result, the main loop calls `http_pump()` each frame which polls `thread_is_done` and fires the `on_done` callback. Per-request threads (no shared queue) keep the surface minimal — fine for ~5 concurrent requests; if we ever flood, switch to a thread pool. + +## 2026-04-28 — Auto-advance via `release_asset` callback + `track_finished` flag + +Sound_Player calls the `release_asset` callback when a stream finishes (from inside `Sound.update()`, which runs on the main thread, so it's safe to write app state). The callback sets `app.track_finished = true`, the main loop reads/clears it after `Sound.update()` and calls `queue_next()`. Streams are tagged with a monotonic `entity_id` (`app.track_entity_id`) so the callback can ignore stale finishes from streams we already replaced. + +## 2026-04-28 — Pause is a volume mute, not a real pause + +Sound_Player doesn't expose a clean per-stream pause. `audio_toggle_pause` flips `user_volume_scale` between 0 and 1. The cursor keeps moving while "paused" — so this is only correct for short pauses; the scrub bar is misleading and auto-advance still happens at the real end. Logged in `ai/todo.md` for a proper fix later. + +## 2026-04-28 — Persist auth token, not password + +`~/.config/player/config.json` stores `{server_url, username, auth_token, user_id}`. Password is never persisted. On startup, if `auth_token` and `user_id` are non-empty we mark `logged_in = true` and skip to library. If the server has invalidated the token, the first API call fails — user can hit "logout" to clear and re-enter password. Could auto-fall-back to login on 401, not yet wired. + +## 2026-04-28 — GetRect widget wrappers thread `loc := #caller_location` + +When wrapping stateful GetRect widgets (`text_input`, `button`, etc.) in a helper proc, the helper must accept `loc := #caller_location` and pass `loc=loc` to each widget. If multiple stateful widgets are drawn from the same wrapper, use `identifier=N` (unique constant per widget) to disambiguate them. See `src/ui/views/login_view.jai:text_field`. Without this, every call site of the wrapper looks identical to GetRect and you hit the runtime "widget drawn more than once" error. + +## 2026-04-28 — `lib/libcurl.so` symlink for systems without libcurl-dev + +Ubuntu 24.04 ships `libcurl.so.4` but not the unversioned `libcurl.so` symlink (which would come from `libcurl4-openssl-dev`). The bundled Curl module's `linux/lib/libcurl.so` requires `libssl.so.1.1` which Ubuntu 24.04 doesn't have. Workaround: `lib/libcurl.so` symlink in this repo pointing at the system `libcurl.so.4`, plus `additional_linker_arguments = ["-Llib"]` in `build.jai`. `Curl` is imported as `Curl :: #import "Curl"()(LINUX_USE_SYSTEM_LIBRARY=true)`. + +## 2026-04-28 — Vendor Jaison + stb_image, use bundled Curl + +Jellyfin returns JSON, so Jaison is the obvious pick. For artist images we'll need PNG/JPG decode → `stb_image` (single header, ubiquitous). Both vendored under `modules/`. For HTTP we use the Jai-bundled `Curl` module rather than vendoring a single-header HTTP lib — libcurl is already the most-used C HTTP client and the bindings exist. + +## 2026-04-28 — Folder-based code split with `index.jai` per folder + +Each subfolder of `src/` has an `index.jai` that `#load`s its files. `src/main.jai` only loads the index files. Keeps `main.jai` tiny per the user's brief. + +## 2026-04-28 — One global `app: App` struct + +Instead of threading state through procs, everything hangs off a single global. Smaller files, less ceremony, fits a vibe-coded project. If it gets messy we'll regret it and split. + +## 2026-04-28 — `Simp.set_render_target(window, .LEFT_HANDED)` + `GetRect_LeftHanded` + +Per user brief. Left-handed UI coords (y goes down) match how everyone thinks about UI. + +## 2026-04-28 — Artist backdrop images in now-playing view + +`Image_Size.BACKDROP` added to `gfx/images.jai` — 1920x1080 16:9 images fetched from `/Items/{id}/Images/Backdrop/0`. Cache key prefix is `b:` (disk: `b_.bin`). The backdrop renders full-screen behind the now-playing UI with a 60% black tint overlay so text remains readable. `Track.artist_id` field added (populated from `AlbumArtistId` in Jellyfin responses) so we can request the correct backdrop for the current track's artist. Backdrops are fetched lazily when a track plays; if none exists, the view falls back to a solid dark background. diff --git a/ai/todo.md b/ai/todo.md new file mode 100644 index 0000000..1f371f6 --- /dev/null +++ b/ai/todo.md @@ -0,0 +1,35 @@ +# Todo / scratch + +## What works now + +- Login → server hits `/Users/AuthenticateByName`, token+user_id persisted to `~/.config/player/config.json` +- Subsequent launches skip login, jump straight to library +- Library view: 3 columns (artists / albums / tracks), scrollable, click-to-drill +- **All HTTP is async** — `http_submit` queues a worker thread; `http_pump()` runs once per frame and fires callbacks on the main thread. UI no longer freezes during fetches or downloads. +- **MP3 + FLAC playback** via vendored `dr_mp3.h` / `dr_flac.h` (compiled to `modules/audio_decoders/linux/decoders.a` — `build.jai` auto-rebuilds when the .c source is newer). Decoded to s16 PCM and handed to Sound_Player as `Sound_Data.LINEAR_SAMPLE_ARRAY`. +- OGG + WAV continue through `Sound.load_audio_data` (Sound_Player's native path). +- Click a track → downloads (async) → decodes → plays. Auto-advance via Sound_Player's `release_asset` callback firing `track_finished`. +- Pause/resume via `user_volume_scale` mute trick (still not a real pause) +- Now-playing screen with title/artist/album, transport buttons, scrub bar +- Logout button on library top-right clears `config.json` + +## Known stubs / rough edges + +- **Memory leak**: each played track leaks its decoded PCM buffer (~50 MB for a 5-min FLAC). The `release_asset` callback should call `decoder_free` for MP3/FLAC paths and `free` for OGG/WAV — currently it only flips `track_finished`. Track allocation type per-Sound_Data so the release knows which allocator to use. +- `audio_toggle_pause` is volume-mute, not real pause — cursor keeps advancing +- No real seek (scrub bar is read-only) +- Image cache never evicts — hold for thousands of items but unbounded over a long session (low priority) +- Failed image fetches stay marked `failed` forever; no retry. Often that's right (item has no art) but transient network errors should retry once +- `gfx/shaders.jai` is still `Simp.immediate_quad` (mirrored bars + bass pulse, but no GLSL fragment shader yet) +- `client.jai` still has the old sync `http_get`/`http_post` and `Http_Response` / `build_auth_header` — async.jai uses `build_auth_header` so the helpers stay, but the sync wrappers are dead code now +- Stream URL `/Audio/{id}/stream` returns the original file. If the original is something exotic (Opus, AAC, etc.) it'll fail. Could fall back to `/Audio/{id}/universal` with `audioCodec=mp3` or similar to force-transcode for unsupported formats. + +## Next likely tasks (in rough order) + +1. Free the decoded buffer when the stream ends (fix the leak) +2. Fetch primary image per album, decode with stb_image, upload as `Simp.Texture`, render in album rows + as backdrop on now-playing +3. Real FFT (dr_libs author's work? or kissfft) hooked to Sound_Player's mixed output buffer +4. Custom GLSL fragment shader for the visualizer (replaces the bar stack) +5. Album-level "play all" button in the album column +6. Real per-stream pause + seek +7. Search bar above artists column diff --git a/build.jai b/build.jai new file mode 100644 index 0000000..b5262d4 --- /dev/null +++ b/build.jai @@ -0,0 +1,73 @@ +// +// Build metaprogram for the jellyfin music player. +// +// Run with: jai build.jai +// +// Adds ./modules to the import path so we can vendor Jaison and stb_image +// alongside the standard Jai modules. +// + +#run build(); + +build :: () { + set_build_options_dc(.{do_output = false}); + + w := compiler_create_workspace("Player"); + if !w { + compiler_report("Could not create workspace."); + return; + } + + options := get_build_options(w); + copy_commonly_propagated_fields(get_build_options(), *options); + + options.output_executable_name = "player"; + options.output_path = "build/"; + + import_paths: [..] string; + array_add(*import_paths, tprint("%modules", #filepath)); + for options.import_path array_add(*import_paths, it); + options.import_path = import_paths; + + // Help the linker find libcurl.so. On a system where only libcurl.so.4 is + // installed (no -dev package), we fall back to a symlink in ./lib/. + extra_linker: [..] string; + array_add(*extra_linker, tprint("-L%lib", #filepath)); + options.additional_linker_arguments = extra_linker; + + // Build the dr_mp3/dr_flac wrapper if the static lib is missing or stale. + ensure_audio_decoders_built(); + + set_build_options(options, w); + + make_directory_if_it_does_not_exist("build"); + + compiler_begin_intercept(w); + add_build_file(tprint("%src/main.jai", #filepath), w); + compiler_end_intercept(w); +} + +ensure_audio_decoders_built :: () { + #if OS == .LINUX out := tprint("%modules/audio_decoders/linux/decoders.a", #filepath); + #if OS == .MACOS out := tprint("%modules/audio_decoders/macos/decoders.a", #filepath); + src := tprint("%modules/audio_decoders/source/decoders.c", #filepath); + script := tprint("%modules/audio_decoders/source/build.sh", #filepath); + + if file_exists(out) { + out_modtime, _, out_ok := file_modtime_and_size(out); + src_modtime, _, src_ok := file_modtime_and_size(src); + if out_ok && src_ok && compare_apollo_times(out_modtime, src_modtime) >= 0 return; + log("audio_decoders: source newer than %, rebuilding\n", out); + } + + result, output := run_command("/bin/sh", script, capture_and_return_output=true); + if result.exit_code != 0 { + compiler_report(tprint("audio_decoders build failed (exit=%):\n%", result.exit_code, output)); + } +} + +#import "Basic"; +#import "Compiler"; +#import "File"; +#import "File_Utilities"; +#import "Process"; diff --git a/build/player b/build/player new file mode 100755 index 0000000000000000000000000000000000000000..d0ed206b8129620b745347b3ef08a9bdddeff2e4 GIT binary patch literal 4841304 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�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
w3){zMoX(B6gRus6-S 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 z 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

dFI_o?ls6`DKztaV>quO*Re=cNdrVtSp*qFI#p` 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

OHV!&p`7 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ⅈsiSp0oUt;9&119#;$nGqLr7_gx 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

    DHuDF1m%Z=YSze>58|?9a{8_)4 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 )=bi86uZ0d%JizCvmgl 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

    --gOh7O zly<&QRc<;hNwNs*1&MvJ#EYME_N9Vv+g zsuSjs*F`WGEorn}t2XYM`L?-}s3Yb_@qViMbopYlQM%suqBQjiX)1@*Ia6bt>j$Pv zX)otcl(%@9XWeEG+YT!_ZCd+BHVw%}38LIwuCLoE0ZMnrpH1%{VFl(0Ly$ZtB=%3k zB0(b|BVNb|GZD#IO5Q1Ru%fiXcf&Qo>BFK127bMx1Lx*AEaZ0&+brpOCB1JnkMwI= z+{5-#J~ysm>dO08dH=8I-bbwWisZ)sXdj^|0Ho?8+E5q!BJ>~Rpdm<6<|-mRX#NIn z!3Y(_riFMLs0HNqL{&gE12WvsWtLjRh^AbWUO`mC>x8aLpb_G`M(k05tE;!ADKRhi z6x0iJ9JmnTG{a470$#d%JMFjLQ=DC16FL9~zl1wkRl8u3$BcN2_t6Z7hxlIA47N&= z0BJnm$ul=ordth_4MD@^R!-fM2i`wgY8`n0IMPjD2S2|By+sLwo1#;=*=(s!w4(;p zj_O1^>J$&GLo;I&x)c*gTwg$dm`Jt%$GQgreXgf4GXl;FidN*wLqCP@na!da~WS8bct?D&!#cXro2V4 zJWYApOKU^iU2qqw3X?<$L39WJU(Gv!sAj#4 zn;iG=1VrSTuuH!44Io*4hz5YtZAgBILSW5?E*~DNCvYnvQWg>4?>)2u81#zLHNNkq z(F2(kJw=m-8^Xw-HG{qi2){D}eHBsN8QT*yU!#lG3fe@Yn!IJs3M6zy0`!9E;n48Y zP+j3nw08%EV7e$1sIS`@v8I`sXv!T*6@8n$L!Icfag3nmYo06u;`c%9Wjpt@<}$qd zm>U{)KrricbB*4xMP>y<#%c1Vl1*`qliYIWBBK-wxrH*(&G%6kDMWp1fbMV2o&k9Lq`|XlBr1L1^7t16@-4OdDsV!9o2o!LpjYeX$fiLT zDI4RRwV%f>CN=GZLFi8>EW|{Tm9WBWQTC0*FBN__n^ySWD1t}O>Xb*rQ(^7#Y>4xu z=$I_Q?#rf!wjl`6wApVm8=%8#pQH8BC-XO+zcKuk@i&;iLjLl!K4AMn*oVnF4#%Zz ztU3EqsBSKa{*^-9W;FSxc;WPGbey#plFRJCbxbqLcA;K9e!ndd%xyq>Nx{YFUGmwqp$iz?dUx?> zB?n8Fmudg2*=>GiMUgJSRV)5lTHKBMG^3*|knrWw=LfJ*h)KwI1G&x^uXD4}Lke>{ z_nFz+OSRbK9`p)3O`VR8>YJ@ z3B3#jH=Ka>LsM_ab$IE%L&C~xDex}W9_~d}?TwDeZkK<%R#Cac9PufT+BdX7#QX53uj|3t$d z8&7yAt*G4PaWWJ=KKR|X1e1OU#<4ag?3{t8%pK8Z$e2tk2^a6w9&Uv`r!b+_jI9eJ znhff!|q&tHDNtqZT}HJ?xMROyD6bCZ0F|BXQ)ox^uQ&@ZFlZ$0g0@gJa7EG>pKW#IwM zxs=#xrh02}8d%_jeOGtmw+KT&FC2VS%6Oswz%}bO=lEp^LnG`@{cU|_goA#m46B

    20q_d}qb(A<0ivA8E1Rh?^ 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ð>K)}ps5 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�kO9_Vx1!!4=1ufk;T@s3k%#x-K@1at=&0=7N)N< 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%0D*CBd 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

    SO#ub{%&Z*|DvDQbx$shy>Vxhw6R;9%xM^m$ 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 z z{}Zr}6^$j93j@^M!GVV7^O@c2km$xozxf3s|1&ck5X^3*V{O-I{-$3*{-0?if&5<}Ur_kuFCZURG7A4SV~aX9 z6dn&vv2Ypv<749zf|~ro=l?@ivRL*rtemVW$QKoE{{`gdoYdx$N0-}?gPO!yNlloJ zC|le`f2JCmW>kpRb~0^s0rAb`!lqv!LYytijI%|AI9o)BvqgkBTk%rgsfq0V1#H{5 zVSLpJwnqhlL;E(Qa#{IQJzV(hf5^%Y6bP#Y!6F^3WO{v&%-iza{(}pDf{SeC&*m3d z)RtRA=aH7h0C|aFxtZa$UqHxqddM_iSG&`l9${i@O(#297ZRW37pDAY(>gDWI~6uQ z@k)Z>mEcfz*y2O&1&oD*3$ylO6`v`l(Zq`VU@)`n>3XL#-spq?GkBkXP}BWP zq^0Tpw88Tfo?Q5k|1gUFfVp3hgGWYm3xoE|H>x1~iL`gPxg*ef5rA#+A>x}Q!{wnJ@hvAIC!t# z89$eRtxNBIhV4w*1d!foHxj%bYwV^%4lB5~gODmu1E>BFqXT}=dTQRFscGKx=<{N@ zh@7F%F=XUMMNa4ljPc)beO?Ow3$CfJfRNdT3jk$<#-bBC#8{yZujO^K)4o2Q*kk(2Q zq0)wel_n2=r!JigTy}?mtKK{L7&N&D7Ww{xce3Q=b<6 z^Km&phc9Q`Rfb()Wp0Cg&VXKN-n#^ZT2U0!nJYz_7Gsfj!!jqLznlRFdU{l12*1ca zb?BadB9c4{r6NfeNH__2GP{Vn+U-*dGbeTb6Zp@hWd3u*ar~za#LPRN za-98_KIwUtL?9pWi+E7^hN0vlMCRW}r!9TfAbe+j^zL9hS8Hc)z#H?fYp}7B=Yljf z%lrwzTl%u+b-p&ft>9$#XUOoDzTxSC2|JXqNyDZ54u|!l2ld}~LE;vA112I{?3@Wo z|NWmV>B+8lz;ELF>fRg{)m2Iths+?N=_JZsAVr2ERMGT4 z9C_e8*+K-7i0T}A#9fl6$lXCD*&y$aB)YO|$HuMGn+i|4 zB`zDo9(RR4!)9$PI!w zf|^d|DsCcPDbmSnA5xpR{_-jFHX^6~T?&4O*%WZ!HnE^w$FK~%9n;@sj5uj8ZPfw@VK95uPT9-?PiM^@ATzj4aC!2?*>)DQ( zuJ=}8rD1w8ekTll9IkgYLTS2;b6K?6piB9ErR!xwN7IcQu)vJuy16GuRwf2!EoV{w z98m2BAcuV9-Vh_MoBk(wTrWTlz&8MEasdVde2C7~FBAc!aC%;W836Y(peP{6PkP;D zyT+*iLw;v-!T=ukASBw*<0n(_DcV!y_{mZl&zuASI22}C$gN%O{#e6j!;%Wapb_%UV`hQ16?il||A}>(Ye@CR(fPYOS zwGRkcxtRUn{>32^5WLC3M445@&kr%<*;8Ou+!H?;sB(Y$E~cZZ&tXIo&nwNq^fR@I zo%z)7L=QVrAjKb8jRFEl6w=ZGpEokGD9aMj0sNaCXs3urdz;Or!;Rj2BbaF z!{CCxhkhlBNaeV-9C+CYcey?#s}pz7sA>d^rMCyeawnYg1W4ws=#u9Bj?q^A4A_e> z)jUe#PrTxXgU`!3l%%}by81+W!5YNZ<G&XpU7Y!9~b zI$sIlj`K(1>vrP=q31*{Aez9z_wB_uAnf7j5BdIJ5+`h(?T;~-xkJ6sjPLO`q4#Mc zH#G4D*GUSU$}geN8@w6qh2~TxImw~*C-8bk=%piR$I#0ZObeCY=Qtfg+xaCubp3XD z_vh-l%+W&+GgH_nbn7>AIO-EwnTZ$Q3Ye1^+o(ew6>Dxg9P7PWhS|XS$QpvV9XEcDQFMG19jA6Y;XKH8Y^GF)jvc{Cchbekz7!jB4`l?p z9PymcChW)!EdwnnG>L*<=m>;Q3(cbgr{jqtM8{1S7`V?#H~4>)y$O6&MH2Y` z-t>?+ArLYNw*dl#V-!d@MNEFm481asZisBIzlq-|q8O0-b#yctsDyugs-PqHtO02ggt$T>FFl zpjEvq5AlOj;Yq(A>IdYHyn3NM($ap6k%~nI#WGYs87EThXUyi4X`Hqm;#rYcERY-h zUq~y0+SpbZJIpmTOAtF-ScDC+pf;`Apsa}BmJr!n zsA0|Z+pVDMXyo*$DVGuSGOyx)s-`+(owOC$!pKOQmLn%OmBW#fclU%NchXX)y*xh{ z0ok4O5$WXz^3I--Xj>d*Gzu5JaiOi`BZ#E+!Xy?%hP3SAag0xyz&09iH(?K3(SlN< zhbI|UEi;~H(6g3{{2=EW_kD>UWc6|1m-#_I`coB@`@t?Io6?^LN7utqiMR*-h^7rZ zOTv@lmK?nVN7@4%rFwviR1a{mjo}Wt*pp$_9^fJkf-1pGr1H|R6sd`Kr4+xc9Uo#a zaTzNw`y={ceq}~tfvCA095IEPnBJXZlo8}~YG+yz>h61^J9cR8Z3Fm@|s_+!`_siMQA1LT{E4c{SUc zl`nXf31qFHv)8aqAKN?@{F&+C6@icaJ}>2BKNy7olZ6L#a6UMy579xC{YTn2Sa+R& zRVy_u#pC@Q+6rFO9z43lyd-y@o?J~d3Bjd1x_i@+<=sVo9( z;Xc-$?*0nv`w(k8g|w&9WtP7(7F>hr>S%g?FdZ(`EFl){2@6~LGdbiVh@}q%Zf`9k zb|;Pgst+`yoaEfY9MAGw;cw)rgaslE^ksPr{Y`oWUuFqpjgJj8!4U23hgQgkmwu0S ztQNYSqOuTwnv&OHB={X(pqSHv4oCX^=x{ni6$(^{y4#8cU{#-B4OfZkv7U2TEY#Wt z_`&ZiHe&>bEon|V6En|00y4W;--NvIEpHIiNrNTa#iVd9z)PP%yPQ?3j3U~kEC%P5 zehhWl<+LpFO@F3PDmH+iJeQ(G;Hxj3hs4VmJ4ZaYgrQg7^Zej8%4?wK7x7v}Srj_` z1BhNauf_mlLHf(WNF(ac^ACa%xznnaPhVovaj|^*dbG^V8U$I5xvCC2TLHD43*#L@ z&Z%aWj`SzB6e>vRllGg4dvq|-TlxXCY350e1B}aHc^yQAE|Q;1`$Y8A>fKl%&ohN1 zB+oNxS?srlW?jFg=OVmxn^v))%g?-ehc9Ii{zZRhNCuwqTf*A-hm;Hb;HuDQnf>FS z_C{OAc#OYC4R&xc9?c&EF@KM%@v7x1(96lgHTMtF5%5qH;jBK0U@%&4;|Fr68nQWs zxvJkI_%z(9mfQQmA)#wUiPB-IFqMZP^*W6Sn>IKa3!VveE=F-S^=YH+=PXAxa#8Q#7{$6AKBi;-B% z@HRc}Ygk`Aa~0hC z<}D0AV&*~4m}}5Q)U+q&$};uLtEz|@h<&s&pJOp;W-db!nBl}DF>@olr<);g6gTfe zBHLUK^&B%4{PyNO6wtwpq_(433!zSC8Y=8;zQ@A4n7`9~SMxLFJxmcJm1~~nn{MV4 zS}l#3addEg#EfCIE{K@@K)5hsy1>*$5i^mxiz6nF_3o00SpY-T5%V+hUm7v@GuD?y z%mjK}7BMGdXO~CJXVAPNViGjClE6^ZFd2kM>uAKpm?geh4}TH!33`s2m*6929-y3M z4xp<%b3V3TWH#}Am2YlE=qhCT7-g$}C}V+t1cev3=@Sj6BuJWOs;vcu^w%h5hV2W; zT`grSqXZl+=d%dIw&D-Ks$f&`M`EW(!C;$=ccXz^fjZw&l$%#t##oZbt!0d56be_0 z7}TB2LoI{z7ISN(ZRhybO}hz?7|VF$zxN=m8(iy-(p9dwLqt!NjhEII z{bglr`R`Pk^LZjdDbHx+zwunKzmo;I?u5lqoBu{TT6S_BiIboViad<1+@s%NWEXD}KhD^-PD1iImCo+)HSt0u=gz{2ZdX8{B@)4!4|-!6jis zn5hPU@^g!Y-0+l$tc0Dgj_^zZK-y~gXg}z&(czc*!4KIHZ!-9iaw0nfRhL)g2Xak7 z%NHWb-XKKB@o@{2ua$m8IvxV7Mi{fR_?;E7-R{_knGWZkIc6~Oo7*56F-tNfP4fJ7 zOx@fDY4<27#1Is!{SYIm8!r*c;mob;(uhWNw8h1gLO+d~hvQeGm zdl5w4edq2qushUsRG72!i!EBl;66EV_Zql*e>_Ed<7~0_5#wQPlS?mo=3zMRY1TubmucX$xB2uq-^(`-fz!wA z4~4$wZ(}{LpPBiTWHjETmxM_o*PiBe@b@wk=xcyE63l_-E%+Z~YB7xh(-S2ZnxCLH zSaW1U%&(M(n)8r%n0c5%-P>&BbGRu*4{SutBRO^Lb-~6G3zZfyNB143r%X4;-j92 zbWR3pD2zw{WSc3|!YV%c3U}IpVaxM_+v!hTlC)1?5jlUfk9ae)N726gFzg?9CAR(E z8s}H&bIuhmT*lhwe(pA_(7oXzS0)_#418^iS>Jk~YfFEPTU?oSRl=dg@WD33Y9o7J z@?2wgiRs-5t%$kdSJB2kO=!alt~$qc%Q8H)$aPid2jj!?Fx=ltXYjbfm0`EILV3aS zE)luN*BwFUPLzxN;BI0EEtepEv?JS;%?}ezWM$7p{yEL$KM6TiPfq@iz-2yW9`llu zb4!Mwc?(L^!Po{cxDxY~ZkhlNKm-ML0IUX0N8fAXXAWcC)9FeCl6mR?_QAqt3}7i; zDv$*rKNqQJodMP&nF6^0m%yc>E*ooF6?BN z|7naDK}qqEap_RUJx$YF!BR)5aqZi#K1z<^;-qOOp2}IXbQtsVR{8P6W5Mw~U5W*( zDZI~VjkWrH&NWnn5mGO=I2^-}K})|UW>`7T^SX6qHt@=YOI~$2fghC8OQ`(=N&0I! zo!IF+*S58FV>Ts~obz!+Jd4|0m4+Q2_A)oEYQG7_q)tP>?!sTMFZ#G}S zG%@e->6@Q9E{T}SL1XPb2&sk&c09yB&o}QfcRX`(8pi7de<15&f{`6!ENp>c`k??~ z^bcrMA$U0<-l7oiB*gTM-$wDeEFt$HcH#UY;Sao9bc_o85Q2r-s~7%eDWkJR4@ zUdIqG>ATeOw|7a8ccXSVi%$#f%@6jO7@C_O97I2=W#;l!z8_7D#OajHSH>@jn(^;I z+$={^P&t`#J4P`2hZtnz_l2}?nUtB-wBT!%qz@-@4-O{EBpb}N+ppdlA{1$l?@BywxIO|;iN*OP0!>boEhoVIVc=bZ& zI$|{4-}eU?8}?HO@R{@>Yd{ge74W9iiX#XiF6>d3pQztH)b*^JMAr{9OcC=0pT?Z_ zyTn#+RY=$ndk8g}cPR&^6Y*ortRf^#H+xWSZQ8YyuwfQKT^ma~{tE-@=SN)xHHp-| zZvyUOM${0DX;lw`m!?;T;&=?XI%L)02Xb}DYQYcW>X4SSzUW zYp7#4%J?a{HRP}ZxizF^{FK}p(lUNZZVhRfUgg%1mec$|ZVhP}pY`GdSH_#lts(s$ zpCz}3w2aS^TSHpLXUVN0E#tG~){vI*S#oPg%lIt0HKb*HmfRXrb719_TSHoAR?4j* zEi;Sc){qV|OQi0$dd)=0cpKkLB}DPejjaB@xrNV&>G7nPWDZeC)U;tNTABBW6VhzE z_;BW2ykpo-&RTr4l8DmHDKq#N+7TE-zdRl@Hcfs7Vo2~HcVskRfu;9}vHpXq<@96+ zF^!gs{9pz+zsmQl%I$~vwp`)|!J3FI&m`Dk`YL`ItN1;>w+?*L$1arWWTNJ&JB6{m z2!SG|%`6e6GhuYhG-@by3=v3evHkR1iQ@i%Vv%{5@2fE4 zT4K3~IfXH(ikglB@$FLhs^aTv;>jw$?*co-d*;=#pjBm=zKWM;<}8r!i_CLGv{f|p zf^Cou^&)BVcn?^gjT439NSVO2$Qk}5_nzW)?gS$onpB>aq4^$3+elNaC4CnfiGBGJ z`zfM?=38e;-VPD07+51Hq>tev=Uuodj(_*3k(alp}zpp29b%Fc9Af z!&-*;#ca8>T;l5ylFkh}YJU7Aua;GzPxph|GQ#OJXqID2ga6C;4v|jP{wbu7;Ug!F zb|d2p$<)gMVK}`~Topp?c69t#<69L{yGW>s-^p2qnoHuZ{7K%F`5^Bp;{U+sq|YTA z-Y{V#Hw#`!af}lu6yJrpCtMsX~M3=#UCSH6dq<3deAbsjY5B@trz&9sB9y98JeQWgA88Oz;BBzX4 zrX=2lo|^0a1e(4tJ@M#OR=hv8k0Z%Q=?*^RZ82}<+p@exMk$KqAFv6E+3)X4^Sw_U z&f`asY{G!0?E=EuELTp4?GCo=1#L)E9Y}*nq2EK2W082bXvEE;+=ViW~?pA4LKN%R7IiiA!IINuC&!z%>N+R(Zvm^<@$}^widx}gS?sy{Z6^sPp{tJK23V8zh zsLF%g83X_`;~)Nsm!p}@YSi#@1XD!a0=)dj+7Y^r5v=g-`qDoujpkJ2TRDI@?k?eL z6Z}TZ*Qg1;=z*NXVg_=YpdS#Te+Bw$u!uW7k_G!{D#^Ke>Bm#ZIfhAF693`)p?pC5-8$Z@Rn)8)g&BE4+AQLPeuy=R z*o*l)lCn7CS`0|bFs-S<2Z%rY_|0j)*&j5|4AJG~DI7t>Ji~G2cvVCqp?CqFJU7Lyir#e%Vf$^b8?A zlZETAeDwgSlnEmKEd61+(0$OZOEHS*9^qakI!7Gv9Y0GatB#kr`bR-9PnJrKdB|_F z4|<(tBCxGnvuTV*3!~=#q6o+t2hfLEO=}Y0JWA5qY^&!0++6voq(2`9C(o2^X0n7&^OP}DrS7?;bP zMfkbQH;3}SD}8fXdBl6&H$RXKX!1?N1D>~>13bQbC}KL2wqNF(x8=yrHya^+g>Qag z<4wDQ8@U4Rn`tmnyKzI4(a3orRdJ1LVYc58Hdx#fdccpJWriWF&c@r7#_046}-RGMj$Z)@JX2UKg zQm3H%zrn!LvuJUWTVBET(=a5wG+zYwp6|+RL2p4%`aP+#3Wib3Or&52 zq*gEqqhjOZU`UT{O8j68y43OvUk{UpW2PVltx=gaVAFaS;>?rpS#0I^0QCDTxIhN& zfwb)@n3cM{j-+|94vmUBvy*@eE$8|{6Pl~s3lq&_H-|RHQTB^nIw`u&H?J}Fo>>4X zPCr0k&He;+Y5Qqxj2XD+qzzL%b+Mp~ zl^|xF;82zuKWBpPo4<+sG)J-^Ma*7&8#Pt;z>+iEO)D9=dGQL|Q^@E;-7C+;-FiJmuc+nGqc@ex% zHa+=PnpyP`zlo@LXF<=ly#hwCyBeLQp9a*~9GIs5#DQaT%R zdsa&)!ta`G7k!#$(vIi1gtSyi?YHm0v@FeRK_buG6Axv0WoanG07l#LaUL95K8|JT zSw0SDtSui=9E;^+EG;bF_Yk#hTQg1Ucb)Kww(YB;9hLtvSp9n2+dI?D z0Zg!;K3;P{U=G3R>#lt7rdH-lhQ%|LbZ^`J9R=HV-_xmWcO$j7-2sTB?d*gof^@X= zVNr7rlzlUR$rCXjfgLrO_(d#Trr2F*&Chw+H(TJzGZPsu-)uuT{*(GLsQ6vl;kzk# zW*hB&Gg@h_pg%4p#Bt7@yL5~Ok1_G46i|=V&jnlk82+jvEMxUc@s5f^a%_M4QXFQ$ z^9Q_4JIAp@z$?I8j5B+O>rNKH8jMwI+5_x^)CzP4xEW2)E<$~I0E1YEP7z)9_x&Eay~^F; z$4mn~`ldCjX2g69ew2h`21NRI;aWul`hM5x|2}bKqW>6|YZ+se3tNzVYCpdBS(kpn zd1&u>JxEDQYnK90Vc`eWOgMneW+z&p$l=S-rB$JsPT4wC8zmmTUarsN>!D zwH!o+>cl4Q#z+-sl^?WW=IGeh6AFt7qbYxlAN0qdwEPg^GV@5>dKCM3ByBfg>B*=8dJijSMPwqva-YbMT<$9e(DoxX||F!4aGI=B$W!tN;vL<}tKZj!FQo zM=h(QMo&kkfj6@2DgR~hj**aO4b!$+&93Tn_5*n_|AV6S{(hRgn7?z^^J02AQ$_I@ zN~V=Igos?@e_N2VWIWu9`CG&bvOI1Q42jXJD5Ss7M_Nya^zVFhjI9pG^l@Ao)CM!r zv`i*mmR{`qTk%Gd*W^zBLxi#J1(`p~Pzk(#6AqM)PzOtj+WM;2OqcoqXRPUqlx= z<|U9ik0n304u=0%;Pkt+MrgSv^;dyYdIWP%5BNwc!jL+5=0bFeX*e4NyUGnTo=0FU zqc~BP8&@xVKbq&v!rpdtdNVT?91&VP?H>qd1?}IaeP|0`aAQx)NZbv{w2Z_Dz=WoT zkoa>#1uYl)!F`KeEHn~Nz>I%>IC2&F!HsB0W1(VZEE(lSAW|hJtX!%+{C_r*8 zU+)Kxn0T)#CVkF z%k16Y2ghTuDodjuY+_B~a`F%@t5Z|kSnvX|jJie$PRA&|lAtq&<>LZXq0FFR zFskKDGK@t4S)H!qDIA%c$}>&p(^RkdGf{Kqp~SpSXRwQJd!sWaP^QsPS%Lalq2tZM z(V?~!i+_i^>=7uS(C_qQoMS!o{? z7UIzvC+(!%58lP?XnBF1)CZ0Nr^?re`ustNU*iYsvA=TpzSa-k2yL{1%Qj*8Ij$=( z2R;y-4cOd`&dD^v8(w^<*azOX7Ta|?@-xSWOvoa<28}5fvhF5-P7RZv`8|DT8(C__ z7$yoaJhqqKh&bJLFl1h*4HNzj;l$yin=|dd3>m>+6e~+FXrw{!e zJ=KJR(ccgDf}(zp&NhU;U?gMe5z=IJ8pfE)?N~*jE4dx3Wf}HNSnc1blssfQB^?n^ zQmziy?tJ7rqk4fXo^7F5H841P0nQ}k^l`K8;aJOiuz#hk(~6ffn+E+mZIYBH zgBebU{-L*KLfpV|J4p0~5`MeR<)!Ir8|3xoBwfiS%Wb&4bg_c;k+kS`D09^7)R^U` zPZ6*e!g!s&0xSj0k)NiW+3E4DmQyF?m*`IHZn<<#7czXmNg3~+a}FYm>@DI2R!EEGDSBg==wXT85;!G%Yi9si9`*ZViXA5JT}t!}-t1>UDa&ou8g1 zU{AE^b^0#DPwxSkQvjIPiKmAH`PtlXBAAqznhs;h;*&c*6AKD7YtF zDCu)8Uiv(W?c?I~?6WlK7ybXSc0U5+rLUkmX93-nbb13OB-gL@fJ(%hX;=vpePLS5 zFyRy9^b^mB8qT7nmQh1B)8_#B9yL55bfjF^%nOg?NfQi0=@&6`S!uLf%&627T*W#a z1q%|7sAge7ejwH9#7jRIdRf9mT>N-kOVVCTUiz6-x7R8!=P-4T8R@a$JvylsMxZtp zU2BLYU8g4sya{zFcX*M%F?l|7O=2IT z<-ektHqP~&K_Tr4mGYUG`uK2&_d&8lELyM}YtrwL@-&niN_idw(kM7cnO-WSx*&J| z&QG)?m1=^*s_{)1N)u*E>=h>QU$J+$?bl1cPiVHmuG@5eG#ZR&ghP?P#J6f0kw56- zzDJj_i{a_7X#Nt?{6lDNk)Auh65B0~N865!;Qun5BV-%!e=;16*+<%NX;~7=O6g z%-Frz43f-S{l32++(lb053u2&YC(MM8Aa;&((ngYP>i!&dhr*fBu{e1H&XJ_K46w- z<@_HW{YX8i0hCOGy4QC`}|| zxy2I5&l?Fp(W6N)9PhUOrxSi--YQ2qAvYAYJdY4Glyw1m3X?TU{NNuUP8A!Mkg*H> zpzR!|k7}H5h))- z&cVd^KEB>3W{(OA)wopH zWbyl~Ke28Zv5ZC}@G=f$BKjFe@EOVYmwl85^7MJ5ShU<|L z@lD1K^kHVggzshk0%Mv6<3T=Fde0xB*1Kd@n}PV@>V=C_iwDJ+V8%Rqt?-cvZ0!PW{fot zC2GC^Yf_*HU;}I_AbFB^7!?J|0FK1emFIGRpPAuSe*jr@slWn&55lz05&-U0T9s7* z6o>Pp3ZU|1N9{r%tv-vy&OYCx82?y4KIOyfAhSBX9`j1y2Aq8>Q>el3F@)H>nP2D~ z6UEf{+}h|dimIZ}SeR)2&`x+;;xR;3H_V6xVqW5EWUDPUsAXP&(2?;_acbc+F9dkA zL1sZ{HFW^h433(^3V@WQ-3=fwiqo2V0OVeU&iPdUW8ptP_2_ zg*eUi@h7FE|44n7y58LnRO?gKBIs`I#dEO=dkXa860ESt{Ca|r{>bEq4M6TIL8nrZlf6J3d&FE554 zoapeaobyV#n6MVqBz0V@3qHdTl>eDr0f2WcmyzEGN5^+ImoKqYEwc>$`$pf|U^x+2 zg~MNfgAW~46}k2a&T}p0DgjPXA4X*9DL~}=q~98T%aNf|nstO;Xk5!HSPG%9^B-$?$PWaaIa-FD^}$#1LzN2RLvgKbDP zSiY~}jtDbwqLgd7M}_vMOBrp>VLqHHgPW zTkXX9uX_>6hNM5rN7@_MQE?tmiON%yp=#s>=xTJR<{?;8QL{)Ez=)PR`$0qaeV#p5 z)k)T$^bMja4ywF?MN-Qnn;BXWLsP{JOCJseHP?>GN!jH7gMr)KlLAwkFBE4?}O%5l0J&=s( z5oJ`5C}ZZi8;K@OHVyO41^DP9a{)GA<(pjmc5Cw*)vZj{o^p=agKyGI0X?UiESyXm zGlX(Gb1?SQfD~_`Oq0*!3^`QpK+=>h^SN!=gD*XEGjjXpQM%yPK!VAdcOYNzWX+jO zVn4sNZ-&r|XSSYAYVkKlK+8QFeANt}!fzZ^`P zLV!LPZ`~mP4ef}!8KoTpl;!xDIjHbcQT4j^er7pFt*hjEfFaZjKUCTP91?Q83E*2; ztA#axb9?)QZWAH3-+vG8_&$Ug`DPAsM9fQ+qviuXW5jizV&q<0w_(A5S9>3tsVY#r zxOpwNX{Hu@d()k(+Oj((I`!jP~u_?frU zSOE#!79f#QA~?%@g}sde>j7G$IRzR39wByCVjBRaVA%@nVC(P{Q%29@`xD}qQKPCa z0k{OxIwQ9byKlnaE}IAkJBZz5ov{1A+KBxmyptPAmk6Qle5lpz`Reo_l_hB4b7WXp%7p_RM@j46RP(U_b z%R;5fj_ROr6EF|pA)KIEs_dvDVK80~&@PNT)&hLUNKD1LBI^JQ6If@=dVpO7K-$kn zfPKR@n*d_4uV|YAX5kGLZ7aZIVZgNw;0$Eeny&$lL^cJQ0QNzx3j74{V5k8Zr87gc z-vIu@kSUr+Xfrw-<|x2H0A~x=F@U9EKWzY(LBM8Q06xO%l|X014ahSv*gDg9b1e8m zHo#cBYB_q(s<{_d#I zD+%4#uxr(rEE#u)`{NR9A=Vq6|CNayE)!c!>}U#UM>Fx-=jTL&S&Xq#!d~{r&nO#N zl2$&IL`D35Chx*qBHpz$Vx4rCkXHv0^U$jioNjK8%>IkOi0DH_#{BDGE|v0vf-~L4 zFuKfc`#G6`Xzw`Z9nE%lnlcY}Yd>9xBPzmuuv;@1xiW4(a{x}{#p&>#1(5TUGyBc} zBOZ1>z6(GqiF|>k)ZD!0a_H zsvbsztL|~{Mv;~J=a~+W#rfr0&)Up1fWj@#v>1a-c`>p2>zNEl`bN6TS(oHGdhb7& zpsBPL3O|OP)Fa{MzI@f$KpuMwSXQIU=N%v{q#6nq`oY6c88HK0umatA60r^IHE*5@ zQks}Re`7#!QQ)BzZB9=pa2PA2cm)1%CsrLxkj&95z8Vkv86AITiOr~G5il8CK9K-v z1+DsSrs#jgV|ZVSlH|fWZ@-Y58)gwj?b(}a%pIum%xO;w!h>ZXm>HE!3A0czOth~& zZ+SIOK&6@2xRV%|gV!LGS=J7o%*TAw+ANz%L~c&t`!;4AJ+?K^4wsiT9MoOng&8l) z9tg+G6H|nPXN$v%R^5Z#tN9X2ejQ#aS+Wevj@vRyIz&~~6Xeu&S@8Xo2Q0@E4&6q+lzfj`)MP6Rr{ z+)vw~W*JfpGv)BJw|N4+4L8$>Qb(A7qvVlh6a9`d7gD>Axt7n-=3?%bk1?CT9BXdp zn{noLz8P;GLJvjeaN15V{pf3=8O!Is=23c?WGWe#$>vf%_cNcOjVb0d;@@I36+ZVj zZ#DYf0p=z6oN8u6VVc=Y`9SkDG!HUspntGA0BR-XSUwLi_n?78%`D2(&7tUghFOiy z4>RwAUutfmm&45$P?%|!q17YIU3?yCjz|ATnfbIj+WZ^LW6V?N@L2N``ajN`fVGsF zCU`sEtcThO=2&<;(R`1tW?7Scs06#;Yf3Dm?*I%qV>l6ppE2OyVvKsl?|QoQ2c&bc zn(^?AJkvr%%6J%k|7}FybKA=N-bW2vBHg!n8ZgpsvVHN3r!Ritwy=C@uAc=7eF+Tj z(`9jKW#q*#Y5L-qz{?L`zKcb8e(Cr&5pQEp%>BbYW_fL8bSiB>lvxH?Qz@^gOM%su zUk?>f4&S`Kc~!&sAFo9P@=G7ZpIkErD$i+6b z;W_b{YZs;6UXkUqCJX9tUjk;plIfzC5jsMN4i{UdUx5|sisT_`kuvbmg?e z`Mh0*zet;q(@2})`NC=0C6>&I%ITN}uIMKqbii&-4`|8h0hZHiUAyhJ`;zRVXtm8B z4bj9ct`6pfwS6Bt0JgVlyS>cv^_2s}=(ej=iNV#j|NR74tXYi7>*}Xq4kBrLnOjTZND}PHq z_#-WkvMmcPw>-TDgG`F&l5znhW2tcDB^F)LqH=3R^U9B|Y*Be(i^?fAEh=wW(!Awm z%Ue{gU);R%v#VQFez>SvB|Hrj)35J=T;8CP^FLHO0fU3TvBgBuCi-u||B@i8ajL>0BYi_VS zWTITZ^q;u7?N?(O6)i2PBDAEcq*_u%Xh}ON)RHWmSnG)W8}G<4ZmSS)Jt%3E4^wM< zT0qBCHdcu75315iFLB3>wsxb;ezSbX678p-_9HW1DfLris@GM@Q|f~(oM?TMZF{0^ zTb;b(ZPBiZAVTKX-EI+v>55YR4tM48#zV40Jr2nhJtlh9S+tAca8LRa28VQ1=EJJf zq{=K`t4bWwNzIJG+H!|&Ii702bVh^c{Xz#rNB_(O4Lcb++6`7+rSLa&bd2mPKEAec z^$&vU#;&GvY+HgC1-*j2yDZ@s5yLNi4qx&qGk0Jwv7(Uhz+OVwD`;}KeO1b`Y3vH{ zZo`7+7BehxOf;#I$R1cGwk7|4jNl3rUVh#^w%7jj;+MWSkDp4zo@^W={gu!$FwVW%ihGI|3xIn0-JWd9?oU=XsOi^^-5LZ1gHbQ7ODp)A!`WW<&|>1DEkYU`qFKk!+x%+!kK(p7L%6Bp)u(CP zHiT=FkFl*RXcNK>N%^_Cg4Q9tEqOaX#$1pd!aI`UQ3_%qTwN)1w;%}Njf*AuT+m7# zHvMl}EU%y}h=%ay#d1-wz=Uw4`qP3)2-j8?v0EJmGU#21%Fr= zwQt9G3Vv4*RhIw5D*k2k>X&w6oPU=!b!SAHhpGfrRYsPVNo&AzG)e8z`yvaV&h)-T zPgz>kY7K4Yd*0u%}erfnxj(=QNMIC-efQf)Zp^w6LxU9(vkRC*Pn7Bl=#)P zl)xL)URT+56^qe1p(A+K^7p3lH{?n-Jw%HcYem7KEE(1jM3&Fc#Z&9Ng2Lx)%d0f} zc%N9bh}OfeX(8D)j-#riigt~2A-gIDT!3tfoA|>KIudSSaFs4o!&itl0k>4VvmAxp zpnkvO3%1YgXjE4Hc!xv%0Uf+^8EFOtoETUDwK?HxiXGOSC#PUd`Vs3JnHHvv8e9Iqi+eu-r ziO4h6MC5Nar@4kDLH^>sQ@at07b?vyEimUoPyXUlc4JO4_xBY(%id~EGxi0^5dPxl z?8ZFD{H&N;93~DQiFV-@2^BOJ9VwJrH9_#Q^-B&241gsRDy_Wy|0R;;tGLr_lc4KJAx;a~Zcf0%DtuB-9 zz5H@l+kvbq8+j-WM5Bqq&|4%5-JIVvPpm#s=;r)}dEx>rn7Gps`LqiYndu@A$R-9K zK7-!peqgzNhR&G(J1S&%nb=#-QY;+tOp_Yp90{}$WLiMFnGu1x0<4~Qhx zUh}!F-J`Yb^(do@H%B%87 z?-l!UNrt7Vwle)=Qqsk~j0Nxwm3QI*fjg3XNIdL_zYcMnM^&XP);S0J;;(@(tP~fW zb5IB`t8BcA&ZdSN;L9uJ)?v>6%1h#o|5#2XPNwl=$<6mudAuScXhF@-w!RR+FTDkR zTD9`MuFIOc_^!)zxFgHUWu@-AOtgzB%od$k$jfhVbh4Gs=@|AmOoI`fLX#QMDWoBH z4n}l}?y1Y+Y7Hn}eCc>*@34^+X@Q&mRJm{cKt(-yTm+!PfzNYH0#}BMS`cWf8^^Y3q z)K+re>%3TPWIF2i1{D2fTQLTxW(NZ{GKXaQ#r|0A5NT(ME&zvu4LIZRgLroFVw+hx z!nNHj!b{pkrfK_2Y~@y0nH2HR+D)jU{dIm4I^fnPe`M>^{%Xy_05>KFeM$Xt3u9*I zkoIYRrJ^HG-@;v%O&d>Evj|&+o~~uFMmasz<1xq@!1Z*=L%T^H-ctja z4;|HGp(_4Q6hFLICOzVc9<9`{Mt7A+SR{`J^6xg~`&y)X85?b%)ZLNz5{lA4gP>st zpp1#vcZ+MdSy|6vx_p6wN50ZkQW{ch-VjhYhfc9rE1>e)%GmxNgp3SOr6hbJU)#z< zTqXH`sa&a>fyj48rUd``HbiY>G7qS4Pk4|&|JKyjj^aJ4=&V*2vp+5U(mK|(A3yZH zeWnW!;SlXJT@@`%toW9bg6YrFG_j{^$+@Peudecd4`?{!@j<}Yahjz|;u^ZqkI4T$ z%fVx|FE5@)R&~dKstKX|<0`F|-yurul&3QJhvydYHYByOi!YTJM@h_9OYr2EF2%9^ zgoa07+}t=uU#vW1xsp5{eewPUuvJj*S~3x7`8>wBhSu5N$&NFWHv7AyEB%XGSezqjHBp>S!rzc8x^suhdn*?~AfQ)EErtRS?0KarSdV7bz z5eM?4g1bi)Q2LQcA?XT0Z9SmAoo)QAHr~a`{3f$$!~m@h%>hsvCmI~`!yx0Tisd(B zMhpyHQIY&?i~||csw_+ScBT9*BYRE*Csk@IP0-xds@!Q#TSe%(>^5ID+~G9vTcynGmop@4#C9qY|H2ac3kQ$>a1@-)rqI5 z3MSris4@wut5L@=_N1G7D(b4_t*jnnPnGqL+S=qcl5S&9b6|C{BP-b0(;c{@;#Xnt z3<3E!ps2m&g3Ku5oO6sYdE86k z(2aX39J+m3;m5t?!lQ#b6FH1~NqcPF(USNCdgx-6hH&FvcD9cmGOl7gm+}w>tR7&Pn z;?dk(360h3$aR9;+!v`$tabg#@8hADbrtduOYU%qbOE2MkcSX+_g0We{*UQ8U6O97DAgV#5-j4bA4{A5bt0?@beqG+s0p^T)#AXmTwOb4h^+8_)yiJ zEMF2>4L|^X3uxNtP`TTmsCErsuvDk@Bd*MtAq$p-K{rk1v}n3rND4~w zZ67Bo*VPRq#F2OGzAe1gzD{fFtSj2rd98X)LXK51ak?Y4KZL|LO1^*WBq77F)l{k{ zDt5l6s!~1C{tj%io@lBAwhX2X$;M%xLYUfWIx^{QdR1Pv+P za*ZAnZlr&CxVr7W5{&?^s~mj-;6wovo%&k(xpc;aTxCNO7kwnghqaavr*s%x+sV>W zn5*e$8=nTRe(5}1!@n@`_BV#iwZGA+u1;gA_BU!Qb(d>(IIUo(Hu)v4xBWx%V}^jM zl3mzfx35=YB)K`jcCnKF{L&`~+48aL?42!wn4L}sB^t!+)Kl7{TtjIN*?OCO*8m4_ zwavcU2$ zfC5mtU_Y}&7m%GsjDgi>(-K{sc7{iI8W$n4ZLj zyUIvlL5yd~nhF-D-@cIoG8PxH~ZIN9fre?nM6DDFH(zj-u zMR)+fFP)9%Z}=LF8L7oE53|sbC<1Lw2l*~!wY~-)o$$<=@ zBvUCC%PNqcRb(;uQOs9Z@Mq>gU}HF~`fhagt|_&?8+BdDb&Uqm2oIzgwZ5-TluZ+f zTvypvSB8FsGQ;t6J+4oQK+zcwZjGfC_`OMLJgX{Yy#$sgnJ}h0U0s1c1y0OygbA%Q zdR==PxV66AfJE`@Dv#&fX*XO`dE;|j53AMG5p0!Bw1QrwY<+PbH*QEnWFMtjPKg*P zrr6S>wWI9O+BvQv_Y$R_#^hqgEc^JVOr=DltDG;I5bxK_D}3wfSZJiKDY<*w1Ne2a z*}f;TuVrqsMctZg;T7P%X_7_Q4uW6$Dp|^LblKz0-AaAaDwXv>-jq&_3lG;>oxU0B zwBG9UO{>!`lP%p>p^I>}n%U^_Ru~@Mpy3&?STEMn3Yh%Pws~ej!*j$i%Im}&$93gG||hZ3fWhVZ!K@m zR*g!oWqc4Ds>@qd<;%pc<1=J-QTw`{n2gV`?DcIrz>+#j$2emj-sOz>WslzNJx5#b zDL(oX;y9{wlO>ChY^#7}El|@t5(9Q{qHvleyoZ>cS^iV*V)6&t>M`6 zj#5q`nkYKKZ5cFAQFKB`M`9{l=k@iDu)SmD^!^|IH;q`N-Q<)yDXKd0d)s<*$8>Vq zbQnn7=Gt9DkH}oF7oghhpC(Ty;3JC;LSKMxwXZtT_7YQLIf5QuXySh1u4&Eox6xhF z4>|CoEpAd}`JCmV>`M}Cs=nZ_%haji5a2dCuTT>m58UDn31%KFK#H{;%J7v;||Os@v0Lu#Hlj( z)>nQpTR`0{jC1st*vYmbDZ8iE~U;donpvNC>c1HTeLnxuP=l!KzE+L3V){(xI}ec%faCgt^kWxEf2d*%5= z`oJ>Ffp4pnEtrE7{Z6nQ@3OPvx#Z(0t^0`Z#9(Vuc4Xa$=?MWwQB!&BO5pzfi$yvd z#qtiu?xS|EBJ%9jZnz=2e<7zuqueTzUwE?ZEnSV~Jq+e_mdoyYgyYkF4;`Oy>FU0R z$e`OE@ygxz5Pz6B_!LW|48@_!CcX6(MgjRnvu!OSiuDf&xGaGa*mru^#lD&}XSI-E*|V zP>a=X9bvsqqpN!y9#Lv_rTVSgS~?{tfOGG|wQ>E9cO!w_!LFS0oc6*lP? zHzw=Uo^54f57%-kEyX!RSg$6X;$LAou3aKFI_XGX2q8h;l9<%b4B@6Fa?51W;UT=P zLMGCrAtBsU@yAwRms^vtaP3Io*6M$e*E(-`?UFA%fGsO?sPUQdLBEqpi=jl{L0<-QssPLiK#D1i4}H`y$j*h3V+^ zb6U`<(aVIBF157&=_(zq9SfD#vXEBQBBgbiqh)U%ekRj`J2B^4x)-X&z0RO~NnDw; zpAlyfdP~3-{s7qdg9j_+@mpYdu#)+{s&eO5yPKQkD=PoRjiZp9D6fdy7Yg8PWo@JiBsB5r$F zF2r^()k+4iZ~anRf4d4-2vbMT2jS6FtV}UAc&epGqt01BSa})y9qN^<vV5KHzgO?+D7f>_lcf232)bZ?(S~phTYhm09CG=TFoi}yD0aD$_?W7=h|+^ zU1$lH(JixUM+*l#pztDFTTU$w_I!d^hA!tLy@i!B&yT`=_B=g;PSwtqr50paYq?41 zXg#mAhGR~b5-jDPpzB3Q3(z@Oy>aAf@!%I*MnQ5A|RWbx(GQrya-vXnUcwI z*`BhPR8`*mqYvJCd==o1+QX$Pd#}ywv~cETL~zwWa)wN_rXV)DQQtApDTB za*9qxCA!Z1&`JVV6j&_3dqb@*NjEq$_d^CF-iJ!eoX8`bT$+eulX8&PNj`8X8 zv!mHR+qS>Cwpgc#UTb%1|B+P(khB?Duk8P5=$g3oQp>J{uBxUMYtSaUbF*PCYf#B$ z7JCiYe(56!cNs1vd!@^@=y62$N)eA0Y4$RXXtGyIKR{)2E|k4e-Tq0A%q_Ol`pU)= z;b`qnFyUccX%-H$xXuDMAkPC$|LKQS1~ME#v|*MS&36F$8$y2Yy8}|;VMh%W_4WK35k~@b)<7D z;G?KR%1%X(8G&7ns4*$`V}Rd5`H7Dlp(KPD#0?d4A2ia(7nXqSelXJ8KatBXz%@x( z9U{5DJ8v)k6z3A@;(tN>mpFg9WomzP2yRvK9|Wn9?*0dK#NC){Z0+~fd{$Lli7`YH zx+W)nc9pnE(RY*Pwc3Ump>29&++~Eo=v#KZr8Qp_dDAug$OM19?OP_jWLPLlh{=)4 zO%}7GD(XNyoc#4%FX4$G_FUg}7z_>Y?yz{@XecuaoKhU`q%$<62we%FQ);aZW^8rh zIM?`88cXI`e3lDzmbkk}CL5llLY-;% zwxHFpP!;4tougf)qqXW!p-%n6mZ1)#-*mqv$0TGLtzqPsvD?Y1OC=g8$~YySSZxtA zt%O`ACIZV@5xD}>NIdH*U%^Z;xvENgJfnxGbW-?$ZCi$A`=!gT^t>|MahLqmeFuta z3~a+Cga+(^C1EPF#a{u+hKiix8cXL0VoksFA~xcgzvDa-DLNFLQPtT%K4Bz~C-kbd z_lgrnyfI=w+MLqeP&yJ59lK|0&Qo-h>XXw+kpRmHh6HiRl7~5?wQ!=>W0p`qSYqIJ zsm+WXq&qy|b(P`+#t!i1P(v0Mxe`8hFAK^E{q3B9jveL8=_}}sNl6OrhTmN>5j_BF z4Dx~N>lv%%#tJ3)xNZ5Gt6kiz&u3j-gRNWFq9uNyWW8BP0YIndwUx_A zf&=R=eU59qiN19i@=wq!uMCODT$xDYQ>>|c@lX>TIt!%hG*D%Z9N#1!H*Ul`QxWIMh9vN#|VlOot zck-}GcNK#sXy2%6RZ?$6kFt8a;swj;-Byn~?6XMw*r$zT5JZoIoE{TbzHG67M`+Rd zl2M$j4>~BsZdjt&2ZdViTlkvAKi;|puFju_Tj;(aHJvG{4u}#oHs4?*XiogcwIeU6 zbLw*mm|s^35>2mLnrKLPXwZ@GzB%M!lX48~Mt(ru8x~&7zwYg=B42cM58ArJuXvlfj;YI7b#GcOI_QeI z7!DpLpy~ecZcTg~T0>P*Rq?T^0&Cb+aRTXGP}N18@s=f2oNiU~;Oo@=%c|y(&9?4Q z>#C~%U+&>Q?%E#c+Uitq_UKqa!-tmmFamqO^!-yKUOnSEC0%}8DV#-9(%md7m)|d# zk}h!(iI1;s%SM7Ozw`xy&a2pX3_Y;LGhqj6OJb&@MRP+BbdO_IAKf!YaNUNX>S%pL zEChEPC689w+Qbmo%{_F3n_G4C5{z@`VzC3j-wu~N_|SQ`&QP%C*vh%kJ>DhfYma<@ zRcUBhDH9Onx?`)D5JQhnTClqEPz-UXK5ZT^6d*~TO#5l8h*91 zUPlA!nvR}40n~G)8~){Q*=4I21CXpHaFV~izl#FJgZ2GgPo@gWyy4nFj$ZxJ^H{m^ zSqF>v5)%lOUA&j5j0CvDEzwDK=TE-(5h~vQun=$m!vrsJyF;4*nz%1f+y(|Ok7p=fQPYrXz z4U3kuzD&)R1KXbj;$`x z>H5%>o_9HpYwAfUQBHEA+@gu7sV7O7k~>`_5oZd#c9C3pPJuOxR1`%{6uB;TF_Gb5 zi$?8J&z5Kluxeq}!L*#~L}{|3oZ&>-wD3q~-PF@u?dF9`G4-jZI`HyEpAflCJ=uX9 z7XCo;P$A;Drv{bl$ZS0GIy5654WJC5AG!($#J~&m2o_(t-7h_Tfs_)CEqs z+ZRX8)>+)|vQ8&xvxp))5G|rBC7?Yu0KRq1@Jvg8Y3I1|ZQZC>C>#d4AT;r`+ z49mrq3i)}Dc6+DEd*~A9=UK|`h@r0HSL7Y@;_sI0T74X9%!?}i-468#JLwzk{iIhS zOwB~c-j>W-^dwqbA~~utueuco2^#uXgsJF`2ZmU@pJSSK|IOS@i%Z0%s|;eLz)s)!TLxM#lWH$7vg3J_AbI@4(3y>2=q7KKZuZA7bh)Y>6>@8Q z{K7DYP$56pJbqzshM1|ntwK^);}^P>XiJ5puEsCa)Kz48mYxzXl*|>~be?!F2f+)4 zA)vf}<8j6>>@TKr!XV4rZ`OfrsF=;ZXZ#|0iw2g{SRtZ}U!)cnDYU3>F$bvIu|yA> zlbQfayzMHFv9ocVKIAw4GPj&^<1haoK`ZEwcr6&9eoGaYI_*HnzNL zvT3n+$?&epYYz7l%U}IsS-{3$ti1o)l1^PqIv{lCF0*{x1~G>MW?!k3VDheShu|^T*KR} z|6Zlfq)od+Cp%29)LRw68XW)PklS12YD?)Xr37+Sg>3Anou&D@MD9e(()Tu*SG7>G zkJA>0lvh>C&V5>WxRbBd>m0k`?MtTpsP)=&(h>U<8%}g~*NDAEmsj7R zd+jc_Dl%4IKiv}RN=nKvy_8UYEa&5q+LYB(bXIS#^#QxY^NvO0?t#VM<1m^Qt>%sx zu&hqN+ZJhJy4F7%hm!cfb@W|FHNU!ZBnF7sB@y%c&pB5gNaL@wq>aDn6IW+kIKI67L>nD91R)qbD`R zO~+doO#cYnhwZzJxCFKE2FYXJ7c#PGVH4q8=NS#FzaL@FopUfpzE-?;l~Yud!i5WAZ6ZSR&7atZdVxkjT@%B+y`d{m~ZPEsIs> zwpev`=yk_1iJo}qm=?$z=C?p@XpWqiacm3R+LpNX9%ZtIpAWw}<`K zoTL42xBZ65OD%Hk5&%wc120d|%@tSve-(?!v}K zeWrWz^&xn+Jb5dPm!8-A7KgG3Fy@Sl$gLA#~3ZHQ2W>0d6|) z?xNINm>M1G7N#k6tMr{I;aivzHRo7DuC`idmVF`vL%hxJxSknBpN(GB-V>y+;nriiWb}BcPxUSMxlm8Kk z9y?2(A)Q<+dh!w%E^X2AhBHMo%{pH6r;Zmj@Aya8IP7?#td*&bS*0J={=UV z3PvurWOq^rGOSWxV{nB~m3W?B5{jBjLVYWi8Wz@)=@#A0hTk1TMMvtpjiM4GS9{hW zItwp%kq;KY9fHlj!Q?)q&fwF8 zpHEni&6{JZRAoQbyHHi4W^ay~y$QBpiP#(h_cGfZt6?papyeh*bu?ADMQ;(9DLIDj z>J(Q3lAda*kUP2JNunb9(gL{xa*^R?LuX%Xpj*^=GY418fBj3U4fgcm(!zW2>mQKewU@fJC`O@UzYA$+$ z^~cEgDbdP{$CLu^XI#YAdkk_T0)ke>MKZ!h4oJ+bF_|qTf2PYv=Bm$6MX%MEvYBRf zZMy3kKOc=DzvlcK5bVg&CO`818k2ievJv47&7JI3 z)iPrcG4YWTJ-EJ14deuGwbM{`9RBCXKe^LUJg8UBRMR(J@gwIyVu%L_n3CB#RWs+C z%-?KgUojFaX{Y;$)r>sX6T+tH&5#^HkP1$R#BS+5gs;Mpeb`0=zkBz#rDq_zg zrzs5WpC3=CxM^zpieITSnYQBPCeu_**$baG**BVSP2D*v`%0~vW#|hg_a4L8Lub7t z@>!*lcOq}TY;xc1rqXMgy=63PZFJ?cb4assp^WyCPwLfe;O2!bohe;s!p{dcn8JU` zP~?h*Eqy5bqKDjCJp7-)&lp|*;I9VR`kBpVB)WU83liPEmIdwIy%S!wHJOo6KR?0U zi)??xWLw|3dXhTXdRtlM%1Q10-9B#{+)akm@(GE2ET5OiN7cOcd|YP>&oPCY=Oplf zUO4@mKQi=}0`M#&vAm!8chFxw3#fB3VEc&^P-bIq;RYse6kjZSGoWe#{ z-h&S3{hY|$PfW>Ejq_4-#ybp-ygIv@s?+BS@*b1d3-CemPh~Ncr>}lGku9H@l5(nx zIvXYy6E(?uR=yMt*fjB_Fu2c%rx%&^c>;TN6FU*W$XjoY#WHO+e_`^EheNmMLISPw zuTuvRrr5ep9dv%}o4eWK?IU=Pv6a(^;PdW`3;j+j^x6q3$2&!iNV#T$O8HJJ&xMPA|p1ad}h*cBbVbaJmWxY+3JN0;P)YiYfm$vbvKWUFN+8+7%PqK!}yIVnK zYQ0H!mq;>F_LX6LD3%c6R2V70Z>3yir2MYF5fK^GVsP0{6x{05RFIp5cPBFEJCo@% znaxF-`JKt!?+24P%w*P@%$<@6p}HdN_Z_C+&-&5eUT)@$FHRkWLCEXiS^dVza$Yyj zuLdJB=O=?qkBaGOI#p{8oA=fum;G#Vrx^XJJ5`3QcikqE)M|3&vI1q7pQ>ux%^WYK zd4^Vo37-AcB6l|xRTwUMx*J51ok-2Eh88<~LaSk%(%R3X)i_T1>T76C+h&mQlmxkM zoVF;(J%vNI(CWLxWY42Z$Zi=sQ-;hTdKxtHnaz}VE}4yEwW1+jMNMP1qQOQ0PUJp! zFeDx421Bd)6h%MYL*IOgqK`6s{mEyLM_AgYJc(zKH(E`x6Zvz%q)92~iR@Res-1s{D+l$Zeby>Yp87ijY)`itn&c z);GXv-)^%78z@LqE26TO(LcximJR~0)V+)T2N)GRHQCf+gEfu%G<`f+(=cD>5%XmB ze2cpKU`-&^5K1#cv2LzTNc#4+G;VG?Li=0PujwiBTFTnLy&ZWl-4NPg=JuVlW%Tzy z#2Z0PWukBW4|c!f=SXe0gjy?RC)C<%!aj!mH!Z5IwYs!@txn|0y%H$3Y6vkdh?a}m z@&BPkwUnwBCQxEUu#X{S%iY&mO6%jOJnM zQr|fi-Xe$fGu2O_u@Gv|gMW6~h|JmFWZrEuE6dxSItI5wmsj?!<48+(0-+i`9N-ap zEs~H~(LNL7Rds;LzLG)g7X5}h`0UL{XmDI@NUGYP8S>$AK>M_GfqZ+s4a}F%k9(kK z!Y5OZ`w&;Ufz@+u>=XPd55}u_9;dJk%>067O{c?M=|YA_R$&C>IGFwFTkUgmcd&Ns zbc8Yz>6&92Aagz%X9E)FYd}JcsP_1UuBb}n1&e%^k?Idoai}{@H+NSecl0-;j)oLM zu8OLXEs~Oel~L8QMbdoff~cz5B55CBYkA$@V9Lw=p)(LVm;-F^^_&nQ(DNC%UEU})_#Cl2->nUwlk24@^psDC% z9kx&W+2>5h{sh%i_XbmNjUBp0tqk4ZnkAh;?(YmTCB;W^i$<37{cGYfnH}Bph{Jkz z640t(iF_dkP^Zs5ZCRo)8iEtcn3=34G05X3_ycI7KmBtLHWdjnSN`z}F2lpd0=GZ( z?iu8Ki@eoRZf}tPYV(dGkA63A0AyaQxAn{=Rb!9`?hz3;w5xJ!8#&0fR7vk$$o{0o9b5s z@H!+5g^6tK2mSFYl_Z6Z)7Lq|U{-3^z9ah!xAI}J_~pZ}xqRqbcG@HsRpB&QHAK4F zLUSpEbh)RoiWlP2&xe&rk=!NEZLE!zTV2&D}?qAX306!AGc&AJvGvM zFn)JF9l~5~3og@wU5H~XXTHu%eA5=tD=ZSVxm?p4YHDpBB=R_(Dc8p)eDL#l{FtN` z^e_8*zH0vGK2d#4;@0^;5O*P8TYje{bO(g6TQAI)fLZXL`js`LnSY_F=MrV|X2OB; zFW4%YB#IwwEtkghZM1lcktPqGF`s>m<^}aTN)q1;nlETr-!~XqOsU8}Y@rJ&gw&sn z{UVHYw9C4R*mK1c9HQRB{w0Qw-E~4FbGFGu_R@yU<(Gf&I-~QvOAO8BBeETVJ12pF z^E^&8p$6D!)fz^>lh>6=m+#9FZ&UII;00w+rkZ6_*YuFH`;jIL|xOB_yTK+e^0+OyhJtwd=hb7lkDDZ81^JcCF-;htRHv?Y9Ql{JwEi6dWXkSn5TBdF&LpBNI5 ztDH+Z^lDwZU&bD^R9Prqiqpt=#9sW0Au%q>kuesG3Q1PA;<`LQgjgH!EzfZ2YH zF+;(;5V(zX*ICRT!L4m3ZL7D1TB~-1ETP8GtBI+N+p0D$@`WX2UteAs6EzKf?Kf^g z-}=R-9y)}6IgbB*K)|xcU%amF@fWYFkK>GXkH1`vY{)C9*(Q)GYrm393=IfFqX%)U zzc74HUKck`Bt0#cyLEteGkB_;$+IBW!7ZJWXa`Su;!>4h#xp3q3~B`A9?5!(}HU|YJW6FrLmb? z{SQNl{%O`5Jiw|6Yb~-IlP9w}x||?i<~RPJ*&V4h$loL)Z#Kx4>Xc=+n9SannQE(1 zFeufRzp?{LKPkhi7C&XtfFG4dC-Uv(20LVws;*42cY4^H$`pHtU#G{&VOJaMbD0yN zRaL6kodY6E;Act|yOX~D2HafQdNXx*4E#bX%zyn`t~DegsJvTLgl;sm7oFKP(SM0Q zmRuPVH=b;9V9>(~eKi<(GzYLEDN7BpWHWx6%BL|gX7)55jXdZj;qlB2Z|zn1l1xPD z?oo#dGySq|Fr`nU?QT&HDprG43Z5KSF_NMdY@pw4Ft@4C-ve7ekbk2e^}*4GvGTGy z>6Op~ZWt>YHEr+Kqz8`e|Pe3(t8M(>(eK-(;g1RrBAZ^G84K8;i809k-iy$caq1=w5;@ ztMTa$dOO}?l6D|8nh$@y?Fqgi`uTl|s-ENnme7q5f{$9&z=Pf~n*)Jr+bhVG$+20N zY4LbNQ~9d=_$itFEh0(ReQbp4$xWxojL$T zbdhnktjt=tw*?hXQSvII_k2-rrJ?*Rs2nLl2jwe4!-o6BFNCsrvUs>RfAFd-A#k$A zr=*u_W1BD~7LN3{#O{U|Rq5vnhaIh?01IW~cv!v%>Ia90cPAjheumYb9F=Sa8 zTST7@8|A?ju~TMK`~(kfjRsbef1<)-)K{5?+^T KHOGN$_NI?OhxglD1E4Vpl^N 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%0D*B4sW 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

    OwZQ8s%e>oO;#(1M| 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�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�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 z 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%0A#cw-UxNo9mAB;jJ`YbG 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≫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 z zD9DM|u+&8Anf<8_18xLhVAy(R8zT@WL=dp(PjrXmW7XTQqX26}G)|64d91 zH>74bsYUJ@ab5bX_v)b1r5WJ6+UQ~D zaJb2^raHaK=hYg$JOiOs9O{wNFpPFG@*2HlYdAEK)A;6bOu4*{ zl^%n%zM2sAz9+;@1`=DeNZmDmS4wv4K!wS3;+m|6OYE{EoX2Ax#6Uz;-1Ei>ZOC_i1DU9eI-!adjP{OonQBMw7`e(dw zA^89g2=Y)3NtiSvz?de8R5^DJYg_fsKgD1eg}3 zX$#u1K37|(;gm0J-lY)+PdC&+V%a_8oq(Spx}<+_2MTA|Nb4Nj08~vpS_p>>p6Yy6 zb?amJ*l{&R44+K5CD0oTR;vT|mhypoBz)mkApf0zhPqa$N z;vp&T4Ne-&S(|HhCk>7*U+yCEa$t$?^;7D!lNdAYVd*k7cZyZWXXCg1X*m$jzmz)0 zgG!Edsuu=Io}Lgb70ge@`16w;903w#Ie+L>LcrolXcOl0#EodI)(!?11c%~G05*7W z#X^A*C+B%s;E=N{Y8KkaV+U~IzYHz)nq{-u)aNlDP2}RJ%nqX4Ac0sfglLB;98?&k z=~F13MuYRI5KOK5 zSG2=cX&67O%2khm$WxqI}A2b3D4>~ex(XDqG)r8fWHTbcV z1quFj=KzBq!wuyZQ*!?DP`;!-*PnWV!_es98iO6NYrvU#NbsXcB{7^te0d@iY^QR& z>s#6G?ea(>3~=H~UCM3WS`0DI4=EZ7 zZpuW7j#npq?()2LbmZd9^}UMas|>A(1oQejToFGU)np8lOgYABYK~e!k3A6 z8aiNInNIFOgZ5BPGgJ+!hjT?7u$kt`_19z&L0S8=_CD^j77QZ@CQx|SLAbw!gjR&r zv7|5Qsf2jY@s!R2$&JMrZ~q0V#Gii$#OVNUGOSrQX%C(->o~jc4B8705|IuDRzgw> zFz2t=l4_D)bW%$A=vtS6fy!XAl!QX+v5C?_TPshVfAk#U$^RdJ9{>pd-R8iKZd;P8 zBS*N`(fto)!@rLpaR>f+{r8;ydycRa3gh~NN&0T2KZbu^f9dumkyyH2eu`gQ*WWww z!@T*+zkBqj_&k2!fB*f7*T3<~l5lRkq5@l=&|e2v<>TeQ3if{j{d-?s5`}wTRlRrh zNAmp;u2cKJ3EIB{{bR2!iN>+lrnH5>rnGQ^V5$j!~K6ON)^QfX-azg z@7&Z1zjO00k$mTTtl;a-Q@@XkQ2*#<)jxV!_3!cJa0=djum2OL|6xz)p3tkyYH9n# z7d=OQQ~Q4gD)aaH+dtnBx$PfojeJ&8^?#}TFM<{7Kj-wHbNa6NR{*L0FBAReo&NJq z|Cm-orJvgW5;&}r+a2)rSJeLNFRJ}Zm8M>#_4gZ)X}@n@*I$qI51)zw()`&?S$AH4 za2H#2Q4Id6`M*VQ{P}$SugCd4cwznz98>)V-c|j-h<5#-*Y}h+aY35Tzxb5u7ynZI z;*(xdf1NoM@lUu4^Dj;~{o+B9IlNwp>V-Glk>9~@sDJop)jzzh`uA{f4*pX6{|a7Y z|B>n+{Z{p#UjIy>jmsqezk!sNi3(o-4A{M&Pdwp``zAabV=l#f{j8yjS2K~S9Jt7L zKh?j#L4Wxls(;~ySR+mq#e+^iE&mHYI4xPSeTIKt-~WCK7jX$y`sxo=fBJ}a>@R`* ryRX#!$dCUk(2r|a^$*`%lZz`pBPC~beZE2eb8oBu!^dOv1g`im$sxuT literal 0 HcmV?d00001 diff --git a/data/fonts/OpenSans-BoldItalic.ttf b/data/fonts/OpenSans-BoldItalic.ttf new file mode 100644 index 0000000000000000000000000000000000000000..9bc800958a421d937fc392e00beaef4eea76dc71 GIT binary patch literal 213292 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

    JU{jq<7f203t|Ihq? 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

    93Tg2c}Lc^2oc3nPS$ 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

    r{ZX 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 literal 0 HcmV?d00001 diff --git a/lib/libcurl.so b/lib/libcurl.so new file mode 120000 index 0000000..ffbd1ec --- /dev/null +++ b/lib/libcurl.so @@ -0,0 +1 @@ +/usr/lib/x86_64-linux-gnu/libcurl.so.4 \ No newline at end of file diff --git a/modules/Jaison/.editorconfig b/modules/Jaison/.editorconfig new file mode 100644 index 0000000..df550e4 --- /dev/null +++ b/modules/Jaison/.editorconfig @@ -0,0 +1,16 @@ +# EditorConfig helps developers define and maintain consistent +# coding styles between different editors and IDEs +# editorconfig.org + +root = true + +[*] +indent_style = space +indent_size = 4 + +# We recommend you to keep these unchanged +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true + diff --git a/modules/Jaison/.gitignore b/modules/Jaison/.gitignore new file mode 100644 index 0000000..bb3cc91 --- /dev/null +++ b/modules/Jaison/.gitignore @@ -0,0 +1,4 @@ +.build/ +*.dSYM +/modules +examples/example diff --git a/modules/Jaison/.gitmodules b/modules/Jaison/.gitmodules new file mode 100644 index 0000000..b0f4f50 --- /dev/null +++ b/modules/Jaison/.gitmodules @@ -0,0 +1,3 @@ +[submodule "unicode_utils"] + path = unicode_utils + url = git@github.com:rluba/jai-unicode diff --git a/modules/Jaison/LICENSE b/modules/Jaison/LICENSE new file mode 100644 index 0000000..f2503d4 --- /dev/null +++ b/modules/Jaison/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2021 Raphael Luba + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/modules/Jaison/examples/example.jai b/modules/Jaison/examples/example.jai new file mode 100644 index 0000000..8e05ec7 --- /dev/null +++ b/modules/Jaison/examples/example.jai @@ -0,0 +1,391 @@ +#import, file "../module.jai"; + +main :: () { + { + // Use the temporary allocator so we don't have to worry about individually freeing + // all the allocations. + push_allocator(temp); + + typed_parsing(); + typed_printing(); + generic_parsing(); + generic_printing(); + rename_by_note(); + custom_rename_procedure(); + decode_into_struct_with_using(); + + enum_errors(); + } + + // Since the program ends here, this doesn't matter, but just setting an example. + reset_temporary_storage(); +} + +// Data structures for typed parsing/printing +LevelData :: struct { + kind: LevelKind; + flags: LevelFlags; + secret: bool; + player: Entity; + player2: *Entity; + union { + score: float; + score_v2: float; + } + entities: [..] Entity; + + floats: [] float; + + LevelKind :: enum { + EASY :: 0; + HARD :: 1; + LEGENDARY :: 2; + } + + LevelFlags :: enum_flags { + FLAG_A :: 0x1; + FLAG_B :: 0x2; + FLAG_C :: 0x4; + } +} + +Entity :: struct { + name: string; + x, y: int; + dirty: bool; @JsonIgnore +} + + +LEVEL_DATA_1_JSON := #string DONE +{"kind": ".HARD", "flags": "FLAG_A | LevelFlags.FLAG_C", "secret": false,"score":5.5,"player": {"name": "Pat","x": 10,"y": 10},"player2": {"name": "Chris"},"entities": [{"name": "fdsa","x": 0,"y": 0},{"name": "fdsa","x": 0,"y": 0}], "floats": [0.00, 1.11111111111111111, 2.0202, 3e-5, 4.444444, -5.0]} +DONE; + +LEVEL_DATA_2_JSON := #string DONE +{"kind": 2, "score_v2": 25.1} +DONE; + +Fixed_Size_Data :: struct { + data: [3] int; +} + +DATA_ARRAY_1 := #string DONE +{"data": [1, 2, 3]} +DONE; + +DATA_ARRAY_2 := #string DONE +{"data": [1, 2]} +DONE; + +typed_parsing :: () { + { + success, level := json_parse_string(LEVEL_DATA_1_JSON, LevelData, ignore_unknown=false); + // success, level := json_parse_file("level.json", LevelData, ignore_unknown=false); + assert(success); + + log("Typed parsing result 1:\n%\nscore: %\n\n", level, level.score); + assert(level.floats.count == 6); + assert(level.floats[1] > 1); // Regression test, we had a bug here… + } + { + // Test parsing integers into enum slots & alternative union fields + success, level := json_parse_string(LEVEL_DATA_2_JSON, LevelData, ignore_unknown=false); + assert(success); + + log("Typed parsing result 2:\n%\nscore: %\n\n", level, level.score); + + assert(level.kind == .LEGENDARY); + assert(level.score == 25.1); + } + { + // Test parsing into fixed-sized arrays + success, result := json_parse_string(DATA_ARRAY_1, Fixed_Size_Data, ignore_unknown=false); + assert(success); + + log("Typed parsing result 3:\n%\n\n", result); + + assert(result.data[0] == 1); + assert(result.data[1] == 2); + assert(result.data[2] == 3); + } + { + // Test parsing into fixed-sized arrays (incorrect size) + success, result := json_parse_string(DATA_ARRAY_2, Fixed_Size_Data, ignore_unknown=false); + assert(!success); + } +} + +typed_printing :: () { + level := LevelData.{kind=.LEGENDARY, flags=LevelData.LevelFlags.FLAG_B|.FLAG_C, secret=true, score=500}; + level.player = .{name="Pat", x=4, y=4, dirty=true}; + array_add(*level.entities, .{name="Chris", x=6, y=6}); + + json_string := json_write_string(level); + log("Typed printing result:\n%\n\n", json_string); + + // success := json_write_file("level.json", level, indent_char=""); + // assert(success); +} + +generic_parsing :: () { + // In this scenario, some parts of the structure are known, but other parts are not. + + json := #string DONE +{ + "version": 3, + "entities": [ + { + "name": "Player", + "x": 2, + "y": 2, + "player_index": 0 + }, + { + "name": "Snake", + "x": 4, + "y": 4, + "snake_color": 1 + } + ], + "stuff": [null, true, false] +} +DONE + + success, root := json_parse_string(json); + // success, root := json_parse_file("level.json"); + assert(success); + + log("Generic parsing result:"); + + // Print things out, for demonstration purposes + + traverse_node :: (node: JSON_Value, depth: int) { + INDENTATION :: 4; + print("% ", node.type); + + if node.type == { + case .NULL; + print("\n"); + case .BOOLEAN; + print("%\n", node.boolean); + case .NUMBER; + print("%\n", node.number); + case .STRING; + print("%\n", node.str); + + case .OBJECT; + print("{\n"); + for node.object { + for 1..(depth+1)*INDENTATION print(" "); + print("%: ", it_index); + traverse_node(it, depth+1); + } + for 1..depth*INDENTATION print(" "); + print("}\n"); + + case .ARRAY; + print("[\n"); + for node.array { + for 1..(depth+1)*INDENTATION print(" "); + traverse_node(it, depth + 1); + } + for 1..depth*INDENTATION print(" "); + print("]\n"); + } + } + + traverse_node(root, 0); + + print("\n"); + + + + // Convenience function for grabbing object members + get :: (json_val: JSON_Value, key: string, expected_type: JSON_Type) -> JSON_Value { + assert(json_val.type == .OBJECT); + table := json_val.object; + success, val := Hash_Table.table_find(table, key); + assert(success); + assert(val.type == expected_type); + return val; + } + + // Check for version number that may or may not exist + version: float64 = -1; + assert(root.type == .OBJECT); + success2, val := Hash_Table.table_find(root.object, "version"); + if success2 { + if val.type == .NUMBER { + version = val.number; + } + } + log("version: %\n", version); + + // Traverse a structure we are confident about + for get(root, "entities", .ARRAY).array { + entity_name := get(it, "name", .STRING).str; + x := get(it, "x", .NUMBER).number / 32; + y := get(it, "y", .NUMBER).number / 32; + + if entity_name == { + case "Player"; + player_index := cast(int) get(it, "player_index", .NUMBER).number; + log("Player with player_index=%\n", player_index); + case "Snake"; + snake_color := cast(int) get(it, "snake_color", .NUMBER).number; + log("Snake with snake_color=%\n", snake_color); + case; + //... + } + } + + log("\n"); +} + +generic_printing :: () { + // We want to write JSON with arbitrary structure. + + // Create and initialize object + root_obj: JSON_Object; + root := json_value(*root_obj); + + // Add music index to object, in certain cases + should_add_music := true; + if should_add_music { + json_set(*root_obj, "music_index", .{type=.NUMBER, number=3}); + } + + // Create an array of values + temp: [..] JSON_Value; + junk := JSON_Value.{type=.STRING, str="junk"}; + array_add(*temp, junk); + array_add(*temp, junk); + + // Create json array value + array := JSON_Value.{type=.ARRAY}; + array.array = temp; + + // Add array to object + json_set(*root_obj, "junk_array", array); + + // Print result + json_string := json_write_string(root); + log("Generic_printing result:\n%\n\n", json_string); + + //json_write_file("level.json", root); +} + +rename_by_note :: () { + // Sometimes the JSON we are parsing contains members with names we cannot use or don´t wanna. + + Message :: struct { + value: string; + _context: struct { // We cannot use "context" because it´s a reserved keyword in Jai. + channel: int; + parent: int; + } @JsonName(context) // This member in JSON is "context" but we need to have it as "_context". So we can use the JsonName note to encode and decode it as "context". + } + + json := #string DONE + { + "value": "Hello!", + "context": { + "channel": 1, + "parent": 897820 + } + } + DONE + + success, message_decoded := json_parse_string(json, Message, ignore_unknown = false); + assert(success, "Could not decode message!"); + + log("Rename_by_note decode result:\n%\n\n", message_decoded); + assert(message_decoded._context.channel == 1); + + + message_encoded := json_write_string(message_decoded); + log("Rename_by_note encode result:\n%\n\n", message_encoded); + + assert(message_encoded.count != 0); + assert(find_index_from_left(message_encoded, "_context") == -1); +} + +custom_rename_procedure :: () { + // We can also pass a custom rename procedure for renaming certain members. + + rename_to_upper :: (member: *Type_Info_Struct_Member) -> string { + return to_upper_copy(member.name,,temp); + } + + player := Entity.{ + name="Player", + x = 10, + y = 50 + }; + + player_encoded := json_write_string(player, rename=rename_to_upper); + assert(player_encoded.count != 0); + + log("encoded with rename_to_upper:\n%\n\n", player_encoded); + assert(find_index_from_left(player_encoded, "name") == -1); + assert(find_index_from_left(player_encoded, "NAME") != -1); + + success, player_decoded := json_parse_string(player_encoded, Entity, ignore_unknown = false, rename = rename_to_upper); + assert(success); + log("decoded with rename_to_upper:\n%\n\n", player_decoded); + assert(player_decoded.name == "Player"); +} + +decode_into_struct_with_using :: () { + Coordinates :: struct { + x: int; + y: int; + } + + Tile :: struct { + color: string; + using coordinates: Coordinates; + } + + JSON :: #string END + { + "color": "green", + "x": 1, + "y": 3 + } + END + + success, tile := json_parse_string(JSON, Tile, ignore_unknown = false); + assert(success); + log("Decoded tile: %", tile); + assert(tile.color == "green"); + assert(tile.x == 1); + assert(tile.y == 3); +} + +enum_errors :: () { + // Testing error messages when parsing invalid enum values + { + LEVEL_DATA_BROKEN_JSON := #string DONE + {"kind": ".VERY_HARD"} + DONE; + + success, level := json_parse_string(LEVEL_DATA_BROKEN_JSON, LevelData, ignore_unknown=false); + assert(!success); + } + + { + LEVEL_DATA_BROKEN_JSON := #string DONE + {"flags": "FLAG_A | FLAG_D"} + DONE; + + success, level := json_parse_string(LEVEL_DATA_BROKEN_JSON, LevelData, ignore_unknown=false); + assert(!success); + } +} + + +#import "Basic"; +#import "Hash_Table"; // To be able to iterate over node.object +#import "String"; // For to_upper_copy +#import "Compiler"; // For Type_Info_Struct_Member +Hash_Table :: #import "Hash_Table"; diff --git a/modules/Jaison/generic.jai b/modules/Jaison/generic.jai new file mode 100644 index 0000000..f437718 --- /dev/null +++ b/modules/Jaison/generic.jai @@ -0,0 +1,370 @@ +// Generic JSON parsing/writing functions. Result is always a JSON_Value, +// which is awful to read and even more awful to create for complex structures. +// But it’s useful for some cases where re-creating the whole JSON structure as +// custom Jai struct types is inconvenient or not possible. + +// This generic interface was the very first part I wrote in Jai and hasn’t been thorougly tested. +// Tread with care. There may be dragons. + +JSON_Type :: enum u8 { + NULL :: 0; + BOOLEAN :: 1; + NUMBER :: 3; + STRING :: 2; + ARRAY :: 5; + OBJECT :: 4; +} + +JSON_Value :: struct { + type: JSON_Type; + union { + boolean: bool; + number: float64; + str: string; + array: [] JSON_Value; + object: *JSON_Object; + }; +} + +JSON_Object :: Table(string, JSON_Value); + +json_free :: (using val: JSON_Value) { + if #complete type == { + case .NULL; + case .BOOLEAN; + case .NUMBER; + + case .STRING; + free(str); + case .ARRAY; + for array { + json_free(it); + } + array_free(array); + case .OBJECT; + for object { + free(it_index); + json_free(it); + } + deinit(object); + + free(object); + } +} + +json_parse_string :: (content: string) -> success: bool, JSON_Value { + if !content then return false, .{}; + + result, remainder, success := parse_value(content); + if !success return false, result; + + remainder = trim_left(remainder, WHITESPACE_CHARS); + if remainder.count { + log_error("Unexpected trailing characters: %", remainder); + return false, result; + } + + return true, result; +} + +// For debug purposes +print_val :: (using val: JSON_Value) { + if #complete type == { + case .NULL; + print("null"); + case .BOOLEAN; + print("%", boolean); + case .NUMBER; + print("%", number); + case .STRING; + print("\"%\"", str); + case .ARRAY; + print("["); + for array print_val(it); + print("]"); + case .OBJECT; + print("%", (.*)object); + } +} + +json_value :: (str: string) -> JSON_Value { + val: JSON_Value; + val.type =.STRING; + val.str = str; + return val; +} + +json_value :: (obj: *JSON_Object) -> JSON_Value { + val: JSON_Value; + val.type =.OBJECT; + val.object = obj; + return val; +} + +json_set_null :: (val: *JSON_Value) { + val.type = .NULL; +} + +json_set :: (val: *JSON_Value, value: bool) { + val.type = .BOOLEAN; + val.boolean = value; +} + +json_set :: (val: *JSON_Value, value: int) { + val.type = .NUMBER; + val.number = cast(float64) value; +} + +json_set :: (val: *JSON_Value, value: float64) { + val.type = .NUMBER; + val.number = value; +} + +json_set :: (val: *JSON_Value, value: string) { + val.type = .STRING; + val.str = value; +} + +json_set :: (val: *JSON_Value, value: [] JSON_Value) { + val.type = .ARRAY; + val.array = value; +} + +json_set :: (val: *JSON_Value, value: *JSON_Object) { + val.type = .OBJECT; + val.object = value; +} + +json_write_json_value :: (builder: *String_Builder, using val: JSON_Value, indent_char := "\t", level := 0) { + if #complete type == { + case JSON_Type.NULL; + append(builder, "null"); + case JSON_Type.BOOLEAN; + append(builder, ifx boolean "true" else "false"); + case JSON_Type.NUMBER; + print_item_to_builder(builder, number); + case JSON_Type.STRING; + json_append_escaped(builder, str); + case JSON_Type.ARRAY; + append(builder, "["); + for array { + if indent_char.count { + append(builder, "\n"); + for 0..level append(builder, indent_char); + } + json_write_json_value(builder, it, indent_char, level + 1); + if it_index != array.count - 1 append(builder, ","); + } + if indent_char.count { + append(builder, "\n"); + for 0..level-1 append(builder, indent_char); + } + append(builder, "]"); + case JSON_Type.OBJECT; + append(builder, "{"); + obj := object; + keys: [..] string; + defer array_free(keys); + array_reserve(*keys, obj.count); + for v, k: (.*)obj { + array_add(*keys, k); + } + intro_sort(keys, compare); + for keys { + if indent_char.count { + append(builder, "\n"); + for 0..level append(builder, indent_char); + } + json_append_escaped(builder, it); + append(builder, ": "); + found, v := table_find(obj, it); + assert(found, "Missing table value %", it); + json_write_json_value(builder, v, indent_char, level + 1); + if it_index != obj.count - 1 append(builder, ","); + } + if indent_char.count { + append(builder, "\n"); + for 0..level-1 append(builder, indent_char); + } + append(builder, "}"); + } +} + +json_set :: (obj: *JSON_Object, path: string, val: JSON_Value) -> bool { + dotpos := find_index_from_left(path, #char "."); + if dotpos == -1 { + table_set(obj, path, val); + return true; + } + + next := slice(path, 0, dotpos); + remainder := advance(path, dotpos + 1); + if !next.count return false; + if !remainder.count return false; + + success, next_value := table_find(obj, next); + next_obj: *JSON_Object; + if success { + if next_value.type != JSON_Type.OBJECT return false; + next_obj = xx next_value.object; + } else { + next_obj = cast(*JSON_Object) alloc(size_of(JSON_Object)); + memset(next_obj, 0, size_of(JSON_Object)); + next_value = json_value(next_obj); + table_add(obj, next, next_value); + } + + return json_set(next_obj, remainder, val); +} + +get_as :: (val: JSON_Value, $T: Type) -> T { + #insert #run () -> string { + if T == bool { + return #string END + assert(val.type == .BOOLEAN, "Expected a % but got %", T, val.type); + return val.boolean; + END; + } else if T == float || T == float64 { + return #string END + assert(val.type == .NUMBER, "Expected a % but got %", T, val.type); + return cast(T) val.number; + END; + } else if T == string { + return #string END + assert(val.type == .STRING, "Expected a % but got %", T, val.type); + return val.str; + END; + } else if T == [] JSON_Value { + return #string END + assert(val.type == .ARRAY, "Expected a % but got %", T, val.type); + return val.array; + END; + } else if T == JSON_Object { + return #string END + assert(val.type == .OBJECT, "Expected a % but got %", T, val.type); + return (.*)val.object; + END; + } else { + compiler_report("Unsupported type"); + return ""; + } + }(); +} + +#scope_module + +parse_value :: (to_parse: string) -> JSON_Value, remainder: string, success: bool { + result: JSON_Value; + remainder := trim_left(to_parse, WHITESPACE_CHARS); + success := false; + if remainder[0] == { + case #char "n"; + remainder, success = expect_and_slice(remainder, "null"); + if !success return result, remainder, false; + json_set_null(*result); + result.type = JSON_Type.NULL; + return result, remainder, true; + case #char "t"; + remainder, success = expect_and_slice(remainder, "true"); + if !success return result, remainder, false; + json_set(*result, true); + return result, remainder, true; + case #char "f"; + remainder, success = expect_and_slice(remainder, "false"); + if !success return result, remainder, false; + json_set(*result, false); + return result, remainder, true; + case #char "\""; + str: string; + str, remainder, success = parse_string(remainder); + json_set(*result, str); + case #char "["; + result.type = JSON_Type.ARRAY; + result.array, remainder, success = parse_array(remainder); + case #char "{"; + obj := cast(*JSON_Object) alloc(size_of(JSON_Object)); + (.*)obj, remainder, success = parse_object(remainder); + result = json_value(obj); + case; + result.type = JSON_Type.NUMBER; + result.number, success, remainder = string_to_float64(remainder); + } + + return result, remainder, success; +} + +parse_array:: (str: string) -> result: [] JSON_Value, remainder: string, success: bool { + assert(str[0] == #char "[", "Invalid object start %", str); + remainder := advance(str); + result: [..] JSON_Value; + remainder = trim_left(remainder, WHITESPACE_CHARS); + if remainder[0] == #char "]" { + remainder = advance(remainder); + return result, remainder, true; + } + + while true { + value: JSON_Value; + success: bool; + value, remainder, success = parse_value(remainder); + if !success return result, remainder, false; + + array_add(*result, value); + + remainder = trim_left(remainder, WHITESPACE_CHARS); + if remainder[0] != #char "," break; + remainder = advance(remainder); + remainder = trim_left(remainder, WHITESPACE_CHARS); + } + + if remainder[0] != #char "]" return result, remainder, false; + remainder = advance(remainder); + return result, remainder, true; +} + +parse_object :: (str: string) -> result: JSON_Object, remainder: string, success: bool { + assert(str[0] == #char "{", "Invalid object start %", str); + remainder := advance(str); + result: JSON_Object; + remainder = trim_left(remainder, WHITESPACE_CHARS); + if remainder[0] == #char "}" { + remainder = advance(remainder); + return result, remainder, true; + } + + init(*result, 32); + while true { + if remainder[0] != #char "\"" return result, remainder, false; + + key: string; + value: JSON_Value; + success: bool; + key, remainder, success = parse_string(remainder); + if !success return result, remainder, false; + + existing := table_find_pointer(*result, key); + if existing return result, remainder, false; + + remainder = trim_left(remainder, WHITESPACE_CHARS); + if remainder[0] != #char ":" return result, remainder, false; + remainder = advance(remainder); + remainder = trim_left(remainder, WHITESPACE_CHARS); + value, remainder, success = parse_value(remainder); + if !success return result, remainder, false; + + table_add(*result, key, value); + + remainder = trim_left(remainder, WHITESPACE_CHARS); + if remainder[0] != #char "," break; + remainder = advance(remainder); + remainder = trim_left(remainder, WHITESPACE_CHARS); + } + + if remainder[0] != #char "}" return result, remainder, false; + remainder = advance(remainder); + return result, remainder, true; +} + + + +#import "Compiler"; diff --git a/modules/Jaison/module.jai b/modules/Jaison/module.jai new file mode 100644 index 0000000..d92508b --- /dev/null +++ b/modules/Jaison/module.jai @@ -0,0 +1,219 @@ +// This file contains just the JSON serialization functions. See generic.jai and typed.jai for parse fuctions. + +// Generates a JSON string from either a JSON_Value or any custom type. +// "indent_char" does what it says on the tin. +// "ignore" is only used for custom types to determine which properties of your custom type should be serialized. +// The default ignore function ignores all struct members that have the note @JsonIgnore. +// "rename" is used for renaming certain members. +// It gets called with the Type_Info_Struct_Member and must return the new name of the field. +// The default procedure rename members by their @JsonName note. Eg: @JsonName(renamed_member). +json_write_string :: (value: $T, indent_char := "\t", ignore := ignore_by_note, rename := rename_by_note) -> string { + builder: String_Builder; + defer free_buffers(*builder); + json_append_value(*builder, value, indent_char, ignore, rename); + return builder_to_string(*builder); +} + +json_append_value :: (builder: *String_Builder, val: $T, indent_char := "\t", ignore := ignore_by_note, rename := rename_by_note) { + #if T == JSON_Value { + json_write_json_value(builder, val, indent_char); + } else { + info := type_info(T); + json_write_native(builder, *val, info, indent_char, ignore, rename); + } +} + +// This function is useful if you have a JSON template string and just want to +// safely insert a value without having to replicate the full json structure in Jai. +// The return value does NOT include quotes around the string. +// +// Example: +// JSON_TEMPLATE :: #string END +// { +// "complicated": { +// "json": { +// "structure": { +// "for_a_stupid_api": { +// "that_needs": [ +// {"a_deeply_nested_value": "%1"} +// ] +// } +// } +// } +// } +// } +// END +// escaped_value := json_escape_string(my_unsafe_value); +// defer free(escaped_value); +// json_str := print(JSON_TEMPLATE, escaped_value); +json_escape_string :: (str: string) -> string { + builder: String_Builder; + defer free_buffers(*builder); + json_append_escaped(*builder, str); + escaped := builder_to_string(*builder); + return escaped; +} + +Ignore_Proc :: #type (member: *Type_Info_Struct_Member) -> bool; +Rename_Proc :: #type (member: *Type_Info_Struct_Member) -> string; + +ignore_by_note :: (member: *Type_Info_Struct_Member) -> bool { + for note: member.notes { + if note == "JsonIgnore" return true; + } + return false; +} + +rename_by_note :: (member: *Type_Info_Struct_Member) -> string { + for note: member.notes { + if !begins_with(note, "JsonName(") continue; + if note.count <= 10 || note[note.count-1] != #char ")" { + log_error("Invalid JsonName note format. Expected a name in parenthesis, but the note was \"%\".", note); + continue; + } + + return slice(note, 9, note.count-10); + } + + return member.name; +} + +#scope_module + +WHITESPACE_CHARS :: " \t\n\r"; + +#load "generic.jai"; +#load "typed.jai"; + +json_append_escaped :: (builder: *String_Builder, str: string) { + remaining := str; + next_pos := index_of_illegal_string_char(remaining); + append(builder, "\""); + while (next_pos >= 0) { + append(builder, slice(remaining, 0, next_pos)); + if remaining[next_pos] == { + case #char "\\"; + append(builder, "\\\\"); + case #char "\""; + append(builder, "\\\""); + case #char "\n"; + append(builder, "\\n"); + case #char "\r"; + append(builder, "\\r"); + case #char "\t"; + append(builder, "\\t"); + case; + // ToDo: handle illegal multi-byte characters + // print("Escaping: %\n\n", slice(remaining, next_pos, remaining.count - next_pos)); + print_to_builder(builder, "\\u%", formatInt(remaining[next_pos], base=16, minimum_digits=4)); + } + remaining = advance(remaining, next_pos + 1); + next_pos = index_of_illegal_string_char(remaining); + } + append(builder, remaining); + append(builder, "\""); +} + +index_of_illegal_string_char :: (str: string) -> s64 { + for 0..str.count - 1 { + if str[it] == #char "\\" || str[it] == #char "\"" || str[it] <= 0x1F { + return it; + } + } + return -1; +} + +expect_and_slice :: (str: string, expected: string) -> remainder: string, success: bool { + if str.count < expected.count || !equal(slice(str, 0, expected.count), expected) { + log_error("Unexpected token. Expected \"%\" but got: %", expected, str); + return str, false; + } + remainder := advance(str, expected.count); + return remainder, true; +} + +parse_string :: (str: string) -> result: string, remainder: string, success: bool { + assert(str[0] == #char "\"", "Invalid string start %", str); + inside := advance(str); + needsUnescape := false; + while inside[0] != #char "\"" { + if inside.count < 2 return "", str, false; + if inside[0] == #char "\\" { + needsUnescape = true; + if inside.count < 2 return "", str, false; + advance(*inside); + } + advance(*inside); + } + + length := inside.data - str.data - 1; + result := slice(str, 1, length); + if needsUnescape { + success: bool; + result, success = unescape(result); + if !success return "", str, false; + } else { + result = copy_string(result); + } + + remainder := slice(str, length + 2, str.count - length - 2); + return result, remainder, true; +} + +unescape :: (str: string) -> result: string, success: bool { + result := alloc_string(str.count); + rc := 0; + for i: 0..str.count-1 { + if str[i] != #char "\\" { + // Check for invalid characters for JSON + if str[i] < 0x20 return "", false; + + result[rc] = str[i]; + rc += 1; + } else { + if i == str.count - 1 return "", false; + i += 1; + if str[i] == { + case #char "\""; #through; + case #char "/"; #through; + case #char "\\"; + result[rc] = str[i]; + rc += 1; + case #char "b"; + result[rc] = 0x08; + rc += 1; + case #char "f"; + result[rc] = 0x0c; + rc += 1; + case #char "n"; + result[rc] = #char "\n"; + rc += 1; + case #char "r"; + result[rc] = #char "\r"; + rc += 1; + case #char "t"; + result[rc] = #char "\t"; + rc += 1; + case #char "u"; + if i + 4 >= str.count return "", false; + unicode_char, success := parse_unicode(slice(str, i + 1, 4)); + if !success return "", false; + utf8_len := encode_utf8(unicode_char, *(result.data[rc])); + rc += utf8_len; + i += 4; + case; + return "", false; + } + } + } + result.count = rc; + return result, true; +} + +#import "Basic"; +#import "String"; + +#import "Hash_Table"; +#import,dir "./unicode_utils"; +#import "IntroSort"; + diff --git a/modules/Jaison/readme.md b/modules/Jaison/readme.md new file mode 100644 index 0000000..7b703e5 --- /dev/null +++ b/modules/Jaison/readme.md @@ -0,0 +1,63 @@ +# JSON serialization / deserialization module for Jai + +*Attention: This version requires Jai beta 0.1.080!* +Use `v1.0.0` for older betas. + +This module offers two interfaces: +* one uses a "generic tree" built from `JSON_Value` +* the other is a typed version that serializes / deserializes your custom data structures. + +The generic `JSON_Value` graphs are a pain to consume and even worse to produce by hand. +But they allow you to parse any JSON, even if you don’t know the structure (or can’t reproduce it in Jai because it varies). + +The typed interface is what you want for most cases. + +## Parsing / Deserialization + +Parsing is as simple as: + +```Jai +// Typed version: +success, result := json_parse_string(json_str, Your_Type_To_Parse_Into); +// … or if you want to get a generic structure back: +success, result := json_parse_string(json_str); +``` + +There are also a convenience functions for parsing if the JSON data is in a file: + +```Jai +success, result := json_parse_file(json_filename, Your_Type_To_Parse_Into); +// … or +success, result := json_parse_file(json_filename); +``` + + +See [`typed.jai`](./typed.jai) and [`generic.jai`](./generic.jai) for details and additional options. + +### Mixed typed and generic data + +If you don’t know the structure of some subfield of your `Your_Type_To_Parse_Into` structure, but still want to get these values from the JSON data, +you can declare these fields as the generic type `JSON_Value` or `*JSON_Value` and the generic parse function will take over at that point: + +``` +Your_Type_To_Parse_Into :: struct { + name: string; + age: int; + something_we_dont_know_much_about: *JSON_Value; // Whatever structure hides in the JSON, it will be parsed into JSON_Value. +} +``` +## Printing / Serialization + +Generating a string works the same for both interfaces: + +```Jai +json_str := json_write_string(my_value); +``` + +where `my_value` is either a `JSON_Value` or any other data structure. + +See [`module.jai`](./module.jai) for details and additional parameters. + +## Dependencies + +This module uses [the `unicode_utils` module](https://github.com/rluba/jai-unicode), which is included as a submodule. diff --git a/modules/Jaison/typed.jai b/modules/Jaison/typed.jai new file mode 100644 index 0000000..eaf8fa0 --- /dev/null +++ b/modules/Jaison/typed.jai @@ -0,0 +1,625 @@ + +// Parse a JSON string into the given Type. +// All members of Type that are not present in the JSON are kept at their default values. +// All fields in the JSON that have no corresponding member in Type are ignored by default +// but you can pass ignore_unknown = false to fail instead. +json_parse_string :: (content: string, $T: Type, ignore_unknown := true, rename := rename_by_note) -> success: bool, T { + result: T; + if !content then return false, result; + + info := type_info(T); + remainder, success := parse_value(content, cast(*u8)*result, info, ignore_unknown, "", rename=rename); + if !success return false, result; + + remainder = trim_left(remainder, WHITESPACE_CHARS); + if remainder.count { + log_error("Unexpected trailing characters: %", remainder); + return false, result; + } + + return true, result; +} + +json_parse_file :: (filename: string, $T: Type, ignore_unknown := true, rename := rename_by_note) -> success: bool, T { + file_data, success := read_entire_file(filename); + result: T; + if !success { + log_error("Could not read file: %", filename); + return false, result; + } + defer free(file_data); + + if (context.log_level >= .VERBOSE) { + log("Read file: %", success); + } + success, result = json_parse_string(file_data, T, ignore_unknown, rename=rename); + return success, result; +} + +json_write_native :: (builder: *String_Builder, data: *void, info: *Type_Info, indent_char := "\t", ignore := ignore_by_note, rename := rename_by_note, level := 0) { + if info.type == { + case .BOOL; + append(builder, ifx (.*)(cast(*bool) data) "true" else "false"); + case .INTEGER; #through; + case .FLOAT; + any_val: Any; + any_val.type = info; + any_val.value_pointer = data; + print_item_to_builder(builder, any_val); + case .ENUM; + any_val: Any; + any_val.type = info; + any_val.value_pointer = data; + + append(builder, #char "\""); + print_item_to_builder(builder, any_val); + append(builder, #char "\""); + case .STRING; + json_append_escaped(builder, (.*)(cast(*string) data)); + case .ARRAY; + info_array := cast(*Type_Info_Array) info; + element_size := info_array.element_type.runtime_size; + assert(element_size != -1); + + stride := element_size; + array_data := data; + array_count := info_array.array_count; + if info_array.array_count == -1 { + array_count = (.*) cast(*s64) data; + + array_dest: **void = data + 8; + array_data = (.*) array_dest; + } + + append(builder, "["); + if array_data { + if indent_char.count { + append(builder, "\n"); + for 0..level append(builder, indent_char); + } + for 0..array_count-1 { + json_write_native(builder, array_data, info_array.element_type, indent_char, ignore, rename, level + 1); + if it != array_count - 1 append(builder, ","); + array_data += stride; + } + } + if indent_char.count { + append(builder, "\n"); + for 0..level-1 append(builder, indent_char); + } + append(builder, "]"); + case .STRUCT; + struct_info := cast(*Type_Info_Struct) info; + if is_generic_json_value(info) { + value := cast(*JSON_Value) data; + json_write_json_value(builder, (.*)value, indent_char, level); + } else { + append(builder, #char "{"); + first := true; + json_write_native_members(builder, data, struct_info.members, indent_char, ignore, rename, level, *first); + if indent_char.count { + append(builder, "\n"); + for 0..level-1 append(builder, indent_char); + } + append(builder, "}"); + } + case .POINTER; + ptr_info := cast(*Type_Info_Pointer) info; + ptr := (.*) cast(**void) data; + if ptr { + json_write_native(builder, ptr, ptr_info.pointer_to, indent_char, ignore, rename, level); + } else { + append(builder, "null"); + } + case; + assert(false, "Unsupported type: %", info.type); + } +} + +#scope_file + +json_write_native_members :: (builder: *String_Builder, data: *void, members: [] Type_Info_Struct_Member, indent_char := "\t", ignore := ignore_by_note, rename: Rename_Proc, level := 0, first: *bool) { + for * member: members { + if member.flags & .CONSTANT continue; + if ignore(member) continue; + if (member.type.type == .STRUCT && member.flags & .USING) { + info := cast(*Type_Info_Struct) member.type; + json_write_native_members(builder, data + member.offset_in_bytes, info.members, indent_char, ignore, rename, level, first); + } else { + if !(.*)first append(builder, ","); + (.*)first = false; + + if indent_char.count { + append(builder, "\n"); + for 0..level append(builder, indent_char); + } + + renamed_name := rename(member); + name := ifx renamed_name.count > 0 renamed_name else member.name; + + json_append_escaped(builder, name); + append(builder, ": "); + json_write_native(builder, data + member.offset_in_bytes, member.type, indent_char, ignore, rename, level + 1); + } + } +} + +is_generic_json_value_or_pointer_to_it :: (info: *Type_Info) -> bool { + value_info := info; + if info.type == .POINTER { + pointer_info := cast(*Type_Info_Pointer) info; + value_info = pointer_info.pointer_to; + } + + return is_generic_json_value(info); +} + +is_generic_json_value :: (info: *Type_Info) -> bool { + return info == type_info(JSON_Value); +} + +parse_value :: (to_parse: string, slot: *u8, info: *Type_Info, ignore_unknown: bool, field_name: string, rename: Rename_Proc) -> remainder: string, success: bool { + remainder := trim_left(to_parse, WHITESPACE_CHARS); + success := true; + + prepare_slot :: (expected_type: Type_Info_Tag, info: *Type_Info, slot: *u8, to_parse: string) -> *u8, success: bool, is_generic: bool, info: *Type_Info { + value_info := info; + if info.type == .POINTER { + pointer_info := cast(*Type_Info_Pointer) info; + value_info = pointer_info.pointer_to; + } + + if info.type == .ENUM { + info_enum := cast(*Type_Info_Enum)info; + value_info = info_enum.internal_type; + } + + is_generic := is_generic_json_value(value_info); + + if !is_generic && value_info.type != expected_type { + teaser := to_parse; + if teaser.count > 50 teaser.count = 50; + builder: String_Builder; + print_type_to_builder(*builder, info); + type_name := builder_to_string(*builder,, temp); + log_error("Cannot parse % value into type \"%\". Remaining input is: %…", expected_type, type_name, teaser); + return null, false, false, value_info; + } + + if info.type == .POINTER { + value_slot := alloc(value_info.runtime_size); + initializer: (*void) #no_context; + if value_info.type == .STRUCT { + struct_info := cast(*Type_Info_Struct) value_info; + initializer = struct_info.initializer; + } + if initializer { + initializer(value_slot); + } else { + memset(value_slot, 0, value_info.runtime_size); + } + (.*)cast(**u8)slot = value_slot; + return value_slot, true, is_generic, value_info; + } else { + return slot, true, is_generic, value_info; + } + } + + is_generic: bool; + if remainder[0] == { + case #char "n"; + remainder, success = expect_and_slice(remainder, "null"); + if !success return remainder, false; + if slot { + if info.type == .POINTER { + (.*)cast(**void) slot = null; + } else { + builder: String_Builder; + print_type_to_builder(*builder, info); + type_name := builder_to_string(*builder,, temp); + log_error("Got NULL value for non-pointer type \"%\" of field \"%\". Keeping default value instead.", type_name, field_name); + } + } + return remainder, true; + case #char "t"; + remainder, success = expect_and_slice(remainder, "true"); + if !success return remainder, false; + if slot { + value_slot: *u8; + value_slot, success, is_generic = prepare_slot(.BOOL, info, slot, to_parse); + if success { + if is_generic { + json_set(cast(*JSON_Value)value_slot, true); + } else { + (.*)cast(*bool)value_slot = true; + } + } + } + case #char "f"; + remainder, success = expect_and_slice(remainder, "false"); + if !success return remainder, false; + if slot { + value_slot: *u8; + value_slot, success, is_generic = prepare_slot(.BOOL, info, slot, to_parse); + if success { + if is_generic { + json_set(cast(*JSON_Value)value_slot, false); + } else { + (.*)cast(*bool)value_slot = false; + } + } + } + case #char "\""; + if slot && info && info.type == .ENUM { + info_enum := cast(*Type_Info_Enum)info; + value_slot: *u8; + value_slot, success, is_generic = prepare_slot(.INTEGER, info_enum.internal_type, slot, to_parse); + remainder, success = parse_enum_string(remainder, value_slot, info_enum); + } else { + value: string; + value, remainder, success = parse_string(remainder); + stored := false; + defer if !stored free(value); + if success && slot { + value_slot: *u8; + value_slot, success, is_generic = prepare_slot(.STRING, info, slot, to_parse); + if success { + if is_generic { + json_set(cast(*JSON_Value)value_slot, value); + } else { + (.*)cast(*string)value_slot = value; + } + stored = true; + } + } + } + case #char "["; + value_slot: *u8; + value_info: *Type_Info; + if slot { + value_slot, success, is_generic, value_info = prepare_slot(.ARRAY, info, slot, to_parse); + } + if success { + if is_generic { + value: [] JSON_Value; + value, remainder, success = parse_array(remainder); + json_set(cast(*JSON_Value)value_slot, value); + } else { + remainder, success = parse_array(remainder, value_slot, cast(*Type_Info_Array) value_info, ignore_unknown, rename=rename); + } + } + case #char "{"; + value_slot: *u8; + value_info: *Type_Info; + if slot { + value_slot, success, is_generic, value_info = prepare_slot(.STRUCT, info, slot, to_parse); + } + if success { + if is_generic { + value := New(JSON_Object); + (.*)value, remainder, success = parse_object(remainder); + json_set(cast(*JSON_Value)value_slot, value); + } else { + remainder, success = parse_object(remainder, value_slot, cast(*Type_Info_Struct) value_info, ignore_unknown, rename=rename); + } + } + case; + if slot == null || info.type == .FLOAT || is_generic_json_value_or_pointer_to_it(info) { + float_value: float64; + float_value, success, remainder = string_to_float64(remainder); + if success && slot { + value_slot: *u8; + value_info: *Type_Info; + value_slot, success, is_generic, value_info = prepare_slot(.FLOAT, info, slot, to_parse); + if success { + if is_generic { + json_set(cast(*JSON_Value)value_slot, float_value); + } else { + if value_info.runtime_size == 4 { + ((.*) cast(*float) slot) = cast(float) float_value; + } else { + assert(value_info.runtime_size == 8); + ((.*) cast(*float64) slot) = float_value; + } + } + } + } + } else { + if slot { + value_slot: *u8; + value_info: *Type_Info; + value_slot, success, is_generic, value_info = prepare_slot(.INTEGER, info, slot, to_parse); + if success { + if is_generic { + int_value: s64; + int_value, success, remainder = string_to_int(remainder, T = s64); + if success { + json_set(cast(*JSON_Value)value_slot, int_value); + } else { + log_error("Could not parse \"%\" as an integer.", to_parse); + } + } else { + info_int := cast(*Type_Info_Integer) value_info; + success, remainder = parse_and_write_integer(info_int, value_slot, to_parse); + } + } + } else { + int_value: s64; + int_value, success, remainder = string_to_int(remainder, T = s64); + if !success { + log_error("Could not parse \"%\" as an integer.", to_parse); + } + } + } + } + + return remainder, success; +} + +parse_enum_string :: (str: string, slot: *u8, info_enum: *Type_Info_Enum) -> remainder: string, success: bool { + value, remainder, success := parse_string(str); + defer free(value); + if !success return remainder, false; + + // Parse by members' names + normalize_enum_value :: inline (name: string) -> string #expand { + normalized := trim(name); + if normalized.count > info_enum.name.count && starts_with(normalized, info_enum.name) && normalized[info_enum.name.count] == #char "." { + normalized = slice(normalized, info_enum.name.count+1, normalized.count-info_enum.name.count-1); + } else if starts_with(normalized, ".") { + normalized = slice(normalized, 1, normalized.count-1); + } + return normalized; + } + + int_info := info_enum.internal_type; + int_value: s64; + if info_enum.enum_type_flags & .FLAGS { + values := split(value, "|",, temp); + + for v: values { + name := normalize_enum_value(v); + found_name := false; + for info_enum.names { + if name == it { + found_name = true; + int_value |= info_enum.values[it_index]; + break; + } + } + + if !found_name { + log_error("Enum \"%\" does not contain a member named \"%\".", info_enum.name, name); + success = false; + } + } + } else { + success = false; + name := normalize_enum_value(value); + for info_enum.names { + if name == it { + int_value = info_enum.values[it_index]; + success = true; + break; + } + } + + if !success { + log_error("Enum \"%\" does not contain a member named \"%\".", info_enum.name, name); + } + } + + if success { + if int_info.signed { + valid, low, high := Reflection.range_check_and_store(int_value, int_info, slot); + if !valid { + log_error("The value '%' is out of range. (It must be between % and %.)", int_value, low, high); + return remainder, false; + } + } else { + valid, low, high := Reflection.range_check_and_store(cast(u64) int_value, int_info, slot); + if !valid { + log_error("The value '%' is out of range. (It must be between % and %.)", int_value, low, high); + return remainder, false; + } + } + } + + return remainder, success; +} + +parse_array :: (str: string, slot: *u8, info: *Type_Info_Array, ignore_unknown: bool, rename: Rename_Proc) -> remainder: string, success: bool { + element_size: int; + if slot { + element_size = info.element_type.runtime_size; + assert(element_size != -1, "Unknown element size"); + } + + assert(str[0] == #char "[", "Invalid object start %", str); + remainder := advance(str); + remainder = trim_left(remainder, WHITESPACE_CHARS); + if remainder[0] == #char "]" { + remainder = advance(remainder); + // @Robustness: Do we need to zero out the array? + return remainder, true; + } + + + if slot { + array: Resizable_Array; + + initializer: (*void) #no_context; + if info.element_type.type == .STRUCT { + struct_info := cast(*Type_Info_Struct) info.element_type; + initializer = struct_info.initializer; + } + + while true { + maybe_grow(*array, element_size); + element_data := array.data + array.count * element_size; + if initializer { + initializer(element_data); + } else { + memset(element_data, 0, element_size); + } + + success: bool; + remainder, success = parse_value(remainder, element_data, info.element_type, ignore_unknown, "", rename=rename); + if !success return remainder, false; + + array.count += 1; + + remainder = trim_left(remainder, WHITESPACE_CHARS); + if remainder[0] != #char "," break; + remainder = advance(remainder); + remainder = trim_left(remainder, WHITESPACE_CHARS); + } + + if info.array_type == .VIEW { + view := (cast(*Array_View_64) slot); + view.count = array.count; + view.data = array.data; + } else if info.array_count == -1 { + // Resizable array + (.*)(cast(*Resizable_Array) slot) = array; + } else { + // Fixed-size array + if (info.array_count != array.count) { + log_error("Expected array of size %, but found array of size %\n", info.array_count, array.count); + return remainder, false; + } + + memcpy(slot, array.data, array.count * element_size); + } + } else { + while true { + success: bool; + remainder, success = parse_value(remainder, null, null, ignore_unknown, "", rename=rename); + if !success return remainder, false; + + remainder = trim_left(remainder, WHITESPACE_CHARS); + if remainder[0] != #char "," break; + remainder = advance(remainder); + remainder = trim_left(remainder, WHITESPACE_CHARS); + } + } + + if remainder[0] != #char "]" return remainder, false; + remainder = advance(remainder); + return remainder, true; +} + +Member_Offset :: struct { + member: *Type_Info_Struct_Member; + offset_in_bytes: s64; +} + +// This procedure is somewhat copied from Basic.get_field. +fill_member_table :: (table: *Table(string, Member_Offset), info: *Type_Info_Struct, rename: Rename_Proc, base_offset := 0) { + for * member: info.members { + offset := base_offset + member.offset_in_bytes; + name := rename(member); + assert(!table_find_pointer(table, name), "Redeclaration of member \"%\": % vs. %", name, (.*)member, (.*)table_find_pointer(table, name)); + table_set(table, name, .{member, offset}); + if (member.flags & .USING) && (member.type.type == .STRUCT) { + fill_member_table(table, cast(*Type_Info_Struct)member.type, rename, offset); + } + } +} + + +parse_object :: (str: string, slot: *u8, info: *Type_Info_Struct, ignore_unknown: bool, rename: Rename_Proc) -> remainder: string, success: bool { + assert(str[0] == #char "{", "Invalid object start %", str); + remainder := advance(str); + remainder = trim_left(remainder, WHITESPACE_CHARS); + if remainder[0] == #char "}" { + remainder = advance(remainder); + return remainder, true; + } + + // @Speed: Building this table every time is pretty silly. + // We should probably either not build it at all or cache it somewhere. + member_table: Table(string, Member_Offset); + init(*member_table); + defer deinit(*member_table); + + if info fill_member_table(*member_table, info, rename); + + while true { + if remainder[0] != #char "\"" return remainder, false; + + key: string; + success: bool; + key, remainder, success = parse_string(remainder); + if !success return remainder, false; + defer free(key); + + member_found, member_offset := table_find(*member_table, key); + + member_slot: *u8; + member_info: *Type_Info; + if member_found { + member_slot = slot + member_offset.offset_in_bytes; + member_info = member_offset.member.type; + } else if !ignore_unknown { + log_error("Missing member % in %", key, (.*)info); + return remainder, false; + } + + remainder = trim_left(remainder, WHITESPACE_CHARS); + if remainder[0] != #char ":" return remainder, false; + remainder = advance(remainder); + remainder = trim_left(remainder, WHITESPACE_CHARS); + remainder, success = parse_value(remainder, member_slot, member_info, ignore_unknown, key, rename); + if !success return remainder, false; + + remainder = trim_left(remainder, WHITESPACE_CHARS); + if remainder[0] != #char "," break; + remainder = advance(remainder); + remainder = trim_left(remainder, WHITESPACE_CHARS); + } + + if remainder[0] != #char "}" return remainder, false; + remainder = advance(remainder); + return remainder, true; +} + +parse_and_write_integer :: (info: *Type_Info_Integer, pointer: *void, string_value: string) -> bool, remainder: string { + if info.signed { + success, remainder := parse_and_write_integer(info, pointer, string_value, signed = true); + return success, remainder; + } else { + success, remainder := parse_and_write_integer(info, pointer, string_value, signed = false); + return success, remainder; + } +} + +parse_and_write_integer :: (info: *Type_Info_Integer, pointer: *void, string_value: string, $signed: bool) -> bool, remainder: string { + #if signed { + Int_Type :: s64; + } else { + Int_Type :: u64; + } + + int_value, int_success, remainder := string_to_int(string_value, T = Int_Type); + if !int_success { + #if signed { + log_error("Could not parse \"%\" as an integer.", string_value); + } else { + log_error("Could not parse \"%\" as an unsigned integer.", string_value); + } + return false, remainder; + } + + valid, low, high := Reflection.range_check_and_store(int_value, info, pointer); + + if !valid { + log_error("The value '%' is out of range. (It must be between % and %.)", int_value, low, high); + return false, remainder; + } + + return true, remainder; +} + +Reflection :: #import "Reflection"; + diff --git a/modules/Jaison/unicode_utils/module.jai b/modules/Jaison/unicode_utils/module.jai new file mode 100644 index 0000000..3652928 --- /dev/null +++ b/modules/Jaison/unicode_utils/module.jai @@ -0,0 +1,59 @@ +is_utf_cont :: inline (b: u8) -> bool { + return (b & 0xc0) == 0x80; +} + +parse_unicode :: (str: string) -> result: u16, success: bool { + val, success, remainder := string_to_int(str, base = 16); + if !success || val > 0xFFFF || remainder.count return 0, false; + return xx val, true; +} + +encode_utf8 :: (val: u16, result: *u8) -> len: u8 { + if val & 0xF800 { + result[0] = xx (0xE0 | ((val & 0xF000) >> 12)); + result[1] = xx (0x80 | ((val & 0x0FC0) >> 6)); + result[2] = xx (0x80 | (val & 0x003F)); + return 3; + } else if val & 0x0F80 { + result[0] = xx (0xC0 | ((val & 0x0FC0) >> 6)); + result[1] = xx (0x80 | (val & 0x003F)); + return 2; + } else { + result[0] = xx (val & 0x7F); + return 1; + } +} + +is_valid_utf8 :: (str: string) -> valid:bool { + for i: 0..str.count-1 { + cur := str[i]; + if cur >= 0x80 { + // Must be between 0xc2 and 0xf4 inclusive to be valid + if (cur - 0xc2) > (0xf4 - 0xc2) return false; + + if cur < 0xe0 { // 2-byte sequence + if i + 1 >= str.count || !is_utf_cont(str[i+1]) return false; + i += 1; + } else if cur < 0xf0 { // 3-byte sequence + if i + 2 >= str.count || !is_utf_cont(str[i+1]) || !is_utf_cont(str[i+2]) return false; + + // Check for surrogate chars + if cur == 0xed && str[i+1] > 0x9f return false; + // ToDo: Check if total >= 0x800 + // uc = ((uc & 0xf)<<12) | ((*str & 0x3f)<<6) | (str[1] & 0x3f); + i += 2; + } else { // 4-byte sequence + if i + 3 >= str.count || !is_utf_cont(str[i+1]) || !is_utf_cont(str[i+2]) || !is_utf_cont(str[i+3]) return false; + // Make sure its in valid range (0x10000 - 0x10ffff) + if cur == 0xf0 && str[i + 1] < 0x90 return false; + if cur == 0xf4 && str[i + 1] > 0x8f return false; + i += 3; + } + } + } + return true; +} + +#scope_file + +#import "Basic"; diff --git a/modules/audio_decoders/linux/decoders.a b/modules/audio_decoders/linux/decoders.a new file mode 100644 index 0000000000000000000000000000000000000000..a829861b4001c097261c44d89a0e3964f4357977 GIT binary patch literal 197248 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

    7Vm4gO};XE#QVq-Ph@Qm@b7C)A&;(eY? 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 T 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

    Sv@T3Pq!IK^c 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 rO;oLFR{s)9GtU3-L+ts*_0LlM&vn *s16 #foreign decoders "player_decode_mp3"; + +decode_flac :: ( + data: *void, + data_size: u64, + out_channels: *u32, + out_sample_rate: *u32, + out_total_pcm_frames: *u64, +) -> *s16 #foreign decoders "player_decode_flac"; + +decoder_free :: (p: *void) #foreign decoders "player_decoder_free"; diff --git a/modules/audio_decoders/source/build.sh b/modules/audio_decoders/source/build.sh new file mode 100755 index 0000000..87cb4e7 --- /dev/null +++ b/modules/audio_decoders/source/build.sh @@ -0,0 +1,27 @@ +#!/usr/bin/env bash +# +# Compile dr_mp3 + dr_flac wrapper into a static library. +# +# Output: ../linux/decoders.a (or ../macos/decoders.a) +# +# Run from anywhere — this script cd's to its own directory first. +# + +set -euo pipefail +cd "$(dirname "$0")" + +CC="${CC:-clang}" +case "$(uname -s)" in + Linux*) OUT_DIR=../linux ;; + Darwin*) OUT_DIR=../macos ;; + *) echo "unsupported platform"; exit 1 ;; +esac + +mkdir -p "$OUT_DIR" + +echo "compiling decoders.c..." +"$CC" -O2 -fPIC -Wno-everything -c -o decoders.o decoders.c +ar rcs "$OUT_DIR/decoders.a" decoders.o +rm decoders.o + +echo "wrote $OUT_DIR/decoders.a" diff --git a/modules/audio_decoders/source/decoders.c b/modules/audio_decoders/source/decoders.c new file mode 100644 index 0000000..8c6dcb3 --- /dev/null +++ b/modules/audio_decoders/source/decoders.c @@ -0,0 +1,74 @@ +// +// Tiny C wrapper around dr_mp3 + dr_flac. Each function decodes a buffer of +// MP3/FLAC bytes to interleaved s16 PCM. The caller owns the returned +// pointer and must release it with player_decoder_free(). +// +// Compiled to a static lib (decoders.a) by lib/build_decoders.sh. The +// metaprogram in build.jai re-runs the script if the .a is missing or the +// sources are newer. +// + +#define DR_MP3_IMPLEMENTATION +#define DR_MP3_NO_STDIO +#include "dr_mp3.h" + +#define DR_FLAC_IMPLEMENTATION +#define DR_FLAC_NO_STDIO +#include "dr_flac.h" + +#include +#include + +int16_t* player_decode_mp3( + const void* data, size_t data_size, + uint32_t* out_channels, + uint32_t* out_sample_rate, + uint64_t* out_total_pcm_frames +) { + drmp3_config config; + config.channels = 0; + config.sampleRate = 0; + drmp3_uint64 total_frames = 0; + + drmp3_int16* pcm = drmp3_open_memory_and_read_pcm_frames_s16( + data, data_size, + &config, + &total_frames, + NULL // default allocator + ); + if (!pcm) return NULL; + + *out_channels = config.channels; + *out_sample_rate = config.sampleRate; + *out_total_pcm_frames = total_frames; + return pcm; +} + +int16_t* player_decode_flac( + const void* data, size_t data_size, + uint32_t* out_channels, + uint32_t* out_sample_rate, + uint64_t* out_total_pcm_frames +) { + unsigned int channels = 0; + unsigned int sample_rate = 0; + drflac_uint64 total_frames = 0; + + drflac_int16* pcm = drflac_open_memory_and_read_pcm_frames_s16( + data, data_size, + &channels, + &sample_rate, + &total_frames, + NULL + ); + if (!pcm) return NULL; + + *out_channels = channels; + *out_sample_rate = sample_rate; + *out_total_pcm_frames = total_frames; + return pcm; +} + +void player_decoder_free(void* p) { + free(p); +} diff --git a/modules/audio_decoders/source/dr_flac.h b/modules/audio_decoders/source/dr_flac.h new file mode 100644 index 0000000..14324cf --- /dev/null +++ b/modules/audio_decoders/source/dr_flac.h @@ -0,0 +1,12536 @@ +/* +FLAC audio decoder. Choice of public domain or MIT-0. See license statements at the end of this file. +dr_flac - v0.12.42 - 2023-11-02 + +David Reid - mackron@gmail.com + +GitHub: https://github.com/mackron/dr_libs +*/ + +/* +RELEASE NOTES - v0.12.0 +======================= +Version 0.12.0 has breaking API changes including changes to the existing API and the removal of deprecated APIs. + + +Improved Client-Defined Memory Allocation +----------------------------------------- +The main change with this release is the addition of a more flexible way of implementing custom memory allocation routines. The +existing system of DRFLAC_MALLOC, DRFLAC_REALLOC and DRFLAC_FREE are still in place and will be used by default when no custom +allocation callbacks are specified. + +To use the new system, you pass in a pointer to a drflac_allocation_callbacks object to drflac_open() and family, like this: + + void* my_malloc(size_t sz, void* pUserData) + { + return malloc(sz); + } + void* my_realloc(void* p, size_t sz, void* pUserData) + { + return realloc(p, sz); + } + void my_free(void* p, void* pUserData) + { + free(p); + } + + ... + + drflac_allocation_callbacks allocationCallbacks; + allocationCallbacks.pUserData = &myData; + allocationCallbacks.onMalloc = my_malloc; + allocationCallbacks.onRealloc = my_realloc; + allocationCallbacks.onFree = my_free; + drflac* pFlac = drflac_open_file("my_file.flac", &allocationCallbacks); + +The advantage of this new system is that it allows you to specify user data which will be passed in to the allocation routines. + +Passing in null for the allocation callbacks object will cause dr_flac to use defaults which is the same as DRFLAC_MALLOC, +DRFLAC_REALLOC and DRFLAC_FREE and the equivalent of how it worked in previous versions. + +Every API that opens a drflac object now takes this extra parameter. These include the following: + + drflac_open() + drflac_open_relaxed() + drflac_open_with_metadata() + drflac_open_with_metadata_relaxed() + drflac_open_file() + drflac_open_file_with_metadata() + drflac_open_memory() + drflac_open_memory_with_metadata() + drflac_open_and_read_pcm_frames_s32() + drflac_open_and_read_pcm_frames_s16() + drflac_open_and_read_pcm_frames_f32() + drflac_open_file_and_read_pcm_frames_s32() + drflac_open_file_and_read_pcm_frames_s16() + drflac_open_file_and_read_pcm_frames_f32() + drflac_open_memory_and_read_pcm_frames_s32() + drflac_open_memory_and_read_pcm_frames_s16() + drflac_open_memory_and_read_pcm_frames_f32() + + + +Optimizations +------------- +Seeking performance has been greatly improved. A new binary search based seeking algorithm has been introduced which significantly +improves performance over the brute force method which was used when no seek table was present. Seek table based seeking also takes +advantage of the new binary search seeking system to further improve performance there as well. Note that this depends on CRC which +means it will be disabled when DR_FLAC_NO_CRC is used. + +The SSE4.1 pipeline has been cleaned up and optimized. You should see some improvements with decoding speed of 24-bit files in +particular. 16-bit streams should also see some improvement. + +drflac_read_pcm_frames_s16() has been optimized. Previously this sat on top of drflac_read_pcm_frames_s32() and performed it's s32 +to s16 conversion in a second pass. This is now all done in a single pass. This includes SSE2 and ARM NEON optimized paths. + +A minor optimization has been implemented for drflac_read_pcm_frames_s32(). This will now use an SSE2 optimized pipeline for stereo +channel reconstruction which is the last part of the decoding process. + +The ARM build has seen a few improvements. The CLZ (count leading zeroes) and REV (byte swap) instructions are now used when +compiling with GCC and Clang which is achieved using inline assembly. The CLZ instruction requires ARM architecture version 5 at +compile time and the REV instruction requires ARM architecture version 6. + +An ARM NEON optimized pipeline has been implemented. To enable this you'll need to add -mfpu=neon to the command line when compiling. + + +Removed APIs +------------ +The following APIs were deprecated in version 0.11.0 and have been completely removed in version 0.12.0: + + drflac_read_s32() -> drflac_read_pcm_frames_s32() + drflac_read_s16() -> drflac_read_pcm_frames_s16() + drflac_read_f32() -> drflac_read_pcm_frames_f32() + drflac_seek_to_sample() -> drflac_seek_to_pcm_frame() + drflac_open_and_decode_s32() -> drflac_open_and_read_pcm_frames_s32() + drflac_open_and_decode_s16() -> drflac_open_and_read_pcm_frames_s16() + drflac_open_and_decode_f32() -> drflac_open_and_read_pcm_frames_f32() + drflac_open_and_decode_file_s32() -> drflac_open_file_and_read_pcm_frames_s32() + drflac_open_and_decode_file_s16() -> drflac_open_file_and_read_pcm_frames_s16() + drflac_open_and_decode_file_f32() -> drflac_open_file_and_read_pcm_frames_f32() + drflac_open_and_decode_memory_s32() -> drflac_open_memory_and_read_pcm_frames_s32() + drflac_open_and_decode_memory_s16() -> drflac_open_memory_and_read_pcm_frames_s16() + drflac_open_and_decode_memory_f32() -> drflac_open_memroy_and_read_pcm_frames_f32() + +Prior versions of dr_flac operated on a per-sample basis whereas now it operates on PCM frames. The removed APIs all relate +to the old per-sample APIs. You now need to use the "pcm_frame" versions. +*/ + + +/* +Introduction +============ +dr_flac is a single file library. To use it, do something like the following in one .c file. + + ```c + #define DR_FLAC_IMPLEMENTATION + #include "dr_flac.h" + ``` + +You can then #include this file in other parts of the program as you would with any other header file. To decode audio data, do something like the following: + + ```c + drflac* pFlac = drflac_open_file("MySong.flac", NULL); + if (pFlac == NULL) { + // Failed to open FLAC file + } + + drflac_int32* pSamples = malloc(pFlac->totalPCMFrameCount * pFlac->channels * sizeof(drflac_int32)); + drflac_uint64 numberOfInterleavedSamplesActuallyRead = drflac_read_pcm_frames_s32(pFlac, pFlac->totalPCMFrameCount, pSamples); + ``` + +The drflac object represents the decoder. It is a transparent type so all the information you need, such as the number of channels and the bits per sample, +should be directly accessible - just make sure you don't change their values. Samples are always output as interleaved signed 32-bit PCM. In the example above +a native FLAC stream was opened, however dr_flac has seamless support for Ogg encapsulated FLAC streams as well. + +You do not need to decode the entire stream in one go - you just specify how many samples you'd like at any given time and the decoder will give you as many +samples as it can, up to the amount requested. Later on when you need the next batch of samples, just call it again. Example: + + ```c + while (drflac_read_pcm_frames_s32(pFlac, chunkSizeInPCMFrames, pChunkSamples) > 0) { + do_something(); + } + ``` + +You can seek to a specific PCM frame with `drflac_seek_to_pcm_frame()`. + +If you just want to quickly decode an entire FLAC file in one go you can do something like this: + + ```c + unsigned int channels; + unsigned int sampleRate; + drflac_uint64 totalPCMFrameCount; + drflac_int32* pSampleData = drflac_open_file_and_read_pcm_frames_s32("MySong.flac", &channels, &sampleRate, &totalPCMFrameCount, NULL); + if (pSampleData == NULL) { + // Failed to open and decode FLAC file. + } + + ... + + drflac_free(pSampleData, NULL); + ``` + +You can read samples as signed 16-bit integer and 32-bit floating-point PCM with the *_s16() and *_f32() family of APIs respectively, but note that these +should be considered lossy. + + +If you need access to metadata (album art, etc.), use `drflac_open_with_metadata()`, `drflac_open_file_with_metdata()` or `drflac_open_memory_with_metadata()`. +The rationale for keeping these APIs separate is that they're slightly slower than the normal versions and also just a little bit harder to use. dr_flac +reports metadata to the application through the use of a callback, and every metadata block is reported before `drflac_open_with_metdata()` returns. + +The main opening APIs (`drflac_open()`, etc.) will fail if the header is not present. The presents a problem in certain scenarios such as broadcast style +streams or internet radio where the header may not be present because the user has started playback mid-stream. To handle this, use the relaxed APIs: + + `drflac_open_relaxed()` + `drflac_open_with_metadata_relaxed()` + +It is not recommended to use these APIs for file based streams because a missing header would usually indicate a corrupt or perverse file. In addition, these +APIs can take a long time to initialize because they may need to spend a lot of time finding the first frame. + + + +Build Options +============= +#define these options before including this file. + +#define DR_FLAC_NO_STDIO + Disable `drflac_open_file()` and family. + +#define DR_FLAC_NO_OGG + Disables support for Ogg/FLAC streams. + +#define DR_FLAC_BUFFER_SIZE + Defines the size of the internal buffer to store data from onRead(). This buffer is used to reduce the number of calls back to the client for more data. + Larger values means more memory, but better performance. My tests show diminishing returns after about 4KB (which is the default). Consider reducing this if + you have a very efficient implementation of onRead(), or increase it if it's very inefficient. Must be a multiple of 8. + +#define DR_FLAC_NO_CRC + Disables CRC checks. This will offer a performance boost when CRC is unnecessary. This will disable binary search seeking. When seeking, the seek table will + be used if available. Otherwise the seek will be performed using brute force. + +#define DR_FLAC_NO_SIMD + Disables SIMD optimizations (SSE on x86/x64 architectures, NEON on ARM architectures). Use this if you are having compatibility issues with your compiler. + +#define DR_FLAC_NO_WCHAR + Disables all functions ending with `_w`. Use this if your compiler does not provide wchar.h. Not required if DR_FLAC_NO_STDIO is also defined. + + + +Notes +===== +- dr_flac does not support changing the sample rate nor channel count mid stream. +- dr_flac is not thread-safe, but its APIs can be called from any thread so long as you do your own synchronization. +- When using Ogg encapsulation, a corrupted metadata block will result in `drflac_open_with_metadata()` and `drflac_open()` returning inconsistent samples due + to differences in corrupted stream recorvery logic between the two APIs. +*/ + +#ifndef dr_flac_h +#define dr_flac_h + +#ifdef __cplusplus +extern "C" { +#endif + +#define DRFLAC_STRINGIFY(x) #x +#define DRFLAC_XSTRINGIFY(x) DRFLAC_STRINGIFY(x) + +#define DRFLAC_VERSION_MAJOR 0 +#define DRFLAC_VERSION_MINOR 12 +#define DRFLAC_VERSION_REVISION 42 +#define DRFLAC_VERSION_STRING DRFLAC_XSTRINGIFY(DRFLAC_VERSION_MAJOR) "." DRFLAC_XSTRINGIFY(DRFLAC_VERSION_MINOR) "." DRFLAC_XSTRINGIFY(DRFLAC_VERSION_REVISION) + +#include /* For size_t. */ + +/* Sized Types */ +typedef signed char drflac_int8; +typedef unsigned char drflac_uint8; +typedef signed short drflac_int16; +typedef unsigned short drflac_uint16; +typedef signed int drflac_int32; +typedef unsigned int drflac_uint32; +#if defined(_MSC_VER) && !defined(__clang__) + typedef signed __int64 drflac_int64; + typedef unsigned __int64 drflac_uint64; +#else + #if defined(__clang__) || (defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))) + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Wlong-long" + #if defined(__clang__) + #pragma GCC diagnostic ignored "-Wc++11-long-long" + #endif + #endif + typedef signed long long drflac_int64; + typedef unsigned long long drflac_uint64; + #if defined(__clang__) || (defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))) + #pragma GCC diagnostic pop + #endif +#endif +#if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__)) || defined(_M_X64) || defined(__ia64) || defined(_M_IA64) || defined(__aarch64__) || defined(_M_ARM64) || defined(__powerpc64__) + typedef drflac_uint64 drflac_uintptr; +#else + typedef drflac_uint32 drflac_uintptr; +#endif +typedef drflac_uint8 drflac_bool8; +typedef drflac_uint32 drflac_bool32; +#define DRFLAC_TRUE 1 +#define DRFLAC_FALSE 0 +/* End Sized Types */ + +/* Decorations */ +#if !defined(DRFLAC_API) + #if defined(DRFLAC_DLL) + #if defined(_WIN32) + #define DRFLAC_DLL_IMPORT __declspec(dllimport) + #define DRFLAC_DLL_EXPORT __declspec(dllexport) + #define DRFLAC_DLL_PRIVATE static + #else + #if defined(__GNUC__) && __GNUC__ >= 4 + #define DRFLAC_DLL_IMPORT __attribute__((visibility("default"))) + #define DRFLAC_DLL_EXPORT __attribute__((visibility("default"))) + #define DRFLAC_DLL_PRIVATE __attribute__((visibility("hidden"))) + #else + #define DRFLAC_DLL_IMPORT + #define DRFLAC_DLL_EXPORT + #define DRFLAC_DLL_PRIVATE static + #endif + #endif + + #if defined(DR_FLAC_IMPLEMENTATION) || defined(DRFLAC_IMPLEMENTATION) + #define DRFLAC_API DRFLAC_DLL_EXPORT + #else + #define DRFLAC_API DRFLAC_DLL_IMPORT + #endif + #define DRFLAC_PRIVATE DRFLAC_DLL_PRIVATE + #else + #define DRFLAC_API extern + #define DRFLAC_PRIVATE static + #endif +#endif +/* End Decorations */ + +#if defined(_MSC_VER) && _MSC_VER >= 1700 /* Visual Studio 2012 */ + #define DRFLAC_DEPRECATED __declspec(deprecated) +#elif (defined(__GNUC__) && __GNUC__ >= 4) /* GCC 4 */ + #define DRFLAC_DEPRECATED __attribute__((deprecated)) +#elif defined(__has_feature) /* Clang */ + #if __has_feature(attribute_deprecated) + #define DRFLAC_DEPRECATED __attribute__((deprecated)) + #else + #define DRFLAC_DEPRECATED + #endif +#else + #define DRFLAC_DEPRECATED +#endif + +DRFLAC_API void drflac_version(drflac_uint32* pMajor, drflac_uint32* pMinor, drflac_uint32* pRevision); +DRFLAC_API const char* drflac_version_string(void); + +/* Allocation Callbacks */ +typedef struct +{ + void* pUserData; + void* (* onMalloc)(size_t sz, void* pUserData); + void* (* onRealloc)(void* p, size_t sz, void* pUserData); + void (* onFree)(void* p, void* pUserData); +} drflac_allocation_callbacks; +/* End Allocation Callbacks */ + +/* +As data is read from the client it is placed into an internal buffer for fast access. This controls the size of that buffer. Larger values means more speed, +but also more memory. In my testing there is diminishing returns after about 4KB, but you can fiddle with this to suit your own needs. Must be a multiple of 8. +*/ +#ifndef DR_FLAC_BUFFER_SIZE +#define DR_FLAC_BUFFER_SIZE 4096 +#endif + + +/* Architecture Detection */ +#if defined(_WIN64) || defined(_LP64) || defined(__LP64__) +#define DRFLAC_64BIT +#endif + +#if defined(__x86_64__) || defined(_M_X64) + #define DRFLAC_X64 +#elif defined(__i386) || defined(_M_IX86) + #define DRFLAC_X86 +#elif defined(__arm__) || defined(_M_ARM) || defined(__arm64) || defined(__arm64__) || defined(__aarch64__) || defined(_M_ARM64) + #define DRFLAC_ARM +#endif +/* End Architecture Detection */ + + +#ifdef DRFLAC_64BIT +typedef drflac_uint64 drflac_cache_t; +#else +typedef drflac_uint32 drflac_cache_t; +#endif + +/* The various metadata block types. */ +#define DRFLAC_METADATA_BLOCK_TYPE_STREAMINFO 0 +#define DRFLAC_METADATA_BLOCK_TYPE_PADDING 1 +#define DRFLAC_METADATA_BLOCK_TYPE_APPLICATION 2 +#define DRFLAC_METADATA_BLOCK_TYPE_SEEKTABLE 3 +#define DRFLAC_METADATA_BLOCK_TYPE_VORBIS_COMMENT 4 +#define DRFLAC_METADATA_BLOCK_TYPE_CUESHEET 5 +#define DRFLAC_METADATA_BLOCK_TYPE_PICTURE 6 +#define DRFLAC_METADATA_BLOCK_TYPE_INVALID 127 + +/* The various picture types specified in the PICTURE block. */ +#define DRFLAC_PICTURE_TYPE_OTHER 0 +#define DRFLAC_PICTURE_TYPE_FILE_ICON 1 +#define DRFLAC_PICTURE_TYPE_OTHER_FILE_ICON 2 +#define DRFLAC_PICTURE_TYPE_COVER_FRONT 3 +#define DRFLAC_PICTURE_TYPE_COVER_BACK 4 +#define DRFLAC_PICTURE_TYPE_LEAFLET_PAGE 5 +#define DRFLAC_PICTURE_TYPE_MEDIA 6 +#define DRFLAC_PICTURE_TYPE_LEAD_ARTIST 7 +#define DRFLAC_PICTURE_TYPE_ARTIST 8 +#define DRFLAC_PICTURE_TYPE_CONDUCTOR 9 +#define DRFLAC_PICTURE_TYPE_BAND 10 +#define DRFLAC_PICTURE_TYPE_COMPOSER 11 +#define DRFLAC_PICTURE_TYPE_LYRICIST 12 +#define DRFLAC_PICTURE_TYPE_RECORDING_LOCATION 13 +#define DRFLAC_PICTURE_TYPE_DURING_RECORDING 14 +#define DRFLAC_PICTURE_TYPE_DURING_PERFORMANCE 15 +#define DRFLAC_PICTURE_TYPE_SCREEN_CAPTURE 16 +#define DRFLAC_PICTURE_TYPE_BRIGHT_COLORED_FISH 17 +#define DRFLAC_PICTURE_TYPE_ILLUSTRATION 18 +#define DRFLAC_PICTURE_TYPE_BAND_LOGOTYPE 19 +#define DRFLAC_PICTURE_TYPE_PUBLISHER_LOGOTYPE 20 + +typedef enum +{ + drflac_container_native, + drflac_container_ogg, + drflac_container_unknown +} drflac_container; + +typedef enum +{ + drflac_seek_origin_start, + drflac_seek_origin_current +} drflac_seek_origin; + +/* The order of members in this structure is important because we map this directly to the raw data within the SEEKTABLE metadata block. */ +typedef struct +{ + drflac_uint64 firstPCMFrame; + drflac_uint64 flacFrameOffset; /* The offset from the first byte of the header of the first frame. */ + drflac_uint16 pcmFrameCount; +} drflac_seekpoint; + +typedef struct +{ + drflac_uint16 minBlockSizeInPCMFrames; + drflac_uint16 maxBlockSizeInPCMFrames; + drflac_uint32 minFrameSizeInPCMFrames; + drflac_uint32 maxFrameSizeInPCMFrames; + drflac_uint32 sampleRate; + drflac_uint8 channels; + drflac_uint8 bitsPerSample; + drflac_uint64 totalPCMFrameCount; + drflac_uint8 md5[16]; +} drflac_streaminfo; + +typedef struct +{ + /* + The metadata type. Use this to know how to interpret the data below. Will be set to one of the + DRFLAC_METADATA_BLOCK_TYPE_* tokens. + */ + drflac_uint32 type; + + /* + A pointer to the raw data. This points to a temporary buffer so don't hold on to it. It's best to + not modify the contents of this buffer. Use the structures below for more meaningful and structured + information about the metadata. It's possible for this to be null. + */ + const void* pRawData; + + /* The size in bytes of the block and the buffer pointed to by pRawData if it's non-NULL. */ + drflac_uint32 rawDataSize; + + union + { + drflac_streaminfo streaminfo; + + struct + { + int unused; + } padding; + + struct + { + drflac_uint32 id; + const void* pData; + drflac_uint32 dataSize; + } application; + + struct + { + drflac_uint32 seekpointCount; + const drflac_seekpoint* pSeekpoints; + } seektable; + + struct + { + drflac_uint32 vendorLength; + const char* vendor; + drflac_uint32 commentCount; + const void* pComments; + } vorbis_comment; + + struct + { + char catalog[128]; + drflac_uint64 leadInSampleCount; + drflac_bool32 isCD; + drflac_uint8 trackCount; + const void* pTrackData; + } cuesheet; + + struct + { + drflac_uint32 type; + drflac_uint32 mimeLength; + const char* mime; + drflac_uint32 descriptionLength; + const char* description; + drflac_uint32 width; + drflac_uint32 height; + drflac_uint32 colorDepth; + drflac_uint32 indexColorCount; + drflac_uint32 pictureDataSize; + const drflac_uint8* pPictureData; + } picture; + } data; +} drflac_metadata; + + +/* +Callback for when data needs to be read from the client. + + +Parameters +---------- +pUserData (in) + The user data that was passed to drflac_open() and family. + +pBufferOut (out) + The output buffer. + +bytesToRead (in) + The number of bytes to read. + + +Return Value +------------ +The number of bytes actually read. + + +Remarks +------- +A return value of less than bytesToRead indicates the end of the stream. Do _not_ return from this callback until either the entire bytesToRead is filled or +you have reached the end of the stream. +*/ +typedef size_t (* drflac_read_proc)(void* pUserData, void* pBufferOut, size_t bytesToRead); + +/* +Callback for when data needs to be seeked. + + +Parameters +---------- +pUserData (in) + The user data that was passed to drflac_open() and family. + +offset (in) + The number of bytes to move, relative to the origin. Will never be negative. + +origin (in) + The origin of the seek - the current position or the start of the stream. + + +Return Value +------------ +Whether or not the seek was successful. + + +Remarks +------- +The offset will never be negative. Whether or not it is relative to the beginning or current position is determined by the "origin" parameter which will be +either drflac_seek_origin_start or drflac_seek_origin_current. + +When seeking to a PCM frame using drflac_seek_to_pcm_frame(), dr_flac may call this with an offset beyond the end of the FLAC stream. This needs to be detected +and handled by returning DRFLAC_FALSE. +*/ +typedef drflac_bool32 (* drflac_seek_proc)(void* pUserData, int offset, drflac_seek_origin origin); + +/* +Callback for when a metadata block is read. + + +Parameters +---------- +pUserData (in) + The user data that was passed to drflac_open() and family. + +pMetadata (in) + A pointer to a structure containing the data of the metadata block. + + +Remarks +------- +Use pMetadata->type to determine which metadata block is being handled and how to read the data. This +will be set to one of the DRFLAC_METADATA_BLOCK_TYPE_* tokens. +*/ +typedef void (* drflac_meta_proc)(void* pUserData, drflac_metadata* pMetadata); + + +/* Structure for internal use. Only used for decoders opened with drflac_open_memory. */ +typedef struct +{ + const drflac_uint8* data; + size_t dataSize; + size_t currentReadPos; +} drflac__memory_stream; + +/* Structure for internal use. Used for bit streaming. */ +typedef struct +{ + /* The function to call when more data needs to be read. */ + drflac_read_proc onRead; + + /* The function to call when the current read position needs to be moved. */ + drflac_seek_proc onSeek; + + /* The user data to pass around to onRead and onSeek. */ + void* pUserData; + + + /* + The number of unaligned bytes in the L2 cache. This will always be 0 until the end of the stream is hit. At the end of the + stream there will be a number of bytes that don't cleanly fit in an L1 cache line, so we use this variable to know whether + or not the bistreamer needs to run on a slower path to read those last bytes. This will never be more than sizeof(drflac_cache_t). + */ + size_t unalignedByteCount; + + /* The content of the unaligned bytes. */ + drflac_cache_t unalignedCache; + + /* The index of the next valid cache line in the "L2" cache. */ + drflac_uint32 nextL2Line; + + /* The number of bits that have been consumed by the cache. This is used to determine how many valid bits are remaining. */ + drflac_uint32 consumedBits; + + /* + The cached data which was most recently read from the client. There are two levels of cache. Data flows as such: + Client -> L2 -> L1. The L2 -> L1 movement is aligned and runs on a fast path in just a few instructions. + */ + drflac_cache_t cacheL2[DR_FLAC_BUFFER_SIZE/sizeof(drflac_cache_t)]; + drflac_cache_t cache; + + /* + CRC-16. This is updated whenever bits are read from the bit stream. Manually set this to 0 to reset the CRC. For FLAC, this + is reset to 0 at the beginning of each frame. + */ + drflac_uint16 crc16; + drflac_cache_t crc16Cache; /* A cache for optimizing CRC calculations. This is filled when when the L1 cache is reloaded. */ + drflac_uint32 crc16CacheIgnoredBytes; /* The number of bytes to ignore when updating the CRC-16 from the CRC-16 cache. */ +} drflac_bs; + +typedef struct +{ + /* The type of the subframe: SUBFRAME_CONSTANT, SUBFRAME_VERBATIM, SUBFRAME_FIXED or SUBFRAME_LPC. */ + drflac_uint8 subframeType; + + /* The number of wasted bits per sample as specified by the sub-frame header. */ + drflac_uint8 wastedBitsPerSample; + + /* The order to use for the prediction stage for SUBFRAME_FIXED and SUBFRAME_LPC. */ + drflac_uint8 lpcOrder; + + /* A pointer to the buffer containing the decoded samples in the subframe. This pointer is an offset from drflac::pExtraData. */ + drflac_int32* pSamplesS32; +} drflac_subframe; + +typedef struct +{ + /* + If the stream uses variable block sizes, this will be set to the index of the first PCM frame. If fixed block sizes are used, this will + always be set to 0. This is 64-bit because the decoded PCM frame number will be 36 bits. + */ + drflac_uint64 pcmFrameNumber; + + /* + If the stream uses fixed block sizes, this will be set to the frame number. If variable block sizes are used, this will always be 0. This + is 32-bit because in fixed block sizes, the maximum frame number will be 31 bits. + */ + drflac_uint32 flacFrameNumber; + + /* The sample rate of this frame. */ + drflac_uint32 sampleRate; + + /* The number of PCM frames in each sub-frame within this frame. */ + drflac_uint16 blockSizeInPCMFrames; + + /* + The channel assignment of this frame. This is not always set to the channel count. If interchannel decorrelation is being used this + will be set to DRFLAC_CHANNEL_ASSIGNMENT_LEFT_SIDE, DRFLAC_CHANNEL_ASSIGNMENT_RIGHT_SIDE or DRFLAC_CHANNEL_ASSIGNMENT_MID_SIDE. + */ + drflac_uint8 channelAssignment; + + /* The number of bits per sample within this frame. */ + drflac_uint8 bitsPerSample; + + /* The frame's CRC. */ + drflac_uint8 crc8; +} drflac_frame_header; + +typedef struct +{ + /* The header. */ + drflac_frame_header header; + + /* + The number of PCM frames left to be read in this FLAC frame. This is initially set to the block size. As PCM frames are read, + this will be decremented. When it reaches 0, the decoder will see this frame as fully consumed and load the next frame. + */ + drflac_uint32 pcmFramesRemaining; + + /* The list of sub-frames within the frame. There is one sub-frame for each channel, and there's a maximum of 8 channels. */ + drflac_subframe subframes[8]; +} drflac_frame; + +typedef struct +{ + /* The function to call when a metadata block is read. */ + drflac_meta_proc onMeta; + + /* The user data posted to the metadata callback function. */ + void* pUserDataMD; + + /* Memory allocation callbacks. */ + drflac_allocation_callbacks allocationCallbacks; + + + /* The sample rate. Will be set to something like 44100. */ + drflac_uint32 sampleRate; + + /* + The number of channels. This will be set to 1 for monaural streams, 2 for stereo, etc. Maximum 8. This is set based on the + value specified in the STREAMINFO block. + */ + drflac_uint8 channels; + + /* The bits per sample. Will be set to something like 16, 24, etc. */ + drflac_uint8 bitsPerSample; + + /* The maximum block size, in samples. This number represents the number of samples in each channel (not combined). */ + drflac_uint16 maxBlockSizeInPCMFrames; + + /* + The total number of PCM Frames making up the stream. Can be 0 in which case it's still a valid stream, but just means + the total PCM frame count is unknown. Likely the case with streams like internet radio. + */ + drflac_uint64 totalPCMFrameCount; + + + /* The container type. This is set based on whether or not the decoder was opened from a native or Ogg stream. */ + drflac_container container; + + /* The number of seekpoints in the seektable. */ + drflac_uint32 seekpointCount; + + + /* Information about the frame the decoder is currently sitting on. */ + drflac_frame currentFLACFrame; + + + /* The index of the PCM frame the decoder is currently sitting on. This is only used for seeking. */ + drflac_uint64 currentPCMFrame; + + /* The position of the first FLAC frame in the stream. This is only ever used for seeking. */ + drflac_uint64 firstFLACFramePosInBytes; + + + /* A hack to avoid a malloc() when opening a decoder with drflac_open_memory(). */ + drflac__memory_stream memoryStream; + + + /* A pointer to the decoded sample data. This is an offset of pExtraData. */ + drflac_int32* pDecodedSamples; + + /* A pointer to the seek table. This is an offset of pExtraData, or NULL if there is no seek table. */ + drflac_seekpoint* pSeekpoints; + + /* Internal use only. Only used with Ogg containers. Points to a drflac_oggbs object. This is an offset of pExtraData. */ + void* _oggbs; + + /* Internal use only. Used for profiling and testing different seeking modes. */ + drflac_bool32 _noSeekTableSeek : 1; + drflac_bool32 _noBinarySearchSeek : 1; + drflac_bool32 _noBruteForceSeek : 1; + + /* The bit streamer. The raw FLAC data is fed through this object. */ + drflac_bs bs; + + /* Variable length extra data. We attach this to the end of the object so we can avoid unnecessary mallocs. */ + drflac_uint8 pExtraData[1]; +} drflac; + + +/* +Opens a FLAC decoder. + + +Parameters +---------- +onRead (in) + The function to call when data needs to be read from the client. + +onSeek (in) + The function to call when the read position of the client data needs to move. + +pUserData (in, optional) + A pointer to application defined data that will be passed to onRead and onSeek. + +pAllocationCallbacks (in, optional) + A pointer to application defined callbacks for managing memory allocations. + + +Return Value +------------ +Returns a pointer to an object representing the decoder. + + +Remarks +------- +Close the decoder with `drflac_close()`. + +`pAllocationCallbacks` can be NULL in which case it will use `DRFLAC_MALLOC`, `DRFLAC_REALLOC` and `DRFLAC_FREE`. + +This function will automatically detect whether or not you are attempting to open a native or Ogg encapsulated FLAC, both of which should work seamlessly +without any manual intervention. Ogg encapsulation also works with multiplexed streams which basically means it can play FLAC encoded audio tracks in videos. + +This is the lowest level function for opening a FLAC stream. You can also use `drflac_open_file()` and `drflac_open_memory()` to open the stream from a file or +from a block of memory respectively. + +The STREAMINFO block must be present for this to succeed. Use `drflac_open_relaxed()` to open a FLAC stream where the header may not be present. + +Use `drflac_open_with_metadata()` if you need access to metadata. + + +Seek Also +--------- +drflac_open_file() +drflac_open_memory() +drflac_open_with_metadata() +drflac_close() +*/ +DRFLAC_API drflac* drflac_open(drflac_read_proc onRead, drflac_seek_proc onSeek, void* pUserData, const drflac_allocation_callbacks* pAllocationCallbacks); + +/* +Opens a FLAC stream with relaxed validation of the header block. + + +Parameters +---------- +onRead (in) + The function to call when data needs to be read from the client. + +onSeek (in) + The function to call when the read position of the client data needs to move. + +container (in) + Whether or not the FLAC stream is encapsulated using standard FLAC encapsulation or Ogg encapsulation. + +pUserData (in, optional) + A pointer to application defined data that will be passed to onRead and onSeek. + +pAllocationCallbacks (in, optional) + A pointer to application defined callbacks for managing memory allocations. + + +Return Value +------------ +A pointer to an object representing the decoder. + + +Remarks +------- +The same as drflac_open(), except attempts to open the stream even when a header block is not present. + +Because the header is not necessarily available, the caller must explicitly define the container (Native or Ogg). Do not set this to `drflac_container_unknown` +as that is for internal use only. + +Opening in relaxed mode will continue reading data from onRead until it finds a valid frame. If a frame is never found it will continue forever. To abort, +force your `onRead` callback to return 0, which dr_flac will use as an indicator that the end of the stream was found. + +Use `drflac_open_with_metadata_relaxed()` if you need access to metadata. +*/ +DRFLAC_API drflac* drflac_open_relaxed(drflac_read_proc onRead, drflac_seek_proc onSeek, drflac_container container, void* pUserData, const drflac_allocation_callbacks* pAllocationCallbacks); + +/* +Opens a FLAC decoder and notifies the caller of the metadata chunks (album art, etc.). + + +Parameters +---------- +onRead (in) + The function to call when data needs to be read from the client. + +onSeek (in) + The function to call when the read position of the client data needs to move. + +onMeta (in) + The function to call for every metadata block. + +pUserData (in, optional) + A pointer to application defined data that will be passed to onRead, onSeek and onMeta. + +pAllocationCallbacks (in, optional) + A pointer to application defined callbacks for managing memory allocations. + + +Return Value +------------ +A pointer to an object representing the decoder. + + +Remarks +------- +Close the decoder with `drflac_close()`. + +`pAllocationCallbacks` can be NULL in which case it will use `DRFLAC_MALLOC`, `DRFLAC_REALLOC` and `DRFLAC_FREE`. + +This is slower than `drflac_open()`, so avoid this one if you don't need metadata. Internally, this will allocate and free memory on the heap for every +metadata block except for STREAMINFO and PADDING blocks. + +The caller is notified of the metadata via the `onMeta` callback. All metadata blocks will be handled before the function returns. This callback takes a +pointer to a `drflac_metadata` object which is a union containing the data of all relevant metadata blocks. Use the `type` member to discriminate against +the different metadata types. + +The STREAMINFO block must be present for this to succeed. Use `drflac_open_with_metadata_relaxed()` to open a FLAC stream where the header may not be present. + +Note that this will behave inconsistently with `drflac_open()` if the stream is an Ogg encapsulated stream and a metadata block is corrupted. This is due to +the way the Ogg stream recovers from corrupted pages. When `drflac_open_with_metadata()` is being used, the open routine will try to read the contents of the +metadata block, whereas `drflac_open()` will simply seek past it (for the sake of efficiency). This inconsistency can result in different samples being +returned depending on whether or not the stream is being opened with metadata. + + +Seek Also +--------- +drflac_open_file_with_metadata() +drflac_open_memory_with_metadata() +drflac_open() +drflac_close() +*/ +DRFLAC_API drflac* drflac_open_with_metadata(drflac_read_proc onRead, drflac_seek_proc onSeek, drflac_meta_proc onMeta, void* pUserData, const drflac_allocation_callbacks* pAllocationCallbacks); + +/* +The same as drflac_open_with_metadata(), except attempts to open the stream even when a header block is not present. + +See Also +-------- +drflac_open_with_metadata() +drflac_open_relaxed() +*/ +DRFLAC_API drflac* drflac_open_with_metadata_relaxed(drflac_read_proc onRead, drflac_seek_proc onSeek, drflac_meta_proc onMeta, drflac_container container, void* pUserData, const drflac_allocation_callbacks* pAllocationCallbacks); + +/* +Closes the given FLAC decoder. + + +Parameters +---------- +pFlac (in) + The decoder to close. + + +Remarks +------- +This will destroy the decoder object. + + +See Also +-------- +drflac_open() +drflac_open_with_metadata() +drflac_open_file() +drflac_open_file_w() +drflac_open_file_with_metadata() +drflac_open_file_with_metadata_w() +drflac_open_memory() +drflac_open_memory_with_metadata() +*/ +DRFLAC_API void drflac_close(drflac* pFlac); + + +/* +Reads sample data from the given FLAC decoder, output as interleaved signed 32-bit PCM. + + +Parameters +---------- +pFlac (in) + The decoder. + +framesToRead (in) + The number of PCM frames to read. + +pBufferOut (out, optional) + A pointer to the buffer that will receive the decoded samples. + + +Return Value +------------ +Returns the number of PCM frames actually read. If the return value is less than `framesToRead` it has reached the end. + + +Remarks +------- +pBufferOut can be null, in which case the call will act as a seek, and the return value will be the number of frames seeked. +*/ +DRFLAC_API drflac_uint64 drflac_read_pcm_frames_s32(drflac* pFlac, drflac_uint64 framesToRead, drflac_int32* pBufferOut); + + +/* +Reads sample data from the given FLAC decoder, output as interleaved signed 16-bit PCM. + + +Parameters +---------- +pFlac (in) + The decoder. + +framesToRead (in) + The number of PCM frames to read. + +pBufferOut (out, optional) + A pointer to the buffer that will receive the decoded samples. + + +Return Value +------------ +Returns the number of PCM frames actually read. If the return value is less than `framesToRead` it has reached the end. + + +Remarks +------- +pBufferOut can be null, in which case the call will act as a seek, and the return value will be the number of frames seeked. + +Note that this is lossy for streams where the bits per sample is larger than 16. +*/ +DRFLAC_API drflac_uint64 drflac_read_pcm_frames_s16(drflac* pFlac, drflac_uint64 framesToRead, drflac_int16* pBufferOut); + +/* +Reads sample data from the given FLAC decoder, output as interleaved 32-bit floating point PCM. + + +Parameters +---------- +pFlac (in) + The decoder. + +framesToRead (in) + The number of PCM frames to read. + +pBufferOut (out, optional) + A pointer to the buffer that will receive the decoded samples. + + +Return Value +------------ +Returns the number of PCM frames actually read. If the return value is less than `framesToRead` it has reached the end. + + +Remarks +------- +pBufferOut can be null, in which case the call will act as a seek, and the return value will be the number of frames seeked. + +Note that this should be considered lossy due to the nature of floating point numbers not being able to exactly represent every possible number. +*/ +DRFLAC_API drflac_uint64 drflac_read_pcm_frames_f32(drflac* pFlac, drflac_uint64 framesToRead, float* pBufferOut); + +/* +Seeks to the PCM frame at the given index. + + +Parameters +---------- +pFlac (in) + The decoder. + +pcmFrameIndex (in) + The index of the PCM frame to seek to. See notes below. + + +Return Value +------------- +`DRFLAC_TRUE` if successful; `DRFLAC_FALSE` otherwise. +*/ +DRFLAC_API drflac_bool32 drflac_seek_to_pcm_frame(drflac* pFlac, drflac_uint64 pcmFrameIndex); + + + +#ifndef DR_FLAC_NO_STDIO +/* +Opens a FLAC decoder from the file at the given path. + + +Parameters +---------- +pFileName (in) + The path of the file to open, either absolute or relative to the current directory. + +pAllocationCallbacks (in, optional) + A pointer to application defined callbacks for managing memory allocations. + + +Return Value +------------ +A pointer to an object representing the decoder. + + +Remarks +------- +Close the decoder with drflac_close(). + + +Remarks +------- +This will hold a handle to the file until the decoder is closed with drflac_close(). Some platforms will restrict the number of files a process can have open +at any given time, so keep this mind if you have many decoders open at the same time. + + +See Also +-------- +drflac_open_file_with_metadata() +drflac_open() +drflac_close() +*/ +DRFLAC_API drflac* drflac_open_file(const char* pFileName, const drflac_allocation_callbacks* pAllocationCallbacks); +DRFLAC_API drflac* drflac_open_file_w(const wchar_t* pFileName, const drflac_allocation_callbacks* pAllocationCallbacks); + +/* +Opens a FLAC decoder from the file at the given path and notifies the caller of the metadata chunks (album art, etc.) + + +Parameters +---------- +pFileName (in) + The path of the file to open, either absolute or relative to the current directory. + +pAllocationCallbacks (in, optional) + A pointer to application defined callbacks for managing memory allocations. + +onMeta (in) + The callback to fire for each metadata block. + +pUserData (in) + A pointer to the user data to pass to the metadata callback. + +pAllocationCallbacks (in) + A pointer to application defined callbacks for managing memory allocations. + + +Remarks +------- +Look at the documentation for drflac_open_with_metadata() for more information on how metadata is handled. + + +See Also +-------- +drflac_open_with_metadata() +drflac_open() +drflac_close() +*/ +DRFLAC_API drflac* drflac_open_file_with_metadata(const char* pFileName, drflac_meta_proc onMeta, void* pUserData, const drflac_allocation_callbacks* pAllocationCallbacks); +DRFLAC_API drflac* drflac_open_file_with_metadata_w(const wchar_t* pFileName, drflac_meta_proc onMeta, void* pUserData, const drflac_allocation_callbacks* pAllocationCallbacks); +#endif + +/* +Opens a FLAC decoder from a pre-allocated block of memory + + +Parameters +---------- +pData (in) + A pointer to the raw encoded FLAC data. + +dataSize (in) + The size in bytes of `data`. + +pAllocationCallbacks (in) + A pointer to application defined callbacks for managing memory allocations. + + +Return Value +------------ +A pointer to an object representing the decoder. + + +Remarks +------- +This does not create a copy of the data. It is up to the application to ensure the buffer remains valid for the lifetime of the decoder. + + +See Also +-------- +drflac_open() +drflac_close() +*/ +DRFLAC_API drflac* drflac_open_memory(const void* pData, size_t dataSize, const drflac_allocation_callbacks* pAllocationCallbacks); + +/* +Opens a FLAC decoder from a pre-allocated block of memory and notifies the caller of the metadata chunks (album art, etc.) + + +Parameters +---------- +pData (in) + A pointer to the raw encoded FLAC data. + +dataSize (in) + The size in bytes of `data`. + +onMeta (in) + The callback to fire for each metadata block. + +pUserData (in) + A pointer to the user data to pass to the metadata callback. + +pAllocationCallbacks (in) + A pointer to application defined callbacks for managing memory allocations. + + +Remarks +------- +Look at the documentation for drflac_open_with_metadata() for more information on how metadata is handled. + + +See Also +------- +drflac_open_with_metadata() +drflac_open() +drflac_close() +*/ +DRFLAC_API drflac* drflac_open_memory_with_metadata(const void* pData, size_t dataSize, drflac_meta_proc onMeta, void* pUserData, const drflac_allocation_callbacks* pAllocationCallbacks); + + + +/* High Level APIs */ + +/* +Opens a FLAC stream from the given callbacks and fully decodes it in a single operation. The return value is a +pointer to the sample data as interleaved signed 32-bit PCM. The returned data must be freed with drflac_free(). + +You can pass in custom memory allocation callbacks via the pAllocationCallbacks parameter. This can be NULL in which +case it will use DRFLAC_MALLOC, DRFLAC_REALLOC and DRFLAC_FREE. + +Sometimes a FLAC file won't keep track of the total sample count. In this situation the function will continuously +read samples into a dynamically sized buffer on the heap until no samples are left. + +Do not call this function on a broadcast type of stream (like internet radio streams and whatnot). +*/ +DRFLAC_API drflac_int32* drflac_open_and_read_pcm_frames_s32(drflac_read_proc onRead, drflac_seek_proc onSeek, void* pUserData, unsigned int* channels, unsigned int* sampleRate, drflac_uint64* totalPCMFrameCount, const drflac_allocation_callbacks* pAllocationCallbacks); + +/* Same as drflac_open_and_read_pcm_frames_s32(), except returns signed 16-bit integer samples. */ +DRFLAC_API drflac_int16* drflac_open_and_read_pcm_frames_s16(drflac_read_proc onRead, drflac_seek_proc onSeek, void* pUserData, unsigned int* channels, unsigned int* sampleRate, drflac_uint64* totalPCMFrameCount, const drflac_allocation_callbacks* pAllocationCallbacks); + +/* Same as drflac_open_and_read_pcm_frames_s32(), except returns 32-bit floating-point samples. */ +DRFLAC_API float* drflac_open_and_read_pcm_frames_f32(drflac_read_proc onRead, drflac_seek_proc onSeek, void* pUserData, unsigned int* channels, unsigned int* sampleRate, drflac_uint64* totalPCMFrameCount, const drflac_allocation_callbacks* pAllocationCallbacks); + +#ifndef DR_FLAC_NO_STDIO +/* Same as drflac_open_and_read_pcm_frames_s32() except opens the decoder from a file. */ +DRFLAC_API drflac_int32* drflac_open_file_and_read_pcm_frames_s32(const char* filename, unsigned int* channels, unsigned int* sampleRate, drflac_uint64* totalPCMFrameCount, const drflac_allocation_callbacks* pAllocationCallbacks); + +/* Same as drflac_open_file_and_read_pcm_frames_s32(), except returns signed 16-bit integer samples. */ +DRFLAC_API drflac_int16* drflac_open_file_and_read_pcm_frames_s16(const char* filename, unsigned int* channels, unsigned int* sampleRate, drflac_uint64* totalPCMFrameCount, const drflac_allocation_callbacks* pAllocationCallbacks); + +/* Same as drflac_open_file_and_read_pcm_frames_s32(), except returns 32-bit floating-point samples. */ +DRFLAC_API float* drflac_open_file_and_read_pcm_frames_f32(const char* filename, unsigned int* channels, unsigned int* sampleRate, drflac_uint64* totalPCMFrameCount, const drflac_allocation_callbacks* pAllocationCallbacks); +#endif + +/* Same as drflac_open_and_read_pcm_frames_s32() except opens the decoder from a block of memory. */ +DRFLAC_API drflac_int32* drflac_open_memory_and_read_pcm_frames_s32(const void* data, size_t dataSize, unsigned int* channels, unsigned int* sampleRate, drflac_uint64* totalPCMFrameCount, const drflac_allocation_callbacks* pAllocationCallbacks); + +/* Same as drflac_open_memory_and_read_pcm_frames_s32(), except returns signed 16-bit integer samples. */ +DRFLAC_API drflac_int16* drflac_open_memory_and_read_pcm_frames_s16(const void* data, size_t dataSize, unsigned int* channels, unsigned int* sampleRate, drflac_uint64* totalPCMFrameCount, const drflac_allocation_callbacks* pAllocationCallbacks); + +/* Same as drflac_open_memory_and_read_pcm_frames_s32(), except returns 32-bit floating-point samples. */ +DRFLAC_API float* drflac_open_memory_and_read_pcm_frames_f32(const void* data, size_t dataSize, unsigned int* channels, unsigned int* sampleRate, drflac_uint64* totalPCMFrameCount, const drflac_allocation_callbacks* pAllocationCallbacks); + +/* +Frees memory that was allocated internally by dr_flac. + +Set pAllocationCallbacks to the same object that was passed to drflac_open_*_and_read_pcm_frames_*(). If you originally passed in NULL, pass in NULL for this. +*/ +DRFLAC_API void drflac_free(void* p, const drflac_allocation_callbacks* pAllocationCallbacks); + + +/* Structure representing an iterator for vorbis comments in a VORBIS_COMMENT metadata block. */ +typedef struct +{ + drflac_uint32 countRemaining; + const char* pRunningData; +} drflac_vorbis_comment_iterator; + +/* +Initializes a vorbis comment iterator. This can be used for iterating over the vorbis comments in a VORBIS_COMMENT +metadata block. +*/ +DRFLAC_API void drflac_init_vorbis_comment_iterator(drflac_vorbis_comment_iterator* pIter, drflac_uint32 commentCount, const void* pComments); + +/* +Goes to the next vorbis comment in the given iterator. If null is returned it means there are no more comments. The +returned string is NOT null terminated. +*/ +DRFLAC_API const char* drflac_next_vorbis_comment(drflac_vorbis_comment_iterator* pIter, drflac_uint32* pCommentLengthOut); + + +/* Structure representing an iterator for cuesheet tracks in a CUESHEET metadata block. */ +typedef struct +{ + drflac_uint32 countRemaining; + const char* pRunningData; +} drflac_cuesheet_track_iterator; + +/* The order of members here is important because we map this directly to the raw data within the CUESHEET metadata block. */ +typedef struct +{ + drflac_uint64 offset; + drflac_uint8 index; + drflac_uint8 reserved[3]; +} drflac_cuesheet_track_index; + +typedef struct +{ + drflac_uint64 offset; + drflac_uint8 trackNumber; + char ISRC[12]; + drflac_bool8 isAudio; + drflac_bool8 preEmphasis; + drflac_uint8 indexCount; + const drflac_cuesheet_track_index* pIndexPoints; +} drflac_cuesheet_track; + +/* +Initializes a cuesheet track iterator. This can be used for iterating over the cuesheet tracks in a CUESHEET metadata +block. +*/ +DRFLAC_API void drflac_init_cuesheet_track_iterator(drflac_cuesheet_track_iterator* pIter, drflac_uint32 trackCount, const void* pTrackData); + +/* Goes to the next cuesheet track in the given iterator. If DRFLAC_FALSE is returned it means there are no more comments. */ +DRFLAC_API drflac_bool32 drflac_next_cuesheet_track(drflac_cuesheet_track_iterator* pIter, drflac_cuesheet_track* pCuesheetTrack); + + +#ifdef __cplusplus +} +#endif +#endif /* dr_flac_h */ + + +/************************************************************************************************************************************************************ + ************************************************************************************************************************************************************ + + IMPLEMENTATION + + ************************************************************************************************************************************************************ + ************************************************************************************************************************************************************/ +#if defined(DR_FLAC_IMPLEMENTATION) || defined(DRFLAC_IMPLEMENTATION) +#ifndef dr_flac_c +#define dr_flac_c + +/* Disable some annoying warnings. */ +#if defined(__clang__) || (defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))) + #pragma GCC diagnostic push + #if __GNUC__ >= 7 + #pragma GCC diagnostic ignored "-Wimplicit-fallthrough" + #endif +#endif + +#ifdef __linux__ + #ifndef _BSD_SOURCE + #define _BSD_SOURCE + #endif + #ifndef _DEFAULT_SOURCE + #define _DEFAULT_SOURCE + #endif + #ifndef __USE_BSD + #define __USE_BSD + #endif + #include +#endif + +#include +#include + +/* Inline */ +#ifdef _MSC_VER + #define DRFLAC_INLINE __forceinline +#elif defined(__GNUC__) + /* + I've had a bug report where GCC is emitting warnings about functions possibly not being inlineable. This warning happens when + the __attribute__((always_inline)) attribute is defined without an "inline" statement. I think therefore there must be some + case where "__inline__" is not always defined, thus the compiler emitting these warnings. When using -std=c89 or -ansi on the + command line, we cannot use the "inline" keyword and instead need to use "__inline__". In an attempt to work around this issue + I am using "__inline__" only when we're compiling in strict ANSI mode. + */ + #if defined(__STRICT_ANSI__) + #define DRFLAC_GNUC_INLINE_HINT __inline__ + #else + #define DRFLAC_GNUC_INLINE_HINT inline + #endif + + #if (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)) || defined(__clang__) + #define DRFLAC_INLINE DRFLAC_GNUC_INLINE_HINT __attribute__((always_inline)) + #else + #define DRFLAC_INLINE DRFLAC_GNUC_INLINE_HINT + #endif +#elif defined(__WATCOMC__) + #define DRFLAC_INLINE __inline +#else + #define DRFLAC_INLINE +#endif +/* End Inline */ + +/* +Intrinsics Support + +There's a bug in GCC 4.2.x which results in an incorrect compilation error when using _mm_slli_epi32() where it complains with + + "error: shift must be an immediate" + +Unfortuantely dr_flac depends on this for a few things so we're just going to disable SSE on GCC 4.2 and below. +*/ +#if !defined(DR_FLAC_NO_SIMD) + #if defined(DRFLAC_X64) || defined(DRFLAC_X86) + #if defined(_MSC_VER) && !defined(__clang__) + /* MSVC. */ + #if _MSC_VER >= 1400 && !defined(DRFLAC_NO_SSE2) /* 2005 */ + #define DRFLAC_SUPPORT_SSE2 + #endif + #if _MSC_VER >= 1600 && !defined(DRFLAC_NO_SSE41) /* 2010 */ + #define DRFLAC_SUPPORT_SSE41 + #endif + #elif defined(__clang__) || (defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3))) + /* Assume GNUC-style. */ + #if defined(__SSE2__) && !defined(DRFLAC_NO_SSE2) + #define DRFLAC_SUPPORT_SSE2 + #endif + #if defined(__SSE4_1__) && !defined(DRFLAC_NO_SSE41) + #define DRFLAC_SUPPORT_SSE41 + #endif + #endif + + /* If at this point we still haven't determined compiler support for the intrinsics just fall back to __has_include. */ + #if !defined(__GNUC__) && !defined(__clang__) && defined(__has_include) + #if !defined(DRFLAC_SUPPORT_SSE2) && !defined(DRFLAC_NO_SSE2) && __has_include() + #define DRFLAC_SUPPORT_SSE2 + #endif + #if !defined(DRFLAC_SUPPORT_SSE41) && !defined(DRFLAC_NO_SSE41) && __has_include() + #define DRFLAC_SUPPORT_SSE41 + #endif + #endif + + #if defined(DRFLAC_SUPPORT_SSE41) + #include + #elif defined(DRFLAC_SUPPORT_SSE2) + #include + #endif + #endif + + #if defined(DRFLAC_ARM) + #if !defined(DRFLAC_NO_NEON) && (defined(__ARM_NEON) || defined(__aarch64__) || defined(_M_ARM64)) + #define DRFLAC_SUPPORT_NEON + #include + #endif + #endif +#endif + +/* Compile-time CPU feature support. */ +#if !defined(DR_FLAC_NO_SIMD) && (defined(DRFLAC_X86) || defined(DRFLAC_X64)) + #if defined(_MSC_VER) && !defined(__clang__) + #if _MSC_VER >= 1400 + #include + static void drflac__cpuid(int info[4], int fid) + { + __cpuid(info, fid); + } + #else + #define DRFLAC_NO_CPUID + #endif + #else + #if defined(__GNUC__) || defined(__clang__) + static void drflac__cpuid(int info[4], int fid) + { + /* + It looks like the -fPIC option uses the ebx register which GCC complains about. We can work around this by just using a different register, the + specific register of which I'm letting the compiler decide on. The "k" prefix is used to specify a 32-bit register. The {...} syntax is for + supporting different assembly dialects. + + What's basically happening is that we're saving and restoring the ebx register manually. + */ + #if defined(DRFLAC_X86) && defined(__PIC__) + __asm__ __volatile__ ( + "xchg{l} {%%}ebx, %k1;" + "cpuid;" + "xchg{l} {%%}ebx, %k1;" + : "=a"(info[0]), "=&r"(info[1]), "=c"(info[2]), "=d"(info[3]) : "a"(fid), "c"(0) + ); + #else + __asm__ __volatile__ ( + "cpuid" : "=a"(info[0]), "=b"(info[1]), "=c"(info[2]), "=d"(info[3]) : "a"(fid), "c"(0) + ); + #endif + } + #else + #define DRFLAC_NO_CPUID + #endif + #endif +#else + #define DRFLAC_NO_CPUID +#endif + +static DRFLAC_INLINE drflac_bool32 drflac_has_sse2(void) +{ +#if defined(DRFLAC_SUPPORT_SSE2) + #if (defined(DRFLAC_X64) || defined(DRFLAC_X86)) && !defined(DRFLAC_NO_SSE2) + #if defined(DRFLAC_X64) + return DRFLAC_TRUE; /* 64-bit targets always support SSE2. */ + #elif (defined(_M_IX86_FP) && _M_IX86_FP == 2) || defined(__SSE2__) + return DRFLAC_TRUE; /* If the compiler is allowed to freely generate SSE2 code we can assume support. */ + #else + #if defined(DRFLAC_NO_CPUID) + return DRFLAC_FALSE; + #else + int info[4]; + drflac__cpuid(info, 1); + return (info[3] & (1 << 26)) != 0; + #endif + #endif + #else + return DRFLAC_FALSE; /* SSE2 is only supported on x86 and x64 architectures. */ + #endif +#else + return DRFLAC_FALSE; /* No compiler support. */ +#endif +} + +static DRFLAC_INLINE drflac_bool32 drflac_has_sse41(void) +{ +#if defined(DRFLAC_SUPPORT_SSE41) + #if (defined(DRFLAC_X64) || defined(DRFLAC_X86)) && !defined(DRFLAC_NO_SSE41) + #if defined(__SSE4_1__) || defined(__AVX__) + return DRFLAC_TRUE; /* If the compiler is allowed to freely generate SSE41 code we can assume support. */ + #else + #if defined(DRFLAC_NO_CPUID) + return DRFLAC_FALSE; + #else + int info[4]; + drflac__cpuid(info, 1); + return (info[2] & (1 << 19)) != 0; + #endif + #endif + #else + return DRFLAC_FALSE; /* SSE41 is only supported on x86 and x64 architectures. */ + #endif +#else + return DRFLAC_FALSE; /* No compiler support. */ +#endif +} + + +#if defined(_MSC_VER) && _MSC_VER >= 1500 && (defined(DRFLAC_X86) || defined(DRFLAC_X64)) && !defined(__clang__) + #define DRFLAC_HAS_LZCNT_INTRINSIC +#elif (defined(__GNUC__) && ((__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7))) + #define DRFLAC_HAS_LZCNT_INTRINSIC +#elif defined(__clang__) + #if defined(__has_builtin) + #if __has_builtin(__builtin_clzll) || __has_builtin(__builtin_clzl) + #define DRFLAC_HAS_LZCNT_INTRINSIC + #endif + #endif +#endif + +#if defined(_MSC_VER) && _MSC_VER >= 1400 && !defined(__clang__) + #define DRFLAC_HAS_BYTESWAP16_INTRINSIC + #define DRFLAC_HAS_BYTESWAP32_INTRINSIC + #define DRFLAC_HAS_BYTESWAP64_INTRINSIC +#elif defined(__clang__) + #if defined(__has_builtin) + #if __has_builtin(__builtin_bswap16) + #define DRFLAC_HAS_BYTESWAP16_INTRINSIC + #endif + #if __has_builtin(__builtin_bswap32) + #define DRFLAC_HAS_BYTESWAP32_INTRINSIC + #endif + #if __has_builtin(__builtin_bswap64) + #define DRFLAC_HAS_BYTESWAP64_INTRINSIC + #endif + #endif +#elif defined(__GNUC__) + #if ((__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)) + #define DRFLAC_HAS_BYTESWAP32_INTRINSIC + #define DRFLAC_HAS_BYTESWAP64_INTRINSIC + #endif + #if ((__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8)) + #define DRFLAC_HAS_BYTESWAP16_INTRINSIC + #endif +#elif defined(__WATCOMC__) && defined(__386__) + #define DRFLAC_HAS_BYTESWAP16_INTRINSIC + #define DRFLAC_HAS_BYTESWAP32_INTRINSIC + #define DRFLAC_HAS_BYTESWAP64_INTRINSIC + extern __inline drflac_uint16 _watcom_bswap16(drflac_uint16); + extern __inline drflac_uint32 _watcom_bswap32(drflac_uint32); + extern __inline drflac_uint64 _watcom_bswap64(drflac_uint64); +#pragma aux _watcom_bswap16 = \ + "xchg al, ah" \ + parm [ax] \ + value [ax] \ + modify nomemory; +#pragma aux _watcom_bswap32 = \ + "bswap eax" \ + parm [eax] \ + value [eax] \ + modify nomemory; +#pragma aux _watcom_bswap64 = \ + "bswap eax" \ + "bswap edx" \ + "xchg eax,edx" \ + parm [eax edx] \ + value [eax edx] \ + modify nomemory; +#endif + + +/* Standard library stuff. */ +#ifndef DRFLAC_ASSERT +#include +#define DRFLAC_ASSERT(expression) assert(expression) +#endif +#ifndef DRFLAC_MALLOC +#define DRFLAC_MALLOC(sz) malloc((sz)) +#endif +#ifndef DRFLAC_REALLOC +#define DRFLAC_REALLOC(p, sz) realloc((p), (sz)) +#endif +#ifndef DRFLAC_FREE +#define DRFLAC_FREE(p) free((p)) +#endif +#ifndef DRFLAC_COPY_MEMORY +#define DRFLAC_COPY_MEMORY(dst, src, sz) memcpy((dst), (src), (sz)) +#endif +#ifndef DRFLAC_ZERO_MEMORY +#define DRFLAC_ZERO_MEMORY(p, sz) memset((p), 0, (sz)) +#endif +#ifndef DRFLAC_ZERO_OBJECT +#define DRFLAC_ZERO_OBJECT(p) DRFLAC_ZERO_MEMORY((p), sizeof(*(p))) +#endif + +#define DRFLAC_MAX_SIMD_VECTOR_SIZE 64 /* 64 for AVX-512 in the future. */ + +/* Result Codes */ +typedef drflac_int32 drflac_result; +#define DRFLAC_SUCCESS 0 +#define DRFLAC_ERROR -1 /* A generic error. */ +#define DRFLAC_INVALID_ARGS -2 +#define DRFLAC_INVALID_OPERATION -3 +#define DRFLAC_OUT_OF_MEMORY -4 +#define DRFLAC_OUT_OF_RANGE -5 +#define DRFLAC_ACCESS_DENIED -6 +#define DRFLAC_DOES_NOT_EXIST -7 +#define DRFLAC_ALREADY_EXISTS -8 +#define DRFLAC_TOO_MANY_OPEN_FILES -9 +#define DRFLAC_INVALID_FILE -10 +#define DRFLAC_TOO_BIG -11 +#define DRFLAC_PATH_TOO_LONG -12 +#define DRFLAC_NAME_TOO_LONG -13 +#define DRFLAC_NOT_DIRECTORY -14 +#define DRFLAC_IS_DIRECTORY -15 +#define DRFLAC_DIRECTORY_NOT_EMPTY -16 +#define DRFLAC_END_OF_FILE -17 +#define DRFLAC_NO_SPACE -18 +#define DRFLAC_BUSY -19 +#define DRFLAC_IO_ERROR -20 +#define DRFLAC_INTERRUPT -21 +#define DRFLAC_UNAVAILABLE -22 +#define DRFLAC_ALREADY_IN_USE -23 +#define DRFLAC_BAD_ADDRESS -24 +#define DRFLAC_BAD_SEEK -25 +#define DRFLAC_BAD_PIPE -26 +#define DRFLAC_DEADLOCK -27 +#define DRFLAC_TOO_MANY_LINKS -28 +#define DRFLAC_NOT_IMPLEMENTED -29 +#define DRFLAC_NO_MESSAGE -30 +#define DRFLAC_BAD_MESSAGE -31 +#define DRFLAC_NO_DATA_AVAILABLE -32 +#define DRFLAC_INVALID_DATA -33 +#define DRFLAC_TIMEOUT -34 +#define DRFLAC_NO_NETWORK -35 +#define DRFLAC_NOT_UNIQUE -36 +#define DRFLAC_NOT_SOCKET -37 +#define DRFLAC_NO_ADDRESS -38 +#define DRFLAC_BAD_PROTOCOL -39 +#define DRFLAC_PROTOCOL_UNAVAILABLE -40 +#define DRFLAC_PROTOCOL_NOT_SUPPORTED -41 +#define DRFLAC_PROTOCOL_FAMILY_NOT_SUPPORTED -42 +#define DRFLAC_ADDRESS_FAMILY_NOT_SUPPORTED -43 +#define DRFLAC_SOCKET_NOT_SUPPORTED -44 +#define DRFLAC_CONNECTION_RESET -45 +#define DRFLAC_ALREADY_CONNECTED -46 +#define DRFLAC_NOT_CONNECTED -47 +#define DRFLAC_CONNECTION_REFUSED -48 +#define DRFLAC_NO_HOST -49 +#define DRFLAC_IN_PROGRESS -50 +#define DRFLAC_CANCELLED -51 +#define DRFLAC_MEMORY_ALREADY_MAPPED -52 +#define DRFLAC_AT_END -53 + +#define DRFLAC_CRC_MISMATCH -100 +/* End Result Codes */ + + +#define DRFLAC_SUBFRAME_CONSTANT 0 +#define DRFLAC_SUBFRAME_VERBATIM 1 +#define DRFLAC_SUBFRAME_FIXED 8 +#define DRFLAC_SUBFRAME_LPC 32 +#define DRFLAC_SUBFRAME_RESERVED 255 + +#define DRFLAC_RESIDUAL_CODING_METHOD_PARTITIONED_RICE 0 +#define DRFLAC_RESIDUAL_CODING_METHOD_PARTITIONED_RICE2 1 + +#define DRFLAC_CHANNEL_ASSIGNMENT_INDEPENDENT 0 +#define DRFLAC_CHANNEL_ASSIGNMENT_LEFT_SIDE 8 +#define DRFLAC_CHANNEL_ASSIGNMENT_RIGHT_SIDE 9 +#define DRFLAC_CHANNEL_ASSIGNMENT_MID_SIDE 10 + +#define DRFLAC_SEEKPOINT_SIZE_IN_BYTES 18 +#define DRFLAC_CUESHEET_TRACK_SIZE_IN_BYTES 36 +#define DRFLAC_CUESHEET_TRACK_INDEX_SIZE_IN_BYTES 12 + +#define drflac_align(x, a) ((((x) + (a) - 1) / (a)) * (a)) + + +DRFLAC_API void drflac_version(drflac_uint32* pMajor, drflac_uint32* pMinor, drflac_uint32* pRevision) +{ + if (pMajor) { + *pMajor = DRFLAC_VERSION_MAJOR; + } + + if (pMinor) { + *pMinor = DRFLAC_VERSION_MINOR; + } + + if (pRevision) { + *pRevision = DRFLAC_VERSION_REVISION; + } +} + +DRFLAC_API const char* drflac_version_string(void) +{ + return DRFLAC_VERSION_STRING; +} + + +/* CPU caps. */ +#if defined(__has_feature) + #if __has_feature(thread_sanitizer) + #define DRFLAC_NO_THREAD_SANITIZE __attribute__((no_sanitize("thread"))) + #else + #define DRFLAC_NO_THREAD_SANITIZE + #endif +#else + #define DRFLAC_NO_THREAD_SANITIZE +#endif + +#if defined(DRFLAC_HAS_LZCNT_INTRINSIC) +static drflac_bool32 drflac__gIsLZCNTSupported = DRFLAC_FALSE; +#endif + +#ifndef DRFLAC_NO_CPUID +static drflac_bool32 drflac__gIsSSE2Supported = DRFLAC_FALSE; +static drflac_bool32 drflac__gIsSSE41Supported = DRFLAC_FALSE; + +/* +I've had a bug report that Clang's ThreadSanitizer presents a warning in this function. Having reviewed this, this does +actually make sense. However, since CPU caps should never differ for a running process, I don't think the trade off of +complicating internal API's by passing around CPU caps versus just disabling the warnings is worthwhile. I'm therefore +just going to disable these warnings. This is disabled via the DRFLAC_NO_THREAD_SANITIZE attribute. +*/ +DRFLAC_NO_THREAD_SANITIZE static void drflac__init_cpu_caps(void) +{ + static drflac_bool32 isCPUCapsInitialized = DRFLAC_FALSE; + + if (!isCPUCapsInitialized) { + /* LZCNT */ +#if defined(DRFLAC_HAS_LZCNT_INTRINSIC) + int info[4] = {0}; + drflac__cpuid(info, 0x80000001); + drflac__gIsLZCNTSupported = (info[2] & (1 << 5)) != 0; +#endif + + /* SSE2 */ + drflac__gIsSSE2Supported = drflac_has_sse2(); + + /* SSE4.1 */ + drflac__gIsSSE41Supported = drflac_has_sse41(); + + /* Initialized. */ + isCPUCapsInitialized = DRFLAC_TRUE; + } +} +#else +static drflac_bool32 drflac__gIsNEONSupported = DRFLAC_FALSE; + +static DRFLAC_INLINE drflac_bool32 drflac__has_neon(void) +{ +#if defined(DRFLAC_SUPPORT_NEON) + #if defined(DRFLAC_ARM) && !defined(DRFLAC_NO_NEON) + #if (defined(__ARM_NEON) || defined(__aarch64__) || defined(_M_ARM64)) + return DRFLAC_TRUE; /* If the compiler is allowed to freely generate NEON code we can assume support. */ + #else + /* TODO: Runtime check. */ + return DRFLAC_FALSE; + #endif + #else + return DRFLAC_FALSE; /* NEON is only supported on ARM architectures. */ + #endif +#else + return DRFLAC_FALSE; /* No compiler support. */ +#endif +} + +DRFLAC_NO_THREAD_SANITIZE static void drflac__init_cpu_caps(void) +{ + drflac__gIsNEONSupported = drflac__has_neon(); + +#if defined(DRFLAC_HAS_LZCNT_INTRINSIC) && defined(DRFLAC_ARM) && (defined(__ARM_ARCH) && __ARM_ARCH >= 5) + drflac__gIsLZCNTSupported = DRFLAC_TRUE; +#endif +} +#endif + + +/* Endian Management */ +static DRFLAC_INLINE drflac_bool32 drflac__is_little_endian(void) +{ +#if defined(DRFLAC_X86) || defined(DRFLAC_X64) + return DRFLAC_TRUE; +#elif defined(__BYTE_ORDER) && defined(__LITTLE_ENDIAN) && __BYTE_ORDER == __LITTLE_ENDIAN + return DRFLAC_TRUE; +#else + int n = 1; + return (*(char*)&n) == 1; +#endif +} + +static DRFLAC_INLINE drflac_uint16 drflac__swap_endian_uint16(drflac_uint16 n) +{ +#ifdef DRFLAC_HAS_BYTESWAP16_INTRINSIC + #if defined(_MSC_VER) && !defined(__clang__) + return _byteswap_ushort(n); + #elif defined(__GNUC__) || defined(__clang__) + return __builtin_bswap16(n); + #elif defined(__WATCOMC__) && defined(__386__) + return _watcom_bswap16(n); + #else + #error "This compiler does not support the byte swap intrinsic." + #endif +#else + return ((n & 0xFF00) >> 8) | + ((n & 0x00FF) << 8); +#endif +} + +static DRFLAC_INLINE drflac_uint32 drflac__swap_endian_uint32(drflac_uint32 n) +{ +#ifdef DRFLAC_HAS_BYTESWAP32_INTRINSIC + #if defined(_MSC_VER) && !defined(__clang__) + return _byteswap_ulong(n); + #elif defined(__GNUC__) || defined(__clang__) + #if defined(DRFLAC_ARM) && (defined(__ARM_ARCH) && __ARM_ARCH >= 6) && !defined(__ARM_ARCH_6M__) && !defined(DRFLAC_64BIT) /* <-- 64-bit inline assembly has not been tested, so disabling for now. */ + /* Inline assembly optimized implementation for ARM. In my testing, GCC does not generate optimized code with __builtin_bswap32(). */ + drflac_uint32 r; + __asm__ __volatile__ ( + #if defined(DRFLAC_64BIT) + "rev %w[out], %w[in]" : [out]"=r"(r) : [in]"r"(n) /* <-- This is untested. If someone in the community could test this, that would be appreciated! */ + #else + "rev %[out], %[in]" : [out]"=r"(r) : [in]"r"(n) + #endif + ); + return r; + #else + return __builtin_bswap32(n); + #endif + #elif defined(__WATCOMC__) && defined(__386__) + return _watcom_bswap32(n); + #else + #error "This compiler does not support the byte swap intrinsic." + #endif +#else + return ((n & 0xFF000000) >> 24) | + ((n & 0x00FF0000) >> 8) | + ((n & 0x0000FF00) << 8) | + ((n & 0x000000FF) << 24); +#endif +} + +static DRFLAC_INLINE drflac_uint64 drflac__swap_endian_uint64(drflac_uint64 n) +{ +#ifdef DRFLAC_HAS_BYTESWAP64_INTRINSIC + #if defined(_MSC_VER) && !defined(__clang__) + return _byteswap_uint64(n); + #elif defined(__GNUC__) || defined(__clang__) + return __builtin_bswap64(n); + #elif defined(__WATCOMC__) && defined(__386__) + return _watcom_bswap64(n); + #else + #error "This compiler does not support the byte swap intrinsic." + #endif +#else + /* Weird "<< 32" bitshift is required for C89 because it doesn't support 64-bit constants. Should be optimized out by a good compiler. */ + return ((n & ((drflac_uint64)0xFF000000 << 32)) >> 56) | + ((n & ((drflac_uint64)0x00FF0000 << 32)) >> 40) | + ((n & ((drflac_uint64)0x0000FF00 << 32)) >> 24) | + ((n & ((drflac_uint64)0x000000FF << 32)) >> 8) | + ((n & ((drflac_uint64)0xFF000000 )) << 8) | + ((n & ((drflac_uint64)0x00FF0000 )) << 24) | + ((n & ((drflac_uint64)0x0000FF00 )) << 40) | + ((n & ((drflac_uint64)0x000000FF )) << 56); +#endif +} + + +static DRFLAC_INLINE drflac_uint16 drflac__be2host_16(drflac_uint16 n) +{ + if (drflac__is_little_endian()) { + return drflac__swap_endian_uint16(n); + } + + return n; +} + +static DRFLAC_INLINE drflac_uint32 drflac__be2host_32(drflac_uint32 n) +{ + if (drflac__is_little_endian()) { + return drflac__swap_endian_uint32(n); + } + + return n; +} + +static DRFLAC_INLINE drflac_uint32 drflac__be2host_32_ptr_unaligned(const void* pData) +{ + const drflac_uint8* pNum = (drflac_uint8*)pData; + return *(pNum) << 24 | *(pNum+1) << 16 | *(pNum+2) << 8 | *(pNum+3); +} + +static DRFLAC_INLINE drflac_uint64 drflac__be2host_64(drflac_uint64 n) +{ + if (drflac__is_little_endian()) { + return drflac__swap_endian_uint64(n); + } + + return n; +} + + +static DRFLAC_INLINE drflac_uint32 drflac__le2host_32(drflac_uint32 n) +{ + if (!drflac__is_little_endian()) { + return drflac__swap_endian_uint32(n); + } + + return n; +} + +static DRFLAC_INLINE drflac_uint32 drflac__le2host_32_ptr_unaligned(const void* pData) +{ + const drflac_uint8* pNum = (drflac_uint8*)pData; + return *pNum | *(pNum+1) << 8 | *(pNum+2) << 16 | *(pNum+3) << 24; +} + + +static DRFLAC_INLINE drflac_uint32 drflac__unsynchsafe_32(drflac_uint32 n) +{ + drflac_uint32 result = 0; + result |= (n & 0x7F000000) >> 3; + result |= (n & 0x007F0000) >> 2; + result |= (n & 0x00007F00) >> 1; + result |= (n & 0x0000007F) >> 0; + + return result; +} + + + +/* The CRC code below is based on this document: http://zlib.net/crc_v3.txt */ +static drflac_uint8 drflac__crc8_table[] = { + 0x00, 0x07, 0x0E, 0x09, 0x1C, 0x1B, 0x12, 0x15, 0x38, 0x3F, 0x36, 0x31, 0x24, 0x23, 0x2A, 0x2D, + 0x70, 0x77, 0x7E, 0x79, 0x6C, 0x6B, 0x62, 0x65, 0x48, 0x4F, 0x46, 0x41, 0x54, 0x53, 0x5A, 0x5D, + 0xE0, 0xE7, 0xEE, 0xE9, 0xFC, 0xFB, 0xF2, 0xF5, 0xD8, 0xDF, 0xD6, 0xD1, 0xC4, 0xC3, 0xCA, 0xCD, + 0x90, 0x97, 0x9E, 0x99, 0x8C, 0x8B, 0x82, 0x85, 0xA8, 0xAF, 0xA6, 0xA1, 0xB4, 0xB3, 0xBA, 0xBD, + 0xC7, 0xC0, 0xC9, 0xCE, 0xDB, 0xDC, 0xD5, 0xD2, 0xFF, 0xF8, 0xF1, 0xF6, 0xE3, 0xE4, 0xED, 0xEA, + 0xB7, 0xB0, 0xB9, 0xBE, 0xAB, 0xAC, 0xA5, 0xA2, 0x8F, 0x88, 0x81, 0x86, 0x93, 0x94, 0x9D, 0x9A, + 0x27, 0x20, 0x29, 0x2E, 0x3B, 0x3C, 0x35, 0x32, 0x1F, 0x18, 0x11, 0x16, 0x03, 0x04, 0x0D, 0x0A, + 0x57, 0x50, 0x59, 0x5E, 0x4B, 0x4C, 0x45, 0x42, 0x6F, 0x68, 0x61, 0x66, 0x73, 0x74, 0x7D, 0x7A, + 0x89, 0x8E, 0x87, 0x80, 0x95, 0x92, 0x9B, 0x9C, 0xB1, 0xB6, 0xBF, 0xB8, 0xAD, 0xAA, 0xA3, 0xA4, + 0xF9, 0xFE, 0xF7, 0xF0, 0xE5, 0xE2, 0xEB, 0xEC, 0xC1, 0xC6, 0xCF, 0xC8, 0xDD, 0xDA, 0xD3, 0xD4, + 0x69, 0x6E, 0x67, 0x60, 0x75, 0x72, 0x7B, 0x7C, 0x51, 0x56, 0x5F, 0x58, 0x4D, 0x4A, 0x43, 0x44, + 0x19, 0x1E, 0x17, 0x10, 0x05, 0x02, 0x0B, 0x0C, 0x21, 0x26, 0x2F, 0x28, 0x3D, 0x3A, 0x33, 0x34, + 0x4E, 0x49, 0x40, 0x47, 0x52, 0x55, 0x5C, 0x5B, 0x76, 0x71, 0x78, 0x7F, 0x6A, 0x6D, 0x64, 0x63, + 0x3E, 0x39, 0x30, 0x37, 0x22, 0x25, 0x2C, 0x2B, 0x06, 0x01, 0x08, 0x0F, 0x1A, 0x1D, 0x14, 0x13, + 0xAE, 0xA9, 0xA0, 0xA7, 0xB2, 0xB5, 0xBC, 0xBB, 0x96, 0x91, 0x98, 0x9F, 0x8A, 0x8D, 0x84, 0x83, + 0xDE, 0xD9, 0xD0, 0xD7, 0xC2, 0xC5, 0xCC, 0xCB, 0xE6, 0xE1, 0xE8, 0xEF, 0xFA, 0xFD, 0xF4, 0xF3 +}; + +static drflac_uint16 drflac__crc16_table[] = { + 0x0000, 0x8005, 0x800F, 0x000A, 0x801B, 0x001E, 0x0014, 0x8011, + 0x8033, 0x0036, 0x003C, 0x8039, 0x0028, 0x802D, 0x8027, 0x0022, + 0x8063, 0x0066, 0x006C, 0x8069, 0x0078, 0x807D, 0x8077, 0x0072, + 0x0050, 0x8055, 0x805F, 0x005A, 0x804B, 0x004E, 0x0044, 0x8041, + 0x80C3, 0x00C6, 0x00CC, 0x80C9, 0x00D8, 0x80DD, 0x80D7, 0x00D2, + 0x00F0, 0x80F5, 0x80FF, 0x00FA, 0x80EB, 0x00EE, 0x00E4, 0x80E1, + 0x00A0, 0x80A5, 0x80AF, 0x00AA, 0x80BB, 0x00BE, 0x00B4, 0x80B1, + 0x8093, 0x0096, 0x009C, 0x8099, 0x0088, 0x808D, 0x8087, 0x0082, + 0x8183, 0x0186, 0x018C, 0x8189, 0x0198, 0x819D, 0x8197, 0x0192, + 0x01B0, 0x81B5, 0x81BF, 0x01BA, 0x81AB, 0x01AE, 0x01A4, 0x81A1, + 0x01E0, 0x81E5, 0x81EF, 0x01EA, 0x81FB, 0x01FE, 0x01F4, 0x81F1, + 0x81D3, 0x01D6, 0x01DC, 0x81D9, 0x01C8, 0x81CD, 0x81C7, 0x01C2, + 0x0140, 0x8145, 0x814F, 0x014A, 0x815B, 0x015E, 0x0154, 0x8151, + 0x8173, 0x0176, 0x017C, 0x8179, 0x0168, 0x816D, 0x8167, 0x0162, + 0x8123, 0x0126, 0x012C, 0x8129, 0x0138, 0x813D, 0x8137, 0x0132, + 0x0110, 0x8115, 0x811F, 0x011A, 0x810B, 0x010E, 0x0104, 0x8101, + 0x8303, 0x0306, 0x030C, 0x8309, 0x0318, 0x831D, 0x8317, 0x0312, + 0x0330, 0x8335, 0x833F, 0x033A, 0x832B, 0x032E, 0x0324, 0x8321, + 0x0360, 0x8365, 0x836F, 0x036A, 0x837B, 0x037E, 0x0374, 0x8371, + 0x8353, 0x0356, 0x035C, 0x8359, 0x0348, 0x834D, 0x8347, 0x0342, + 0x03C0, 0x83C5, 0x83CF, 0x03CA, 0x83DB, 0x03DE, 0x03D4, 0x83D1, + 0x83F3, 0x03F6, 0x03FC, 0x83F9, 0x03E8, 0x83ED, 0x83E7, 0x03E2, + 0x83A3, 0x03A6, 0x03AC, 0x83A9, 0x03B8, 0x83BD, 0x83B7, 0x03B2, + 0x0390, 0x8395, 0x839F, 0x039A, 0x838B, 0x038E, 0x0384, 0x8381, + 0x0280, 0x8285, 0x828F, 0x028A, 0x829B, 0x029E, 0x0294, 0x8291, + 0x82B3, 0x02B6, 0x02BC, 0x82B9, 0x02A8, 0x82AD, 0x82A7, 0x02A2, + 0x82E3, 0x02E6, 0x02EC, 0x82E9, 0x02F8, 0x82FD, 0x82F7, 0x02F2, + 0x02D0, 0x82D5, 0x82DF, 0x02DA, 0x82CB, 0x02CE, 0x02C4, 0x82C1, + 0x8243, 0x0246, 0x024C, 0x8249, 0x0258, 0x825D, 0x8257, 0x0252, + 0x0270, 0x8275, 0x827F, 0x027A, 0x826B, 0x026E, 0x0264, 0x8261, + 0x0220, 0x8225, 0x822F, 0x022A, 0x823B, 0x023E, 0x0234, 0x8231, + 0x8213, 0x0216, 0x021C, 0x8219, 0x0208, 0x820D, 0x8207, 0x0202 +}; + +static DRFLAC_INLINE drflac_uint8 drflac_crc8_byte(drflac_uint8 crc, drflac_uint8 data) +{ + return drflac__crc8_table[crc ^ data]; +} + +static DRFLAC_INLINE drflac_uint8 drflac_crc8(drflac_uint8 crc, drflac_uint32 data, drflac_uint32 count) +{ +#ifdef DR_FLAC_NO_CRC + (void)crc; + (void)data; + (void)count; + return 0; +#else +#if 0 + /* REFERENCE (use of this implementation requires an explicit flush by doing "drflac_crc8(crc, 0, 8);") */ + drflac_uint8 p = 0x07; + for (int i = count-1; i >= 0; --i) { + drflac_uint8 bit = (data & (1 << i)) >> i; + if (crc & 0x80) { + crc = ((crc << 1) | bit) ^ p; + } else { + crc = ((crc << 1) | bit); + } + } + return crc; +#else + drflac_uint32 wholeBytes; + drflac_uint32 leftoverBits; + drflac_uint64 leftoverDataMask; + + static drflac_uint64 leftoverDataMaskTable[8] = { + 0x00, 0x01, 0x03, 0x07, 0x0F, 0x1F, 0x3F, 0x7F + }; + + DRFLAC_ASSERT(count <= 32); + + wholeBytes = count >> 3; + leftoverBits = count - (wholeBytes*8); + leftoverDataMask = leftoverDataMaskTable[leftoverBits]; + + switch (wholeBytes) { + case 4: crc = drflac_crc8_byte(crc, (drflac_uint8)((data & (0xFF000000UL << leftoverBits)) >> (24 + leftoverBits))); + case 3: crc = drflac_crc8_byte(crc, (drflac_uint8)((data & (0x00FF0000UL << leftoverBits)) >> (16 + leftoverBits))); + case 2: crc = drflac_crc8_byte(crc, (drflac_uint8)((data & (0x0000FF00UL << leftoverBits)) >> ( 8 + leftoverBits))); + case 1: crc = drflac_crc8_byte(crc, (drflac_uint8)((data & (0x000000FFUL << leftoverBits)) >> ( 0 + leftoverBits))); + case 0: if (leftoverBits > 0) crc = (drflac_uint8)((crc << leftoverBits) ^ drflac__crc8_table[(crc >> (8 - leftoverBits)) ^ (data & leftoverDataMask)]); + } + return crc; +#endif +#endif +} + +static DRFLAC_INLINE drflac_uint16 drflac_crc16_byte(drflac_uint16 crc, drflac_uint8 data) +{ + return (crc << 8) ^ drflac__crc16_table[(drflac_uint8)(crc >> 8) ^ data]; +} + +static DRFLAC_INLINE drflac_uint16 drflac_crc16_cache(drflac_uint16 crc, drflac_cache_t data) +{ +#ifdef DRFLAC_64BIT + crc = drflac_crc16_byte(crc, (drflac_uint8)((data >> 56) & 0xFF)); + crc = drflac_crc16_byte(crc, (drflac_uint8)((data >> 48) & 0xFF)); + crc = drflac_crc16_byte(crc, (drflac_uint8)((data >> 40) & 0xFF)); + crc = drflac_crc16_byte(crc, (drflac_uint8)((data >> 32) & 0xFF)); +#endif + crc = drflac_crc16_byte(crc, (drflac_uint8)((data >> 24) & 0xFF)); + crc = drflac_crc16_byte(crc, (drflac_uint8)((data >> 16) & 0xFF)); + crc = drflac_crc16_byte(crc, (drflac_uint8)((data >> 8) & 0xFF)); + crc = drflac_crc16_byte(crc, (drflac_uint8)((data >> 0) & 0xFF)); + + return crc; +} + +static DRFLAC_INLINE drflac_uint16 drflac_crc16_bytes(drflac_uint16 crc, drflac_cache_t data, drflac_uint32 byteCount) +{ + switch (byteCount) + { +#ifdef DRFLAC_64BIT + case 8: crc = drflac_crc16_byte(crc, (drflac_uint8)((data >> 56) & 0xFF)); + case 7: crc = drflac_crc16_byte(crc, (drflac_uint8)((data >> 48) & 0xFF)); + case 6: crc = drflac_crc16_byte(crc, (drflac_uint8)((data >> 40) & 0xFF)); + case 5: crc = drflac_crc16_byte(crc, (drflac_uint8)((data >> 32) & 0xFF)); +#endif + case 4: crc = drflac_crc16_byte(crc, (drflac_uint8)((data >> 24) & 0xFF)); + case 3: crc = drflac_crc16_byte(crc, (drflac_uint8)((data >> 16) & 0xFF)); + case 2: crc = drflac_crc16_byte(crc, (drflac_uint8)((data >> 8) & 0xFF)); + case 1: crc = drflac_crc16_byte(crc, (drflac_uint8)((data >> 0) & 0xFF)); + } + + return crc; +} + +#if 0 +static DRFLAC_INLINE drflac_uint16 drflac_crc16__32bit(drflac_uint16 crc, drflac_uint32 data, drflac_uint32 count) +{ +#ifdef DR_FLAC_NO_CRC + (void)crc; + (void)data; + (void)count; + return 0; +#else +#if 0 + /* REFERENCE (use of this implementation requires an explicit flush by doing "drflac_crc16(crc, 0, 16);") */ + drflac_uint16 p = 0x8005; + for (int i = count-1; i >= 0; --i) { + drflac_uint16 bit = (data & (1ULL << i)) >> i; + if (r & 0x8000) { + r = ((r << 1) | bit) ^ p; + } else { + r = ((r << 1) | bit); + } + } + + return crc; +#else + drflac_uint32 wholeBytes; + drflac_uint32 leftoverBits; + drflac_uint64 leftoverDataMask; + + static drflac_uint64 leftoverDataMaskTable[8] = { + 0x00, 0x01, 0x03, 0x07, 0x0F, 0x1F, 0x3F, 0x7F + }; + + DRFLAC_ASSERT(count <= 64); + + wholeBytes = count >> 3; + leftoverBits = count & 7; + leftoverDataMask = leftoverDataMaskTable[leftoverBits]; + + switch (wholeBytes) { + default: + case 4: crc = drflac_crc16_byte(crc, (drflac_uint8)((data & (0xFF000000UL << leftoverBits)) >> (24 + leftoverBits))); + case 3: crc = drflac_crc16_byte(crc, (drflac_uint8)((data & (0x00FF0000UL << leftoverBits)) >> (16 + leftoverBits))); + case 2: crc = drflac_crc16_byte(crc, (drflac_uint8)((data & (0x0000FF00UL << leftoverBits)) >> ( 8 + leftoverBits))); + case 1: crc = drflac_crc16_byte(crc, (drflac_uint8)((data & (0x000000FFUL << leftoverBits)) >> ( 0 + leftoverBits))); + case 0: if (leftoverBits > 0) crc = (crc << leftoverBits) ^ drflac__crc16_table[(crc >> (16 - leftoverBits)) ^ (data & leftoverDataMask)]; + } + return crc; +#endif +#endif +} + +static DRFLAC_INLINE drflac_uint16 drflac_crc16__64bit(drflac_uint16 crc, drflac_uint64 data, drflac_uint32 count) +{ +#ifdef DR_FLAC_NO_CRC + (void)crc; + (void)data; + (void)count; + return 0; +#else + drflac_uint32 wholeBytes; + drflac_uint32 leftoverBits; + drflac_uint64 leftoverDataMask; + + static drflac_uint64 leftoverDataMaskTable[8] = { + 0x00, 0x01, 0x03, 0x07, 0x0F, 0x1F, 0x3F, 0x7F + }; + + DRFLAC_ASSERT(count <= 64); + + wholeBytes = count >> 3; + leftoverBits = count & 7; + leftoverDataMask = leftoverDataMaskTable[leftoverBits]; + + switch (wholeBytes) { + default: + case 8: crc = drflac_crc16_byte(crc, (drflac_uint8)((data & (((drflac_uint64)0xFF000000 << 32) << leftoverBits)) >> (56 + leftoverBits))); /* Weird "<< 32" bitshift is required for C89 because it doesn't support 64-bit constants. Should be optimized out by a good compiler. */ + case 7: crc = drflac_crc16_byte(crc, (drflac_uint8)((data & (((drflac_uint64)0x00FF0000 << 32) << leftoverBits)) >> (48 + leftoverBits))); + case 6: crc = drflac_crc16_byte(crc, (drflac_uint8)((data & (((drflac_uint64)0x0000FF00 << 32) << leftoverBits)) >> (40 + leftoverBits))); + case 5: crc = drflac_crc16_byte(crc, (drflac_uint8)((data & (((drflac_uint64)0x000000FF << 32) << leftoverBits)) >> (32 + leftoverBits))); + case 4: crc = drflac_crc16_byte(crc, (drflac_uint8)((data & (((drflac_uint64)0xFF000000 ) << leftoverBits)) >> (24 + leftoverBits))); + case 3: crc = drflac_crc16_byte(crc, (drflac_uint8)((data & (((drflac_uint64)0x00FF0000 ) << leftoverBits)) >> (16 + leftoverBits))); + case 2: crc = drflac_crc16_byte(crc, (drflac_uint8)((data & (((drflac_uint64)0x0000FF00 ) << leftoverBits)) >> ( 8 + leftoverBits))); + case 1: crc = drflac_crc16_byte(crc, (drflac_uint8)((data & (((drflac_uint64)0x000000FF ) << leftoverBits)) >> ( 0 + leftoverBits))); + case 0: if (leftoverBits > 0) crc = (crc << leftoverBits) ^ drflac__crc16_table[(crc >> (16 - leftoverBits)) ^ (data & leftoverDataMask)]; + } + return crc; +#endif +} + + +static DRFLAC_INLINE drflac_uint16 drflac_crc16(drflac_uint16 crc, drflac_cache_t data, drflac_uint32 count) +{ +#ifdef DRFLAC_64BIT + return drflac_crc16__64bit(crc, data, count); +#else + return drflac_crc16__32bit(crc, data, count); +#endif +} +#endif + + +#ifdef DRFLAC_64BIT +#define drflac__be2host__cache_line drflac__be2host_64 +#else +#define drflac__be2host__cache_line drflac__be2host_32 +#endif + +/* +BIT READING ATTEMPT #2 + +This uses a 32- or 64-bit bit-shifted cache - as bits are read, the cache is shifted such that the first valid bit is sitting +on the most significant bit. It uses the notion of an L1 and L2 cache (borrowed from CPU architecture), where the L1 cache +is a 32- or 64-bit unsigned integer (depending on whether or not a 32- or 64-bit build is being compiled) and the L2 is an +array of "cache lines", with each cache line being the same size as the L1. The L2 is a buffer of about 4KB and is where data +from onRead() is read into. +*/ +#define DRFLAC_CACHE_L1_SIZE_BYTES(bs) (sizeof((bs)->cache)) +#define DRFLAC_CACHE_L1_SIZE_BITS(bs) (sizeof((bs)->cache)*8) +#define DRFLAC_CACHE_L1_BITS_REMAINING(bs) (DRFLAC_CACHE_L1_SIZE_BITS(bs) - (bs)->consumedBits) +#define DRFLAC_CACHE_L1_SELECTION_MASK(_bitCount) (~((~(drflac_cache_t)0) >> (_bitCount))) +#define DRFLAC_CACHE_L1_SELECTION_SHIFT(bs, _bitCount) (DRFLAC_CACHE_L1_SIZE_BITS(bs) - (_bitCount)) +#define DRFLAC_CACHE_L1_SELECT(bs, _bitCount) (((bs)->cache) & DRFLAC_CACHE_L1_SELECTION_MASK(_bitCount)) +#define DRFLAC_CACHE_L1_SELECT_AND_SHIFT(bs, _bitCount) (DRFLAC_CACHE_L1_SELECT((bs), (_bitCount)) >> DRFLAC_CACHE_L1_SELECTION_SHIFT((bs), (_bitCount))) +#define DRFLAC_CACHE_L1_SELECT_AND_SHIFT_SAFE(bs, _bitCount)(DRFLAC_CACHE_L1_SELECT((bs), (_bitCount)) >> (DRFLAC_CACHE_L1_SELECTION_SHIFT((bs), (_bitCount)) & (DRFLAC_CACHE_L1_SIZE_BITS(bs)-1))) +#define DRFLAC_CACHE_L2_SIZE_BYTES(bs) (sizeof((bs)->cacheL2)) +#define DRFLAC_CACHE_L2_LINE_COUNT(bs) (DRFLAC_CACHE_L2_SIZE_BYTES(bs) / sizeof((bs)->cacheL2[0])) +#define DRFLAC_CACHE_L2_LINES_REMAINING(bs) (DRFLAC_CACHE_L2_LINE_COUNT(bs) - (bs)->nextL2Line) + + +#ifndef DR_FLAC_NO_CRC +static DRFLAC_INLINE void drflac__reset_crc16(drflac_bs* bs) +{ + bs->crc16 = 0; + bs->crc16CacheIgnoredBytes = bs->consumedBits >> 3; +} + +static DRFLAC_INLINE void drflac__update_crc16(drflac_bs* bs) +{ + if (bs->crc16CacheIgnoredBytes == 0) { + bs->crc16 = drflac_crc16_cache(bs->crc16, bs->crc16Cache); + } else { + bs->crc16 = drflac_crc16_bytes(bs->crc16, bs->crc16Cache, DRFLAC_CACHE_L1_SIZE_BYTES(bs) - bs->crc16CacheIgnoredBytes); + bs->crc16CacheIgnoredBytes = 0; + } +} + +static DRFLAC_INLINE drflac_uint16 drflac__flush_crc16(drflac_bs* bs) +{ + /* We should never be flushing in a situation where we are not aligned on a byte boundary. */ + DRFLAC_ASSERT((DRFLAC_CACHE_L1_BITS_REMAINING(bs) & 7) == 0); + + /* + The bits that were read from the L1 cache need to be accumulated. The number of bytes needing to be accumulated is determined + by the number of bits that have been consumed. + */ + if (DRFLAC_CACHE_L1_BITS_REMAINING(bs) == 0) { + drflac__update_crc16(bs); + } else { + /* We only accumulate the consumed bits. */ + bs->crc16 = drflac_crc16_bytes(bs->crc16, bs->crc16Cache >> DRFLAC_CACHE_L1_BITS_REMAINING(bs), (bs->consumedBits >> 3) - bs->crc16CacheIgnoredBytes); + + /* + The bits that we just accumulated should never be accumulated again. We need to keep track of how many bytes were accumulated + so we can handle that later. + */ + bs->crc16CacheIgnoredBytes = bs->consumedBits >> 3; + } + + return bs->crc16; +} +#endif + +static DRFLAC_INLINE drflac_bool32 drflac__reload_l1_cache_from_l2(drflac_bs* bs) +{ + size_t bytesRead; + size_t alignedL1LineCount; + + /* Fast path. Try loading straight from L2. */ + if (bs->nextL2Line < DRFLAC_CACHE_L2_LINE_COUNT(bs)) { + bs->cache = bs->cacheL2[bs->nextL2Line++]; + return DRFLAC_TRUE; + } + + /* + If we get here it means we've run out of data in the L2 cache. We'll need to fetch more from the client, if there's + any left. + */ + if (bs->unalignedByteCount > 0) { + return DRFLAC_FALSE; /* If we have any unaligned bytes it means there's no more aligned bytes left in the client. */ + } + + bytesRead = bs->onRead(bs->pUserData, bs->cacheL2, DRFLAC_CACHE_L2_SIZE_BYTES(bs)); + + bs->nextL2Line = 0; + if (bytesRead == DRFLAC_CACHE_L2_SIZE_BYTES(bs)) { + bs->cache = bs->cacheL2[bs->nextL2Line++]; + return DRFLAC_TRUE; + } + + + /* + If we get here it means we were unable to retrieve enough data to fill the entire L2 cache. It probably + means we've just reached the end of the file. We need to move the valid data down to the end of the buffer + and adjust the index of the next line accordingly. Also keep in mind that the L2 cache must be aligned to + the size of the L1 so we'll need to seek backwards by any misaligned bytes. + */ + alignedL1LineCount = bytesRead / DRFLAC_CACHE_L1_SIZE_BYTES(bs); + + /* We need to keep track of any unaligned bytes for later use. */ + bs->unalignedByteCount = bytesRead - (alignedL1LineCount * DRFLAC_CACHE_L1_SIZE_BYTES(bs)); + if (bs->unalignedByteCount > 0) { + bs->unalignedCache = bs->cacheL2[alignedL1LineCount]; + } + + if (alignedL1LineCount > 0) { + size_t offset = DRFLAC_CACHE_L2_LINE_COUNT(bs) - alignedL1LineCount; + size_t i; + for (i = alignedL1LineCount; i > 0; --i) { + bs->cacheL2[i-1 + offset] = bs->cacheL2[i-1]; + } + + bs->nextL2Line = (drflac_uint32)offset; + bs->cache = bs->cacheL2[bs->nextL2Line++]; + return DRFLAC_TRUE; + } else { + /* If we get into this branch it means we weren't able to load any L1-aligned data. */ + bs->nextL2Line = DRFLAC_CACHE_L2_LINE_COUNT(bs); + return DRFLAC_FALSE; + } +} + +static drflac_bool32 drflac__reload_cache(drflac_bs* bs) +{ + size_t bytesRead; + +#ifndef DR_FLAC_NO_CRC + drflac__update_crc16(bs); +#endif + + /* Fast path. Try just moving the next value in the L2 cache to the L1 cache. */ + if (drflac__reload_l1_cache_from_l2(bs)) { + bs->cache = drflac__be2host__cache_line(bs->cache); + bs->consumedBits = 0; +#ifndef DR_FLAC_NO_CRC + bs->crc16Cache = bs->cache; +#endif + return DRFLAC_TRUE; + } + + /* Slow path. */ + + /* + If we get here it means we have failed to load the L1 cache from the L2. Likely we've just reached the end of the stream and the last + few bytes did not meet the alignment requirements for the L2 cache. In this case we need to fall back to a slower path and read the + data from the unaligned cache. + */ + bytesRead = bs->unalignedByteCount; + if (bytesRead == 0) { + bs->consumedBits = DRFLAC_CACHE_L1_SIZE_BITS(bs); /* <-- The stream has been exhausted, so marked the bits as consumed. */ + return DRFLAC_FALSE; + } + + DRFLAC_ASSERT(bytesRead < DRFLAC_CACHE_L1_SIZE_BYTES(bs)); + bs->consumedBits = (drflac_uint32)(DRFLAC_CACHE_L1_SIZE_BYTES(bs) - bytesRead) * 8; + + bs->cache = drflac__be2host__cache_line(bs->unalignedCache); + bs->cache &= DRFLAC_CACHE_L1_SELECTION_MASK(DRFLAC_CACHE_L1_BITS_REMAINING(bs)); /* <-- Make sure the consumed bits are always set to zero. Other parts of the library depend on this property. */ + bs->unalignedByteCount = 0; /* <-- At this point the unaligned bytes have been moved into the cache and we thus have no more unaligned bytes. */ + +#ifndef DR_FLAC_NO_CRC + bs->crc16Cache = bs->cache >> bs->consumedBits; + bs->crc16CacheIgnoredBytes = bs->consumedBits >> 3; +#endif + return DRFLAC_TRUE; +} + +static void drflac__reset_cache(drflac_bs* bs) +{ + bs->nextL2Line = DRFLAC_CACHE_L2_LINE_COUNT(bs); /* <-- This clears the L2 cache. */ + bs->consumedBits = DRFLAC_CACHE_L1_SIZE_BITS(bs); /* <-- This clears the L1 cache. */ + bs->cache = 0; + bs->unalignedByteCount = 0; /* <-- This clears the trailing unaligned bytes. */ + bs->unalignedCache = 0; + +#ifndef DR_FLAC_NO_CRC + bs->crc16Cache = 0; + bs->crc16CacheIgnoredBytes = 0; +#endif +} + + +static DRFLAC_INLINE drflac_bool32 drflac__read_uint32(drflac_bs* bs, unsigned int bitCount, drflac_uint32* pResultOut) +{ + DRFLAC_ASSERT(bs != NULL); + DRFLAC_ASSERT(pResultOut != NULL); + DRFLAC_ASSERT(bitCount > 0); + DRFLAC_ASSERT(bitCount <= 32); + + if (bs->consumedBits == DRFLAC_CACHE_L1_SIZE_BITS(bs)) { + if (!drflac__reload_cache(bs)) { + return DRFLAC_FALSE; + } + } + + if (bitCount <= DRFLAC_CACHE_L1_BITS_REMAINING(bs)) { + /* + If we want to load all 32-bits from a 32-bit cache we need to do it slightly differently because we can't do + a 32-bit shift on a 32-bit integer. This will never be the case on 64-bit caches, so we can have a slightly + more optimal solution for this. + */ +#ifdef DRFLAC_64BIT + *pResultOut = (drflac_uint32)DRFLAC_CACHE_L1_SELECT_AND_SHIFT(bs, bitCount); + bs->consumedBits += bitCount; + bs->cache <<= bitCount; +#else + if (bitCount < DRFLAC_CACHE_L1_SIZE_BITS(bs)) { + *pResultOut = (drflac_uint32)DRFLAC_CACHE_L1_SELECT_AND_SHIFT(bs, bitCount); + bs->consumedBits += bitCount; + bs->cache <<= bitCount; + } else { + /* Cannot shift by 32-bits, so need to do it differently. */ + *pResultOut = (drflac_uint32)bs->cache; + bs->consumedBits = DRFLAC_CACHE_L1_SIZE_BITS(bs); + bs->cache = 0; + } +#endif + + return DRFLAC_TRUE; + } else { + /* It straddles the cached data. It will never cover more than the next chunk. We just read the number in two parts and combine them. */ + drflac_uint32 bitCountHi = DRFLAC_CACHE_L1_BITS_REMAINING(bs); + drflac_uint32 bitCountLo = bitCount - bitCountHi; + drflac_uint32 resultHi; + + DRFLAC_ASSERT(bitCountHi > 0); + DRFLAC_ASSERT(bitCountHi < 32); + resultHi = (drflac_uint32)DRFLAC_CACHE_L1_SELECT_AND_SHIFT(bs, bitCountHi); + + if (!drflac__reload_cache(bs)) { + return DRFLAC_FALSE; + } + if (bitCountLo > DRFLAC_CACHE_L1_BITS_REMAINING(bs)) { + /* This happens when we get to end of stream */ + return DRFLAC_FALSE; + } + + *pResultOut = (resultHi << bitCountLo) | (drflac_uint32)DRFLAC_CACHE_L1_SELECT_AND_SHIFT(bs, bitCountLo); + bs->consumedBits += bitCountLo; + bs->cache <<= bitCountLo; + return DRFLAC_TRUE; + } +} + +static drflac_bool32 drflac__read_int32(drflac_bs* bs, unsigned int bitCount, drflac_int32* pResult) +{ + drflac_uint32 result; + + DRFLAC_ASSERT(bs != NULL); + DRFLAC_ASSERT(pResult != NULL); + DRFLAC_ASSERT(bitCount > 0); + DRFLAC_ASSERT(bitCount <= 32); + + if (!drflac__read_uint32(bs, bitCount, &result)) { + return DRFLAC_FALSE; + } + + /* Do not attempt to shift by 32 as it's undefined. */ + if (bitCount < 32) { + drflac_uint32 signbit; + signbit = ((result >> (bitCount-1)) & 0x01); + result |= (~signbit + 1) << bitCount; + } + + *pResult = (drflac_int32)result; + return DRFLAC_TRUE; +} + +#ifdef DRFLAC_64BIT +static drflac_bool32 drflac__read_uint64(drflac_bs* bs, unsigned int bitCount, drflac_uint64* pResultOut) +{ + drflac_uint32 resultHi; + drflac_uint32 resultLo; + + DRFLAC_ASSERT(bitCount <= 64); + DRFLAC_ASSERT(bitCount > 32); + + if (!drflac__read_uint32(bs, bitCount - 32, &resultHi)) { + return DRFLAC_FALSE; + } + + if (!drflac__read_uint32(bs, 32, &resultLo)) { + return DRFLAC_FALSE; + } + + *pResultOut = (((drflac_uint64)resultHi) << 32) | ((drflac_uint64)resultLo); + return DRFLAC_TRUE; +} +#endif + +/* Function below is unused, but leaving it here in case I need to quickly add it again. */ +#if 0 +static drflac_bool32 drflac__read_int64(drflac_bs* bs, unsigned int bitCount, drflac_int64* pResultOut) +{ + drflac_uint64 result; + drflac_uint64 signbit; + + DRFLAC_ASSERT(bitCount <= 64); + + if (!drflac__read_uint64(bs, bitCount, &result)) { + return DRFLAC_FALSE; + } + + signbit = ((result >> (bitCount-1)) & 0x01); + result |= (~signbit + 1) << bitCount; + + *pResultOut = (drflac_int64)result; + return DRFLAC_TRUE; +} +#endif + +static drflac_bool32 drflac__read_uint16(drflac_bs* bs, unsigned int bitCount, drflac_uint16* pResult) +{ + drflac_uint32 result; + + DRFLAC_ASSERT(bs != NULL); + DRFLAC_ASSERT(pResult != NULL); + DRFLAC_ASSERT(bitCount > 0); + DRFLAC_ASSERT(bitCount <= 16); + + if (!drflac__read_uint32(bs, bitCount, &result)) { + return DRFLAC_FALSE; + } + + *pResult = (drflac_uint16)result; + return DRFLAC_TRUE; +} + +#if 0 +static drflac_bool32 drflac__read_int16(drflac_bs* bs, unsigned int bitCount, drflac_int16* pResult) +{ + drflac_int32 result; + + DRFLAC_ASSERT(bs != NULL); + DRFLAC_ASSERT(pResult != NULL); + DRFLAC_ASSERT(bitCount > 0); + DRFLAC_ASSERT(bitCount <= 16); + + if (!drflac__read_int32(bs, bitCount, &result)) { + return DRFLAC_FALSE; + } + + *pResult = (drflac_int16)result; + return DRFLAC_TRUE; +} +#endif + +static drflac_bool32 drflac__read_uint8(drflac_bs* bs, unsigned int bitCount, drflac_uint8* pResult) +{ + drflac_uint32 result; + + DRFLAC_ASSERT(bs != NULL); + DRFLAC_ASSERT(pResult != NULL); + DRFLAC_ASSERT(bitCount > 0); + DRFLAC_ASSERT(bitCount <= 8); + + if (!drflac__read_uint32(bs, bitCount, &result)) { + return DRFLAC_FALSE; + } + + *pResult = (drflac_uint8)result; + return DRFLAC_TRUE; +} + +static drflac_bool32 drflac__read_int8(drflac_bs* bs, unsigned int bitCount, drflac_int8* pResult) +{ + drflac_int32 result; + + DRFLAC_ASSERT(bs != NULL); + DRFLAC_ASSERT(pResult != NULL); + DRFLAC_ASSERT(bitCount > 0); + DRFLAC_ASSERT(bitCount <= 8); + + if (!drflac__read_int32(bs, bitCount, &result)) { + return DRFLAC_FALSE; + } + + *pResult = (drflac_int8)result; + return DRFLAC_TRUE; +} + + +static drflac_bool32 drflac__seek_bits(drflac_bs* bs, size_t bitsToSeek) +{ + if (bitsToSeek <= DRFLAC_CACHE_L1_BITS_REMAINING(bs)) { + bs->consumedBits += (drflac_uint32)bitsToSeek; + bs->cache <<= bitsToSeek; + return DRFLAC_TRUE; + } else { + /* It straddles the cached data. This function isn't called too frequently so I'm favouring simplicity here. */ + bitsToSeek -= DRFLAC_CACHE_L1_BITS_REMAINING(bs); + bs->consumedBits += DRFLAC_CACHE_L1_BITS_REMAINING(bs); + bs->cache = 0; + + /* Simple case. Seek in groups of the same number as bits that fit within a cache line. */ +#ifdef DRFLAC_64BIT + while (bitsToSeek >= DRFLAC_CACHE_L1_SIZE_BITS(bs)) { + drflac_uint64 bin; + if (!drflac__read_uint64(bs, DRFLAC_CACHE_L1_SIZE_BITS(bs), &bin)) { + return DRFLAC_FALSE; + } + bitsToSeek -= DRFLAC_CACHE_L1_SIZE_BITS(bs); + } +#else + while (bitsToSeek >= DRFLAC_CACHE_L1_SIZE_BITS(bs)) { + drflac_uint32 bin; + if (!drflac__read_uint32(bs, DRFLAC_CACHE_L1_SIZE_BITS(bs), &bin)) { + return DRFLAC_FALSE; + } + bitsToSeek -= DRFLAC_CACHE_L1_SIZE_BITS(bs); + } +#endif + + /* Whole leftover bytes. */ + while (bitsToSeek >= 8) { + drflac_uint8 bin; + if (!drflac__read_uint8(bs, 8, &bin)) { + return DRFLAC_FALSE; + } + bitsToSeek -= 8; + } + + /* Leftover bits. */ + if (bitsToSeek > 0) { + drflac_uint8 bin; + if (!drflac__read_uint8(bs, (drflac_uint32)bitsToSeek, &bin)) { + return DRFLAC_FALSE; + } + bitsToSeek = 0; /* <-- Necessary for the assert below. */ + } + + DRFLAC_ASSERT(bitsToSeek == 0); + return DRFLAC_TRUE; + } +} + + +/* This function moves the bit streamer to the first bit after the sync code (bit 15 of the of the frame header). It will also update the CRC-16. */ +static drflac_bool32 drflac__find_and_seek_to_next_sync_code(drflac_bs* bs) +{ + DRFLAC_ASSERT(bs != NULL); + + /* + The sync code is always aligned to 8 bits. This is convenient for us because it means we can do byte-aligned movements. The first + thing to do is align to the next byte. + */ + if (!drflac__seek_bits(bs, DRFLAC_CACHE_L1_BITS_REMAINING(bs) & 7)) { + return DRFLAC_FALSE; + } + + for (;;) { + drflac_uint8 hi; + +#ifndef DR_FLAC_NO_CRC + drflac__reset_crc16(bs); +#endif + + if (!drflac__read_uint8(bs, 8, &hi)) { + return DRFLAC_FALSE; + } + + if (hi == 0xFF) { + drflac_uint8 lo; + if (!drflac__read_uint8(bs, 6, &lo)) { + return DRFLAC_FALSE; + } + + if (lo == 0x3E) { + return DRFLAC_TRUE; + } else { + if (!drflac__seek_bits(bs, DRFLAC_CACHE_L1_BITS_REMAINING(bs) & 7)) { + return DRFLAC_FALSE; + } + } + } + } + + /* Should never get here. */ + /*return DRFLAC_FALSE;*/ +} + + +#if defined(DRFLAC_HAS_LZCNT_INTRINSIC) +#define DRFLAC_IMPLEMENT_CLZ_LZCNT +#endif +#if defined(_MSC_VER) && _MSC_VER >= 1400 && (defined(DRFLAC_X64) || defined(DRFLAC_X86)) && !defined(__clang__) +#define DRFLAC_IMPLEMENT_CLZ_MSVC +#endif +#if defined(__WATCOMC__) && defined(__386__) +#define DRFLAC_IMPLEMENT_CLZ_WATCOM +#endif +#ifdef __MRC__ +#include +#define DRFLAC_IMPLEMENT_CLZ_MRC +#endif + +static DRFLAC_INLINE drflac_uint32 drflac__clz_software(drflac_cache_t x) +{ + drflac_uint32 n; + static drflac_uint32 clz_table_4[] = { + 0, + 4, + 3, 3, + 2, 2, 2, 2, + 1, 1, 1, 1, 1, 1, 1, 1 + }; + + if (x == 0) { + return sizeof(x)*8; + } + + n = clz_table_4[x >> (sizeof(x)*8 - 4)]; + if (n == 0) { +#ifdef DRFLAC_64BIT + if ((x & ((drflac_uint64)0xFFFFFFFF << 32)) == 0) { n = 32; x <<= 32; } + if ((x & ((drflac_uint64)0xFFFF0000 << 32)) == 0) { n += 16; x <<= 16; } + if ((x & ((drflac_uint64)0xFF000000 << 32)) == 0) { n += 8; x <<= 8; } + if ((x & ((drflac_uint64)0xF0000000 << 32)) == 0) { n += 4; x <<= 4; } +#else + if ((x & 0xFFFF0000) == 0) { n = 16; x <<= 16; } + if ((x & 0xFF000000) == 0) { n += 8; x <<= 8; } + if ((x & 0xF0000000) == 0) { n += 4; x <<= 4; } +#endif + n += clz_table_4[x >> (sizeof(x)*8 - 4)]; + } + + return n - 1; +} + +#ifdef DRFLAC_IMPLEMENT_CLZ_LZCNT +static DRFLAC_INLINE drflac_bool32 drflac__is_lzcnt_supported(void) +{ + /* Fast compile time check for ARM. */ +#if defined(DRFLAC_HAS_LZCNT_INTRINSIC) && defined(DRFLAC_ARM) && (defined(__ARM_ARCH) && __ARM_ARCH >= 5) + return DRFLAC_TRUE; +#elif defined(__MRC__) + return DRFLAC_TRUE; +#else + /* If the compiler itself does not support the intrinsic then we'll need to return false. */ + #ifdef DRFLAC_HAS_LZCNT_INTRINSIC + return drflac__gIsLZCNTSupported; + #else + return DRFLAC_FALSE; + #endif +#endif +} + +static DRFLAC_INLINE drflac_uint32 drflac__clz_lzcnt(drflac_cache_t x) +{ + /* + It's critical for competitive decoding performance that this function be highly optimal. With MSVC we can use the __lzcnt64() and __lzcnt() intrinsics + to achieve good performance, however on GCC and Clang it's a little bit more annoying. The __builtin_clzl() and __builtin_clzll() intrinsics leave + it undefined as to the return value when `x` is 0. We need this to be well defined as returning 32 or 64, depending on whether or not it's a 32- or + 64-bit build. To work around this we would need to add a conditional to check for the x = 0 case, but this creates unnecessary inefficiency. To work + around this problem I have written some inline assembly to emit the LZCNT (x86) or CLZ (ARM) instruction directly which removes the need to include + the conditional. This has worked well in the past, but for some reason Clang's MSVC compatible driver, clang-cl, does not seem to be handling this + in the same way as the normal Clang driver. It seems that `clang-cl` is just outputting the wrong results sometimes, maybe due to some register + getting clobbered? + + I'm not sure if this is a bug with dr_flac's inlined assembly (most likely), a bug in `clang-cl` or just a misunderstanding on my part with inline + assembly rules for `clang-cl`. If somebody can identify an error in dr_flac's inlined assembly I'm happy to get that fixed. + + Fortunately there is an easy workaround for this. Clang implements MSVC-specific intrinsics for compatibility. It also defines _MSC_VER for extra + compatibility. We can therefore just check for _MSC_VER and use the MSVC intrinsic which, fortunately for us, Clang supports. It would still be nice + to know how to fix the inlined assembly for correctness sake, however. + */ + +#if defined(_MSC_VER) /*&& !defined(__clang__)*/ /* <-- Intentionally wanting Clang to use the MSVC __lzcnt64/__lzcnt intrinsics due to above ^. */ + #ifdef DRFLAC_64BIT + return (drflac_uint32)__lzcnt64(x); + #else + return (drflac_uint32)__lzcnt(x); + #endif +#else + #if defined(__GNUC__) || defined(__clang__) + #if defined(DRFLAC_X64) + { + drflac_uint64 r; + __asm__ __volatile__ ( + "lzcnt{ %1, %0| %0, %1}" : "=r"(r) : "r"(x) : "cc" + ); + + return (drflac_uint32)r; + } + #elif defined(DRFLAC_X86) + { + drflac_uint32 r; + __asm__ __volatile__ ( + "lzcnt{l %1, %0| %0, %1}" : "=r"(r) : "r"(x) : "cc" + ); + + return r; + } + #elif defined(DRFLAC_ARM) && (defined(__ARM_ARCH) && __ARM_ARCH >= 5) && !defined(__ARM_ARCH_6M__) && !defined(DRFLAC_64BIT) /* <-- I haven't tested 64-bit inline assembly, so only enabling this for the 32-bit build for now. */ + { + unsigned int r; + __asm__ __volatile__ ( + #if defined(DRFLAC_64BIT) + "clz %w[out], %w[in]" : [out]"=r"(r) : [in]"r"(x) /* <-- This is untested. If someone in the community could test this, that would be appreciated! */ + #else + "clz %[out], %[in]" : [out]"=r"(r) : [in]"r"(x) + #endif + ); + + return r; + } + #else + if (x == 0) { + return sizeof(x)*8; + } + #ifdef DRFLAC_64BIT + return (drflac_uint32)__builtin_clzll((drflac_uint64)x); + #else + return (drflac_uint32)__builtin_clzl((drflac_uint32)x); + #endif + #endif + #else + /* Unsupported compiler. */ + #error "This compiler does not support the lzcnt intrinsic." + #endif +#endif +} +#endif + +#ifdef DRFLAC_IMPLEMENT_CLZ_MSVC +#include /* For BitScanReverse(). */ + +static DRFLAC_INLINE drflac_uint32 drflac__clz_msvc(drflac_cache_t x) +{ + drflac_uint32 n; + + if (x == 0) { + return sizeof(x)*8; + } + +#ifdef DRFLAC_64BIT + _BitScanReverse64((unsigned long*)&n, x); +#else + _BitScanReverse((unsigned long*)&n, x); +#endif + return sizeof(x)*8 - n - 1; +} +#endif + +#ifdef DRFLAC_IMPLEMENT_CLZ_WATCOM +static __inline drflac_uint32 drflac__clz_watcom (drflac_uint32); +#ifdef DRFLAC_IMPLEMENT_CLZ_WATCOM_LZCNT +/* Use the LZCNT instruction (only available on some processors since the 2010s). */ +#pragma aux drflac__clz_watcom_lzcnt = \ + "db 0F3h, 0Fh, 0BDh, 0C0h" /* lzcnt eax, eax */ \ + parm [eax] \ + value [eax] \ + modify nomemory; +#else +/* Use the 386+-compatible implementation. */ +#pragma aux drflac__clz_watcom = \ + "bsr eax, eax" \ + "xor eax, 31" \ + parm [eax] nomemory \ + value [eax] \ + modify exact [eax] nomemory; +#endif +#endif + +static DRFLAC_INLINE drflac_uint32 drflac__clz(drflac_cache_t x) +{ +#ifdef DRFLAC_IMPLEMENT_CLZ_LZCNT + if (drflac__is_lzcnt_supported()) { + return drflac__clz_lzcnt(x); + } else +#endif + { +#ifdef DRFLAC_IMPLEMENT_CLZ_MSVC + return drflac__clz_msvc(x); +#elif defined(DRFLAC_IMPLEMENT_CLZ_WATCOM_LZCNT) + return drflac__clz_watcom_lzcnt(x); +#elif defined(DRFLAC_IMPLEMENT_CLZ_WATCOM) + return (x == 0) ? sizeof(x)*8 : drflac__clz_watcom(x); +#elif defined(__MRC__) + return __cntlzw(x); +#else + return drflac__clz_software(x); +#endif + } +} + + +static DRFLAC_INLINE drflac_bool32 drflac__seek_past_next_set_bit(drflac_bs* bs, unsigned int* pOffsetOut) +{ + drflac_uint32 zeroCounter = 0; + drflac_uint32 setBitOffsetPlus1; + + while (bs->cache == 0) { + zeroCounter += (drflac_uint32)DRFLAC_CACHE_L1_BITS_REMAINING(bs); + if (!drflac__reload_cache(bs)) { + return DRFLAC_FALSE; + } + } + + if (bs->cache == 1) { + /* Not catching this would lead to undefined behaviour: a shift of a 32-bit number by 32 or more is undefined */ + *pOffsetOut = zeroCounter + (drflac_uint32)DRFLAC_CACHE_L1_BITS_REMAINING(bs) - 1; + if (!drflac__reload_cache(bs)) { + return DRFLAC_FALSE; + } + + return DRFLAC_TRUE; + } + + setBitOffsetPlus1 = drflac__clz(bs->cache); + setBitOffsetPlus1 += 1; + + if (setBitOffsetPlus1 > DRFLAC_CACHE_L1_BITS_REMAINING(bs)) { + /* This happens when we get to end of stream */ + return DRFLAC_FALSE; + } + + bs->consumedBits += setBitOffsetPlus1; + bs->cache <<= setBitOffsetPlus1; + + *pOffsetOut = zeroCounter + setBitOffsetPlus1 - 1; + return DRFLAC_TRUE; +} + + + +static drflac_bool32 drflac__seek_to_byte(drflac_bs* bs, drflac_uint64 offsetFromStart) +{ + DRFLAC_ASSERT(bs != NULL); + DRFLAC_ASSERT(offsetFromStart > 0); + + /* + Seeking from the start is not quite as trivial as it sounds because the onSeek callback takes a signed 32-bit integer (which + is intentional because it simplifies the implementation of the onSeek callbacks), however offsetFromStart is unsigned 64-bit. + To resolve we just need to do an initial seek from the start, and then a series of offset seeks to make up the remainder. + */ + if (offsetFromStart > 0x7FFFFFFF) { + drflac_uint64 bytesRemaining = offsetFromStart; + if (!bs->onSeek(bs->pUserData, 0x7FFFFFFF, drflac_seek_origin_start)) { + return DRFLAC_FALSE; + } + bytesRemaining -= 0x7FFFFFFF; + + while (bytesRemaining > 0x7FFFFFFF) { + if (!bs->onSeek(bs->pUserData, 0x7FFFFFFF, drflac_seek_origin_current)) { + return DRFLAC_FALSE; + } + bytesRemaining -= 0x7FFFFFFF; + } + + if (bytesRemaining > 0) { + if (!bs->onSeek(bs->pUserData, (int)bytesRemaining, drflac_seek_origin_current)) { + return DRFLAC_FALSE; + } + } + } else { + if (!bs->onSeek(bs->pUserData, (int)offsetFromStart, drflac_seek_origin_start)) { + return DRFLAC_FALSE; + } + } + + /* The cache should be reset to force a reload of fresh data from the client. */ + drflac__reset_cache(bs); + return DRFLAC_TRUE; +} + + +static drflac_result drflac__read_utf8_coded_number(drflac_bs* bs, drflac_uint64* pNumberOut, drflac_uint8* pCRCOut) +{ + drflac_uint8 crc; + drflac_uint64 result; + drflac_uint8 utf8[7] = {0}; + int byteCount; + int i; + + DRFLAC_ASSERT(bs != NULL); + DRFLAC_ASSERT(pNumberOut != NULL); + DRFLAC_ASSERT(pCRCOut != NULL); + + crc = *pCRCOut; + + if (!drflac__read_uint8(bs, 8, utf8)) { + *pNumberOut = 0; + return DRFLAC_AT_END; + } + crc = drflac_crc8(crc, utf8[0], 8); + + if ((utf8[0] & 0x80) == 0) { + *pNumberOut = utf8[0]; + *pCRCOut = crc; + return DRFLAC_SUCCESS; + } + + /*byteCount = 1;*/ + if ((utf8[0] & 0xE0) == 0xC0) { + byteCount = 2; + } else if ((utf8[0] & 0xF0) == 0xE0) { + byteCount = 3; + } else if ((utf8[0] & 0xF8) == 0xF0) { + byteCount = 4; + } else if ((utf8[0] & 0xFC) == 0xF8) { + byteCount = 5; + } else if ((utf8[0] & 0xFE) == 0xFC) { + byteCount = 6; + } else if ((utf8[0] & 0xFF) == 0xFE) { + byteCount = 7; + } else { + *pNumberOut = 0; + return DRFLAC_CRC_MISMATCH; /* Bad UTF-8 encoding. */ + } + + /* Read extra bytes. */ + DRFLAC_ASSERT(byteCount > 1); + + result = (drflac_uint64)(utf8[0] & (0xFF >> (byteCount + 1))); + for (i = 1; i < byteCount; ++i) { + if (!drflac__read_uint8(bs, 8, utf8 + i)) { + *pNumberOut = 0; + return DRFLAC_AT_END; + } + crc = drflac_crc8(crc, utf8[i], 8); + + result = (result << 6) | (utf8[i] & 0x3F); + } + + *pNumberOut = result; + *pCRCOut = crc; + return DRFLAC_SUCCESS; +} + + +static DRFLAC_INLINE drflac_uint32 drflac__ilog2_u32(drflac_uint32 x) +{ +#if 1 /* Needs optimizing. */ + drflac_uint32 result = 0; + while (x > 0) { + result += 1; + x >>= 1; + } + + return result; +#endif +} + +static DRFLAC_INLINE drflac_bool32 drflac__use_64_bit_prediction(drflac_uint32 bitsPerSample, drflac_uint32 order, drflac_uint32 precision) +{ + /* https://web.archive.org/web/20220205005724/https://github.com/ietf-wg-cellar/flac-specification/blob/37a49aa48ba4ba12e8757badfc59c0df35435fec/rfc_backmatter.md */ + return bitsPerSample + precision + drflac__ilog2_u32(order) > 32; +} + + +/* +The next two functions are responsible for calculating the prediction. + +When the bits per sample is >16 we need to use 64-bit integer arithmetic because otherwise we'll run out of precision. It's +safe to assume this will be slower on 32-bit platforms so we use a more optimal solution when the bits per sample is <=16. +*/ +#if defined(__clang__) +__attribute__((no_sanitize("signed-integer-overflow"))) +#endif +static DRFLAC_INLINE drflac_int32 drflac__calculate_prediction_32(drflac_uint32 order, drflac_int32 shift, const drflac_int32* coefficients, drflac_int32* pDecodedSamples) +{ + drflac_int32 prediction = 0; + + DRFLAC_ASSERT(order <= 32); + + /* 32-bit version. */ + + /* VC++ optimizes this to a single jmp. I've not yet verified this for other compilers. */ + switch (order) + { + case 32: prediction += coefficients[31] * pDecodedSamples[-32]; + case 31: prediction += coefficients[30] * pDecodedSamples[-31]; + case 30: prediction += coefficients[29] * pDecodedSamples[-30]; + case 29: prediction += coefficients[28] * pDecodedSamples[-29]; + case 28: prediction += coefficients[27] * pDecodedSamples[-28]; + case 27: prediction += coefficients[26] * pDecodedSamples[-27]; + case 26: prediction += coefficients[25] * pDecodedSamples[-26]; + case 25: prediction += coefficients[24] * pDecodedSamples[-25]; + case 24: prediction += coefficients[23] * pDecodedSamples[-24]; + case 23: prediction += coefficients[22] * pDecodedSamples[-23]; + case 22: prediction += coefficients[21] * pDecodedSamples[-22]; + case 21: prediction += coefficients[20] * pDecodedSamples[-21]; + case 20: prediction += coefficients[19] * pDecodedSamples[-20]; + case 19: prediction += coefficients[18] * pDecodedSamples[-19]; + case 18: prediction += coefficients[17] * pDecodedSamples[-18]; + case 17: prediction += coefficients[16] * pDecodedSamples[-17]; + case 16: prediction += coefficients[15] * pDecodedSamples[-16]; + case 15: prediction += coefficients[14] * pDecodedSamples[-15]; + case 14: prediction += coefficients[13] * pDecodedSamples[-14]; + case 13: prediction += coefficients[12] * pDecodedSamples[-13]; + case 12: prediction += coefficients[11] * pDecodedSamples[-12]; + case 11: prediction += coefficients[10] * pDecodedSamples[-11]; + case 10: prediction += coefficients[ 9] * pDecodedSamples[-10]; + case 9: prediction += coefficients[ 8] * pDecodedSamples[- 9]; + case 8: prediction += coefficients[ 7] * pDecodedSamples[- 8]; + case 7: prediction += coefficients[ 6] * pDecodedSamples[- 7]; + case 6: prediction += coefficients[ 5] * pDecodedSamples[- 6]; + case 5: prediction += coefficients[ 4] * pDecodedSamples[- 5]; + case 4: prediction += coefficients[ 3] * pDecodedSamples[- 4]; + case 3: prediction += coefficients[ 2] * pDecodedSamples[- 3]; + case 2: prediction += coefficients[ 1] * pDecodedSamples[- 2]; + case 1: prediction += coefficients[ 0] * pDecodedSamples[- 1]; + } + + return (drflac_int32)(prediction >> shift); +} + +static DRFLAC_INLINE drflac_int32 drflac__calculate_prediction_64(drflac_uint32 order, drflac_int32 shift, const drflac_int32* coefficients, drflac_int32* pDecodedSamples) +{ + drflac_int64 prediction; + + DRFLAC_ASSERT(order <= 32); + + /* 64-bit version. */ + + /* This method is faster on the 32-bit build when compiling with VC++. See note below. */ +#ifndef DRFLAC_64BIT + if (order == 8) + { + prediction = coefficients[0] * (drflac_int64)pDecodedSamples[-1]; + prediction += coefficients[1] * (drflac_int64)pDecodedSamples[-2]; + prediction += coefficients[2] * (drflac_int64)pDecodedSamples[-3]; + prediction += coefficients[3] * (drflac_int64)pDecodedSamples[-4]; + prediction += coefficients[4] * (drflac_int64)pDecodedSamples[-5]; + prediction += coefficients[5] * (drflac_int64)pDecodedSamples[-6]; + prediction += coefficients[6] * (drflac_int64)pDecodedSamples[-7]; + prediction += coefficients[7] * (drflac_int64)pDecodedSamples[-8]; + } + else if (order == 7) + { + prediction = coefficients[0] * (drflac_int64)pDecodedSamples[-1]; + prediction += coefficients[1] * (drflac_int64)pDecodedSamples[-2]; + prediction += coefficients[2] * (drflac_int64)pDecodedSamples[-3]; + prediction += coefficients[3] * (drflac_int64)pDecodedSamples[-4]; + prediction += coefficients[4] * (drflac_int64)pDecodedSamples[-5]; + prediction += coefficients[5] * (drflac_int64)pDecodedSamples[-6]; + prediction += coefficients[6] * (drflac_int64)pDecodedSamples[-7]; + } + else if (order == 3) + { + prediction = coefficients[0] * (drflac_int64)pDecodedSamples[-1]; + prediction += coefficients[1] * (drflac_int64)pDecodedSamples[-2]; + prediction += coefficients[2] * (drflac_int64)pDecodedSamples[-3]; + } + else if (order == 6) + { + prediction = coefficients[0] * (drflac_int64)pDecodedSamples[-1]; + prediction += coefficients[1] * (drflac_int64)pDecodedSamples[-2]; + prediction += coefficients[2] * (drflac_int64)pDecodedSamples[-3]; + prediction += coefficients[3] * (drflac_int64)pDecodedSamples[-4]; + prediction += coefficients[4] * (drflac_int64)pDecodedSamples[-5]; + prediction += coefficients[5] * (drflac_int64)pDecodedSamples[-6]; + } + else if (order == 5) + { + prediction = coefficients[0] * (drflac_int64)pDecodedSamples[-1]; + prediction += coefficients[1] * (drflac_int64)pDecodedSamples[-2]; + prediction += coefficients[2] * (drflac_int64)pDecodedSamples[-3]; + prediction += coefficients[3] * (drflac_int64)pDecodedSamples[-4]; + prediction += coefficients[4] * (drflac_int64)pDecodedSamples[-5]; + } + else if (order == 4) + { + prediction = coefficients[0] * (drflac_int64)pDecodedSamples[-1]; + prediction += coefficients[1] * (drflac_int64)pDecodedSamples[-2]; + prediction += coefficients[2] * (drflac_int64)pDecodedSamples[-3]; + prediction += coefficients[3] * (drflac_int64)pDecodedSamples[-4]; + } + else if (order == 12) + { + prediction = coefficients[0] * (drflac_int64)pDecodedSamples[-1]; + prediction += coefficients[1] * (drflac_int64)pDecodedSamples[-2]; + prediction += coefficients[2] * (drflac_int64)pDecodedSamples[-3]; + prediction += coefficients[3] * (drflac_int64)pDecodedSamples[-4]; + prediction += coefficients[4] * (drflac_int64)pDecodedSamples[-5]; + prediction += coefficients[5] * (drflac_int64)pDecodedSamples[-6]; + prediction += coefficients[6] * (drflac_int64)pDecodedSamples[-7]; + prediction += coefficients[7] * (drflac_int64)pDecodedSamples[-8]; + prediction += coefficients[8] * (drflac_int64)pDecodedSamples[-9]; + prediction += coefficients[9] * (drflac_int64)pDecodedSamples[-10]; + prediction += coefficients[10] * (drflac_int64)pDecodedSamples[-11]; + prediction += coefficients[11] * (drflac_int64)pDecodedSamples[-12]; + } + else if (order == 2) + { + prediction = coefficients[0] * (drflac_int64)pDecodedSamples[-1]; + prediction += coefficients[1] * (drflac_int64)pDecodedSamples[-2]; + } + else if (order == 1) + { + prediction = coefficients[0] * (drflac_int64)pDecodedSamples[-1]; + } + else if (order == 10) + { + prediction = coefficients[0] * (drflac_int64)pDecodedSamples[-1]; + prediction += coefficients[1] * (drflac_int64)pDecodedSamples[-2]; + prediction += coefficients[2] * (drflac_int64)pDecodedSamples[-3]; + prediction += coefficients[3] * (drflac_int64)pDecodedSamples[-4]; + prediction += coefficients[4] * (drflac_int64)pDecodedSamples[-5]; + prediction += coefficients[5] * (drflac_int64)pDecodedSamples[-6]; + prediction += coefficients[6] * (drflac_int64)pDecodedSamples[-7]; + prediction += coefficients[7] * (drflac_int64)pDecodedSamples[-8]; + prediction += coefficients[8] * (drflac_int64)pDecodedSamples[-9]; + prediction += coefficients[9] * (drflac_int64)pDecodedSamples[-10]; + } + else if (order == 9) + { + prediction = coefficients[0] * (drflac_int64)pDecodedSamples[-1]; + prediction += coefficients[1] * (drflac_int64)pDecodedSamples[-2]; + prediction += coefficients[2] * (drflac_int64)pDecodedSamples[-3]; + prediction += coefficients[3] * (drflac_int64)pDecodedSamples[-4]; + prediction += coefficients[4] * (drflac_int64)pDecodedSamples[-5]; + prediction += coefficients[5] * (drflac_int64)pDecodedSamples[-6]; + prediction += coefficients[6] * (drflac_int64)pDecodedSamples[-7]; + prediction += coefficients[7] * (drflac_int64)pDecodedSamples[-8]; + prediction += coefficients[8] * (drflac_int64)pDecodedSamples[-9]; + } + else if (order == 11) + { + prediction = coefficients[0] * (drflac_int64)pDecodedSamples[-1]; + prediction += coefficients[1] * (drflac_int64)pDecodedSamples[-2]; + prediction += coefficients[2] * (drflac_int64)pDecodedSamples[-3]; + prediction += coefficients[3] * (drflac_int64)pDecodedSamples[-4]; + prediction += coefficients[4] * (drflac_int64)pDecodedSamples[-5]; + prediction += coefficients[5] * (drflac_int64)pDecodedSamples[-6]; + prediction += coefficients[6] * (drflac_int64)pDecodedSamples[-7]; + prediction += coefficients[7] * (drflac_int64)pDecodedSamples[-8]; + prediction += coefficients[8] * (drflac_int64)pDecodedSamples[-9]; + prediction += coefficients[9] * (drflac_int64)pDecodedSamples[-10]; + prediction += coefficients[10] * (drflac_int64)pDecodedSamples[-11]; + } + else + { + int j; + + prediction = 0; + for (j = 0; j < (int)order; ++j) { + prediction += coefficients[j] * (drflac_int64)pDecodedSamples[-j-1]; + } + } +#endif + + /* + VC++ optimizes this to a single jmp instruction, but only the 64-bit build. The 32-bit build generates less efficient code for some + reason. The ugly version above is faster so we'll just switch between the two depending on the target platform. + */ +#ifdef DRFLAC_64BIT + prediction = 0; + switch (order) + { + case 32: prediction += coefficients[31] * (drflac_int64)pDecodedSamples[-32]; + case 31: prediction += coefficients[30] * (drflac_int64)pDecodedSamples[-31]; + case 30: prediction += coefficients[29] * (drflac_int64)pDecodedSamples[-30]; + case 29: prediction += coefficients[28] * (drflac_int64)pDecodedSamples[-29]; + case 28: prediction += coefficients[27] * (drflac_int64)pDecodedSamples[-28]; + case 27: prediction += coefficients[26] * (drflac_int64)pDecodedSamples[-27]; + case 26: prediction += coefficients[25] * (drflac_int64)pDecodedSamples[-26]; + case 25: prediction += coefficients[24] * (drflac_int64)pDecodedSamples[-25]; + case 24: prediction += coefficients[23] * (drflac_int64)pDecodedSamples[-24]; + case 23: prediction += coefficients[22] * (drflac_int64)pDecodedSamples[-23]; + case 22: prediction += coefficients[21] * (drflac_int64)pDecodedSamples[-22]; + case 21: prediction += coefficients[20] * (drflac_int64)pDecodedSamples[-21]; + case 20: prediction += coefficients[19] * (drflac_int64)pDecodedSamples[-20]; + case 19: prediction += coefficients[18] * (drflac_int64)pDecodedSamples[-19]; + case 18: prediction += coefficients[17] * (drflac_int64)pDecodedSamples[-18]; + case 17: prediction += coefficients[16] * (drflac_int64)pDecodedSamples[-17]; + case 16: prediction += coefficients[15] * (drflac_int64)pDecodedSamples[-16]; + case 15: prediction += coefficients[14] * (drflac_int64)pDecodedSamples[-15]; + case 14: prediction += coefficients[13] * (drflac_int64)pDecodedSamples[-14]; + case 13: prediction += coefficients[12] * (drflac_int64)pDecodedSamples[-13]; + case 12: prediction += coefficients[11] * (drflac_int64)pDecodedSamples[-12]; + case 11: prediction += coefficients[10] * (drflac_int64)pDecodedSamples[-11]; + case 10: prediction += coefficients[ 9] * (drflac_int64)pDecodedSamples[-10]; + case 9: prediction += coefficients[ 8] * (drflac_int64)pDecodedSamples[- 9]; + case 8: prediction += coefficients[ 7] * (drflac_int64)pDecodedSamples[- 8]; + case 7: prediction += coefficients[ 6] * (drflac_int64)pDecodedSamples[- 7]; + case 6: prediction += coefficients[ 5] * (drflac_int64)pDecodedSamples[- 6]; + case 5: prediction += coefficients[ 4] * (drflac_int64)pDecodedSamples[- 5]; + case 4: prediction += coefficients[ 3] * (drflac_int64)pDecodedSamples[- 4]; + case 3: prediction += coefficients[ 2] * (drflac_int64)pDecodedSamples[- 3]; + case 2: prediction += coefficients[ 1] * (drflac_int64)pDecodedSamples[- 2]; + case 1: prediction += coefficients[ 0] * (drflac_int64)pDecodedSamples[- 1]; + } +#endif + + return (drflac_int32)(prediction >> shift); +} + + +#if 0 +/* +Reference implementation for reading and decoding samples with residual. This is intentionally left unoptimized for the +sake of readability and should only be used as a reference. +*/ +static drflac_bool32 drflac__decode_samples_with_residual__rice__reference(drflac_bs* bs, drflac_uint32 bitsPerSample, drflac_uint32 count, drflac_uint8 riceParam, drflac_uint32 lpcOrder, drflac_int32 lpcShift, drflac_uint32 lpcPrecision, const drflac_int32* coefficients, drflac_int32* pSamplesOut) +{ + drflac_uint32 i; + + DRFLAC_ASSERT(bs != NULL); + DRFLAC_ASSERT(pSamplesOut != NULL); + + for (i = 0; i < count; ++i) { + drflac_uint32 zeroCounter = 0; + for (;;) { + drflac_uint8 bit; + if (!drflac__read_uint8(bs, 1, &bit)) { + return DRFLAC_FALSE; + } + + if (bit == 0) { + zeroCounter += 1; + } else { + break; + } + } + + drflac_uint32 decodedRice; + if (riceParam > 0) { + if (!drflac__read_uint32(bs, riceParam, &decodedRice)) { + return DRFLAC_FALSE; + } + } else { + decodedRice = 0; + } + + decodedRice |= (zeroCounter << riceParam); + if ((decodedRice & 0x01)) { + decodedRice = ~(decodedRice >> 1); + } else { + decodedRice = (decodedRice >> 1); + } + + + if (drflac__use_64_bit_prediction(bitsPerSample, lpcOrder, lpcPrecision)) { + pSamplesOut[i] = decodedRice + drflac__calculate_prediction_64(lpcOrder, lpcShift, coefficients, pSamplesOut + i); + } else { + pSamplesOut[i] = decodedRice + drflac__calculate_prediction_32(lpcOrder, lpcShift, coefficients, pSamplesOut + i); + } + } + + return DRFLAC_TRUE; +} +#endif + +#if 0 +static drflac_bool32 drflac__read_rice_parts__reference(drflac_bs* bs, drflac_uint8 riceParam, drflac_uint32* pZeroCounterOut, drflac_uint32* pRiceParamPartOut) +{ + drflac_uint32 zeroCounter = 0; + drflac_uint32 decodedRice; + + for (;;) { + drflac_uint8 bit; + if (!drflac__read_uint8(bs, 1, &bit)) { + return DRFLAC_FALSE; + } + + if (bit == 0) { + zeroCounter += 1; + } else { + break; + } + } + + if (riceParam > 0) { + if (!drflac__read_uint32(bs, riceParam, &decodedRice)) { + return DRFLAC_FALSE; + } + } else { + decodedRice = 0; + } + + *pZeroCounterOut = zeroCounter; + *pRiceParamPartOut = decodedRice; + return DRFLAC_TRUE; +} +#endif + +#if 0 +static DRFLAC_INLINE drflac_bool32 drflac__read_rice_parts(drflac_bs* bs, drflac_uint8 riceParam, drflac_uint32* pZeroCounterOut, drflac_uint32* pRiceParamPartOut) +{ + drflac_cache_t riceParamMask; + drflac_uint32 zeroCounter; + drflac_uint32 setBitOffsetPlus1; + drflac_uint32 riceParamPart; + drflac_uint32 riceLength; + + DRFLAC_ASSERT(riceParam > 0); /* <-- riceParam should never be 0. drflac__read_rice_parts__param_equals_zero() should be used instead for this case. */ + + riceParamMask = DRFLAC_CACHE_L1_SELECTION_MASK(riceParam); + + zeroCounter = 0; + while (bs->cache == 0) { + zeroCounter += (drflac_uint32)DRFLAC_CACHE_L1_BITS_REMAINING(bs); + if (!drflac__reload_cache(bs)) { + return DRFLAC_FALSE; + } + } + + setBitOffsetPlus1 = drflac__clz(bs->cache); + zeroCounter += setBitOffsetPlus1; + setBitOffsetPlus1 += 1; + + riceLength = setBitOffsetPlus1 + riceParam; + if (riceLength < DRFLAC_CACHE_L1_BITS_REMAINING(bs)) { + riceParamPart = (drflac_uint32)((bs->cache & (riceParamMask >> setBitOffsetPlus1)) >> DRFLAC_CACHE_L1_SELECTION_SHIFT(bs, riceLength)); + + bs->consumedBits += riceLength; + bs->cache <<= riceLength; + } else { + drflac_uint32 bitCountLo; + drflac_cache_t resultHi; + + bs->consumedBits += riceLength; + bs->cache <<= setBitOffsetPlus1 & (DRFLAC_CACHE_L1_SIZE_BITS(bs)-1); /* <-- Equivalent to "if (setBitOffsetPlus1 < DRFLAC_CACHE_L1_SIZE_BITS(bs)) { bs->cache <<= setBitOffsetPlus1; }" */ + + /* It straddles the cached data. It will never cover more than the next chunk. We just read the number in two parts and combine them. */ + bitCountLo = bs->consumedBits - DRFLAC_CACHE_L1_SIZE_BITS(bs); + resultHi = DRFLAC_CACHE_L1_SELECT_AND_SHIFT(bs, riceParam); /* <-- Use DRFLAC_CACHE_L1_SELECT_AND_SHIFT_SAFE() if ever this function allows riceParam=0. */ + + if (bs->nextL2Line < DRFLAC_CACHE_L2_LINE_COUNT(bs)) { +#ifndef DR_FLAC_NO_CRC + drflac__update_crc16(bs); +#endif + bs->cache = drflac__be2host__cache_line(bs->cacheL2[bs->nextL2Line++]); + bs->consumedBits = 0; +#ifndef DR_FLAC_NO_CRC + bs->crc16Cache = bs->cache; +#endif + } else { + /* Slow path. We need to fetch more data from the client. */ + if (!drflac__reload_cache(bs)) { + return DRFLAC_FALSE; + } + if (bitCountLo > DRFLAC_CACHE_L1_BITS_REMAINING(bs)) { + /* This happens when we get to end of stream */ + return DRFLAC_FALSE; + } + } + + riceParamPart = (drflac_uint32)(resultHi | DRFLAC_CACHE_L1_SELECT_AND_SHIFT_SAFE(bs, bitCountLo)); + + bs->consumedBits += bitCountLo; + bs->cache <<= bitCountLo; + } + + pZeroCounterOut[0] = zeroCounter; + pRiceParamPartOut[0] = riceParamPart; + + return DRFLAC_TRUE; +} +#endif + +static DRFLAC_INLINE drflac_bool32 drflac__read_rice_parts_x1(drflac_bs* bs, drflac_uint8 riceParam, drflac_uint32* pZeroCounterOut, drflac_uint32* pRiceParamPartOut) +{ + drflac_uint32 riceParamPlus1 = riceParam + 1; + /*drflac_cache_t riceParamPlus1Mask = DRFLAC_CACHE_L1_SELECTION_MASK(riceParamPlus1);*/ + drflac_uint32 riceParamPlus1Shift = DRFLAC_CACHE_L1_SELECTION_SHIFT(bs, riceParamPlus1); + drflac_uint32 riceParamPlus1MaxConsumedBits = DRFLAC_CACHE_L1_SIZE_BITS(bs) - riceParamPlus1; + + /* + The idea here is to use local variables for the cache in an attempt to encourage the compiler to store them in registers. I have + no idea how this will work in practice... + */ + drflac_cache_t bs_cache = bs->cache; + drflac_uint32 bs_consumedBits = bs->consumedBits; + + /* The first thing to do is find the first unset bit. Most likely a bit will be set in the current cache line. */ + drflac_uint32 lzcount = drflac__clz(bs_cache); + if (lzcount < sizeof(bs_cache)*8) { + pZeroCounterOut[0] = lzcount; + + /* + It is most likely that the riceParam part (which comes after the zero counter) is also on this cache line. When extracting + this, we include the set bit from the unary coded part because it simplifies cache management. This bit will be handled + outside of this function at a higher level. + */ + extract_rice_param_part: + bs_cache <<= lzcount; + bs_consumedBits += lzcount; + + if (bs_consumedBits <= riceParamPlus1MaxConsumedBits) { + /* Getting here means the rice parameter part is wholly contained within the current cache line. */ + pRiceParamPartOut[0] = (drflac_uint32)(bs_cache >> riceParamPlus1Shift); + bs_cache <<= riceParamPlus1; + bs_consumedBits += riceParamPlus1; + } else { + drflac_uint32 riceParamPartHi; + drflac_uint32 riceParamPartLo; + drflac_uint32 riceParamPartLoBitCount; + + /* + Getting here means the rice parameter part straddles the cache line. We need to read from the tail of the current cache + line, reload the cache, and then combine it with the head of the next cache line. + */ + + /* Grab the high part of the rice parameter part. */ + riceParamPartHi = (drflac_uint32)(bs_cache >> riceParamPlus1Shift); + + /* Before reloading the cache we need to grab the size in bits of the low part. */ + riceParamPartLoBitCount = bs_consumedBits - riceParamPlus1MaxConsumedBits; + DRFLAC_ASSERT(riceParamPartLoBitCount > 0 && riceParamPartLoBitCount < 32); + + /* Now reload the cache. */ + if (bs->nextL2Line < DRFLAC_CACHE_L2_LINE_COUNT(bs)) { + #ifndef DR_FLAC_NO_CRC + drflac__update_crc16(bs); + #endif + bs_cache = drflac__be2host__cache_line(bs->cacheL2[bs->nextL2Line++]); + bs_consumedBits = riceParamPartLoBitCount; + #ifndef DR_FLAC_NO_CRC + bs->crc16Cache = bs_cache; + #endif + } else { + /* Slow path. We need to fetch more data from the client. */ + if (!drflac__reload_cache(bs)) { + return DRFLAC_FALSE; + } + if (riceParamPartLoBitCount > DRFLAC_CACHE_L1_BITS_REMAINING(bs)) { + /* This happens when we get to end of stream */ + return DRFLAC_FALSE; + } + + bs_cache = bs->cache; + bs_consumedBits = bs->consumedBits + riceParamPartLoBitCount; + } + + /* We should now have enough information to construct the rice parameter part. */ + riceParamPartLo = (drflac_uint32)(bs_cache >> (DRFLAC_CACHE_L1_SELECTION_SHIFT(bs, riceParamPartLoBitCount))); + pRiceParamPartOut[0] = riceParamPartHi | riceParamPartLo; + + bs_cache <<= riceParamPartLoBitCount; + } + } else { + /* + Getting here means there are no bits set on the cache line. This is a less optimal case because we just wasted a call + to drflac__clz() and we need to reload the cache. + */ + drflac_uint32 zeroCounter = (drflac_uint32)(DRFLAC_CACHE_L1_SIZE_BITS(bs) - bs_consumedBits); + for (;;) { + if (bs->nextL2Line < DRFLAC_CACHE_L2_LINE_COUNT(bs)) { + #ifndef DR_FLAC_NO_CRC + drflac__update_crc16(bs); + #endif + bs_cache = drflac__be2host__cache_line(bs->cacheL2[bs->nextL2Line++]); + bs_consumedBits = 0; + #ifndef DR_FLAC_NO_CRC + bs->crc16Cache = bs_cache; + #endif + } else { + /* Slow path. We need to fetch more data from the client. */ + if (!drflac__reload_cache(bs)) { + return DRFLAC_FALSE; + } + + bs_cache = bs->cache; + bs_consumedBits = bs->consumedBits; + } + + lzcount = drflac__clz(bs_cache); + zeroCounter += lzcount; + + if (lzcount < sizeof(bs_cache)*8) { + break; + } + } + + pZeroCounterOut[0] = zeroCounter; + goto extract_rice_param_part; + } + + /* Make sure the cache is restored at the end of it all. */ + bs->cache = bs_cache; + bs->consumedBits = bs_consumedBits; + + return DRFLAC_TRUE; +} + +static DRFLAC_INLINE drflac_bool32 drflac__seek_rice_parts(drflac_bs* bs, drflac_uint8 riceParam) +{ + drflac_uint32 riceParamPlus1 = riceParam + 1; + drflac_uint32 riceParamPlus1MaxConsumedBits = DRFLAC_CACHE_L1_SIZE_BITS(bs) - riceParamPlus1; + + /* + The idea here is to use local variables for the cache in an attempt to encourage the compiler to store them in registers. I have + no idea how this will work in practice... + */ + drflac_cache_t bs_cache = bs->cache; + drflac_uint32 bs_consumedBits = bs->consumedBits; + + /* The first thing to do is find the first unset bit. Most likely a bit will be set in the current cache line. */ + drflac_uint32 lzcount = drflac__clz(bs_cache); + if (lzcount < sizeof(bs_cache)*8) { + /* + It is most likely that the riceParam part (which comes after the zero counter) is also on this cache line. When extracting + this, we include the set bit from the unary coded part because it simplifies cache management. This bit will be handled + outside of this function at a higher level. + */ + extract_rice_param_part: + bs_cache <<= lzcount; + bs_consumedBits += lzcount; + + if (bs_consumedBits <= riceParamPlus1MaxConsumedBits) { + /* Getting here means the rice parameter part is wholly contained within the current cache line. */ + bs_cache <<= riceParamPlus1; + bs_consumedBits += riceParamPlus1; + } else { + /* + Getting here means the rice parameter part straddles the cache line. We need to read from the tail of the current cache + line, reload the cache, and then combine it with the head of the next cache line. + */ + + /* Before reloading the cache we need to grab the size in bits of the low part. */ + drflac_uint32 riceParamPartLoBitCount = bs_consumedBits - riceParamPlus1MaxConsumedBits; + DRFLAC_ASSERT(riceParamPartLoBitCount > 0 && riceParamPartLoBitCount < 32); + + /* Now reload the cache. */ + if (bs->nextL2Line < DRFLAC_CACHE_L2_LINE_COUNT(bs)) { + #ifndef DR_FLAC_NO_CRC + drflac__update_crc16(bs); + #endif + bs_cache = drflac__be2host__cache_line(bs->cacheL2[bs->nextL2Line++]); + bs_consumedBits = riceParamPartLoBitCount; + #ifndef DR_FLAC_NO_CRC + bs->crc16Cache = bs_cache; + #endif + } else { + /* Slow path. We need to fetch more data from the client. */ + if (!drflac__reload_cache(bs)) { + return DRFLAC_FALSE; + } + + if (riceParamPartLoBitCount > DRFLAC_CACHE_L1_BITS_REMAINING(bs)) { + /* This happens when we get to end of stream */ + return DRFLAC_FALSE; + } + + bs_cache = bs->cache; + bs_consumedBits = bs->consumedBits + riceParamPartLoBitCount; + } + + bs_cache <<= riceParamPartLoBitCount; + } + } else { + /* + Getting here means there are no bits set on the cache line. This is a less optimal case because we just wasted a call + to drflac__clz() and we need to reload the cache. + */ + for (;;) { + if (bs->nextL2Line < DRFLAC_CACHE_L2_LINE_COUNT(bs)) { + #ifndef DR_FLAC_NO_CRC + drflac__update_crc16(bs); + #endif + bs_cache = drflac__be2host__cache_line(bs->cacheL2[bs->nextL2Line++]); + bs_consumedBits = 0; + #ifndef DR_FLAC_NO_CRC + bs->crc16Cache = bs_cache; + #endif + } else { + /* Slow path. We need to fetch more data from the client. */ + if (!drflac__reload_cache(bs)) { + return DRFLAC_FALSE; + } + + bs_cache = bs->cache; + bs_consumedBits = bs->consumedBits; + } + + lzcount = drflac__clz(bs_cache); + if (lzcount < sizeof(bs_cache)*8) { + break; + } + } + + goto extract_rice_param_part; + } + + /* Make sure the cache is restored at the end of it all. */ + bs->cache = bs_cache; + bs->consumedBits = bs_consumedBits; + + return DRFLAC_TRUE; +} + + +static drflac_bool32 drflac__decode_samples_with_residual__rice__scalar_zeroorder(drflac_bs* bs, drflac_uint32 bitsPerSample, drflac_uint32 count, drflac_uint8 riceParam, drflac_uint32 order, drflac_int32 shift, const drflac_int32* coefficients, drflac_int32* pSamplesOut) +{ + drflac_uint32 t[2] = {0x00000000, 0xFFFFFFFF}; + drflac_uint32 zeroCountPart0; + drflac_uint32 riceParamPart0; + drflac_uint32 riceParamMask; + drflac_uint32 i; + + DRFLAC_ASSERT(bs != NULL); + DRFLAC_ASSERT(pSamplesOut != NULL); + + (void)bitsPerSample; + (void)order; + (void)shift; + (void)coefficients; + + riceParamMask = (drflac_uint32)~((~0UL) << riceParam); + + i = 0; + while (i < count) { + /* Rice extraction. */ + if (!drflac__read_rice_parts_x1(bs, riceParam, &zeroCountPart0, &riceParamPart0)) { + return DRFLAC_FALSE; + } + + /* Rice reconstruction. */ + riceParamPart0 &= riceParamMask; + riceParamPart0 |= (zeroCountPart0 << riceParam); + riceParamPart0 = (riceParamPart0 >> 1) ^ t[riceParamPart0 & 0x01]; + + pSamplesOut[i] = riceParamPart0; + + i += 1; + } + + return DRFLAC_TRUE; +} + +static drflac_bool32 drflac__decode_samples_with_residual__rice__scalar(drflac_bs* bs, drflac_uint32 bitsPerSample, drflac_uint32 count, drflac_uint8 riceParam, drflac_uint32 lpcOrder, drflac_int32 lpcShift, drflac_uint32 lpcPrecision, const drflac_int32* coefficients, drflac_int32* pSamplesOut) +{ + drflac_uint32 t[2] = {0x00000000, 0xFFFFFFFF}; + drflac_uint32 zeroCountPart0 = 0; + drflac_uint32 zeroCountPart1 = 0; + drflac_uint32 zeroCountPart2 = 0; + drflac_uint32 zeroCountPart3 = 0; + drflac_uint32 riceParamPart0 = 0; + drflac_uint32 riceParamPart1 = 0; + drflac_uint32 riceParamPart2 = 0; + drflac_uint32 riceParamPart3 = 0; + drflac_uint32 riceParamMask; + const drflac_int32* pSamplesOutEnd; + drflac_uint32 i; + + DRFLAC_ASSERT(bs != NULL); + DRFLAC_ASSERT(pSamplesOut != NULL); + + if (lpcOrder == 0) { + return drflac__decode_samples_with_residual__rice__scalar_zeroorder(bs, bitsPerSample, count, riceParam, lpcOrder, lpcShift, coefficients, pSamplesOut); + } + + riceParamMask = (drflac_uint32)~((~0UL) << riceParam); + pSamplesOutEnd = pSamplesOut + (count & ~3); + + if (drflac__use_64_bit_prediction(bitsPerSample, lpcOrder, lpcPrecision)) { + while (pSamplesOut < pSamplesOutEnd) { + /* + Rice extraction. It's faster to do this one at a time against local variables than it is to use the x4 version + against an array. Not sure why, but perhaps it's making more efficient use of registers? + */ + if (!drflac__read_rice_parts_x1(bs, riceParam, &zeroCountPart0, &riceParamPart0) || + !drflac__read_rice_parts_x1(bs, riceParam, &zeroCountPart1, &riceParamPart1) || + !drflac__read_rice_parts_x1(bs, riceParam, &zeroCountPart2, &riceParamPart2) || + !drflac__read_rice_parts_x1(bs, riceParam, &zeroCountPart3, &riceParamPart3)) { + return DRFLAC_FALSE; + } + + riceParamPart0 &= riceParamMask; + riceParamPart1 &= riceParamMask; + riceParamPart2 &= riceParamMask; + riceParamPart3 &= riceParamMask; + + riceParamPart0 |= (zeroCountPart0 << riceParam); + riceParamPart1 |= (zeroCountPart1 << riceParam); + riceParamPart2 |= (zeroCountPart2 << riceParam); + riceParamPart3 |= (zeroCountPart3 << riceParam); + + riceParamPart0 = (riceParamPart0 >> 1) ^ t[riceParamPart0 & 0x01]; + riceParamPart1 = (riceParamPart1 >> 1) ^ t[riceParamPart1 & 0x01]; + riceParamPart2 = (riceParamPart2 >> 1) ^ t[riceParamPart2 & 0x01]; + riceParamPart3 = (riceParamPart3 >> 1) ^ t[riceParamPart3 & 0x01]; + + pSamplesOut[0] = riceParamPart0 + drflac__calculate_prediction_64(lpcOrder, lpcShift, coefficients, pSamplesOut + 0); + pSamplesOut[1] = riceParamPart1 + drflac__calculate_prediction_64(lpcOrder, lpcShift, coefficients, pSamplesOut + 1); + pSamplesOut[2] = riceParamPart2 + drflac__calculate_prediction_64(lpcOrder, lpcShift, coefficients, pSamplesOut + 2); + pSamplesOut[3] = riceParamPart3 + drflac__calculate_prediction_64(lpcOrder, lpcShift, coefficients, pSamplesOut + 3); + + pSamplesOut += 4; + } + } else { + while (pSamplesOut < pSamplesOutEnd) { + if (!drflac__read_rice_parts_x1(bs, riceParam, &zeroCountPart0, &riceParamPart0) || + !drflac__read_rice_parts_x1(bs, riceParam, &zeroCountPart1, &riceParamPart1) || + !drflac__read_rice_parts_x1(bs, riceParam, &zeroCountPart2, &riceParamPart2) || + !drflac__read_rice_parts_x1(bs, riceParam, &zeroCountPart3, &riceParamPart3)) { + return DRFLAC_FALSE; + } + + riceParamPart0 &= riceParamMask; + riceParamPart1 &= riceParamMask; + riceParamPart2 &= riceParamMask; + riceParamPart3 &= riceParamMask; + + riceParamPart0 |= (zeroCountPart0 << riceParam); + riceParamPart1 |= (zeroCountPart1 << riceParam); + riceParamPart2 |= (zeroCountPart2 << riceParam); + riceParamPart3 |= (zeroCountPart3 << riceParam); + + riceParamPart0 = (riceParamPart0 >> 1) ^ t[riceParamPart0 & 0x01]; + riceParamPart1 = (riceParamPart1 >> 1) ^ t[riceParamPart1 & 0x01]; + riceParamPart2 = (riceParamPart2 >> 1) ^ t[riceParamPart2 & 0x01]; + riceParamPart3 = (riceParamPart3 >> 1) ^ t[riceParamPart3 & 0x01]; + + pSamplesOut[0] = riceParamPart0 + drflac__calculate_prediction_32(lpcOrder, lpcShift, coefficients, pSamplesOut + 0); + pSamplesOut[1] = riceParamPart1 + drflac__calculate_prediction_32(lpcOrder, lpcShift, coefficients, pSamplesOut + 1); + pSamplesOut[2] = riceParamPart2 + drflac__calculate_prediction_32(lpcOrder, lpcShift, coefficients, pSamplesOut + 2); + pSamplesOut[3] = riceParamPart3 + drflac__calculate_prediction_32(lpcOrder, lpcShift, coefficients, pSamplesOut + 3); + + pSamplesOut += 4; + } + } + + i = (count & ~3); + while (i < count) { + /* Rice extraction. */ + if (!drflac__read_rice_parts_x1(bs, riceParam, &zeroCountPart0, &riceParamPart0)) { + return DRFLAC_FALSE; + } + + /* Rice reconstruction. */ + riceParamPart0 &= riceParamMask; + riceParamPart0 |= (zeroCountPart0 << riceParam); + riceParamPart0 = (riceParamPart0 >> 1) ^ t[riceParamPart0 & 0x01]; + /*riceParamPart0 = (riceParamPart0 >> 1) ^ (~(riceParamPart0 & 0x01) + 1);*/ + + /* Sample reconstruction. */ + if (drflac__use_64_bit_prediction(bitsPerSample, lpcOrder, lpcPrecision)) { + pSamplesOut[0] = riceParamPart0 + drflac__calculate_prediction_64(lpcOrder, lpcShift, coefficients, pSamplesOut + 0); + } else { + pSamplesOut[0] = riceParamPart0 + drflac__calculate_prediction_32(lpcOrder, lpcShift, coefficients, pSamplesOut + 0); + } + + i += 1; + pSamplesOut += 1; + } + + return DRFLAC_TRUE; +} + +#if defined(DRFLAC_SUPPORT_SSE2) +static DRFLAC_INLINE __m128i drflac__mm_packs_interleaved_epi32(__m128i a, __m128i b) +{ + __m128i r; + + /* Pack. */ + r = _mm_packs_epi32(a, b); + + /* a3a2 a1a0 b3b2 b1b0 -> a3a2 b3b2 a1a0 b1b0 */ + r = _mm_shuffle_epi32(r, _MM_SHUFFLE(3, 1, 2, 0)); + + /* a3a2 b3b2 a1a0 b1b0 -> a3b3 a2b2 a1b1 a0b0 */ + r = _mm_shufflehi_epi16(r, _MM_SHUFFLE(3, 1, 2, 0)); + r = _mm_shufflelo_epi16(r, _MM_SHUFFLE(3, 1, 2, 0)); + + return r; +} +#endif + +#if defined(DRFLAC_SUPPORT_SSE41) +static DRFLAC_INLINE __m128i drflac__mm_not_si128(__m128i a) +{ + return _mm_xor_si128(a, _mm_cmpeq_epi32(_mm_setzero_si128(), _mm_setzero_si128())); +} + +static DRFLAC_INLINE __m128i drflac__mm_hadd_epi32(__m128i x) +{ + __m128i x64 = _mm_add_epi32(x, _mm_shuffle_epi32(x, _MM_SHUFFLE(1, 0, 3, 2))); + __m128i x32 = _mm_shufflelo_epi16(x64, _MM_SHUFFLE(1, 0, 3, 2)); + return _mm_add_epi32(x64, x32); +} + +static DRFLAC_INLINE __m128i drflac__mm_hadd_epi64(__m128i x) +{ + return _mm_add_epi64(x, _mm_shuffle_epi32(x, _MM_SHUFFLE(1, 0, 3, 2))); +} + +static DRFLAC_INLINE __m128i drflac__mm_srai_epi64(__m128i x, int count) +{ + /* + To simplify this we are assuming count < 32. This restriction allows us to work on a low side and a high side. The low side + is shifted with zero bits, whereas the right side is shifted with sign bits. + */ + __m128i lo = _mm_srli_epi64(x, count); + __m128i hi = _mm_srai_epi32(x, count); + + hi = _mm_and_si128(hi, _mm_set_epi32(0xFFFFFFFF, 0, 0xFFFFFFFF, 0)); /* The high part needs to have the low part cleared. */ + + return _mm_or_si128(lo, hi); +} + +static drflac_bool32 drflac__decode_samples_with_residual__rice__sse41_32(drflac_bs* bs, drflac_uint32 count, drflac_uint8 riceParam, drflac_uint32 order, drflac_int32 shift, const drflac_int32* coefficients, drflac_int32* pSamplesOut) +{ + int i; + drflac_uint32 riceParamMask; + drflac_int32* pDecodedSamples = pSamplesOut; + drflac_int32* pDecodedSamplesEnd = pSamplesOut + (count & ~3); + drflac_uint32 zeroCountParts0 = 0; + drflac_uint32 zeroCountParts1 = 0; + drflac_uint32 zeroCountParts2 = 0; + drflac_uint32 zeroCountParts3 = 0; + drflac_uint32 riceParamParts0 = 0; + drflac_uint32 riceParamParts1 = 0; + drflac_uint32 riceParamParts2 = 0; + drflac_uint32 riceParamParts3 = 0; + __m128i coefficients128_0; + __m128i coefficients128_4; + __m128i coefficients128_8; + __m128i samples128_0; + __m128i samples128_4; + __m128i samples128_8; + __m128i riceParamMask128; + + const drflac_uint32 t[2] = {0x00000000, 0xFFFFFFFF}; + + riceParamMask = (drflac_uint32)~((~0UL) << riceParam); + riceParamMask128 = _mm_set1_epi32(riceParamMask); + + /* Pre-load. */ + coefficients128_0 = _mm_setzero_si128(); + coefficients128_4 = _mm_setzero_si128(); + coefficients128_8 = _mm_setzero_si128(); + + samples128_0 = _mm_setzero_si128(); + samples128_4 = _mm_setzero_si128(); + samples128_8 = _mm_setzero_si128(); + + /* + Pre-loading the coefficients and prior samples is annoying because we need to ensure we don't try reading more than + what's available in the input buffers. It would be convenient to use a fall-through switch to do this, but this results + in strict aliasing warnings with GCC. To work around this I'm just doing something hacky. This feels a bit convoluted + so I think there's opportunity for this to be simplified. + */ +#if 1 + { + int runningOrder = order; + + /* 0 - 3. */ + if (runningOrder >= 4) { + coefficients128_0 = _mm_loadu_si128((const __m128i*)(coefficients + 0)); + samples128_0 = _mm_loadu_si128((const __m128i*)(pSamplesOut - 4)); + runningOrder -= 4; + } else { + switch (runningOrder) { + case 3: coefficients128_0 = _mm_set_epi32(0, coefficients[2], coefficients[1], coefficients[0]); samples128_0 = _mm_set_epi32(pSamplesOut[-1], pSamplesOut[-2], pSamplesOut[-3], 0); break; + case 2: coefficients128_0 = _mm_set_epi32(0, 0, coefficients[1], coefficients[0]); samples128_0 = _mm_set_epi32(pSamplesOut[-1], pSamplesOut[-2], 0, 0); break; + case 1: coefficients128_0 = _mm_set_epi32(0, 0, 0, coefficients[0]); samples128_0 = _mm_set_epi32(pSamplesOut[-1], 0, 0, 0); break; + } + runningOrder = 0; + } + + /* 4 - 7 */ + if (runningOrder >= 4) { + coefficients128_4 = _mm_loadu_si128((const __m128i*)(coefficients + 4)); + samples128_4 = _mm_loadu_si128((const __m128i*)(pSamplesOut - 8)); + runningOrder -= 4; + } else { + switch (runningOrder) { + case 3: coefficients128_4 = _mm_set_epi32(0, coefficients[6], coefficients[5], coefficients[4]); samples128_4 = _mm_set_epi32(pSamplesOut[-5], pSamplesOut[-6], pSamplesOut[-7], 0); break; + case 2: coefficients128_4 = _mm_set_epi32(0, 0, coefficients[5], coefficients[4]); samples128_4 = _mm_set_epi32(pSamplesOut[-5], pSamplesOut[-6], 0, 0); break; + case 1: coefficients128_4 = _mm_set_epi32(0, 0, 0, coefficients[4]); samples128_4 = _mm_set_epi32(pSamplesOut[-5], 0, 0, 0); break; + } + runningOrder = 0; + } + + /* 8 - 11 */ + if (runningOrder == 4) { + coefficients128_8 = _mm_loadu_si128((const __m128i*)(coefficients + 8)); + samples128_8 = _mm_loadu_si128((const __m128i*)(pSamplesOut - 12)); + runningOrder -= 4; + } else { + switch (runningOrder) { + case 3: coefficients128_8 = _mm_set_epi32(0, coefficients[10], coefficients[9], coefficients[8]); samples128_8 = _mm_set_epi32(pSamplesOut[-9], pSamplesOut[-10], pSamplesOut[-11], 0); break; + case 2: coefficients128_8 = _mm_set_epi32(0, 0, coefficients[9], coefficients[8]); samples128_8 = _mm_set_epi32(pSamplesOut[-9], pSamplesOut[-10], 0, 0); break; + case 1: coefficients128_8 = _mm_set_epi32(0, 0, 0, coefficients[8]); samples128_8 = _mm_set_epi32(pSamplesOut[-9], 0, 0, 0); break; + } + runningOrder = 0; + } + + /* Coefficients need to be shuffled for our streaming algorithm below to work. Samples are already in the correct order from the loading routine above. */ + coefficients128_0 = _mm_shuffle_epi32(coefficients128_0, _MM_SHUFFLE(0, 1, 2, 3)); + coefficients128_4 = _mm_shuffle_epi32(coefficients128_4, _MM_SHUFFLE(0, 1, 2, 3)); + coefficients128_8 = _mm_shuffle_epi32(coefficients128_8, _MM_SHUFFLE(0, 1, 2, 3)); + } +#else + /* This causes strict-aliasing warnings with GCC. */ + switch (order) + { + case 12: ((drflac_int32*)&coefficients128_8)[0] = coefficients[11]; ((drflac_int32*)&samples128_8)[0] = pDecodedSamples[-12]; + case 11: ((drflac_int32*)&coefficients128_8)[1] = coefficients[10]; ((drflac_int32*)&samples128_8)[1] = pDecodedSamples[-11]; + case 10: ((drflac_int32*)&coefficients128_8)[2] = coefficients[ 9]; ((drflac_int32*)&samples128_8)[2] = pDecodedSamples[-10]; + case 9: ((drflac_int32*)&coefficients128_8)[3] = coefficients[ 8]; ((drflac_int32*)&samples128_8)[3] = pDecodedSamples[- 9]; + case 8: ((drflac_int32*)&coefficients128_4)[0] = coefficients[ 7]; ((drflac_int32*)&samples128_4)[0] = pDecodedSamples[- 8]; + case 7: ((drflac_int32*)&coefficients128_4)[1] = coefficients[ 6]; ((drflac_int32*)&samples128_4)[1] = pDecodedSamples[- 7]; + case 6: ((drflac_int32*)&coefficients128_4)[2] = coefficients[ 5]; ((drflac_int32*)&samples128_4)[2] = pDecodedSamples[- 6]; + case 5: ((drflac_int32*)&coefficients128_4)[3] = coefficients[ 4]; ((drflac_int32*)&samples128_4)[3] = pDecodedSamples[- 5]; + case 4: ((drflac_int32*)&coefficients128_0)[0] = coefficients[ 3]; ((drflac_int32*)&samples128_0)[0] = pDecodedSamples[- 4]; + case 3: ((drflac_int32*)&coefficients128_0)[1] = coefficients[ 2]; ((drflac_int32*)&samples128_0)[1] = pDecodedSamples[- 3]; + case 2: ((drflac_int32*)&coefficients128_0)[2] = coefficients[ 1]; ((drflac_int32*)&samples128_0)[2] = pDecodedSamples[- 2]; + case 1: ((drflac_int32*)&coefficients128_0)[3] = coefficients[ 0]; ((drflac_int32*)&samples128_0)[3] = pDecodedSamples[- 1]; + } +#endif + + /* For this version we are doing one sample at a time. */ + while (pDecodedSamples < pDecodedSamplesEnd) { + __m128i prediction128; + __m128i zeroCountPart128; + __m128i riceParamPart128; + + if (!drflac__read_rice_parts_x1(bs, riceParam, &zeroCountParts0, &riceParamParts0) || + !drflac__read_rice_parts_x1(bs, riceParam, &zeroCountParts1, &riceParamParts1) || + !drflac__read_rice_parts_x1(bs, riceParam, &zeroCountParts2, &riceParamParts2) || + !drflac__read_rice_parts_x1(bs, riceParam, &zeroCountParts3, &riceParamParts3)) { + return DRFLAC_FALSE; + } + + zeroCountPart128 = _mm_set_epi32(zeroCountParts3, zeroCountParts2, zeroCountParts1, zeroCountParts0); + riceParamPart128 = _mm_set_epi32(riceParamParts3, riceParamParts2, riceParamParts1, riceParamParts0); + + riceParamPart128 = _mm_and_si128(riceParamPart128, riceParamMask128); + riceParamPart128 = _mm_or_si128(riceParamPart128, _mm_slli_epi32(zeroCountPart128, riceParam)); + riceParamPart128 = _mm_xor_si128(_mm_srli_epi32(riceParamPart128, 1), _mm_add_epi32(drflac__mm_not_si128(_mm_and_si128(riceParamPart128, _mm_set1_epi32(0x01))), _mm_set1_epi32(0x01))); /* <-- SSE2 compatible */ + /*riceParamPart128 = _mm_xor_si128(_mm_srli_epi32(riceParamPart128, 1), _mm_mullo_epi32(_mm_and_si128(riceParamPart128, _mm_set1_epi32(0x01)), _mm_set1_epi32(0xFFFFFFFF)));*/ /* <-- Only supported from SSE4.1 and is slower in my testing... */ + + if (order <= 4) { + for (i = 0; i < 4; i += 1) { + prediction128 = _mm_mullo_epi32(coefficients128_0, samples128_0); + + /* Horizontal add and shift. */ + prediction128 = drflac__mm_hadd_epi32(prediction128); + prediction128 = _mm_srai_epi32(prediction128, shift); + prediction128 = _mm_add_epi32(riceParamPart128, prediction128); + + samples128_0 = _mm_alignr_epi8(prediction128, samples128_0, 4); + riceParamPart128 = _mm_alignr_epi8(_mm_setzero_si128(), riceParamPart128, 4); + } + } else if (order <= 8) { + for (i = 0; i < 4; i += 1) { + prediction128 = _mm_mullo_epi32(coefficients128_4, samples128_4); + prediction128 = _mm_add_epi32(prediction128, _mm_mullo_epi32(coefficients128_0, samples128_0)); + + /* Horizontal add and shift. */ + prediction128 = drflac__mm_hadd_epi32(prediction128); + prediction128 = _mm_srai_epi32(prediction128, shift); + prediction128 = _mm_add_epi32(riceParamPart128, prediction128); + + samples128_4 = _mm_alignr_epi8(samples128_0, samples128_4, 4); + samples128_0 = _mm_alignr_epi8(prediction128, samples128_0, 4); + riceParamPart128 = _mm_alignr_epi8(_mm_setzero_si128(), riceParamPart128, 4); + } + } else { + for (i = 0; i < 4; i += 1) { + prediction128 = _mm_mullo_epi32(coefficients128_8, samples128_8); + prediction128 = _mm_add_epi32(prediction128, _mm_mullo_epi32(coefficients128_4, samples128_4)); + prediction128 = _mm_add_epi32(prediction128, _mm_mullo_epi32(coefficients128_0, samples128_0)); + + /* Horizontal add and shift. */ + prediction128 = drflac__mm_hadd_epi32(prediction128); + prediction128 = _mm_srai_epi32(prediction128, shift); + prediction128 = _mm_add_epi32(riceParamPart128, prediction128); + + samples128_8 = _mm_alignr_epi8(samples128_4, samples128_8, 4); + samples128_4 = _mm_alignr_epi8(samples128_0, samples128_4, 4); + samples128_0 = _mm_alignr_epi8(prediction128, samples128_0, 4); + riceParamPart128 = _mm_alignr_epi8(_mm_setzero_si128(), riceParamPart128, 4); + } + } + + /* We store samples in groups of 4. */ + _mm_storeu_si128((__m128i*)pDecodedSamples, samples128_0); + pDecodedSamples += 4; + } + + /* Make sure we process the last few samples. */ + i = (count & ~3); + while (i < (int)count) { + /* Rice extraction. */ + if (!drflac__read_rice_parts_x1(bs, riceParam, &zeroCountParts0, &riceParamParts0)) { + return DRFLAC_FALSE; + } + + /* Rice reconstruction. */ + riceParamParts0 &= riceParamMask; + riceParamParts0 |= (zeroCountParts0 << riceParam); + riceParamParts0 = (riceParamParts0 >> 1) ^ t[riceParamParts0 & 0x01]; + + /* Sample reconstruction. */ + pDecodedSamples[0] = riceParamParts0 + drflac__calculate_prediction_32(order, shift, coefficients, pDecodedSamples); + + i += 1; + pDecodedSamples += 1; + } + + return DRFLAC_TRUE; +} + +static drflac_bool32 drflac__decode_samples_with_residual__rice__sse41_64(drflac_bs* bs, drflac_uint32 count, drflac_uint8 riceParam, drflac_uint32 order, drflac_int32 shift, const drflac_int32* coefficients, drflac_int32* pSamplesOut) +{ + int i; + drflac_uint32 riceParamMask; + drflac_int32* pDecodedSamples = pSamplesOut; + drflac_int32* pDecodedSamplesEnd = pSamplesOut + (count & ~3); + drflac_uint32 zeroCountParts0 = 0; + drflac_uint32 zeroCountParts1 = 0; + drflac_uint32 zeroCountParts2 = 0; + drflac_uint32 zeroCountParts3 = 0; + drflac_uint32 riceParamParts0 = 0; + drflac_uint32 riceParamParts1 = 0; + drflac_uint32 riceParamParts2 = 0; + drflac_uint32 riceParamParts3 = 0; + __m128i coefficients128_0; + __m128i coefficients128_4; + __m128i coefficients128_8; + __m128i samples128_0; + __m128i samples128_4; + __m128i samples128_8; + __m128i prediction128; + __m128i riceParamMask128; + + const drflac_uint32 t[2] = {0x00000000, 0xFFFFFFFF}; + + DRFLAC_ASSERT(order <= 12); + + riceParamMask = (drflac_uint32)~((~0UL) << riceParam); + riceParamMask128 = _mm_set1_epi32(riceParamMask); + + prediction128 = _mm_setzero_si128(); + + /* Pre-load. */ + coefficients128_0 = _mm_setzero_si128(); + coefficients128_4 = _mm_setzero_si128(); + coefficients128_8 = _mm_setzero_si128(); + + samples128_0 = _mm_setzero_si128(); + samples128_4 = _mm_setzero_si128(); + samples128_8 = _mm_setzero_si128(); + +#if 1 + { + int runningOrder = order; + + /* 0 - 3. */ + if (runningOrder >= 4) { + coefficients128_0 = _mm_loadu_si128((const __m128i*)(coefficients + 0)); + samples128_0 = _mm_loadu_si128((const __m128i*)(pSamplesOut - 4)); + runningOrder -= 4; + } else { + switch (runningOrder) { + case 3: coefficients128_0 = _mm_set_epi32(0, coefficients[2], coefficients[1], coefficients[0]); samples128_0 = _mm_set_epi32(pSamplesOut[-1], pSamplesOut[-2], pSamplesOut[-3], 0); break; + case 2: coefficients128_0 = _mm_set_epi32(0, 0, coefficients[1], coefficients[0]); samples128_0 = _mm_set_epi32(pSamplesOut[-1], pSamplesOut[-2], 0, 0); break; + case 1: coefficients128_0 = _mm_set_epi32(0, 0, 0, coefficients[0]); samples128_0 = _mm_set_epi32(pSamplesOut[-1], 0, 0, 0); break; + } + runningOrder = 0; + } + + /* 4 - 7 */ + if (runningOrder >= 4) { + coefficients128_4 = _mm_loadu_si128((const __m128i*)(coefficients + 4)); + samples128_4 = _mm_loadu_si128((const __m128i*)(pSamplesOut - 8)); + runningOrder -= 4; + } else { + switch (runningOrder) { + case 3: coefficients128_4 = _mm_set_epi32(0, coefficients[6], coefficients[5], coefficients[4]); samples128_4 = _mm_set_epi32(pSamplesOut[-5], pSamplesOut[-6], pSamplesOut[-7], 0); break; + case 2: coefficients128_4 = _mm_set_epi32(0, 0, coefficients[5], coefficients[4]); samples128_4 = _mm_set_epi32(pSamplesOut[-5], pSamplesOut[-6], 0, 0); break; + case 1: coefficients128_4 = _mm_set_epi32(0, 0, 0, coefficients[4]); samples128_4 = _mm_set_epi32(pSamplesOut[-5], 0, 0, 0); break; + } + runningOrder = 0; + } + + /* 8 - 11 */ + if (runningOrder == 4) { + coefficients128_8 = _mm_loadu_si128((const __m128i*)(coefficients + 8)); + samples128_8 = _mm_loadu_si128((const __m128i*)(pSamplesOut - 12)); + runningOrder -= 4; + } else { + switch (runningOrder) { + case 3: coefficients128_8 = _mm_set_epi32(0, coefficients[10], coefficients[9], coefficients[8]); samples128_8 = _mm_set_epi32(pSamplesOut[-9], pSamplesOut[-10], pSamplesOut[-11], 0); break; + case 2: coefficients128_8 = _mm_set_epi32(0, 0, coefficients[9], coefficients[8]); samples128_8 = _mm_set_epi32(pSamplesOut[-9], pSamplesOut[-10], 0, 0); break; + case 1: coefficients128_8 = _mm_set_epi32(0, 0, 0, coefficients[8]); samples128_8 = _mm_set_epi32(pSamplesOut[-9], 0, 0, 0); break; + } + runningOrder = 0; + } + + /* Coefficients need to be shuffled for our streaming algorithm below to work. Samples are already in the correct order from the loading routine above. */ + coefficients128_0 = _mm_shuffle_epi32(coefficients128_0, _MM_SHUFFLE(0, 1, 2, 3)); + coefficients128_4 = _mm_shuffle_epi32(coefficients128_4, _MM_SHUFFLE(0, 1, 2, 3)); + coefficients128_8 = _mm_shuffle_epi32(coefficients128_8, _MM_SHUFFLE(0, 1, 2, 3)); + } +#else + switch (order) + { + case 12: ((drflac_int32*)&coefficients128_8)[0] = coefficients[11]; ((drflac_int32*)&samples128_8)[0] = pDecodedSamples[-12]; + case 11: ((drflac_int32*)&coefficients128_8)[1] = coefficients[10]; ((drflac_int32*)&samples128_8)[1] = pDecodedSamples[-11]; + case 10: ((drflac_int32*)&coefficients128_8)[2] = coefficients[ 9]; ((drflac_int32*)&samples128_8)[2] = pDecodedSamples[-10]; + case 9: ((drflac_int32*)&coefficients128_8)[3] = coefficients[ 8]; ((drflac_int32*)&samples128_8)[3] = pDecodedSamples[- 9]; + case 8: ((drflac_int32*)&coefficients128_4)[0] = coefficients[ 7]; ((drflac_int32*)&samples128_4)[0] = pDecodedSamples[- 8]; + case 7: ((drflac_int32*)&coefficients128_4)[1] = coefficients[ 6]; ((drflac_int32*)&samples128_4)[1] = pDecodedSamples[- 7]; + case 6: ((drflac_int32*)&coefficients128_4)[2] = coefficients[ 5]; ((drflac_int32*)&samples128_4)[2] = pDecodedSamples[- 6]; + case 5: ((drflac_int32*)&coefficients128_4)[3] = coefficients[ 4]; ((drflac_int32*)&samples128_4)[3] = pDecodedSamples[- 5]; + case 4: ((drflac_int32*)&coefficients128_0)[0] = coefficients[ 3]; ((drflac_int32*)&samples128_0)[0] = pDecodedSamples[- 4]; + case 3: ((drflac_int32*)&coefficients128_0)[1] = coefficients[ 2]; ((drflac_int32*)&samples128_0)[1] = pDecodedSamples[- 3]; + case 2: ((drflac_int32*)&coefficients128_0)[2] = coefficients[ 1]; ((drflac_int32*)&samples128_0)[2] = pDecodedSamples[- 2]; + case 1: ((drflac_int32*)&coefficients128_0)[3] = coefficients[ 0]; ((drflac_int32*)&samples128_0)[3] = pDecodedSamples[- 1]; + } +#endif + + /* For this version we are doing one sample at a time. */ + while (pDecodedSamples < pDecodedSamplesEnd) { + __m128i zeroCountPart128; + __m128i riceParamPart128; + + if (!drflac__read_rice_parts_x1(bs, riceParam, &zeroCountParts0, &riceParamParts0) || + !drflac__read_rice_parts_x1(bs, riceParam, &zeroCountParts1, &riceParamParts1) || + !drflac__read_rice_parts_x1(bs, riceParam, &zeroCountParts2, &riceParamParts2) || + !drflac__read_rice_parts_x1(bs, riceParam, &zeroCountParts3, &riceParamParts3)) { + return DRFLAC_FALSE; + } + + zeroCountPart128 = _mm_set_epi32(zeroCountParts3, zeroCountParts2, zeroCountParts1, zeroCountParts0); + riceParamPart128 = _mm_set_epi32(riceParamParts3, riceParamParts2, riceParamParts1, riceParamParts0); + + riceParamPart128 = _mm_and_si128(riceParamPart128, riceParamMask128); + riceParamPart128 = _mm_or_si128(riceParamPart128, _mm_slli_epi32(zeroCountPart128, riceParam)); + riceParamPart128 = _mm_xor_si128(_mm_srli_epi32(riceParamPart128, 1), _mm_add_epi32(drflac__mm_not_si128(_mm_and_si128(riceParamPart128, _mm_set1_epi32(1))), _mm_set1_epi32(1))); + + for (i = 0; i < 4; i += 1) { + prediction128 = _mm_xor_si128(prediction128, prediction128); /* Reset to 0. */ + + switch (order) + { + case 12: + case 11: prediction128 = _mm_add_epi64(prediction128, _mm_mul_epi32(_mm_shuffle_epi32(coefficients128_8, _MM_SHUFFLE(1, 1, 0, 0)), _mm_shuffle_epi32(samples128_8, _MM_SHUFFLE(1, 1, 0, 0)))); + case 10: + case 9: prediction128 = _mm_add_epi64(prediction128, _mm_mul_epi32(_mm_shuffle_epi32(coefficients128_8, _MM_SHUFFLE(3, 3, 2, 2)), _mm_shuffle_epi32(samples128_8, _MM_SHUFFLE(3, 3, 2, 2)))); + case 8: + case 7: prediction128 = _mm_add_epi64(prediction128, _mm_mul_epi32(_mm_shuffle_epi32(coefficients128_4, _MM_SHUFFLE(1, 1, 0, 0)), _mm_shuffle_epi32(samples128_4, _MM_SHUFFLE(1, 1, 0, 0)))); + case 6: + case 5: prediction128 = _mm_add_epi64(prediction128, _mm_mul_epi32(_mm_shuffle_epi32(coefficients128_4, _MM_SHUFFLE(3, 3, 2, 2)), _mm_shuffle_epi32(samples128_4, _MM_SHUFFLE(3, 3, 2, 2)))); + case 4: + case 3: prediction128 = _mm_add_epi64(prediction128, _mm_mul_epi32(_mm_shuffle_epi32(coefficients128_0, _MM_SHUFFLE(1, 1, 0, 0)), _mm_shuffle_epi32(samples128_0, _MM_SHUFFLE(1, 1, 0, 0)))); + case 2: + case 1: prediction128 = _mm_add_epi64(prediction128, _mm_mul_epi32(_mm_shuffle_epi32(coefficients128_0, _MM_SHUFFLE(3, 3, 2, 2)), _mm_shuffle_epi32(samples128_0, _MM_SHUFFLE(3, 3, 2, 2)))); + } + + /* Horizontal add and shift. */ + prediction128 = drflac__mm_hadd_epi64(prediction128); + prediction128 = drflac__mm_srai_epi64(prediction128, shift); + prediction128 = _mm_add_epi32(riceParamPart128, prediction128); + + /* Our value should be sitting in prediction128[0]. We need to combine this with our SSE samples. */ + samples128_8 = _mm_alignr_epi8(samples128_4, samples128_8, 4); + samples128_4 = _mm_alignr_epi8(samples128_0, samples128_4, 4); + samples128_0 = _mm_alignr_epi8(prediction128, samples128_0, 4); + + /* Slide our rice parameter down so that the value in position 0 contains the next one to process. */ + riceParamPart128 = _mm_alignr_epi8(_mm_setzero_si128(), riceParamPart128, 4); + } + + /* We store samples in groups of 4. */ + _mm_storeu_si128((__m128i*)pDecodedSamples, samples128_0); + pDecodedSamples += 4; + } + + /* Make sure we process the last few samples. */ + i = (count & ~3); + while (i < (int)count) { + /* Rice extraction. */ + if (!drflac__read_rice_parts_x1(bs, riceParam, &zeroCountParts0, &riceParamParts0)) { + return DRFLAC_FALSE; + } + + /* Rice reconstruction. */ + riceParamParts0 &= riceParamMask; + riceParamParts0 |= (zeroCountParts0 << riceParam); + riceParamParts0 = (riceParamParts0 >> 1) ^ t[riceParamParts0 & 0x01]; + + /* Sample reconstruction. */ + pDecodedSamples[0] = riceParamParts0 + drflac__calculate_prediction_64(order, shift, coefficients, pDecodedSamples); + + i += 1; + pDecodedSamples += 1; + } + + return DRFLAC_TRUE; +} + +static drflac_bool32 drflac__decode_samples_with_residual__rice__sse41(drflac_bs* bs, drflac_uint32 bitsPerSample, drflac_uint32 count, drflac_uint8 riceParam, drflac_uint32 lpcOrder, drflac_int32 lpcShift, drflac_uint32 lpcPrecision, const drflac_int32* coefficients, drflac_int32* pSamplesOut) +{ + DRFLAC_ASSERT(bs != NULL); + DRFLAC_ASSERT(pSamplesOut != NULL); + + /* In my testing the order is rarely > 12, so in this case I'm going to simplify the SSE implementation by only handling order <= 12. */ + if (lpcOrder > 0 && lpcOrder <= 12) { + if (drflac__use_64_bit_prediction(bitsPerSample, lpcOrder, lpcPrecision)) { + return drflac__decode_samples_with_residual__rice__sse41_64(bs, count, riceParam, lpcOrder, lpcShift, coefficients, pSamplesOut); + } else { + return drflac__decode_samples_with_residual__rice__sse41_32(bs, count, riceParam, lpcOrder, lpcShift, coefficients, pSamplesOut); + } + } else { + return drflac__decode_samples_with_residual__rice__scalar(bs, bitsPerSample, count, riceParam, lpcOrder, lpcShift, lpcPrecision, coefficients, pSamplesOut); + } +} +#endif + +#if defined(DRFLAC_SUPPORT_NEON) +static DRFLAC_INLINE void drflac__vst2q_s32(drflac_int32* p, int32x4x2_t x) +{ + vst1q_s32(p+0, x.val[0]); + vst1q_s32(p+4, x.val[1]); +} + +static DRFLAC_INLINE void drflac__vst2q_u32(drflac_uint32* p, uint32x4x2_t x) +{ + vst1q_u32(p+0, x.val[0]); + vst1q_u32(p+4, x.val[1]); +} + +static DRFLAC_INLINE void drflac__vst2q_f32(float* p, float32x4x2_t x) +{ + vst1q_f32(p+0, x.val[0]); + vst1q_f32(p+4, x.val[1]); +} + +static DRFLAC_INLINE void drflac__vst2q_s16(drflac_int16* p, int16x4x2_t x) +{ + vst1q_s16(p, vcombine_s16(x.val[0], x.val[1])); +} + +static DRFLAC_INLINE void drflac__vst2q_u16(drflac_uint16* p, uint16x4x2_t x) +{ + vst1q_u16(p, vcombine_u16(x.val[0], x.val[1])); +} + +static DRFLAC_INLINE int32x4_t drflac__vdupq_n_s32x4(drflac_int32 x3, drflac_int32 x2, drflac_int32 x1, drflac_int32 x0) +{ + drflac_int32 x[4]; + x[3] = x3; + x[2] = x2; + x[1] = x1; + x[0] = x0; + return vld1q_s32(x); +} + +static DRFLAC_INLINE int32x4_t drflac__valignrq_s32_1(int32x4_t a, int32x4_t b) +{ + /* Equivalent to SSE's _mm_alignr_epi8(a, b, 4) */ + + /* Reference */ + /*return drflac__vdupq_n_s32x4( + vgetq_lane_s32(a, 0), + vgetq_lane_s32(b, 3), + vgetq_lane_s32(b, 2), + vgetq_lane_s32(b, 1) + );*/ + + return vextq_s32(b, a, 1); +} + +static DRFLAC_INLINE uint32x4_t drflac__valignrq_u32_1(uint32x4_t a, uint32x4_t b) +{ + /* Equivalent to SSE's _mm_alignr_epi8(a, b, 4) */ + + /* Reference */ + /*return drflac__vdupq_n_s32x4( + vgetq_lane_s32(a, 0), + vgetq_lane_s32(b, 3), + vgetq_lane_s32(b, 2), + vgetq_lane_s32(b, 1) + );*/ + + return vextq_u32(b, a, 1); +} + +static DRFLAC_INLINE int32x2_t drflac__vhaddq_s32(int32x4_t x) +{ + /* The sum must end up in position 0. */ + + /* Reference */ + /*return vdupq_n_s32( + vgetq_lane_s32(x, 3) + + vgetq_lane_s32(x, 2) + + vgetq_lane_s32(x, 1) + + vgetq_lane_s32(x, 0) + );*/ + + int32x2_t r = vadd_s32(vget_high_s32(x), vget_low_s32(x)); + return vpadd_s32(r, r); +} + +static DRFLAC_INLINE int64x1_t drflac__vhaddq_s64(int64x2_t x) +{ + return vadd_s64(vget_high_s64(x), vget_low_s64(x)); +} + +static DRFLAC_INLINE int32x4_t drflac__vrevq_s32(int32x4_t x) +{ + /* Reference */ + /*return drflac__vdupq_n_s32x4( + vgetq_lane_s32(x, 0), + vgetq_lane_s32(x, 1), + vgetq_lane_s32(x, 2), + vgetq_lane_s32(x, 3) + );*/ + + return vrev64q_s32(vcombine_s32(vget_high_s32(x), vget_low_s32(x))); +} + +static DRFLAC_INLINE int32x4_t drflac__vnotq_s32(int32x4_t x) +{ + return veorq_s32(x, vdupq_n_s32(0xFFFFFFFF)); +} + +static DRFLAC_INLINE uint32x4_t drflac__vnotq_u32(uint32x4_t x) +{ + return veorq_u32(x, vdupq_n_u32(0xFFFFFFFF)); +} + +static drflac_bool32 drflac__decode_samples_with_residual__rice__neon_32(drflac_bs* bs, drflac_uint32 count, drflac_uint8 riceParam, drflac_uint32 order, drflac_int32 shift, const drflac_int32* coefficients, drflac_int32* pSamplesOut) +{ + int i; + drflac_uint32 riceParamMask; + drflac_int32* pDecodedSamples = pSamplesOut; + drflac_int32* pDecodedSamplesEnd = pSamplesOut + (count & ~3); + drflac_uint32 zeroCountParts[4]; + drflac_uint32 riceParamParts[4]; + int32x4_t coefficients128_0; + int32x4_t coefficients128_4; + int32x4_t coefficients128_8; + int32x4_t samples128_0; + int32x4_t samples128_4; + int32x4_t samples128_8; + uint32x4_t riceParamMask128; + int32x4_t riceParam128; + int32x2_t shift64; + uint32x4_t one128; + + const drflac_uint32 t[2] = {0x00000000, 0xFFFFFFFF}; + + riceParamMask = (drflac_uint32)~((~0UL) << riceParam); + riceParamMask128 = vdupq_n_u32(riceParamMask); + + riceParam128 = vdupq_n_s32(riceParam); + shift64 = vdup_n_s32(-shift); /* Negate the shift because we'll be doing a variable shift using vshlq_s32(). */ + one128 = vdupq_n_u32(1); + + /* + Pre-loading the coefficients and prior samples is annoying because we need to ensure we don't try reading more than + what's available in the input buffers. It would be conenient to use a fall-through switch to do this, but this results + in strict aliasing warnings with GCC. To work around this I'm just doing something hacky. This feels a bit convoluted + so I think there's opportunity for this to be simplified. + */ + { + int runningOrder = order; + drflac_int32 tempC[4] = {0, 0, 0, 0}; + drflac_int32 tempS[4] = {0, 0, 0, 0}; + + /* 0 - 3. */ + if (runningOrder >= 4) { + coefficients128_0 = vld1q_s32(coefficients + 0); + samples128_0 = vld1q_s32(pSamplesOut - 4); + runningOrder -= 4; + } else { + switch (runningOrder) { + case 3: tempC[2] = coefficients[2]; tempS[1] = pSamplesOut[-3]; /* fallthrough */ + case 2: tempC[1] = coefficients[1]; tempS[2] = pSamplesOut[-2]; /* fallthrough */ + case 1: tempC[0] = coefficients[0]; tempS[3] = pSamplesOut[-1]; /* fallthrough */ + } + + coefficients128_0 = vld1q_s32(tempC); + samples128_0 = vld1q_s32(tempS); + runningOrder = 0; + } + + /* 4 - 7 */ + if (runningOrder >= 4) { + coefficients128_4 = vld1q_s32(coefficients + 4); + samples128_4 = vld1q_s32(pSamplesOut - 8); + runningOrder -= 4; + } else { + switch (runningOrder) { + case 3: tempC[2] = coefficients[6]; tempS[1] = pSamplesOut[-7]; /* fallthrough */ + case 2: tempC[1] = coefficients[5]; tempS[2] = pSamplesOut[-6]; /* fallthrough */ + case 1: tempC[0] = coefficients[4]; tempS[3] = pSamplesOut[-5]; /* fallthrough */ + } + + coefficients128_4 = vld1q_s32(tempC); + samples128_4 = vld1q_s32(tempS); + runningOrder = 0; + } + + /* 8 - 11 */ + if (runningOrder == 4) { + coefficients128_8 = vld1q_s32(coefficients + 8); + samples128_8 = vld1q_s32(pSamplesOut - 12); + runningOrder -= 4; + } else { + switch (runningOrder) { + case 3: tempC[2] = coefficients[10]; tempS[1] = pSamplesOut[-11]; /* fallthrough */ + case 2: tempC[1] = coefficients[ 9]; tempS[2] = pSamplesOut[-10]; /* fallthrough */ + case 1: tempC[0] = coefficients[ 8]; tempS[3] = pSamplesOut[- 9]; /* fallthrough */ + } + + coefficients128_8 = vld1q_s32(tempC); + samples128_8 = vld1q_s32(tempS); + runningOrder = 0; + } + + /* Coefficients need to be shuffled for our streaming algorithm below to work. Samples are already in the correct order from the loading routine above. */ + coefficients128_0 = drflac__vrevq_s32(coefficients128_0); + coefficients128_4 = drflac__vrevq_s32(coefficients128_4); + coefficients128_8 = drflac__vrevq_s32(coefficients128_8); + } + + /* For this version we are doing one sample at a time. */ + while (pDecodedSamples < pDecodedSamplesEnd) { + int32x4_t prediction128; + int32x2_t prediction64; + uint32x4_t zeroCountPart128; + uint32x4_t riceParamPart128; + + if (!drflac__read_rice_parts_x1(bs, riceParam, &zeroCountParts[0], &riceParamParts[0]) || + !drflac__read_rice_parts_x1(bs, riceParam, &zeroCountParts[1], &riceParamParts[1]) || + !drflac__read_rice_parts_x1(bs, riceParam, &zeroCountParts[2], &riceParamParts[2]) || + !drflac__read_rice_parts_x1(bs, riceParam, &zeroCountParts[3], &riceParamParts[3])) { + return DRFLAC_FALSE; + } + + zeroCountPart128 = vld1q_u32(zeroCountParts); + riceParamPart128 = vld1q_u32(riceParamParts); + + riceParamPart128 = vandq_u32(riceParamPart128, riceParamMask128); + riceParamPart128 = vorrq_u32(riceParamPart128, vshlq_u32(zeroCountPart128, riceParam128)); + riceParamPart128 = veorq_u32(vshrq_n_u32(riceParamPart128, 1), vaddq_u32(drflac__vnotq_u32(vandq_u32(riceParamPart128, one128)), one128)); + + if (order <= 4) { + for (i = 0; i < 4; i += 1) { + prediction128 = vmulq_s32(coefficients128_0, samples128_0); + + /* Horizontal add and shift. */ + prediction64 = drflac__vhaddq_s32(prediction128); + prediction64 = vshl_s32(prediction64, shift64); + prediction64 = vadd_s32(prediction64, vget_low_s32(vreinterpretq_s32_u32(riceParamPart128))); + + samples128_0 = drflac__valignrq_s32_1(vcombine_s32(prediction64, vdup_n_s32(0)), samples128_0); + riceParamPart128 = drflac__valignrq_u32_1(vdupq_n_u32(0), riceParamPart128); + } + } else if (order <= 8) { + for (i = 0; i < 4; i += 1) { + prediction128 = vmulq_s32(coefficients128_4, samples128_4); + prediction128 = vmlaq_s32(prediction128, coefficients128_0, samples128_0); + + /* Horizontal add and shift. */ + prediction64 = drflac__vhaddq_s32(prediction128); + prediction64 = vshl_s32(prediction64, shift64); + prediction64 = vadd_s32(prediction64, vget_low_s32(vreinterpretq_s32_u32(riceParamPart128))); + + samples128_4 = drflac__valignrq_s32_1(samples128_0, samples128_4); + samples128_0 = drflac__valignrq_s32_1(vcombine_s32(prediction64, vdup_n_s32(0)), samples128_0); + riceParamPart128 = drflac__valignrq_u32_1(vdupq_n_u32(0), riceParamPart128); + } + } else { + for (i = 0; i < 4; i += 1) { + prediction128 = vmulq_s32(coefficients128_8, samples128_8); + prediction128 = vmlaq_s32(prediction128, coefficients128_4, samples128_4); + prediction128 = vmlaq_s32(prediction128, coefficients128_0, samples128_0); + + /* Horizontal add and shift. */ + prediction64 = drflac__vhaddq_s32(prediction128); + prediction64 = vshl_s32(prediction64, shift64); + prediction64 = vadd_s32(prediction64, vget_low_s32(vreinterpretq_s32_u32(riceParamPart128))); + + samples128_8 = drflac__valignrq_s32_1(samples128_4, samples128_8); + samples128_4 = drflac__valignrq_s32_1(samples128_0, samples128_4); + samples128_0 = drflac__valignrq_s32_1(vcombine_s32(prediction64, vdup_n_s32(0)), samples128_0); + riceParamPart128 = drflac__valignrq_u32_1(vdupq_n_u32(0), riceParamPart128); + } + } + + /* We store samples in groups of 4. */ + vst1q_s32(pDecodedSamples, samples128_0); + pDecodedSamples += 4; + } + + /* Make sure we process the last few samples. */ + i = (count & ~3); + while (i < (int)count) { + /* Rice extraction. */ + if (!drflac__read_rice_parts_x1(bs, riceParam, &zeroCountParts[0], &riceParamParts[0])) { + return DRFLAC_FALSE; + } + + /* Rice reconstruction. */ + riceParamParts[0] &= riceParamMask; + riceParamParts[0] |= (zeroCountParts[0] << riceParam); + riceParamParts[0] = (riceParamParts[0] >> 1) ^ t[riceParamParts[0] & 0x01]; + + /* Sample reconstruction. */ + pDecodedSamples[0] = riceParamParts[0] + drflac__calculate_prediction_32(order, shift, coefficients, pDecodedSamples); + + i += 1; + pDecodedSamples += 1; + } + + return DRFLAC_TRUE; +} + +static drflac_bool32 drflac__decode_samples_with_residual__rice__neon_64(drflac_bs* bs, drflac_uint32 count, drflac_uint8 riceParam, drflac_uint32 order, drflac_int32 shift, const drflac_int32* coefficients, drflac_int32* pSamplesOut) +{ + int i; + drflac_uint32 riceParamMask; + drflac_int32* pDecodedSamples = pSamplesOut; + drflac_int32* pDecodedSamplesEnd = pSamplesOut + (count & ~3); + drflac_uint32 zeroCountParts[4]; + drflac_uint32 riceParamParts[4]; + int32x4_t coefficients128_0; + int32x4_t coefficients128_4; + int32x4_t coefficients128_8; + int32x4_t samples128_0; + int32x4_t samples128_4; + int32x4_t samples128_8; + uint32x4_t riceParamMask128; + int32x4_t riceParam128; + int64x1_t shift64; + uint32x4_t one128; + int64x2_t prediction128 = { 0 }; + uint32x4_t zeroCountPart128; + uint32x4_t riceParamPart128; + + const drflac_uint32 t[2] = {0x00000000, 0xFFFFFFFF}; + + riceParamMask = (drflac_uint32)~((~0UL) << riceParam); + riceParamMask128 = vdupq_n_u32(riceParamMask); + + riceParam128 = vdupq_n_s32(riceParam); + shift64 = vdup_n_s64(-shift); /* Negate the shift because we'll be doing a variable shift using vshlq_s32(). */ + one128 = vdupq_n_u32(1); + + /* + Pre-loading the coefficients and prior samples is annoying because we need to ensure we don't try reading more than + what's available in the input buffers. It would be convenient to use a fall-through switch to do this, but this results + in strict aliasing warnings with GCC. To work around this I'm just doing something hacky. This feels a bit convoluted + so I think there's opportunity for this to be simplified. + */ + { + int runningOrder = order; + drflac_int32 tempC[4] = {0, 0, 0, 0}; + drflac_int32 tempS[4] = {0, 0, 0, 0}; + + /* 0 - 3. */ + if (runningOrder >= 4) { + coefficients128_0 = vld1q_s32(coefficients + 0); + samples128_0 = vld1q_s32(pSamplesOut - 4); + runningOrder -= 4; + } else { + switch (runningOrder) { + case 3: tempC[2] = coefficients[2]; tempS[1] = pSamplesOut[-3]; /* fallthrough */ + case 2: tempC[1] = coefficients[1]; tempS[2] = pSamplesOut[-2]; /* fallthrough */ + case 1: tempC[0] = coefficients[0]; tempS[3] = pSamplesOut[-1]; /* fallthrough */ + } + + coefficients128_0 = vld1q_s32(tempC); + samples128_0 = vld1q_s32(tempS); + runningOrder = 0; + } + + /* 4 - 7 */ + if (runningOrder >= 4) { + coefficients128_4 = vld1q_s32(coefficients + 4); + samples128_4 = vld1q_s32(pSamplesOut - 8); + runningOrder -= 4; + } else { + switch (runningOrder) { + case 3: tempC[2] = coefficients[6]; tempS[1] = pSamplesOut[-7]; /* fallthrough */ + case 2: tempC[1] = coefficients[5]; tempS[2] = pSamplesOut[-6]; /* fallthrough */ + case 1: tempC[0] = coefficients[4]; tempS[3] = pSamplesOut[-5]; /* fallthrough */ + } + + coefficients128_4 = vld1q_s32(tempC); + samples128_4 = vld1q_s32(tempS); + runningOrder = 0; + } + + /* 8 - 11 */ + if (runningOrder == 4) { + coefficients128_8 = vld1q_s32(coefficients + 8); + samples128_8 = vld1q_s32(pSamplesOut - 12); + runningOrder -= 4; + } else { + switch (runningOrder) { + case 3: tempC[2] = coefficients[10]; tempS[1] = pSamplesOut[-11]; /* fallthrough */ + case 2: tempC[1] = coefficients[ 9]; tempS[2] = pSamplesOut[-10]; /* fallthrough */ + case 1: tempC[0] = coefficients[ 8]; tempS[3] = pSamplesOut[- 9]; /* fallthrough */ + } + + coefficients128_8 = vld1q_s32(tempC); + samples128_8 = vld1q_s32(tempS); + runningOrder = 0; + } + + /* Coefficients need to be shuffled for our streaming algorithm below to work. Samples are already in the correct order from the loading routine above. */ + coefficients128_0 = drflac__vrevq_s32(coefficients128_0); + coefficients128_4 = drflac__vrevq_s32(coefficients128_4); + coefficients128_8 = drflac__vrevq_s32(coefficients128_8); + } + + /* For this version we are doing one sample at a time. */ + while (pDecodedSamples < pDecodedSamplesEnd) { + if (!drflac__read_rice_parts_x1(bs, riceParam, &zeroCountParts[0], &riceParamParts[0]) || + !drflac__read_rice_parts_x1(bs, riceParam, &zeroCountParts[1], &riceParamParts[1]) || + !drflac__read_rice_parts_x1(bs, riceParam, &zeroCountParts[2], &riceParamParts[2]) || + !drflac__read_rice_parts_x1(bs, riceParam, &zeroCountParts[3], &riceParamParts[3])) { + return DRFLAC_FALSE; + } + + zeroCountPart128 = vld1q_u32(zeroCountParts); + riceParamPart128 = vld1q_u32(riceParamParts); + + riceParamPart128 = vandq_u32(riceParamPart128, riceParamMask128); + riceParamPart128 = vorrq_u32(riceParamPart128, vshlq_u32(zeroCountPart128, riceParam128)); + riceParamPart128 = veorq_u32(vshrq_n_u32(riceParamPart128, 1), vaddq_u32(drflac__vnotq_u32(vandq_u32(riceParamPart128, one128)), one128)); + + for (i = 0; i < 4; i += 1) { + int64x1_t prediction64; + + prediction128 = veorq_s64(prediction128, prediction128); /* Reset to 0. */ + switch (order) + { + case 12: + case 11: prediction128 = vaddq_s64(prediction128, vmull_s32(vget_low_s32(coefficients128_8), vget_low_s32(samples128_8))); + case 10: + case 9: prediction128 = vaddq_s64(prediction128, vmull_s32(vget_high_s32(coefficients128_8), vget_high_s32(samples128_8))); + case 8: + case 7: prediction128 = vaddq_s64(prediction128, vmull_s32(vget_low_s32(coefficients128_4), vget_low_s32(samples128_4))); + case 6: + case 5: prediction128 = vaddq_s64(prediction128, vmull_s32(vget_high_s32(coefficients128_4), vget_high_s32(samples128_4))); + case 4: + case 3: prediction128 = vaddq_s64(prediction128, vmull_s32(vget_low_s32(coefficients128_0), vget_low_s32(samples128_0))); + case 2: + case 1: prediction128 = vaddq_s64(prediction128, vmull_s32(vget_high_s32(coefficients128_0), vget_high_s32(samples128_0))); + } + + /* Horizontal add and shift. */ + prediction64 = drflac__vhaddq_s64(prediction128); + prediction64 = vshl_s64(prediction64, shift64); + prediction64 = vadd_s64(prediction64, vdup_n_s64(vgetq_lane_u32(riceParamPart128, 0))); + + /* Our value should be sitting in prediction64[0]. We need to combine this with our SSE samples. */ + samples128_8 = drflac__valignrq_s32_1(samples128_4, samples128_8); + samples128_4 = drflac__valignrq_s32_1(samples128_0, samples128_4); + samples128_0 = drflac__valignrq_s32_1(vcombine_s32(vreinterpret_s32_s64(prediction64), vdup_n_s32(0)), samples128_0); + + /* Slide our rice parameter down so that the value in position 0 contains the next one to process. */ + riceParamPart128 = drflac__valignrq_u32_1(vdupq_n_u32(0), riceParamPart128); + } + + /* We store samples in groups of 4. */ + vst1q_s32(pDecodedSamples, samples128_0); + pDecodedSamples += 4; + } + + /* Make sure we process the last few samples. */ + i = (count & ~3); + while (i < (int)count) { + /* Rice extraction. */ + if (!drflac__read_rice_parts_x1(bs, riceParam, &zeroCountParts[0], &riceParamParts[0])) { + return DRFLAC_FALSE; + } + + /* Rice reconstruction. */ + riceParamParts[0] &= riceParamMask; + riceParamParts[0] |= (zeroCountParts[0] << riceParam); + riceParamParts[0] = (riceParamParts[0] >> 1) ^ t[riceParamParts[0] & 0x01]; + + /* Sample reconstruction. */ + pDecodedSamples[0] = riceParamParts[0] + drflac__calculate_prediction_64(order, shift, coefficients, pDecodedSamples); + + i += 1; + pDecodedSamples += 1; + } + + return DRFLAC_TRUE; +} + +static drflac_bool32 drflac__decode_samples_with_residual__rice__neon(drflac_bs* bs, drflac_uint32 bitsPerSample, drflac_uint32 count, drflac_uint8 riceParam, drflac_uint32 lpcOrder, drflac_int32 lpcShift, drflac_uint32 lpcPrecision, const drflac_int32* coefficients, drflac_int32* pSamplesOut) +{ + DRFLAC_ASSERT(bs != NULL); + DRFLAC_ASSERT(pSamplesOut != NULL); + + /* In my testing the order is rarely > 12, so in this case I'm going to simplify the NEON implementation by only handling order <= 12. */ + if (lpcOrder > 0 && lpcOrder <= 12) { + if (drflac__use_64_bit_prediction(bitsPerSample, lpcOrder, lpcPrecision)) { + return drflac__decode_samples_with_residual__rice__neon_64(bs, count, riceParam, lpcOrder, lpcShift, coefficients, pSamplesOut); + } else { + return drflac__decode_samples_with_residual__rice__neon_32(bs, count, riceParam, lpcOrder, lpcShift, coefficients, pSamplesOut); + } + } else { + return drflac__decode_samples_with_residual__rice__scalar(bs, bitsPerSample, count, riceParam, lpcOrder, lpcShift, lpcPrecision, coefficients, pSamplesOut); + } +} +#endif + +static drflac_bool32 drflac__decode_samples_with_residual__rice(drflac_bs* bs, drflac_uint32 bitsPerSample, drflac_uint32 count, drflac_uint8 riceParam, drflac_uint32 lpcOrder, drflac_int32 lpcShift, drflac_uint32 lpcPrecision, const drflac_int32* coefficients, drflac_int32* pSamplesOut) +{ +#if defined(DRFLAC_SUPPORT_SSE41) + if (drflac__gIsSSE41Supported) { + return drflac__decode_samples_with_residual__rice__sse41(bs, bitsPerSample, count, riceParam, lpcOrder, lpcShift, lpcPrecision, coefficients, pSamplesOut); + } else +#elif defined(DRFLAC_SUPPORT_NEON) + if (drflac__gIsNEONSupported) { + return drflac__decode_samples_with_residual__rice__neon(bs, bitsPerSample, count, riceParam, lpcOrder, lpcShift, lpcPrecision, coefficients, pSamplesOut); + } else +#endif + { + /* Scalar fallback. */ + #if 0 + return drflac__decode_samples_with_residual__rice__reference(bs, bitsPerSample, count, riceParam, lpcOrder, lpcShift, lpcPrecision, coefficients, pSamplesOut); + #else + return drflac__decode_samples_with_residual__rice__scalar(bs, bitsPerSample, count, riceParam, lpcOrder, lpcShift, lpcPrecision, coefficients, pSamplesOut); + #endif + } +} + +/* Reads and seeks past a string of residual values as Rice codes. The decoder should be sitting on the first bit of the Rice codes. */ +static drflac_bool32 drflac__read_and_seek_residual__rice(drflac_bs* bs, drflac_uint32 count, drflac_uint8 riceParam) +{ + drflac_uint32 i; + + DRFLAC_ASSERT(bs != NULL); + + for (i = 0; i < count; ++i) { + if (!drflac__seek_rice_parts(bs, riceParam)) { + return DRFLAC_FALSE; + } + } + + return DRFLAC_TRUE; +} + +#if defined(__clang__) +__attribute__((no_sanitize("signed-integer-overflow"))) +#endif +static drflac_bool32 drflac__decode_samples_with_residual__unencoded(drflac_bs* bs, drflac_uint32 bitsPerSample, drflac_uint32 count, drflac_uint8 unencodedBitsPerSample, drflac_uint32 lpcOrder, drflac_int32 lpcShift, drflac_uint32 lpcPrecision, const drflac_int32* coefficients, drflac_int32* pSamplesOut) +{ + drflac_uint32 i; + + DRFLAC_ASSERT(bs != NULL); + DRFLAC_ASSERT(unencodedBitsPerSample <= 31); /* <-- unencodedBitsPerSample is a 5 bit number, so cannot exceed 31. */ + DRFLAC_ASSERT(pSamplesOut != NULL); + + for (i = 0; i < count; ++i) { + if (unencodedBitsPerSample > 0) { + if (!drflac__read_int32(bs, unencodedBitsPerSample, pSamplesOut + i)) { + return DRFLAC_FALSE; + } + } else { + pSamplesOut[i] = 0; + } + + if (drflac__use_64_bit_prediction(bitsPerSample, lpcOrder, lpcPrecision)) { + pSamplesOut[i] += drflac__calculate_prediction_64(lpcOrder, lpcShift, coefficients, pSamplesOut + i); + } else { + pSamplesOut[i] += drflac__calculate_prediction_32(lpcOrder, lpcShift, coefficients, pSamplesOut + i); + } + } + + return DRFLAC_TRUE; +} + + +/* +Reads and decodes the residual for the sub-frame the decoder is currently sitting on. This function should be called +when the decoder is sitting at the very start of the RESIDUAL block. The first residuals will be ignored. The + and parameters are used to determine how many residual values need to be decoded. +*/ +static drflac_bool32 drflac__decode_samples_with_residual(drflac_bs* bs, drflac_uint32 bitsPerSample, drflac_uint32 blockSize, drflac_uint32 lpcOrder, drflac_int32 lpcShift, drflac_uint32 lpcPrecision, const drflac_int32* coefficients, drflac_int32* pDecodedSamples) +{ + drflac_uint8 residualMethod; + drflac_uint8 partitionOrder; + drflac_uint32 samplesInPartition; + drflac_uint32 partitionsRemaining; + + DRFLAC_ASSERT(bs != NULL); + DRFLAC_ASSERT(blockSize != 0); + DRFLAC_ASSERT(pDecodedSamples != NULL); /* <-- Should we allow NULL, in which case we just seek past the residual rather than do a full decode? */ + + if (!drflac__read_uint8(bs, 2, &residualMethod)) { + return DRFLAC_FALSE; + } + + if (residualMethod != DRFLAC_RESIDUAL_CODING_METHOD_PARTITIONED_RICE && residualMethod != DRFLAC_RESIDUAL_CODING_METHOD_PARTITIONED_RICE2) { + return DRFLAC_FALSE; /* Unknown or unsupported residual coding method. */ + } + + /* Ignore the first values. */ + pDecodedSamples += lpcOrder; + + if (!drflac__read_uint8(bs, 4, &partitionOrder)) { + return DRFLAC_FALSE; + } + + /* + From the FLAC spec: + The Rice partition order in a Rice-coded residual section must be less than or equal to 8. + */ + if (partitionOrder > 8) { + return DRFLAC_FALSE; + } + + /* Validation check. */ + if ((blockSize / (1 << partitionOrder)) < lpcOrder) { + return DRFLAC_FALSE; + } + + samplesInPartition = (blockSize / (1 << partitionOrder)) - lpcOrder; + partitionsRemaining = (1 << partitionOrder); + for (;;) { + drflac_uint8 riceParam = 0; + if (residualMethod == DRFLAC_RESIDUAL_CODING_METHOD_PARTITIONED_RICE) { + if (!drflac__read_uint8(bs, 4, &riceParam)) { + return DRFLAC_FALSE; + } + if (riceParam == 15) { + riceParam = 0xFF; + } + } else if (residualMethod == DRFLAC_RESIDUAL_CODING_METHOD_PARTITIONED_RICE2) { + if (!drflac__read_uint8(bs, 5, &riceParam)) { + return DRFLAC_FALSE; + } + if (riceParam == 31) { + riceParam = 0xFF; + } + } + + if (riceParam != 0xFF) { + if (!drflac__decode_samples_with_residual__rice(bs, bitsPerSample, samplesInPartition, riceParam, lpcOrder, lpcShift, lpcPrecision, coefficients, pDecodedSamples)) { + return DRFLAC_FALSE; + } + } else { + drflac_uint8 unencodedBitsPerSample = 0; + if (!drflac__read_uint8(bs, 5, &unencodedBitsPerSample)) { + return DRFLAC_FALSE; + } + + if (!drflac__decode_samples_with_residual__unencoded(bs, bitsPerSample, samplesInPartition, unencodedBitsPerSample, lpcOrder, lpcShift, lpcPrecision, coefficients, pDecodedSamples)) { + return DRFLAC_FALSE; + } + } + + pDecodedSamples += samplesInPartition; + + if (partitionsRemaining == 1) { + break; + } + + partitionsRemaining -= 1; + + if (partitionOrder != 0) { + samplesInPartition = blockSize / (1 << partitionOrder); + } + } + + return DRFLAC_TRUE; +} + +/* +Reads and seeks past the residual for the sub-frame the decoder is currently sitting on. This function should be called +when the decoder is sitting at the very start of the RESIDUAL block. The first residuals will be set to 0. The + and parameters are used to determine how many residual values need to be decoded. +*/ +static drflac_bool32 drflac__read_and_seek_residual(drflac_bs* bs, drflac_uint32 blockSize, drflac_uint32 order) +{ + drflac_uint8 residualMethod; + drflac_uint8 partitionOrder; + drflac_uint32 samplesInPartition; + drflac_uint32 partitionsRemaining; + + DRFLAC_ASSERT(bs != NULL); + DRFLAC_ASSERT(blockSize != 0); + + if (!drflac__read_uint8(bs, 2, &residualMethod)) { + return DRFLAC_FALSE; + } + + if (residualMethod != DRFLAC_RESIDUAL_CODING_METHOD_PARTITIONED_RICE && residualMethod != DRFLAC_RESIDUAL_CODING_METHOD_PARTITIONED_RICE2) { + return DRFLAC_FALSE; /* Unknown or unsupported residual coding method. */ + } + + if (!drflac__read_uint8(bs, 4, &partitionOrder)) { + return DRFLAC_FALSE; + } + + /* + From the FLAC spec: + The Rice partition order in a Rice-coded residual section must be less than or equal to 8. + */ + if (partitionOrder > 8) { + return DRFLAC_FALSE; + } + + /* Validation check. */ + if ((blockSize / (1 << partitionOrder)) <= order) { + return DRFLAC_FALSE; + } + + samplesInPartition = (blockSize / (1 << partitionOrder)) - order; + partitionsRemaining = (1 << partitionOrder); + for (;;) + { + drflac_uint8 riceParam = 0; + if (residualMethod == DRFLAC_RESIDUAL_CODING_METHOD_PARTITIONED_RICE) { + if (!drflac__read_uint8(bs, 4, &riceParam)) { + return DRFLAC_FALSE; + } + if (riceParam == 15) { + riceParam = 0xFF; + } + } else if (residualMethod == DRFLAC_RESIDUAL_CODING_METHOD_PARTITIONED_RICE2) { + if (!drflac__read_uint8(bs, 5, &riceParam)) { + return DRFLAC_FALSE; + } + if (riceParam == 31) { + riceParam = 0xFF; + } + } + + if (riceParam != 0xFF) { + if (!drflac__read_and_seek_residual__rice(bs, samplesInPartition, riceParam)) { + return DRFLAC_FALSE; + } + } else { + drflac_uint8 unencodedBitsPerSample = 0; + if (!drflac__read_uint8(bs, 5, &unencodedBitsPerSample)) { + return DRFLAC_FALSE; + } + + if (!drflac__seek_bits(bs, unencodedBitsPerSample * samplesInPartition)) { + return DRFLAC_FALSE; + } + } + + + if (partitionsRemaining == 1) { + break; + } + + partitionsRemaining -= 1; + samplesInPartition = blockSize / (1 << partitionOrder); + } + + return DRFLAC_TRUE; +} + + +static drflac_bool32 drflac__decode_samples__constant(drflac_bs* bs, drflac_uint32 blockSize, drflac_uint32 subframeBitsPerSample, drflac_int32* pDecodedSamples) +{ + drflac_uint32 i; + + /* Only a single sample needs to be decoded here. */ + drflac_int32 sample; + if (!drflac__read_int32(bs, subframeBitsPerSample, &sample)) { + return DRFLAC_FALSE; + } + + /* + We don't really need to expand this, but it does simplify the process of reading samples. If this becomes a performance issue (unlikely) + we'll want to look at a more efficient way. + */ + for (i = 0; i < blockSize; ++i) { + pDecodedSamples[i] = sample; + } + + return DRFLAC_TRUE; +} + +static drflac_bool32 drflac__decode_samples__verbatim(drflac_bs* bs, drflac_uint32 blockSize, drflac_uint32 subframeBitsPerSample, drflac_int32* pDecodedSamples) +{ + drflac_uint32 i; + + for (i = 0; i < blockSize; ++i) { + drflac_int32 sample; + if (!drflac__read_int32(bs, subframeBitsPerSample, &sample)) { + return DRFLAC_FALSE; + } + + pDecodedSamples[i] = sample; + } + + return DRFLAC_TRUE; +} + +static drflac_bool32 drflac__decode_samples__fixed(drflac_bs* bs, drflac_uint32 blockSize, drflac_uint32 subframeBitsPerSample, drflac_uint8 lpcOrder, drflac_int32* pDecodedSamples) +{ + drflac_uint32 i; + + static drflac_int32 lpcCoefficientsTable[5][4] = { + {0, 0, 0, 0}, + {1, 0, 0, 0}, + {2, -1, 0, 0}, + {3, -3, 1, 0}, + {4, -6, 4, -1} + }; + + /* Warm up samples and coefficients. */ + for (i = 0; i < lpcOrder; ++i) { + drflac_int32 sample; + if (!drflac__read_int32(bs, subframeBitsPerSample, &sample)) { + return DRFLAC_FALSE; + } + + pDecodedSamples[i] = sample; + } + + if (!drflac__decode_samples_with_residual(bs, subframeBitsPerSample, blockSize, lpcOrder, 0, 4, lpcCoefficientsTable[lpcOrder], pDecodedSamples)) { + return DRFLAC_FALSE; + } + + return DRFLAC_TRUE; +} + +static drflac_bool32 drflac__decode_samples__lpc(drflac_bs* bs, drflac_uint32 blockSize, drflac_uint32 bitsPerSample, drflac_uint8 lpcOrder, drflac_int32* pDecodedSamples) +{ + drflac_uint8 i; + drflac_uint8 lpcPrecision; + drflac_int8 lpcShift; + drflac_int32 coefficients[32]; + + /* Warm up samples. */ + for (i = 0; i < lpcOrder; ++i) { + drflac_int32 sample; + if (!drflac__read_int32(bs, bitsPerSample, &sample)) { + return DRFLAC_FALSE; + } + + pDecodedSamples[i] = sample; + } + + if (!drflac__read_uint8(bs, 4, &lpcPrecision)) { + return DRFLAC_FALSE; + } + if (lpcPrecision == 15) { + return DRFLAC_FALSE; /* Invalid. */ + } + lpcPrecision += 1; + + if (!drflac__read_int8(bs, 5, &lpcShift)) { + return DRFLAC_FALSE; + } + + /* + From the FLAC specification: + + Quantized linear predictor coefficient shift needed in bits (NOTE: this number is signed two's-complement) + + Emphasis on the "signed two's-complement". In practice there does not seem to be any encoders nor decoders supporting negative shifts. For now dr_flac is + not going to support negative shifts as I don't have any reference files. However, when a reference file comes through I will consider adding support. + */ + if (lpcShift < 0) { + return DRFLAC_FALSE; + } + + DRFLAC_ZERO_MEMORY(coefficients, sizeof(coefficients)); + for (i = 0; i < lpcOrder; ++i) { + if (!drflac__read_int32(bs, lpcPrecision, coefficients + i)) { + return DRFLAC_FALSE; + } + } + + if (!drflac__decode_samples_with_residual(bs, bitsPerSample, blockSize, lpcOrder, lpcShift, lpcPrecision, coefficients, pDecodedSamples)) { + return DRFLAC_FALSE; + } + + return DRFLAC_TRUE; +} + + +static drflac_bool32 drflac__read_next_flac_frame_header(drflac_bs* bs, drflac_uint8 streaminfoBitsPerSample, drflac_frame_header* header) +{ + const drflac_uint32 sampleRateTable[12] = {0, 88200, 176400, 192000, 8000, 16000, 22050, 24000, 32000, 44100, 48000, 96000}; + const drflac_uint8 bitsPerSampleTable[8] = {0, 8, 12, (drflac_uint8)-1, 16, 20, 24, (drflac_uint8)-1}; /* -1 = reserved. */ + + DRFLAC_ASSERT(bs != NULL); + DRFLAC_ASSERT(header != NULL); + + /* Keep looping until we find a valid sync code. */ + for (;;) { + drflac_uint8 crc8 = 0xCE; /* 0xCE = drflac_crc8(0, 0x3FFE, 14); */ + drflac_uint8 reserved = 0; + drflac_uint8 blockingStrategy = 0; + drflac_uint8 blockSize = 0; + drflac_uint8 sampleRate = 0; + drflac_uint8 channelAssignment = 0; + drflac_uint8 bitsPerSample = 0; + drflac_bool32 isVariableBlockSize; + + if (!drflac__find_and_seek_to_next_sync_code(bs)) { + return DRFLAC_FALSE; + } + + if (!drflac__read_uint8(bs, 1, &reserved)) { + return DRFLAC_FALSE; + } + if (reserved == 1) { + continue; + } + crc8 = drflac_crc8(crc8, reserved, 1); + + if (!drflac__read_uint8(bs, 1, &blockingStrategy)) { + return DRFLAC_FALSE; + } + crc8 = drflac_crc8(crc8, blockingStrategy, 1); + + if (!drflac__read_uint8(bs, 4, &blockSize)) { + return DRFLAC_FALSE; + } + if (blockSize == 0) { + continue; + } + crc8 = drflac_crc8(crc8, blockSize, 4); + + if (!drflac__read_uint8(bs, 4, &sampleRate)) { + return DRFLAC_FALSE; + } + crc8 = drflac_crc8(crc8, sampleRate, 4); + + if (!drflac__read_uint8(bs, 4, &channelAssignment)) { + return DRFLAC_FALSE; + } + if (channelAssignment > 10) { + continue; + } + crc8 = drflac_crc8(crc8, channelAssignment, 4); + + if (!drflac__read_uint8(bs, 3, &bitsPerSample)) { + return DRFLAC_FALSE; + } + if (bitsPerSample == 3 || bitsPerSample == 7) { + continue; + } + crc8 = drflac_crc8(crc8, bitsPerSample, 3); + + + if (!drflac__read_uint8(bs, 1, &reserved)) { + return DRFLAC_FALSE; + } + if (reserved == 1) { + continue; + } + crc8 = drflac_crc8(crc8, reserved, 1); + + + isVariableBlockSize = blockingStrategy == 1; + if (isVariableBlockSize) { + drflac_uint64 pcmFrameNumber; + drflac_result result = drflac__read_utf8_coded_number(bs, &pcmFrameNumber, &crc8); + if (result != DRFLAC_SUCCESS) { + if (result == DRFLAC_AT_END) { + return DRFLAC_FALSE; + } else { + continue; + } + } + header->flacFrameNumber = 0; + header->pcmFrameNumber = pcmFrameNumber; + } else { + drflac_uint64 flacFrameNumber = 0; + drflac_result result = drflac__read_utf8_coded_number(bs, &flacFrameNumber, &crc8); + if (result != DRFLAC_SUCCESS) { + if (result == DRFLAC_AT_END) { + return DRFLAC_FALSE; + } else { + continue; + } + } + header->flacFrameNumber = (drflac_uint32)flacFrameNumber; /* <-- Safe cast. */ + header->pcmFrameNumber = 0; + } + + + DRFLAC_ASSERT(blockSize > 0); + if (blockSize == 1) { + header->blockSizeInPCMFrames = 192; + } else if (blockSize <= 5) { + DRFLAC_ASSERT(blockSize >= 2); + header->blockSizeInPCMFrames = 576 * (1 << (blockSize - 2)); + } else if (blockSize == 6) { + if (!drflac__read_uint16(bs, 8, &header->blockSizeInPCMFrames)) { + return DRFLAC_FALSE; + } + crc8 = drflac_crc8(crc8, header->blockSizeInPCMFrames, 8); + header->blockSizeInPCMFrames += 1; + } else if (blockSize == 7) { + if (!drflac__read_uint16(bs, 16, &header->blockSizeInPCMFrames)) { + return DRFLAC_FALSE; + } + crc8 = drflac_crc8(crc8, header->blockSizeInPCMFrames, 16); + if (header->blockSizeInPCMFrames == 0xFFFF) { + return DRFLAC_FALSE; /* Frame is too big. This is the size of the frame minus 1. The STREAMINFO block defines the max block size which is 16-bits. Adding one will make it 17 bits and therefore too big. */ + } + header->blockSizeInPCMFrames += 1; + } else { + DRFLAC_ASSERT(blockSize >= 8); + header->blockSizeInPCMFrames = 256 * (1 << (blockSize - 8)); + } + + + if (sampleRate <= 11) { + header->sampleRate = sampleRateTable[sampleRate]; + } else if (sampleRate == 12) { + if (!drflac__read_uint32(bs, 8, &header->sampleRate)) { + return DRFLAC_FALSE; + } + crc8 = drflac_crc8(crc8, header->sampleRate, 8); + header->sampleRate *= 1000; + } else if (sampleRate == 13) { + if (!drflac__read_uint32(bs, 16, &header->sampleRate)) { + return DRFLAC_FALSE; + } + crc8 = drflac_crc8(crc8, header->sampleRate, 16); + } else if (sampleRate == 14) { + if (!drflac__read_uint32(bs, 16, &header->sampleRate)) { + return DRFLAC_FALSE; + } + crc8 = drflac_crc8(crc8, header->sampleRate, 16); + header->sampleRate *= 10; + } else { + continue; /* Invalid. Assume an invalid block. */ + } + + + header->channelAssignment = channelAssignment; + + header->bitsPerSample = bitsPerSampleTable[bitsPerSample]; + if (header->bitsPerSample == 0) { + header->bitsPerSample = streaminfoBitsPerSample; + } + + if (header->bitsPerSample != streaminfoBitsPerSample) { + /* If this subframe has a different bitsPerSample then streaminfo or the first frame, reject it */ + return DRFLAC_FALSE; + } + + if (!drflac__read_uint8(bs, 8, &header->crc8)) { + return DRFLAC_FALSE; + } + +#ifndef DR_FLAC_NO_CRC + if (header->crc8 != crc8) { + continue; /* CRC mismatch. Loop back to the top and find the next sync code. */ + } +#endif + return DRFLAC_TRUE; + } +} + +static drflac_bool32 drflac__read_subframe_header(drflac_bs* bs, drflac_subframe* pSubframe) +{ + drflac_uint8 header; + int type; + + if (!drflac__read_uint8(bs, 8, &header)) { + return DRFLAC_FALSE; + } + + /* First bit should always be 0. */ + if ((header & 0x80) != 0) { + return DRFLAC_FALSE; + } + + type = (header & 0x7E) >> 1; + if (type == 0) { + pSubframe->subframeType = DRFLAC_SUBFRAME_CONSTANT; + } else if (type == 1) { + pSubframe->subframeType = DRFLAC_SUBFRAME_VERBATIM; + } else { + if ((type & 0x20) != 0) { + pSubframe->subframeType = DRFLAC_SUBFRAME_LPC; + pSubframe->lpcOrder = (drflac_uint8)(type & 0x1F) + 1; + } else if ((type & 0x08) != 0) { + pSubframe->subframeType = DRFLAC_SUBFRAME_FIXED; + pSubframe->lpcOrder = (drflac_uint8)(type & 0x07); + if (pSubframe->lpcOrder > 4) { + pSubframe->subframeType = DRFLAC_SUBFRAME_RESERVED; + pSubframe->lpcOrder = 0; + } + } else { + pSubframe->subframeType = DRFLAC_SUBFRAME_RESERVED; + } + } + + if (pSubframe->subframeType == DRFLAC_SUBFRAME_RESERVED) { + return DRFLAC_FALSE; + } + + /* Wasted bits per sample. */ + pSubframe->wastedBitsPerSample = 0; + if ((header & 0x01) == 1) { + unsigned int wastedBitsPerSample; + if (!drflac__seek_past_next_set_bit(bs, &wastedBitsPerSample)) { + return DRFLAC_FALSE; + } + pSubframe->wastedBitsPerSample = (drflac_uint8)wastedBitsPerSample + 1; + } + + return DRFLAC_TRUE; +} + +static drflac_bool32 drflac__decode_subframe(drflac_bs* bs, drflac_frame* frame, int subframeIndex, drflac_int32* pDecodedSamplesOut) +{ + drflac_subframe* pSubframe; + drflac_uint32 subframeBitsPerSample; + + DRFLAC_ASSERT(bs != NULL); + DRFLAC_ASSERT(frame != NULL); + + pSubframe = frame->subframes + subframeIndex; + if (!drflac__read_subframe_header(bs, pSubframe)) { + return DRFLAC_FALSE; + } + + /* Side channels require an extra bit per sample. Took a while to figure that one out... */ + subframeBitsPerSample = frame->header.bitsPerSample; + if ((frame->header.channelAssignment == DRFLAC_CHANNEL_ASSIGNMENT_LEFT_SIDE || frame->header.channelAssignment == DRFLAC_CHANNEL_ASSIGNMENT_MID_SIDE) && subframeIndex == 1) { + subframeBitsPerSample += 1; + } else if (frame->header.channelAssignment == DRFLAC_CHANNEL_ASSIGNMENT_RIGHT_SIDE && subframeIndex == 0) { + subframeBitsPerSample += 1; + } + + if (subframeBitsPerSample > 32) { + /* libFLAC and ffmpeg reject 33-bit subframes as well */ + return DRFLAC_FALSE; + } + + /* Need to handle wasted bits per sample. */ + if (pSubframe->wastedBitsPerSample >= subframeBitsPerSample) { + return DRFLAC_FALSE; + } + subframeBitsPerSample -= pSubframe->wastedBitsPerSample; + + pSubframe->pSamplesS32 = pDecodedSamplesOut; + + switch (pSubframe->subframeType) + { + case DRFLAC_SUBFRAME_CONSTANT: + { + drflac__decode_samples__constant(bs, frame->header.blockSizeInPCMFrames, subframeBitsPerSample, pSubframe->pSamplesS32); + } break; + + case DRFLAC_SUBFRAME_VERBATIM: + { + drflac__decode_samples__verbatim(bs, frame->header.blockSizeInPCMFrames, subframeBitsPerSample, pSubframe->pSamplesS32); + } break; + + case DRFLAC_SUBFRAME_FIXED: + { + drflac__decode_samples__fixed(bs, frame->header.blockSizeInPCMFrames, subframeBitsPerSample, pSubframe->lpcOrder, pSubframe->pSamplesS32); + } break; + + case DRFLAC_SUBFRAME_LPC: + { + drflac__decode_samples__lpc(bs, frame->header.blockSizeInPCMFrames, subframeBitsPerSample, pSubframe->lpcOrder, pSubframe->pSamplesS32); + } break; + + default: return DRFLAC_FALSE; + } + + return DRFLAC_TRUE; +} + +static drflac_bool32 drflac__seek_subframe(drflac_bs* bs, drflac_frame* frame, int subframeIndex) +{ + drflac_subframe* pSubframe; + drflac_uint32 subframeBitsPerSample; + + DRFLAC_ASSERT(bs != NULL); + DRFLAC_ASSERT(frame != NULL); + + pSubframe = frame->subframes + subframeIndex; + if (!drflac__read_subframe_header(bs, pSubframe)) { + return DRFLAC_FALSE; + } + + /* Side channels require an extra bit per sample. Took a while to figure that one out... */ + subframeBitsPerSample = frame->header.bitsPerSample; + if ((frame->header.channelAssignment == DRFLAC_CHANNEL_ASSIGNMENT_LEFT_SIDE || frame->header.channelAssignment == DRFLAC_CHANNEL_ASSIGNMENT_MID_SIDE) && subframeIndex == 1) { + subframeBitsPerSample += 1; + } else if (frame->header.channelAssignment == DRFLAC_CHANNEL_ASSIGNMENT_RIGHT_SIDE && subframeIndex == 0) { + subframeBitsPerSample += 1; + } + + /* Need to handle wasted bits per sample. */ + if (pSubframe->wastedBitsPerSample >= subframeBitsPerSample) { + return DRFLAC_FALSE; + } + subframeBitsPerSample -= pSubframe->wastedBitsPerSample; + + pSubframe->pSamplesS32 = NULL; + + switch (pSubframe->subframeType) + { + case DRFLAC_SUBFRAME_CONSTANT: + { + if (!drflac__seek_bits(bs, subframeBitsPerSample)) { + return DRFLAC_FALSE; + } + } break; + + case DRFLAC_SUBFRAME_VERBATIM: + { + unsigned int bitsToSeek = frame->header.blockSizeInPCMFrames * subframeBitsPerSample; + if (!drflac__seek_bits(bs, bitsToSeek)) { + return DRFLAC_FALSE; + } + } break; + + case DRFLAC_SUBFRAME_FIXED: + { + unsigned int bitsToSeek = pSubframe->lpcOrder * subframeBitsPerSample; + if (!drflac__seek_bits(bs, bitsToSeek)) { + return DRFLAC_FALSE; + } + + if (!drflac__read_and_seek_residual(bs, frame->header.blockSizeInPCMFrames, pSubframe->lpcOrder)) { + return DRFLAC_FALSE; + } + } break; + + case DRFLAC_SUBFRAME_LPC: + { + drflac_uint8 lpcPrecision; + + unsigned int bitsToSeek = pSubframe->lpcOrder * subframeBitsPerSample; + if (!drflac__seek_bits(bs, bitsToSeek)) { + return DRFLAC_FALSE; + } + + if (!drflac__read_uint8(bs, 4, &lpcPrecision)) { + return DRFLAC_FALSE; + } + if (lpcPrecision == 15) { + return DRFLAC_FALSE; /* Invalid. */ + } + lpcPrecision += 1; + + + bitsToSeek = (pSubframe->lpcOrder * lpcPrecision) + 5; /* +5 for shift. */ + if (!drflac__seek_bits(bs, bitsToSeek)) { + return DRFLAC_FALSE; + } + + if (!drflac__read_and_seek_residual(bs, frame->header.blockSizeInPCMFrames, pSubframe->lpcOrder)) { + return DRFLAC_FALSE; + } + } break; + + default: return DRFLAC_FALSE; + } + + return DRFLAC_TRUE; +} + + +static DRFLAC_INLINE drflac_uint8 drflac__get_channel_count_from_channel_assignment(drflac_int8 channelAssignment) +{ + drflac_uint8 lookup[] = {1, 2, 3, 4, 5, 6, 7, 8, 2, 2, 2}; + + DRFLAC_ASSERT(channelAssignment <= 10); + return lookup[channelAssignment]; +} + +static drflac_result drflac__decode_flac_frame(drflac* pFlac) +{ + int channelCount; + int i; + drflac_uint8 paddingSizeInBits; + drflac_uint16 desiredCRC16; +#ifndef DR_FLAC_NO_CRC + drflac_uint16 actualCRC16; +#endif + + /* This function should be called while the stream is sitting on the first byte after the frame header. */ + DRFLAC_ZERO_MEMORY(pFlac->currentFLACFrame.subframes, sizeof(pFlac->currentFLACFrame.subframes)); + + /* The frame block size must never be larger than the maximum block size defined by the FLAC stream. */ + if (pFlac->currentFLACFrame.header.blockSizeInPCMFrames > pFlac->maxBlockSizeInPCMFrames) { + return DRFLAC_ERROR; + } + + /* The number of channels in the frame must match the channel count from the STREAMINFO block. */ + channelCount = drflac__get_channel_count_from_channel_assignment(pFlac->currentFLACFrame.header.channelAssignment); + if (channelCount != (int)pFlac->channels) { + return DRFLAC_ERROR; + } + + for (i = 0; i < channelCount; ++i) { + if (!drflac__decode_subframe(&pFlac->bs, &pFlac->currentFLACFrame, i, pFlac->pDecodedSamples + (pFlac->currentFLACFrame.header.blockSizeInPCMFrames * i))) { + return DRFLAC_ERROR; + } + } + + paddingSizeInBits = (drflac_uint8)(DRFLAC_CACHE_L1_BITS_REMAINING(&pFlac->bs) & 7); + if (paddingSizeInBits > 0) { + drflac_uint8 padding = 0; + if (!drflac__read_uint8(&pFlac->bs, paddingSizeInBits, &padding)) { + return DRFLAC_AT_END; + } + } + +#ifndef DR_FLAC_NO_CRC + actualCRC16 = drflac__flush_crc16(&pFlac->bs); +#endif + if (!drflac__read_uint16(&pFlac->bs, 16, &desiredCRC16)) { + return DRFLAC_AT_END; + } + +#ifndef DR_FLAC_NO_CRC + if (actualCRC16 != desiredCRC16) { + return DRFLAC_CRC_MISMATCH; /* CRC mismatch. */ + } +#endif + + pFlac->currentFLACFrame.pcmFramesRemaining = pFlac->currentFLACFrame.header.blockSizeInPCMFrames; + + return DRFLAC_SUCCESS; +} + +static drflac_result drflac__seek_flac_frame(drflac* pFlac) +{ + int channelCount; + int i; + drflac_uint16 desiredCRC16; +#ifndef DR_FLAC_NO_CRC + drflac_uint16 actualCRC16; +#endif + + channelCount = drflac__get_channel_count_from_channel_assignment(pFlac->currentFLACFrame.header.channelAssignment); + for (i = 0; i < channelCount; ++i) { + if (!drflac__seek_subframe(&pFlac->bs, &pFlac->currentFLACFrame, i)) { + return DRFLAC_ERROR; + } + } + + /* Padding. */ + if (!drflac__seek_bits(&pFlac->bs, DRFLAC_CACHE_L1_BITS_REMAINING(&pFlac->bs) & 7)) { + return DRFLAC_ERROR; + } + + /* CRC. */ +#ifndef DR_FLAC_NO_CRC + actualCRC16 = drflac__flush_crc16(&pFlac->bs); +#endif + if (!drflac__read_uint16(&pFlac->bs, 16, &desiredCRC16)) { + return DRFLAC_AT_END; + } + +#ifndef DR_FLAC_NO_CRC + if (actualCRC16 != desiredCRC16) { + return DRFLAC_CRC_MISMATCH; /* CRC mismatch. */ + } +#endif + + return DRFLAC_SUCCESS; +} + +static drflac_bool32 drflac__read_and_decode_next_flac_frame(drflac* pFlac) +{ + DRFLAC_ASSERT(pFlac != NULL); + + for (;;) { + drflac_result result; + + if (!drflac__read_next_flac_frame_header(&pFlac->bs, pFlac->bitsPerSample, &pFlac->currentFLACFrame.header)) { + return DRFLAC_FALSE; + } + + result = drflac__decode_flac_frame(pFlac); + if (result != DRFLAC_SUCCESS) { + if (result == DRFLAC_CRC_MISMATCH) { + continue; /* CRC mismatch. Skip to the next frame. */ + } else { + return DRFLAC_FALSE; + } + } + + return DRFLAC_TRUE; + } +} + +static void drflac__get_pcm_frame_range_of_current_flac_frame(drflac* pFlac, drflac_uint64* pFirstPCMFrame, drflac_uint64* pLastPCMFrame) +{ + drflac_uint64 firstPCMFrame; + drflac_uint64 lastPCMFrame; + + DRFLAC_ASSERT(pFlac != NULL); + + firstPCMFrame = pFlac->currentFLACFrame.header.pcmFrameNumber; + if (firstPCMFrame == 0) { + firstPCMFrame = ((drflac_uint64)pFlac->currentFLACFrame.header.flacFrameNumber) * pFlac->maxBlockSizeInPCMFrames; + } + + lastPCMFrame = firstPCMFrame + pFlac->currentFLACFrame.header.blockSizeInPCMFrames; + if (lastPCMFrame > 0) { + lastPCMFrame -= 1; /* Needs to be zero based. */ + } + + if (pFirstPCMFrame) { + *pFirstPCMFrame = firstPCMFrame; + } + if (pLastPCMFrame) { + *pLastPCMFrame = lastPCMFrame; + } +} + +static drflac_bool32 drflac__seek_to_first_frame(drflac* pFlac) +{ + drflac_bool32 result; + + DRFLAC_ASSERT(pFlac != NULL); + + result = drflac__seek_to_byte(&pFlac->bs, pFlac->firstFLACFramePosInBytes); + + DRFLAC_ZERO_MEMORY(&pFlac->currentFLACFrame, sizeof(pFlac->currentFLACFrame)); + pFlac->currentPCMFrame = 0; + + return result; +} + +static DRFLAC_INLINE drflac_result drflac__seek_to_next_flac_frame(drflac* pFlac) +{ + /* This function should only ever be called while the decoder is sitting on the first byte past the FRAME_HEADER section. */ + DRFLAC_ASSERT(pFlac != NULL); + return drflac__seek_flac_frame(pFlac); +} + + +static drflac_uint64 drflac__seek_forward_by_pcm_frames(drflac* pFlac, drflac_uint64 pcmFramesToSeek) +{ + drflac_uint64 pcmFramesRead = 0; + while (pcmFramesToSeek > 0) { + if (pFlac->currentFLACFrame.pcmFramesRemaining == 0) { + if (!drflac__read_and_decode_next_flac_frame(pFlac)) { + break; /* Couldn't read the next frame, so just break from the loop and return. */ + } + } else { + if (pFlac->currentFLACFrame.pcmFramesRemaining > pcmFramesToSeek) { + pcmFramesRead += pcmFramesToSeek; + pFlac->currentFLACFrame.pcmFramesRemaining -= (drflac_uint32)pcmFramesToSeek; /* <-- Safe cast. Will always be < currentFrame.pcmFramesRemaining < 65536. */ + pcmFramesToSeek = 0; + } else { + pcmFramesRead += pFlac->currentFLACFrame.pcmFramesRemaining; + pcmFramesToSeek -= pFlac->currentFLACFrame.pcmFramesRemaining; + pFlac->currentFLACFrame.pcmFramesRemaining = 0; + } + } + } + + pFlac->currentPCMFrame += pcmFramesRead; + return pcmFramesRead; +} + + +static drflac_bool32 drflac__seek_to_pcm_frame__brute_force(drflac* pFlac, drflac_uint64 pcmFrameIndex) +{ + drflac_bool32 isMidFrame = DRFLAC_FALSE; + drflac_uint64 runningPCMFrameCount; + + DRFLAC_ASSERT(pFlac != NULL); + + /* If we are seeking forward we start from the current position. Otherwise we need to start all the way from the start of the file. */ + if (pcmFrameIndex >= pFlac->currentPCMFrame) { + /* Seeking forward. Need to seek from the current position. */ + runningPCMFrameCount = pFlac->currentPCMFrame; + + /* The frame header for the first frame may not yet have been read. We need to do that if necessary. */ + if (pFlac->currentPCMFrame == 0 && pFlac->currentFLACFrame.pcmFramesRemaining == 0) { + if (!drflac__read_next_flac_frame_header(&pFlac->bs, pFlac->bitsPerSample, &pFlac->currentFLACFrame.header)) { + return DRFLAC_FALSE; + } + } else { + isMidFrame = DRFLAC_TRUE; + } + } else { + /* Seeking backwards. Need to seek from the start of the file. */ + runningPCMFrameCount = 0; + + /* Move back to the start. */ + if (!drflac__seek_to_first_frame(pFlac)) { + return DRFLAC_FALSE; + } + + /* Decode the first frame in preparation for sample-exact seeking below. */ + if (!drflac__read_next_flac_frame_header(&pFlac->bs, pFlac->bitsPerSample, &pFlac->currentFLACFrame.header)) { + return DRFLAC_FALSE; + } + } + + /* + We need to as quickly as possible find the frame that contains the target sample. To do this, we iterate over each frame and inspect its + header. If based on the header we can determine that the frame contains the sample, we do a full decode of that frame. + */ + for (;;) { + drflac_uint64 pcmFrameCountInThisFLACFrame; + drflac_uint64 firstPCMFrameInFLACFrame = 0; + drflac_uint64 lastPCMFrameInFLACFrame = 0; + + drflac__get_pcm_frame_range_of_current_flac_frame(pFlac, &firstPCMFrameInFLACFrame, &lastPCMFrameInFLACFrame); + + pcmFrameCountInThisFLACFrame = (lastPCMFrameInFLACFrame - firstPCMFrameInFLACFrame) + 1; + if (pcmFrameIndex < (runningPCMFrameCount + pcmFrameCountInThisFLACFrame)) { + /* + The sample should be in this frame. We need to fully decode it, however if it's an invalid frame (a CRC mismatch), we need to pretend + it never existed and keep iterating. + */ + drflac_uint64 pcmFramesToDecode = pcmFrameIndex - runningPCMFrameCount; + + if (!isMidFrame) { + drflac_result result = drflac__decode_flac_frame(pFlac); + if (result == DRFLAC_SUCCESS) { + /* The frame is valid. We just need to skip over some samples to ensure it's sample-exact. */ + return drflac__seek_forward_by_pcm_frames(pFlac, pcmFramesToDecode) == pcmFramesToDecode; /* <-- If this fails, something bad has happened (it should never fail). */ + } else { + if (result == DRFLAC_CRC_MISMATCH) { + goto next_iteration; /* CRC mismatch. Pretend this frame never existed. */ + } else { + return DRFLAC_FALSE; + } + } + } else { + /* We started seeking mid-frame which means we need to skip the frame decoding part. */ + return drflac__seek_forward_by_pcm_frames(pFlac, pcmFramesToDecode) == pcmFramesToDecode; + } + } else { + /* + It's not in this frame. We need to seek past the frame, but check if there was a CRC mismatch. If so, we pretend this + frame never existed and leave the running sample count untouched. + */ + if (!isMidFrame) { + drflac_result result = drflac__seek_to_next_flac_frame(pFlac); + if (result == DRFLAC_SUCCESS) { + runningPCMFrameCount += pcmFrameCountInThisFLACFrame; + } else { + if (result == DRFLAC_CRC_MISMATCH) { + goto next_iteration; /* CRC mismatch. Pretend this frame never existed. */ + } else { + return DRFLAC_FALSE; + } + } + } else { + /* + We started seeking mid-frame which means we need to seek by reading to the end of the frame instead of with + drflac__seek_to_next_flac_frame() which only works if the decoder is sitting on the byte just after the frame header. + */ + runningPCMFrameCount += pFlac->currentFLACFrame.pcmFramesRemaining; + pFlac->currentFLACFrame.pcmFramesRemaining = 0; + isMidFrame = DRFLAC_FALSE; + } + + /* If we are seeking to the end of the file and we've just hit it, we're done. */ + if (pcmFrameIndex == pFlac->totalPCMFrameCount && runningPCMFrameCount == pFlac->totalPCMFrameCount) { + return DRFLAC_TRUE; + } + } + + next_iteration: + /* Grab the next frame in preparation for the next iteration. */ + if (!drflac__read_next_flac_frame_header(&pFlac->bs, pFlac->bitsPerSample, &pFlac->currentFLACFrame.header)) { + return DRFLAC_FALSE; + } + } +} + + +#if !defined(DR_FLAC_NO_CRC) +/* +We use an average compression ratio to determine our approximate start location. FLAC files are generally about 50%-70% the size of their +uncompressed counterparts so we'll use this as a basis. I'm going to split the middle and use a factor of 0.6 to determine the starting +location. +*/ +#define DRFLAC_BINARY_SEARCH_APPROX_COMPRESSION_RATIO 0.6f + +static drflac_bool32 drflac__seek_to_approximate_flac_frame_to_byte(drflac* pFlac, drflac_uint64 targetByte, drflac_uint64 rangeLo, drflac_uint64 rangeHi, drflac_uint64* pLastSuccessfulSeekOffset) +{ + DRFLAC_ASSERT(pFlac != NULL); + DRFLAC_ASSERT(pLastSuccessfulSeekOffset != NULL); + DRFLAC_ASSERT(targetByte >= rangeLo); + DRFLAC_ASSERT(targetByte <= rangeHi); + + *pLastSuccessfulSeekOffset = pFlac->firstFLACFramePosInBytes; + + for (;;) { + /* After rangeLo == rangeHi == targetByte fails, we need to break out. */ + drflac_uint64 lastTargetByte = targetByte; + + /* When seeking to a byte, failure probably means we've attempted to seek beyond the end of the stream. To counter this we just halve it each attempt. */ + if (!drflac__seek_to_byte(&pFlac->bs, targetByte)) { + /* If we couldn't even seek to the first byte in the stream we have a problem. Just abandon the whole thing. */ + if (targetByte == 0) { + drflac__seek_to_first_frame(pFlac); /* Try to recover. */ + return DRFLAC_FALSE; + } + + /* Halve the byte location and continue. */ + targetByte = rangeLo + ((rangeHi - rangeLo)/2); + rangeHi = targetByte; + } else { + /* Getting here should mean that we have seeked to an appropriate byte. */ + + /* Clear the details of the FLAC frame so we don't misreport data. */ + DRFLAC_ZERO_MEMORY(&pFlac->currentFLACFrame, sizeof(pFlac->currentFLACFrame)); + + /* + Now seek to the next FLAC frame. We need to decode the entire frame (not just the header) because it's possible for the header to incorrectly pass the + CRC check and return bad data. We need to decode the entire frame to be more certain. Although this seems unlikely, this has happened to me in testing + so it needs to stay this way for now. + */ +#if 1 + if (!drflac__read_and_decode_next_flac_frame(pFlac)) { + /* Halve the byte location and continue. */ + targetByte = rangeLo + ((rangeHi - rangeLo)/2); + rangeHi = targetByte; + } else { + break; + } +#else + if (!drflac__read_next_flac_frame_header(&pFlac->bs, pFlac->bitsPerSample, &pFlac->currentFLACFrame.header)) { + /* Halve the byte location and continue. */ + targetByte = rangeLo + ((rangeHi - rangeLo)/2); + rangeHi = targetByte; + } else { + break; + } +#endif + } + + /* We already tried this byte and there are no more to try, break out. */ + if(targetByte == lastTargetByte) { + return DRFLAC_FALSE; + } + } + + /* The current PCM frame needs to be updated based on the frame we just seeked to. */ + drflac__get_pcm_frame_range_of_current_flac_frame(pFlac, &pFlac->currentPCMFrame, NULL); + + DRFLAC_ASSERT(targetByte <= rangeHi); + + *pLastSuccessfulSeekOffset = targetByte; + return DRFLAC_TRUE; +} + +static drflac_bool32 drflac__decode_flac_frame_and_seek_forward_by_pcm_frames(drflac* pFlac, drflac_uint64 offset) +{ + /* This section of code would be used if we were only decoding the FLAC frame header when calling drflac__seek_to_approximate_flac_frame_to_byte(). */ +#if 0 + if (drflac__decode_flac_frame(pFlac) != DRFLAC_SUCCESS) { + /* We failed to decode this frame which may be due to it being corrupt. We'll just use the next valid FLAC frame. */ + if (drflac__read_and_decode_next_flac_frame(pFlac) == DRFLAC_FALSE) { + return DRFLAC_FALSE; + } + } +#endif + + return drflac__seek_forward_by_pcm_frames(pFlac, offset) == offset; +} + + +static drflac_bool32 drflac__seek_to_pcm_frame__binary_search_internal(drflac* pFlac, drflac_uint64 pcmFrameIndex, drflac_uint64 byteRangeLo, drflac_uint64 byteRangeHi) +{ + /* This assumes pFlac->currentPCMFrame is sitting on byteRangeLo upon entry. */ + + drflac_uint64 targetByte; + drflac_uint64 pcmRangeLo = pFlac->totalPCMFrameCount; + drflac_uint64 pcmRangeHi = 0; + drflac_uint64 lastSuccessfulSeekOffset = (drflac_uint64)-1; + drflac_uint64 closestSeekOffsetBeforeTargetPCMFrame = byteRangeLo; + drflac_uint32 seekForwardThreshold = (pFlac->maxBlockSizeInPCMFrames != 0) ? pFlac->maxBlockSizeInPCMFrames*2 : 4096; + + targetByte = byteRangeLo + (drflac_uint64)(((drflac_int64)((pcmFrameIndex - pFlac->currentPCMFrame) * pFlac->channels * pFlac->bitsPerSample)/8.0f) * DRFLAC_BINARY_SEARCH_APPROX_COMPRESSION_RATIO); + if (targetByte > byteRangeHi) { + targetByte = byteRangeHi; + } + + for (;;) { + if (drflac__seek_to_approximate_flac_frame_to_byte(pFlac, targetByte, byteRangeLo, byteRangeHi, &lastSuccessfulSeekOffset)) { + /* We found a FLAC frame. We need to check if it contains the sample we're looking for. */ + drflac_uint64 newPCMRangeLo; + drflac_uint64 newPCMRangeHi; + drflac__get_pcm_frame_range_of_current_flac_frame(pFlac, &newPCMRangeLo, &newPCMRangeHi); + + /* If we selected the same frame, it means we should be pretty close. Just decode the rest. */ + if (pcmRangeLo == newPCMRangeLo) { + if (!drflac__seek_to_approximate_flac_frame_to_byte(pFlac, closestSeekOffsetBeforeTargetPCMFrame, closestSeekOffsetBeforeTargetPCMFrame, byteRangeHi, &lastSuccessfulSeekOffset)) { + break; /* Failed to seek to closest frame. */ + } + + if (drflac__decode_flac_frame_and_seek_forward_by_pcm_frames(pFlac, pcmFrameIndex - pFlac->currentPCMFrame)) { + return DRFLAC_TRUE; + } else { + break; /* Failed to seek forward. */ + } + } + + pcmRangeLo = newPCMRangeLo; + pcmRangeHi = newPCMRangeHi; + + if (pcmRangeLo <= pcmFrameIndex && pcmRangeHi >= pcmFrameIndex) { + /* The target PCM frame is in this FLAC frame. */ + if (drflac__decode_flac_frame_and_seek_forward_by_pcm_frames(pFlac, pcmFrameIndex - pFlac->currentPCMFrame) ) { + return DRFLAC_TRUE; + } else { + break; /* Failed to seek to FLAC frame. */ + } + } else { + const float approxCompressionRatio = (drflac_int64)(lastSuccessfulSeekOffset - pFlac->firstFLACFramePosInBytes) / ((drflac_int64)(pcmRangeLo * pFlac->channels * pFlac->bitsPerSample)/8.0f); + + if (pcmRangeLo > pcmFrameIndex) { + /* We seeked too far forward. We need to move our target byte backward and try again. */ + byteRangeHi = lastSuccessfulSeekOffset; + if (byteRangeLo > byteRangeHi) { + byteRangeLo = byteRangeHi; + } + + targetByte = byteRangeLo + ((byteRangeHi - byteRangeLo) / 2); + if (targetByte < byteRangeLo) { + targetByte = byteRangeLo; + } + } else /*if (pcmRangeHi < pcmFrameIndex)*/ { + /* We didn't seek far enough. We need to move our target byte forward and try again. */ + + /* If we're close enough we can just seek forward. */ + if ((pcmFrameIndex - pcmRangeLo) < seekForwardThreshold) { + if (drflac__decode_flac_frame_and_seek_forward_by_pcm_frames(pFlac, pcmFrameIndex - pFlac->currentPCMFrame)) { + return DRFLAC_TRUE; + } else { + break; /* Failed to seek to FLAC frame. */ + } + } else { + byteRangeLo = lastSuccessfulSeekOffset; + if (byteRangeHi < byteRangeLo) { + byteRangeHi = byteRangeLo; + } + + targetByte = lastSuccessfulSeekOffset + (drflac_uint64)(((drflac_int64)((pcmFrameIndex-pcmRangeLo) * pFlac->channels * pFlac->bitsPerSample)/8.0f) * approxCompressionRatio); + if (targetByte > byteRangeHi) { + targetByte = byteRangeHi; + } + + if (closestSeekOffsetBeforeTargetPCMFrame < lastSuccessfulSeekOffset) { + closestSeekOffsetBeforeTargetPCMFrame = lastSuccessfulSeekOffset; + } + } + } + } + } else { + /* Getting here is really bad. We just recover as best we can, but moving to the first frame in the stream, and then abort. */ + break; + } + } + + drflac__seek_to_first_frame(pFlac); /* <-- Try to recover. */ + return DRFLAC_FALSE; +} + +static drflac_bool32 drflac__seek_to_pcm_frame__binary_search(drflac* pFlac, drflac_uint64 pcmFrameIndex) +{ + drflac_uint64 byteRangeLo; + drflac_uint64 byteRangeHi; + drflac_uint32 seekForwardThreshold = (pFlac->maxBlockSizeInPCMFrames != 0) ? pFlac->maxBlockSizeInPCMFrames*2 : 4096; + + /* Our algorithm currently assumes the FLAC stream is currently sitting at the start. */ + if (drflac__seek_to_first_frame(pFlac) == DRFLAC_FALSE) { + return DRFLAC_FALSE; + } + + /* If we're close enough to the start, just move to the start and seek forward. */ + if (pcmFrameIndex < seekForwardThreshold) { + return drflac__seek_forward_by_pcm_frames(pFlac, pcmFrameIndex) == pcmFrameIndex; + } + + /* + Our starting byte range is the byte position of the first FLAC frame and the approximate end of the file as if it were completely uncompressed. This ensures + the entire file is included, even though most of the time it'll exceed the end of the actual stream. This is OK as the frame searching logic will handle it. + */ + byteRangeLo = pFlac->firstFLACFramePosInBytes; + byteRangeHi = pFlac->firstFLACFramePosInBytes + (drflac_uint64)((drflac_int64)(pFlac->totalPCMFrameCount * pFlac->channels * pFlac->bitsPerSample)/8.0f); + + return drflac__seek_to_pcm_frame__binary_search_internal(pFlac, pcmFrameIndex, byteRangeLo, byteRangeHi); +} +#endif /* !DR_FLAC_NO_CRC */ + +static drflac_bool32 drflac__seek_to_pcm_frame__seek_table(drflac* pFlac, drflac_uint64 pcmFrameIndex) +{ + drflac_uint32 iClosestSeekpoint = 0; + drflac_bool32 isMidFrame = DRFLAC_FALSE; + drflac_uint64 runningPCMFrameCount; + drflac_uint32 iSeekpoint; + + + DRFLAC_ASSERT(pFlac != NULL); + + if (pFlac->pSeekpoints == NULL || pFlac->seekpointCount == 0) { + return DRFLAC_FALSE; + } + + /* Do not use the seektable if pcmFramIndex is not coverd by it. */ + if (pFlac->pSeekpoints[0].firstPCMFrame > pcmFrameIndex) { + return DRFLAC_FALSE; + } + + for (iSeekpoint = 0; iSeekpoint < pFlac->seekpointCount; ++iSeekpoint) { + if (pFlac->pSeekpoints[iSeekpoint].firstPCMFrame >= pcmFrameIndex) { + break; + } + + iClosestSeekpoint = iSeekpoint; + } + + /* There's been cases where the seek table contains only zeros. We need to do some basic validation on the closest seekpoint. */ + if (pFlac->pSeekpoints[iClosestSeekpoint].pcmFrameCount == 0 || pFlac->pSeekpoints[iClosestSeekpoint].pcmFrameCount > pFlac->maxBlockSizeInPCMFrames) { + return DRFLAC_FALSE; + } + if (pFlac->pSeekpoints[iClosestSeekpoint].firstPCMFrame > pFlac->totalPCMFrameCount && pFlac->totalPCMFrameCount > 0) { + return DRFLAC_FALSE; + } + +#if !defined(DR_FLAC_NO_CRC) + /* At this point we should know the closest seek point. We can use a binary search for this. We need to know the total sample count for this. */ + if (pFlac->totalPCMFrameCount > 0) { + drflac_uint64 byteRangeLo; + drflac_uint64 byteRangeHi; + + byteRangeHi = pFlac->firstFLACFramePosInBytes + (drflac_uint64)((drflac_int64)(pFlac->totalPCMFrameCount * pFlac->channels * pFlac->bitsPerSample)/8.0f); + byteRangeLo = pFlac->firstFLACFramePosInBytes + pFlac->pSeekpoints[iClosestSeekpoint].flacFrameOffset; + + /* + If our closest seek point is not the last one, we only need to search between it and the next one. The section below calculates an appropriate starting + value for byteRangeHi which will clamp it appropriately. + + Note that the next seekpoint must have an offset greater than the closest seekpoint because otherwise our binary search algorithm will break down. There + have been cases where a seektable consists of seek points where every byte offset is set to 0 which causes problems. If this happens we need to abort. + */ + if (iClosestSeekpoint < pFlac->seekpointCount-1) { + drflac_uint32 iNextSeekpoint = iClosestSeekpoint + 1; + + /* Basic validation on the seekpoints to ensure they're usable. */ + if (pFlac->pSeekpoints[iClosestSeekpoint].flacFrameOffset >= pFlac->pSeekpoints[iNextSeekpoint].flacFrameOffset || pFlac->pSeekpoints[iNextSeekpoint].pcmFrameCount == 0) { + return DRFLAC_FALSE; /* The next seekpoint doesn't look right. The seek table cannot be trusted from here. Abort. */ + } + + if (pFlac->pSeekpoints[iNextSeekpoint].firstPCMFrame != (((drflac_uint64)0xFFFFFFFF << 32) | 0xFFFFFFFF)) { /* Make sure it's not a placeholder seekpoint. */ + byteRangeHi = pFlac->firstFLACFramePosInBytes + pFlac->pSeekpoints[iNextSeekpoint].flacFrameOffset - 1; /* byteRangeHi must be zero based. */ + } + } + + if (drflac__seek_to_byte(&pFlac->bs, pFlac->firstFLACFramePosInBytes + pFlac->pSeekpoints[iClosestSeekpoint].flacFrameOffset)) { + if (drflac__read_next_flac_frame_header(&pFlac->bs, pFlac->bitsPerSample, &pFlac->currentFLACFrame.header)) { + drflac__get_pcm_frame_range_of_current_flac_frame(pFlac, &pFlac->currentPCMFrame, NULL); + + if (drflac__seek_to_pcm_frame__binary_search_internal(pFlac, pcmFrameIndex, byteRangeLo, byteRangeHi)) { + return DRFLAC_TRUE; + } + } + } + } +#endif /* !DR_FLAC_NO_CRC */ + + /* Getting here means we need to use a slower algorithm because the binary search method failed or cannot be used. */ + + /* + If we are seeking forward and the closest seekpoint is _before_ the current sample, we just seek forward from where we are. Otherwise we start seeking + from the seekpoint's first sample. + */ + if (pcmFrameIndex >= pFlac->currentPCMFrame && pFlac->pSeekpoints[iClosestSeekpoint].firstPCMFrame <= pFlac->currentPCMFrame) { + /* Optimized case. Just seek forward from where we are. */ + runningPCMFrameCount = pFlac->currentPCMFrame; + + /* The frame header for the first frame may not yet have been read. We need to do that if necessary. */ + if (pFlac->currentPCMFrame == 0 && pFlac->currentFLACFrame.pcmFramesRemaining == 0) { + if (!drflac__read_next_flac_frame_header(&pFlac->bs, pFlac->bitsPerSample, &pFlac->currentFLACFrame.header)) { + return DRFLAC_FALSE; + } + } else { + isMidFrame = DRFLAC_TRUE; + } + } else { + /* Slower case. Seek to the start of the seekpoint and then seek forward from there. */ + runningPCMFrameCount = pFlac->pSeekpoints[iClosestSeekpoint].firstPCMFrame; + + if (!drflac__seek_to_byte(&pFlac->bs, pFlac->firstFLACFramePosInBytes + pFlac->pSeekpoints[iClosestSeekpoint].flacFrameOffset)) { + return DRFLAC_FALSE; + } + + /* Grab the frame the seekpoint is sitting on in preparation for the sample-exact seeking below. */ + if (!drflac__read_next_flac_frame_header(&pFlac->bs, pFlac->bitsPerSample, &pFlac->currentFLACFrame.header)) { + return DRFLAC_FALSE; + } + } + + for (;;) { + drflac_uint64 pcmFrameCountInThisFLACFrame; + drflac_uint64 firstPCMFrameInFLACFrame = 0; + drflac_uint64 lastPCMFrameInFLACFrame = 0; + + drflac__get_pcm_frame_range_of_current_flac_frame(pFlac, &firstPCMFrameInFLACFrame, &lastPCMFrameInFLACFrame); + + pcmFrameCountInThisFLACFrame = (lastPCMFrameInFLACFrame - firstPCMFrameInFLACFrame) + 1; + if (pcmFrameIndex < (runningPCMFrameCount + pcmFrameCountInThisFLACFrame)) { + /* + The sample should be in this frame. We need to fully decode it, but if it's an invalid frame (a CRC mismatch) we need to pretend + it never existed and keep iterating. + */ + drflac_uint64 pcmFramesToDecode = pcmFrameIndex - runningPCMFrameCount; + + if (!isMidFrame) { + drflac_result result = drflac__decode_flac_frame(pFlac); + if (result == DRFLAC_SUCCESS) { + /* The frame is valid. We just need to skip over some samples to ensure it's sample-exact. */ + return drflac__seek_forward_by_pcm_frames(pFlac, pcmFramesToDecode) == pcmFramesToDecode; /* <-- If this fails, something bad has happened (it should never fail). */ + } else { + if (result == DRFLAC_CRC_MISMATCH) { + goto next_iteration; /* CRC mismatch. Pretend this frame never existed. */ + } else { + return DRFLAC_FALSE; + } + } + } else { + /* We started seeking mid-frame which means we need to skip the frame decoding part. */ + return drflac__seek_forward_by_pcm_frames(pFlac, pcmFramesToDecode) == pcmFramesToDecode; + } + } else { + /* + It's not in this frame. We need to seek past the frame, but check if there was a CRC mismatch. If so, we pretend this + frame never existed and leave the running sample count untouched. + */ + if (!isMidFrame) { + drflac_result result = drflac__seek_to_next_flac_frame(pFlac); + if (result == DRFLAC_SUCCESS) { + runningPCMFrameCount += pcmFrameCountInThisFLACFrame; + } else { + if (result == DRFLAC_CRC_MISMATCH) { + goto next_iteration; /* CRC mismatch. Pretend this frame never existed. */ + } else { + return DRFLAC_FALSE; + } + } + } else { + /* + We started seeking mid-frame which means we need to seek by reading to the end of the frame instead of with + drflac__seek_to_next_flac_frame() which only works if the decoder is sitting on the byte just after the frame header. + */ + runningPCMFrameCount += pFlac->currentFLACFrame.pcmFramesRemaining; + pFlac->currentFLACFrame.pcmFramesRemaining = 0; + isMidFrame = DRFLAC_FALSE; + } + + /* If we are seeking to the end of the file and we've just hit it, we're done. */ + if (pcmFrameIndex == pFlac->totalPCMFrameCount && runningPCMFrameCount == pFlac->totalPCMFrameCount) { + return DRFLAC_TRUE; + } + } + + next_iteration: + /* Grab the next frame in preparation for the next iteration. */ + if (!drflac__read_next_flac_frame_header(&pFlac->bs, pFlac->bitsPerSample, &pFlac->currentFLACFrame.header)) { + return DRFLAC_FALSE; + } + } +} + + +#ifndef DR_FLAC_NO_OGG +typedef struct +{ + drflac_uint8 capturePattern[4]; /* Should be "OggS" */ + drflac_uint8 structureVersion; /* Always 0. */ + drflac_uint8 headerType; + drflac_uint64 granulePosition; + drflac_uint32 serialNumber; + drflac_uint32 sequenceNumber; + drflac_uint32 checksum; + drflac_uint8 segmentCount; + drflac_uint8 segmentTable[255]; +} drflac_ogg_page_header; +#endif + +typedef struct +{ + drflac_read_proc onRead; + drflac_seek_proc onSeek; + drflac_meta_proc onMeta; + drflac_container container; + void* pUserData; + void* pUserDataMD; + drflac_uint32 sampleRate; + drflac_uint8 channels; + drflac_uint8 bitsPerSample; + drflac_uint64 totalPCMFrameCount; + drflac_uint16 maxBlockSizeInPCMFrames; + drflac_uint64 runningFilePos; + drflac_bool32 hasStreamInfoBlock; + drflac_bool32 hasMetadataBlocks; + drflac_bs bs; /* <-- A bit streamer is required for loading data during initialization. */ + drflac_frame_header firstFrameHeader; /* <-- The header of the first frame that was read during relaxed initalization. Only set if there is no STREAMINFO block. */ + +#ifndef DR_FLAC_NO_OGG + drflac_uint32 oggSerial; + drflac_uint64 oggFirstBytePos; + drflac_ogg_page_header oggBosHeader; +#endif +} drflac_init_info; + +static DRFLAC_INLINE void drflac__decode_block_header(drflac_uint32 blockHeader, drflac_uint8* isLastBlock, drflac_uint8* blockType, drflac_uint32* blockSize) +{ + blockHeader = drflac__be2host_32(blockHeader); + *isLastBlock = (drflac_uint8)((blockHeader & 0x80000000UL) >> 31); + *blockType = (drflac_uint8)((blockHeader & 0x7F000000UL) >> 24); + *blockSize = (blockHeader & 0x00FFFFFFUL); +} + +static DRFLAC_INLINE drflac_bool32 drflac__read_and_decode_block_header(drflac_read_proc onRead, void* pUserData, drflac_uint8* isLastBlock, drflac_uint8* blockType, drflac_uint32* blockSize) +{ + drflac_uint32 blockHeader; + + *blockSize = 0; + if (onRead(pUserData, &blockHeader, 4) != 4) { + return DRFLAC_FALSE; + } + + drflac__decode_block_header(blockHeader, isLastBlock, blockType, blockSize); + return DRFLAC_TRUE; +} + +static drflac_bool32 drflac__read_streaminfo(drflac_read_proc onRead, void* pUserData, drflac_streaminfo* pStreamInfo) +{ + drflac_uint32 blockSizes; + drflac_uint64 frameSizes = 0; + drflac_uint64 importantProps; + drflac_uint8 md5[16]; + + /* min/max block size. */ + if (onRead(pUserData, &blockSizes, 4) != 4) { + return DRFLAC_FALSE; + } + + /* min/max frame size. */ + if (onRead(pUserData, &frameSizes, 6) != 6) { + return DRFLAC_FALSE; + } + + /* Sample rate, channels, bits per sample and total sample count. */ + if (onRead(pUserData, &importantProps, 8) != 8) { + return DRFLAC_FALSE; + } + + /* MD5 */ + if (onRead(pUserData, md5, sizeof(md5)) != sizeof(md5)) { + return DRFLAC_FALSE; + } + + blockSizes = drflac__be2host_32(blockSizes); + frameSizes = drflac__be2host_64(frameSizes); + importantProps = drflac__be2host_64(importantProps); + + pStreamInfo->minBlockSizeInPCMFrames = (drflac_uint16)((blockSizes & 0xFFFF0000) >> 16); + pStreamInfo->maxBlockSizeInPCMFrames = (drflac_uint16) (blockSizes & 0x0000FFFF); + pStreamInfo->minFrameSizeInPCMFrames = (drflac_uint32)((frameSizes & (((drflac_uint64)0x00FFFFFF << 16) << 24)) >> 40); + pStreamInfo->maxFrameSizeInPCMFrames = (drflac_uint32)((frameSizes & (((drflac_uint64)0x00FFFFFF << 16) << 0)) >> 16); + pStreamInfo->sampleRate = (drflac_uint32)((importantProps & (((drflac_uint64)0x000FFFFF << 16) << 28)) >> 44); + pStreamInfo->channels = (drflac_uint8 )((importantProps & (((drflac_uint64)0x0000000E << 16) << 24)) >> 41) + 1; + pStreamInfo->bitsPerSample = (drflac_uint8 )((importantProps & (((drflac_uint64)0x0000001F << 16) << 20)) >> 36) + 1; + pStreamInfo->totalPCMFrameCount = ((importantProps & ((((drflac_uint64)0x0000000F << 16) << 16) | 0xFFFFFFFF))); + DRFLAC_COPY_MEMORY(pStreamInfo->md5, md5, sizeof(md5)); + + return DRFLAC_TRUE; +} + + +static void* drflac__malloc_default(size_t sz, void* pUserData) +{ + (void)pUserData; + return DRFLAC_MALLOC(sz); +} + +static void* drflac__realloc_default(void* p, size_t sz, void* pUserData) +{ + (void)pUserData; + return DRFLAC_REALLOC(p, sz); +} + +static void drflac__free_default(void* p, void* pUserData) +{ + (void)pUserData; + DRFLAC_FREE(p); +} + + +static void* drflac__malloc_from_callbacks(size_t sz, const drflac_allocation_callbacks* pAllocationCallbacks) +{ + if (pAllocationCallbacks == NULL) { + return NULL; + } + + if (pAllocationCallbacks->onMalloc != NULL) { + return pAllocationCallbacks->onMalloc(sz, pAllocationCallbacks->pUserData); + } + + /* Try using realloc(). */ + if (pAllocationCallbacks->onRealloc != NULL) { + return pAllocationCallbacks->onRealloc(NULL, sz, pAllocationCallbacks->pUserData); + } + + return NULL; +} + +static void* drflac__realloc_from_callbacks(void* p, size_t szNew, size_t szOld, const drflac_allocation_callbacks* pAllocationCallbacks) +{ + if (pAllocationCallbacks == NULL) { + return NULL; + } + + if (pAllocationCallbacks->onRealloc != NULL) { + return pAllocationCallbacks->onRealloc(p, szNew, pAllocationCallbacks->pUserData); + } + + /* Try emulating realloc() in terms of malloc()/free(). */ + if (pAllocationCallbacks->onMalloc != NULL && pAllocationCallbacks->onFree != NULL) { + void* p2; + + p2 = pAllocationCallbacks->onMalloc(szNew, pAllocationCallbacks->pUserData); + if (p2 == NULL) { + return NULL; + } + + if (p != NULL) { + DRFLAC_COPY_MEMORY(p2, p, szOld); + pAllocationCallbacks->onFree(p, pAllocationCallbacks->pUserData); + } + + return p2; + } + + return NULL; +} + +static void drflac__free_from_callbacks(void* p, const drflac_allocation_callbacks* pAllocationCallbacks) +{ + if (p == NULL || pAllocationCallbacks == NULL) { + return; + } + + if (pAllocationCallbacks->onFree != NULL) { + pAllocationCallbacks->onFree(p, pAllocationCallbacks->pUserData); + } +} + + +static drflac_bool32 drflac__read_and_decode_metadata(drflac_read_proc onRead, drflac_seek_proc onSeek, drflac_meta_proc onMeta, void* pUserData, void* pUserDataMD, drflac_uint64* pFirstFramePos, drflac_uint64* pSeektablePos, drflac_uint32* pSeekpointCount, drflac_allocation_callbacks* pAllocationCallbacks) +{ + /* + We want to keep track of the byte position in the stream of the seektable. At the time of calling this function we know that + we'll be sitting on byte 42. + */ + drflac_uint64 runningFilePos = 42; + drflac_uint64 seektablePos = 0; + drflac_uint32 seektableSize = 0; + + for (;;) { + drflac_metadata metadata; + drflac_uint8 isLastBlock = 0; + drflac_uint8 blockType = 0; + drflac_uint32 blockSize; + if (drflac__read_and_decode_block_header(onRead, pUserData, &isLastBlock, &blockType, &blockSize) == DRFLAC_FALSE) { + return DRFLAC_FALSE; + } + runningFilePos += 4; + + metadata.type = blockType; + metadata.pRawData = NULL; + metadata.rawDataSize = 0; + + switch (blockType) + { + case DRFLAC_METADATA_BLOCK_TYPE_APPLICATION: + { + if (blockSize < 4) { + return DRFLAC_FALSE; + } + + if (onMeta) { + void* pRawData = drflac__malloc_from_callbacks(blockSize, pAllocationCallbacks); + if (pRawData == NULL) { + return DRFLAC_FALSE; + } + + if (onRead(pUserData, pRawData, blockSize) != blockSize) { + drflac__free_from_callbacks(pRawData, pAllocationCallbacks); + return DRFLAC_FALSE; + } + + metadata.pRawData = pRawData; + metadata.rawDataSize = blockSize; + metadata.data.application.id = drflac__be2host_32(*(drflac_uint32*)pRawData); + metadata.data.application.pData = (const void*)((drflac_uint8*)pRawData + sizeof(drflac_uint32)); + metadata.data.application.dataSize = blockSize - sizeof(drflac_uint32); + onMeta(pUserDataMD, &metadata); + + drflac__free_from_callbacks(pRawData, pAllocationCallbacks); + } + } break; + + case DRFLAC_METADATA_BLOCK_TYPE_SEEKTABLE: + { + seektablePos = runningFilePos; + seektableSize = blockSize; + + if (onMeta) { + drflac_uint32 seekpointCount; + drflac_uint32 iSeekpoint; + void* pRawData; + + seekpointCount = blockSize/DRFLAC_SEEKPOINT_SIZE_IN_BYTES; + + pRawData = drflac__malloc_from_callbacks(seekpointCount * sizeof(drflac_seekpoint), pAllocationCallbacks); + if (pRawData == NULL) { + return DRFLAC_FALSE; + } + + /* We need to read seekpoint by seekpoint and do some processing. */ + for (iSeekpoint = 0; iSeekpoint < seekpointCount; ++iSeekpoint) { + drflac_seekpoint* pSeekpoint = (drflac_seekpoint*)pRawData + iSeekpoint; + + if (onRead(pUserData, pSeekpoint, DRFLAC_SEEKPOINT_SIZE_IN_BYTES) != DRFLAC_SEEKPOINT_SIZE_IN_BYTES) { + drflac__free_from_callbacks(pRawData, pAllocationCallbacks); + return DRFLAC_FALSE; + } + + /* Endian swap. */ + pSeekpoint->firstPCMFrame = drflac__be2host_64(pSeekpoint->firstPCMFrame); + pSeekpoint->flacFrameOffset = drflac__be2host_64(pSeekpoint->flacFrameOffset); + pSeekpoint->pcmFrameCount = drflac__be2host_16(pSeekpoint->pcmFrameCount); + } + + metadata.pRawData = pRawData; + metadata.rawDataSize = blockSize; + metadata.data.seektable.seekpointCount = seekpointCount; + metadata.data.seektable.pSeekpoints = (const drflac_seekpoint*)pRawData; + + onMeta(pUserDataMD, &metadata); + + drflac__free_from_callbacks(pRawData, pAllocationCallbacks); + } + } break; + + case DRFLAC_METADATA_BLOCK_TYPE_VORBIS_COMMENT: + { + if (blockSize < 8) { + return DRFLAC_FALSE; + } + + if (onMeta) { + void* pRawData; + const char* pRunningData; + const char* pRunningDataEnd; + drflac_uint32 i; + + pRawData = drflac__malloc_from_callbacks(blockSize, pAllocationCallbacks); + if (pRawData == NULL) { + return DRFLAC_FALSE; + } + + if (onRead(pUserData, pRawData, blockSize) != blockSize) { + drflac__free_from_callbacks(pRawData, pAllocationCallbacks); + return DRFLAC_FALSE; + } + + metadata.pRawData = pRawData; + metadata.rawDataSize = blockSize; + + pRunningData = (const char*)pRawData; + pRunningDataEnd = (const char*)pRawData + blockSize; + + metadata.data.vorbis_comment.vendorLength = drflac__le2host_32_ptr_unaligned(pRunningData); pRunningData += 4; + + /* Need space for the rest of the block */ + if ((pRunningDataEnd - pRunningData) - 4 < (drflac_int64)metadata.data.vorbis_comment.vendorLength) { /* <-- Note the order of operations to avoid overflow to a valid value */ + drflac__free_from_callbacks(pRawData, pAllocationCallbacks); + return DRFLAC_FALSE; + } + metadata.data.vorbis_comment.vendor = pRunningData; pRunningData += metadata.data.vorbis_comment.vendorLength; + metadata.data.vorbis_comment.commentCount = drflac__le2host_32_ptr_unaligned(pRunningData); pRunningData += 4; + + /* Need space for 'commentCount' comments after the block, which at minimum is a drflac_uint32 per comment */ + if ((pRunningDataEnd - pRunningData) / sizeof(drflac_uint32) < metadata.data.vorbis_comment.commentCount) { /* <-- Note the order of operations to avoid overflow to a valid value */ + drflac__free_from_callbacks(pRawData, pAllocationCallbacks); + return DRFLAC_FALSE; + } + metadata.data.vorbis_comment.pComments = pRunningData; + + /* Check that the comments section is valid before passing it to the callback */ + for (i = 0; i < metadata.data.vorbis_comment.commentCount; ++i) { + drflac_uint32 commentLength; + + if (pRunningDataEnd - pRunningData < 4) { + drflac__free_from_callbacks(pRawData, pAllocationCallbacks); + return DRFLAC_FALSE; + } + + commentLength = drflac__le2host_32_ptr_unaligned(pRunningData); pRunningData += 4; + if (pRunningDataEnd - pRunningData < (drflac_int64)commentLength) { /* <-- Note the order of operations to avoid overflow to a valid value */ + drflac__free_from_callbacks(pRawData, pAllocationCallbacks); + return DRFLAC_FALSE; + } + pRunningData += commentLength; + } + + onMeta(pUserDataMD, &metadata); + + drflac__free_from_callbacks(pRawData, pAllocationCallbacks); + } + } break; + + case DRFLAC_METADATA_BLOCK_TYPE_CUESHEET: + { + if (blockSize < 396) { + return DRFLAC_FALSE; + } + + if (onMeta) { + void* pRawData; + const char* pRunningData; + const char* pRunningDataEnd; + size_t bufferSize; + drflac_uint8 iTrack; + drflac_uint8 iIndex; + void* pTrackData; + + /* + This needs to be loaded in two passes. The first pass is used to calculate the size of the memory allocation + we need for storing the necessary data. The second pass will fill that buffer with usable data. + */ + pRawData = drflac__malloc_from_callbacks(blockSize, pAllocationCallbacks); + if (pRawData == NULL) { + return DRFLAC_FALSE; + } + + if (onRead(pUserData, pRawData, blockSize) != blockSize) { + drflac__free_from_callbacks(pRawData, pAllocationCallbacks); + return DRFLAC_FALSE; + } + + metadata.pRawData = pRawData; + metadata.rawDataSize = blockSize; + + pRunningData = (const char*)pRawData; + pRunningDataEnd = (const char*)pRawData + blockSize; + + DRFLAC_COPY_MEMORY(metadata.data.cuesheet.catalog, pRunningData, 128); pRunningData += 128; + metadata.data.cuesheet.leadInSampleCount = drflac__be2host_64(*(const drflac_uint64*)pRunningData); pRunningData += 8; + metadata.data.cuesheet.isCD = (pRunningData[0] & 0x80) != 0; pRunningData += 259; + metadata.data.cuesheet.trackCount = pRunningData[0]; pRunningData += 1; + metadata.data.cuesheet.pTrackData = NULL; /* Will be filled later. */ + + /* Pass 1: Calculate the size of the buffer for the track data. */ + { + const char* pRunningDataSaved = pRunningData; /* Will be restored at the end in preparation for the second pass. */ + + bufferSize = metadata.data.cuesheet.trackCount * DRFLAC_CUESHEET_TRACK_SIZE_IN_BYTES; + + for (iTrack = 0; iTrack < metadata.data.cuesheet.trackCount; ++iTrack) { + drflac_uint8 indexCount; + drflac_uint32 indexPointSize; + + if (pRunningDataEnd - pRunningData < DRFLAC_CUESHEET_TRACK_SIZE_IN_BYTES) { + drflac__free_from_callbacks(pRawData, pAllocationCallbacks); + return DRFLAC_FALSE; + } + + /* Skip to the index point count */ + pRunningData += 35; + + indexCount = pRunningData[0]; + pRunningData += 1; + + bufferSize += indexCount * sizeof(drflac_cuesheet_track_index); + + /* Quick validation check. */ + indexPointSize = indexCount * DRFLAC_CUESHEET_TRACK_INDEX_SIZE_IN_BYTES; + if (pRunningDataEnd - pRunningData < (drflac_int64)indexPointSize) { + drflac__free_from_callbacks(pRawData, pAllocationCallbacks); + return DRFLAC_FALSE; + } + + pRunningData += indexPointSize; + } + + pRunningData = pRunningDataSaved; + } + + /* Pass 2: Allocate a buffer and fill the data. Validation was done in the step above so can be skipped. */ + { + char* pRunningTrackData; + + pTrackData = drflac__malloc_from_callbacks(bufferSize, pAllocationCallbacks); + if (pTrackData == NULL) { + drflac__free_from_callbacks(pRawData, pAllocationCallbacks); + return DRFLAC_FALSE; + } + + pRunningTrackData = (char*)pTrackData; + + for (iTrack = 0; iTrack < metadata.data.cuesheet.trackCount; ++iTrack) { + drflac_uint8 indexCount; + + DRFLAC_COPY_MEMORY(pRunningTrackData, pRunningData, DRFLAC_CUESHEET_TRACK_SIZE_IN_BYTES); + pRunningData += DRFLAC_CUESHEET_TRACK_SIZE_IN_BYTES-1; /* Skip forward, but not beyond the last byte in the CUESHEET_TRACK block which is the index count. */ + pRunningTrackData += DRFLAC_CUESHEET_TRACK_SIZE_IN_BYTES-1; + + /* Grab the index count for the next part. */ + indexCount = pRunningData[0]; + pRunningData += 1; + pRunningTrackData += 1; + + /* Extract each track index. */ + for (iIndex = 0; iIndex < indexCount; ++iIndex) { + drflac_cuesheet_track_index* pTrackIndex = (drflac_cuesheet_track_index*)pRunningTrackData; + + DRFLAC_COPY_MEMORY(pRunningTrackData, pRunningData, DRFLAC_CUESHEET_TRACK_INDEX_SIZE_IN_BYTES); + pRunningData += DRFLAC_CUESHEET_TRACK_INDEX_SIZE_IN_BYTES; + pRunningTrackData += sizeof(drflac_cuesheet_track_index); + + pTrackIndex->offset = drflac__be2host_64(pTrackIndex->offset); + } + } + + metadata.data.cuesheet.pTrackData = pTrackData; + } + + /* The original data is no longer needed. */ + drflac__free_from_callbacks(pRawData, pAllocationCallbacks); + pRawData = NULL; + + onMeta(pUserDataMD, &metadata); + + drflac__free_from_callbacks(pTrackData, pAllocationCallbacks); + pTrackData = NULL; + } + } break; + + case DRFLAC_METADATA_BLOCK_TYPE_PICTURE: + { + if (blockSize < 32) { + return DRFLAC_FALSE; + } + + if (onMeta) { + void* pRawData; + const char* pRunningData; + const char* pRunningDataEnd; + + pRawData = drflac__malloc_from_callbacks(blockSize, pAllocationCallbacks); + if (pRawData == NULL) { + return DRFLAC_FALSE; + } + + if (onRead(pUserData, pRawData, blockSize) != blockSize) { + drflac__free_from_callbacks(pRawData, pAllocationCallbacks); + return DRFLAC_FALSE; + } + + metadata.pRawData = pRawData; + metadata.rawDataSize = blockSize; + + pRunningData = (const char*)pRawData; + pRunningDataEnd = (const char*)pRawData + blockSize; + + metadata.data.picture.type = drflac__be2host_32_ptr_unaligned(pRunningData); pRunningData += 4; + metadata.data.picture.mimeLength = drflac__be2host_32_ptr_unaligned(pRunningData); pRunningData += 4; + + /* Need space for the rest of the block */ + if ((pRunningDataEnd - pRunningData) - 24 < (drflac_int64)metadata.data.picture.mimeLength) { /* <-- Note the order of operations to avoid overflow to a valid value */ + drflac__free_from_callbacks(pRawData, pAllocationCallbacks); + return DRFLAC_FALSE; + } + metadata.data.picture.mime = pRunningData; pRunningData += metadata.data.picture.mimeLength; + metadata.data.picture.descriptionLength = drflac__be2host_32_ptr_unaligned(pRunningData); pRunningData += 4; + + /* Need space for the rest of the block */ + if ((pRunningDataEnd - pRunningData) - 20 < (drflac_int64)metadata.data.picture.descriptionLength) { /* <-- Note the order of operations to avoid overflow to a valid value */ + drflac__free_from_callbacks(pRawData, pAllocationCallbacks); + return DRFLAC_FALSE; + } + metadata.data.picture.description = pRunningData; pRunningData += metadata.data.picture.descriptionLength; + metadata.data.picture.width = drflac__be2host_32_ptr_unaligned(pRunningData); pRunningData += 4; + metadata.data.picture.height = drflac__be2host_32_ptr_unaligned(pRunningData); pRunningData += 4; + metadata.data.picture.colorDepth = drflac__be2host_32_ptr_unaligned(pRunningData); pRunningData += 4; + metadata.data.picture.indexColorCount = drflac__be2host_32_ptr_unaligned(pRunningData); pRunningData += 4; + metadata.data.picture.pictureDataSize = drflac__be2host_32_ptr_unaligned(pRunningData); pRunningData += 4; + metadata.data.picture.pPictureData = (const drflac_uint8*)pRunningData; + + /* Need space for the picture after the block */ + if (pRunningDataEnd - pRunningData < (drflac_int64)metadata.data.picture.pictureDataSize) { /* <-- Note the order of operations to avoid overflow to a valid value */ + drflac__free_from_callbacks(pRawData, pAllocationCallbacks); + return DRFLAC_FALSE; + } + + onMeta(pUserDataMD, &metadata); + + drflac__free_from_callbacks(pRawData, pAllocationCallbacks); + } + } break; + + case DRFLAC_METADATA_BLOCK_TYPE_PADDING: + { + if (onMeta) { + metadata.data.padding.unused = 0; + + /* Padding doesn't have anything meaningful in it, so just skip over it, but make sure the caller is aware of it by firing the callback. */ + if (!onSeek(pUserData, blockSize, drflac_seek_origin_current)) { + isLastBlock = DRFLAC_TRUE; /* An error occurred while seeking. Attempt to recover by treating this as the last block which will in turn terminate the loop. */ + } else { + onMeta(pUserDataMD, &metadata); + } + } + } break; + + case DRFLAC_METADATA_BLOCK_TYPE_INVALID: + { + /* Invalid chunk. Just skip over this one. */ + if (onMeta) { + if (!onSeek(pUserData, blockSize, drflac_seek_origin_current)) { + isLastBlock = DRFLAC_TRUE; /* An error occurred while seeking. Attempt to recover by treating this as the last block which will in turn terminate the loop. */ + } + } + } break; + + default: + { + /* + It's an unknown chunk, but not necessarily invalid. There's a chance more metadata blocks might be defined later on, so we + can at the very least report the chunk to the application and let it look at the raw data. + */ + if (onMeta) { + void* pRawData = drflac__malloc_from_callbacks(blockSize, pAllocationCallbacks); + if (pRawData == NULL) { + return DRFLAC_FALSE; + } + + if (onRead(pUserData, pRawData, blockSize) != blockSize) { + drflac__free_from_callbacks(pRawData, pAllocationCallbacks); + return DRFLAC_FALSE; + } + + metadata.pRawData = pRawData; + metadata.rawDataSize = blockSize; + onMeta(pUserDataMD, &metadata); + + drflac__free_from_callbacks(pRawData, pAllocationCallbacks); + } + } break; + } + + /* If we're not handling metadata, just skip over the block. If we are, it will have been handled earlier in the switch statement above. */ + if (onMeta == NULL && blockSize > 0) { + if (!onSeek(pUserData, blockSize, drflac_seek_origin_current)) { + isLastBlock = DRFLAC_TRUE; + } + } + + runningFilePos += blockSize; + if (isLastBlock) { + break; + } + } + + *pSeektablePos = seektablePos; + *pSeekpointCount = seektableSize / DRFLAC_SEEKPOINT_SIZE_IN_BYTES; + *pFirstFramePos = runningFilePos; + + return DRFLAC_TRUE; +} + +static drflac_bool32 drflac__init_private__native(drflac_init_info* pInit, drflac_read_proc onRead, drflac_seek_proc onSeek, drflac_meta_proc onMeta, void* pUserData, void* pUserDataMD, drflac_bool32 relaxed) +{ + /* Pre Condition: The bit stream should be sitting just past the 4-byte id header. */ + + drflac_uint8 isLastBlock; + drflac_uint8 blockType; + drflac_uint32 blockSize; + + (void)onSeek; + + pInit->container = drflac_container_native; + + /* The first metadata block should be the STREAMINFO block. */ + if (!drflac__read_and_decode_block_header(onRead, pUserData, &isLastBlock, &blockType, &blockSize)) { + return DRFLAC_FALSE; + } + + if (blockType != DRFLAC_METADATA_BLOCK_TYPE_STREAMINFO || blockSize != 34) { + if (!relaxed) { + /* We're opening in strict mode and the first block is not the STREAMINFO block. Error. */ + return DRFLAC_FALSE; + } else { + /* + Relaxed mode. To open from here we need to just find the first frame and set the sample rate, etc. to whatever is defined + for that frame. + */ + pInit->hasStreamInfoBlock = DRFLAC_FALSE; + pInit->hasMetadataBlocks = DRFLAC_FALSE; + + if (!drflac__read_next_flac_frame_header(&pInit->bs, 0, &pInit->firstFrameHeader)) { + return DRFLAC_FALSE; /* Couldn't find a frame. */ + } + + if (pInit->firstFrameHeader.bitsPerSample == 0) { + return DRFLAC_FALSE; /* Failed to initialize because the first frame depends on the STREAMINFO block, which does not exist. */ + } + + pInit->sampleRate = pInit->firstFrameHeader.sampleRate; + pInit->channels = drflac__get_channel_count_from_channel_assignment(pInit->firstFrameHeader.channelAssignment); + pInit->bitsPerSample = pInit->firstFrameHeader.bitsPerSample; + pInit->maxBlockSizeInPCMFrames = 65535; /* <-- See notes here: https://xiph.org/flac/format.html#metadata_block_streaminfo */ + return DRFLAC_TRUE; + } + } else { + drflac_streaminfo streaminfo; + if (!drflac__read_streaminfo(onRead, pUserData, &streaminfo)) { + return DRFLAC_FALSE; + } + + pInit->hasStreamInfoBlock = DRFLAC_TRUE; + pInit->sampleRate = streaminfo.sampleRate; + pInit->channels = streaminfo.channels; + pInit->bitsPerSample = streaminfo.bitsPerSample; + pInit->totalPCMFrameCount = streaminfo.totalPCMFrameCount; + pInit->maxBlockSizeInPCMFrames = streaminfo.maxBlockSizeInPCMFrames; /* Don't care about the min block size - only the max (used for determining the size of the memory allocation). */ + pInit->hasMetadataBlocks = !isLastBlock; + + if (onMeta) { + drflac_metadata metadata; + metadata.type = DRFLAC_METADATA_BLOCK_TYPE_STREAMINFO; + metadata.pRawData = NULL; + metadata.rawDataSize = 0; + metadata.data.streaminfo = streaminfo; + onMeta(pUserDataMD, &metadata); + } + + return DRFLAC_TRUE; + } +} + +#ifndef DR_FLAC_NO_OGG +#define DRFLAC_OGG_MAX_PAGE_SIZE 65307 +#define DRFLAC_OGG_CAPTURE_PATTERN_CRC32 1605413199 /* CRC-32 of "OggS". */ + +typedef enum +{ + drflac_ogg_recover_on_crc_mismatch, + drflac_ogg_fail_on_crc_mismatch +} drflac_ogg_crc_mismatch_recovery; + +#ifndef DR_FLAC_NO_CRC +static drflac_uint32 drflac__crc32_table[] = { + 0x00000000L, 0x04C11DB7L, 0x09823B6EL, 0x0D4326D9L, + 0x130476DCL, 0x17C56B6BL, 0x1A864DB2L, 0x1E475005L, + 0x2608EDB8L, 0x22C9F00FL, 0x2F8AD6D6L, 0x2B4BCB61L, + 0x350C9B64L, 0x31CD86D3L, 0x3C8EA00AL, 0x384FBDBDL, + 0x4C11DB70L, 0x48D0C6C7L, 0x4593E01EL, 0x4152FDA9L, + 0x5F15ADACL, 0x5BD4B01BL, 0x569796C2L, 0x52568B75L, + 0x6A1936C8L, 0x6ED82B7FL, 0x639B0DA6L, 0x675A1011L, + 0x791D4014L, 0x7DDC5DA3L, 0x709F7B7AL, 0x745E66CDL, + 0x9823B6E0L, 0x9CE2AB57L, 0x91A18D8EL, 0x95609039L, + 0x8B27C03CL, 0x8FE6DD8BL, 0x82A5FB52L, 0x8664E6E5L, + 0xBE2B5B58L, 0xBAEA46EFL, 0xB7A96036L, 0xB3687D81L, + 0xAD2F2D84L, 0xA9EE3033L, 0xA4AD16EAL, 0xA06C0B5DL, + 0xD4326D90L, 0xD0F37027L, 0xDDB056FEL, 0xD9714B49L, + 0xC7361B4CL, 0xC3F706FBL, 0xCEB42022L, 0xCA753D95L, + 0xF23A8028L, 0xF6FB9D9FL, 0xFBB8BB46L, 0xFF79A6F1L, + 0xE13EF6F4L, 0xE5FFEB43L, 0xE8BCCD9AL, 0xEC7DD02DL, + 0x34867077L, 0x30476DC0L, 0x3D044B19L, 0x39C556AEL, + 0x278206ABL, 0x23431B1CL, 0x2E003DC5L, 0x2AC12072L, + 0x128E9DCFL, 0x164F8078L, 0x1B0CA6A1L, 0x1FCDBB16L, + 0x018AEB13L, 0x054BF6A4L, 0x0808D07DL, 0x0CC9CDCAL, + 0x7897AB07L, 0x7C56B6B0L, 0x71159069L, 0x75D48DDEL, + 0x6B93DDDBL, 0x6F52C06CL, 0x6211E6B5L, 0x66D0FB02L, + 0x5E9F46BFL, 0x5A5E5B08L, 0x571D7DD1L, 0x53DC6066L, + 0x4D9B3063L, 0x495A2DD4L, 0x44190B0DL, 0x40D816BAL, + 0xACA5C697L, 0xA864DB20L, 0xA527FDF9L, 0xA1E6E04EL, + 0xBFA1B04BL, 0xBB60ADFCL, 0xB6238B25L, 0xB2E29692L, + 0x8AAD2B2FL, 0x8E6C3698L, 0x832F1041L, 0x87EE0DF6L, + 0x99A95DF3L, 0x9D684044L, 0x902B669DL, 0x94EA7B2AL, + 0xE0B41DE7L, 0xE4750050L, 0xE9362689L, 0xEDF73B3EL, + 0xF3B06B3BL, 0xF771768CL, 0xFA325055L, 0xFEF34DE2L, + 0xC6BCF05FL, 0xC27DEDE8L, 0xCF3ECB31L, 0xCBFFD686L, + 0xD5B88683L, 0xD1799B34L, 0xDC3ABDEDL, 0xD8FBA05AL, + 0x690CE0EEL, 0x6DCDFD59L, 0x608EDB80L, 0x644FC637L, + 0x7A089632L, 0x7EC98B85L, 0x738AAD5CL, 0x774BB0EBL, + 0x4F040D56L, 0x4BC510E1L, 0x46863638L, 0x42472B8FL, + 0x5C007B8AL, 0x58C1663DL, 0x558240E4L, 0x51435D53L, + 0x251D3B9EL, 0x21DC2629L, 0x2C9F00F0L, 0x285E1D47L, + 0x36194D42L, 0x32D850F5L, 0x3F9B762CL, 0x3B5A6B9BL, + 0x0315D626L, 0x07D4CB91L, 0x0A97ED48L, 0x0E56F0FFL, + 0x1011A0FAL, 0x14D0BD4DL, 0x19939B94L, 0x1D528623L, + 0xF12F560EL, 0xF5EE4BB9L, 0xF8AD6D60L, 0xFC6C70D7L, + 0xE22B20D2L, 0xE6EA3D65L, 0xEBA91BBCL, 0xEF68060BL, + 0xD727BBB6L, 0xD3E6A601L, 0xDEA580D8L, 0xDA649D6FL, + 0xC423CD6AL, 0xC0E2D0DDL, 0xCDA1F604L, 0xC960EBB3L, + 0xBD3E8D7EL, 0xB9FF90C9L, 0xB4BCB610L, 0xB07DABA7L, + 0xAE3AFBA2L, 0xAAFBE615L, 0xA7B8C0CCL, 0xA379DD7BL, + 0x9B3660C6L, 0x9FF77D71L, 0x92B45BA8L, 0x9675461FL, + 0x8832161AL, 0x8CF30BADL, 0x81B02D74L, 0x857130C3L, + 0x5D8A9099L, 0x594B8D2EL, 0x5408ABF7L, 0x50C9B640L, + 0x4E8EE645L, 0x4A4FFBF2L, 0x470CDD2BL, 0x43CDC09CL, + 0x7B827D21L, 0x7F436096L, 0x7200464FL, 0x76C15BF8L, + 0x68860BFDL, 0x6C47164AL, 0x61043093L, 0x65C52D24L, + 0x119B4BE9L, 0x155A565EL, 0x18197087L, 0x1CD86D30L, + 0x029F3D35L, 0x065E2082L, 0x0B1D065BL, 0x0FDC1BECL, + 0x3793A651L, 0x3352BBE6L, 0x3E119D3FL, 0x3AD08088L, + 0x2497D08DL, 0x2056CD3AL, 0x2D15EBE3L, 0x29D4F654L, + 0xC5A92679L, 0xC1683BCEL, 0xCC2B1D17L, 0xC8EA00A0L, + 0xD6AD50A5L, 0xD26C4D12L, 0xDF2F6BCBL, 0xDBEE767CL, + 0xE3A1CBC1L, 0xE760D676L, 0xEA23F0AFL, 0xEEE2ED18L, + 0xF0A5BD1DL, 0xF464A0AAL, 0xF9278673L, 0xFDE69BC4L, + 0x89B8FD09L, 0x8D79E0BEL, 0x803AC667L, 0x84FBDBD0L, + 0x9ABC8BD5L, 0x9E7D9662L, 0x933EB0BBL, 0x97FFAD0CL, + 0xAFB010B1L, 0xAB710D06L, 0xA6322BDFL, 0xA2F33668L, + 0xBCB4666DL, 0xB8757BDAL, 0xB5365D03L, 0xB1F740B4L +}; +#endif + +static DRFLAC_INLINE drflac_uint32 drflac_crc32_byte(drflac_uint32 crc32, drflac_uint8 data) +{ +#ifndef DR_FLAC_NO_CRC + return (crc32 << 8) ^ drflac__crc32_table[(drflac_uint8)((crc32 >> 24) & 0xFF) ^ data]; +#else + (void)data; + return crc32; +#endif +} + +#if 0 +static DRFLAC_INLINE drflac_uint32 drflac_crc32_uint32(drflac_uint32 crc32, drflac_uint32 data) +{ + crc32 = drflac_crc32_byte(crc32, (drflac_uint8)((data >> 24) & 0xFF)); + crc32 = drflac_crc32_byte(crc32, (drflac_uint8)((data >> 16) & 0xFF)); + crc32 = drflac_crc32_byte(crc32, (drflac_uint8)((data >> 8) & 0xFF)); + crc32 = drflac_crc32_byte(crc32, (drflac_uint8)((data >> 0) & 0xFF)); + return crc32; +} + +static DRFLAC_INLINE drflac_uint32 drflac_crc32_uint64(drflac_uint32 crc32, drflac_uint64 data) +{ + crc32 = drflac_crc32_uint32(crc32, (drflac_uint32)((data >> 32) & 0xFFFFFFFF)); + crc32 = drflac_crc32_uint32(crc32, (drflac_uint32)((data >> 0) & 0xFFFFFFFF)); + return crc32; +} +#endif + +static DRFLAC_INLINE drflac_uint32 drflac_crc32_buffer(drflac_uint32 crc32, drflac_uint8* pData, drflac_uint32 dataSize) +{ + /* This can be optimized. */ + drflac_uint32 i; + for (i = 0; i < dataSize; ++i) { + crc32 = drflac_crc32_byte(crc32, pData[i]); + } + return crc32; +} + + +static DRFLAC_INLINE drflac_bool32 drflac_ogg__is_capture_pattern(drflac_uint8 pattern[4]) +{ + return pattern[0] == 'O' && pattern[1] == 'g' && pattern[2] == 'g' && pattern[3] == 'S'; +} + +static DRFLAC_INLINE drflac_uint32 drflac_ogg__get_page_header_size(drflac_ogg_page_header* pHeader) +{ + return 27 + pHeader->segmentCount; +} + +static DRFLAC_INLINE drflac_uint32 drflac_ogg__get_page_body_size(drflac_ogg_page_header* pHeader) +{ + drflac_uint32 pageBodySize = 0; + int i; + + for (i = 0; i < pHeader->segmentCount; ++i) { + pageBodySize += pHeader->segmentTable[i]; + } + + return pageBodySize; +} + +static drflac_result drflac_ogg__read_page_header_after_capture_pattern(drflac_read_proc onRead, void* pUserData, drflac_ogg_page_header* pHeader, drflac_uint32* pBytesRead, drflac_uint32* pCRC32) +{ + drflac_uint8 data[23]; + drflac_uint32 i; + + DRFLAC_ASSERT(*pCRC32 == DRFLAC_OGG_CAPTURE_PATTERN_CRC32); + + if (onRead(pUserData, data, 23) != 23) { + return DRFLAC_AT_END; + } + *pBytesRead += 23; + + /* + It's not actually used, but set the capture pattern to 'OggS' for completeness. Not doing this will cause static analysers to complain about + us trying to access uninitialized data. We could alternatively just comment out this member of the drflac_ogg_page_header structure, but I + like to have it map to the structure of the underlying data. + */ + pHeader->capturePattern[0] = 'O'; + pHeader->capturePattern[1] = 'g'; + pHeader->capturePattern[2] = 'g'; + pHeader->capturePattern[3] = 'S'; + + pHeader->structureVersion = data[0]; + pHeader->headerType = data[1]; + DRFLAC_COPY_MEMORY(&pHeader->granulePosition, &data[ 2], 8); + DRFLAC_COPY_MEMORY(&pHeader->serialNumber, &data[10], 4); + DRFLAC_COPY_MEMORY(&pHeader->sequenceNumber, &data[14], 4); + DRFLAC_COPY_MEMORY(&pHeader->checksum, &data[18], 4); + pHeader->segmentCount = data[22]; + + /* Calculate the CRC. Note that for the calculation the checksum part of the page needs to be set to 0. */ + data[18] = 0; + data[19] = 0; + data[20] = 0; + data[21] = 0; + + for (i = 0; i < 23; ++i) { + *pCRC32 = drflac_crc32_byte(*pCRC32, data[i]); + } + + + if (onRead(pUserData, pHeader->segmentTable, pHeader->segmentCount) != pHeader->segmentCount) { + return DRFLAC_AT_END; + } + *pBytesRead += pHeader->segmentCount; + + for (i = 0; i < pHeader->segmentCount; ++i) { + *pCRC32 = drflac_crc32_byte(*pCRC32, pHeader->segmentTable[i]); + } + + return DRFLAC_SUCCESS; +} + +static drflac_result drflac_ogg__read_page_header(drflac_read_proc onRead, void* pUserData, drflac_ogg_page_header* pHeader, drflac_uint32* pBytesRead, drflac_uint32* pCRC32) +{ + drflac_uint8 id[4]; + + *pBytesRead = 0; + + if (onRead(pUserData, id, 4) != 4) { + return DRFLAC_AT_END; + } + *pBytesRead += 4; + + /* We need to read byte-by-byte until we find the OggS capture pattern. */ + for (;;) { + if (drflac_ogg__is_capture_pattern(id)) { + drflac_result result; + + *pCRC32 = DRFLAC_OGG_CAPTURE_PATTERN_CRC32; + + result = drflac_ogg__read_page_header_after_capture_pattern(onRead, pUserData, pHeader, pBytesRead, pCRC32); + if (result == DRFLAC_SUCCESS) { + return DRFLAC_SUCCESS; + } else { + if (result == DRFLAC_CRC_MISMATCH) { + continue; + } else { + return result; + } + } + } else { + /* The first 4 bytes did not equal the capture pattern. Read the next byte and try again. */ + id[0] = id[1]; + id[1] = id[2]; + id[2] = id[3]; + if (onRead(pUserData, &id[3], 1) != 1) { + return DRFLAC_AT_END; + } + *pBytesRead += 1; + } + } +} + + +/* +The main part of the Ogg encapsulation is the conversion from the physical Ogg bitstream to the native FLAC bitstream. It works +in three general stages: Ogg Physical Bitstream -> Ogg/FLAC Logical Bitstream -> FLAC Native Bitstream. dr_flac is designed +in such a way that the core sections assume everything is delivered in native format. Therefore, for each encapsulation type +dr_flac is supporting there needs to be a layer sitting on top of the onRead and onSeek callbacks that ensures the bits read from +the physical Ogg bitstream are converted and delivered in native FLAC format. +*/ +typedef struct +{ + drflac_read_proc onRead; /* The original onRead callback from drflac_open() and family. */ + drflac_seek_proc onSeek; /* The original onSeek callback from drflac_open() and family. */ + void* pUserData; /* The user data passed on onRead and onSeek. This is the user data that was passed on drflac_open() and family. */ + drflac_uint64 currentBytePos; /* The position of the byte we are sitting on in the physical byte stream. Used for efficient seeking. */ + drflac_uint64 firstBytePos; /* The position of the first byte in the physical bitstream. Points to the start of the "OggS" identifier of the FLAC bos page. */ + drflac_uint32 serialNumber; /* The serial number of the FLAC audio pages. This is determined by the initial header page that was read during initialization. */ + drflac_ogg_page_header bosPageHeader; /* Used for seeking. */ + drflac_ogg_page_header currentPageHeader; + drflac_uint32 bytesRemainingInPage; + drflac_uint32 pageDataSize; + drflac_uint8 pageData[DRFLAC_OGG_MAX_PAGE_SIZE]; +} drflac_oggbs; /* oggbs = Ogg Bitstream */ + +static size_t drflac_oggbs__read_physical(drflac_oggbs* oggbs, void* bufferOut, size_t bytesToRead) +{ + size_t bytesActuallyRead = oggbs->onRead(oggbs->pUserData, bufferOut, bytesToRead); + oggbs->currentBytePos += bytesActuallyRead; + + return bytesActuallyRead; +} + +static drflac_bool32 drflac_oggbs__seek_physical(drflac_oggbs* oggbs, drflac_uint64 offset, drflac_seek_origin origin) +{ + if (origin == drflac_seek_origin_start) { + if (offset <= 0x7FFFFFFF) { + if (!oggbs->onSeek(oggbs->pUserData, (int)offset, drflac_seek_origin_start)) { + return DRFLAC_FALSE; + } + oggbs->currentBytePos = offset; + + return DRFLAC_TRUE; + } else { + if (!oggbs->onSeek(oggbs->pUserData, 0x7FFFFFFF, drflac_seek_origin_start)) { + return DRFLAC_FALSE; + } + oggbs->currentBytePos = offset; + + return drflac_oggbs__seek_physical(oggbs, offset - 0x7FFFFFFF, drflac_seek_origin_current); + } + } else { + while (offset > 0x7FFFFFFF) { + if (!oggbs->onSeek(oggbs->pUserData, 0x7FFFFFFF, drflac_seek_origin_current)) { + return DRFLAC_FALSE; + } + oggbs->currentBytePos += 0x7FFFFFFF; + offset -= 0x7FFFFFFF; + } + + if (!oggbs->onSeek(oggbs->pUserData, (int)offset, drflac_seek_origin_current)) { /* <-- Safe cast thanks to the loop above. */ + return DRFLAC_FALSE; + } + oggbs->currentBytePos += offset; + + return DRFLAC_TRUE; + } +} + +static drflac_bool32 drflac_oggbs__goto_next_page(drflac_oggbs* oggbs, drflac_ogg_crc_mismatch_recovery recoveryMethod) +{ + drflac_ogg_page_header header; + for (;;) { + drflac_uint32 crc32 = 0; + drflac_uint32 bytesRead; + drflac_uint32 pageBodySize; +#ifndef DR_FLAC_NO_CRC + drflac_uint32 actualCRC32; +#endif + + if (drflac_ogg__read_page_header(oggbs->onRead, oggbs->pUserData, &header, &bytesRead, &crc32) != DRFLAC_SUCCESS) { + return DRFLAC_FALSE; + } + oggbs->currentBytePos += bytesRead; + + pageBodySize = drflac_ogg__get_page_body_size(&header); + if (pageBodySize > DRFLAC_OGG_MAX_PAGE_SIZE) { + continue; /* Invalid page size. Assume it's corrupted and just move to the next page. */ + } + + if (header.serialNumber != oggbs->serialNumber) { + /* It's not a FLAC page. Skip it. */ + if (pageBodySize > 0 && !drflac_oggbs__seek_physical(oggbs, pageBodySize, drflac_seek_origin_current)) { + return DRFLAC_FALSE; + } + continue; + } + + + /* We need to read the entire page and then do a CRC check on it. If there's a CRC mismatch we need to skip this page. */ + if (drflac_oggbs__read_physical(oggbs, oggbs->pageData, pageBodySize) != pageBodySize) { + return DRFLAC_FALSE; + } + oggbs->pageDataSize = pageBodySize; + +#ifndef DR_FLAC_NO_CRC + actualCRC32 = drflac_crc32_buffer(crc32, oggbs->pageData, oggbs->pageDataSize); + if (actualCRC32 != header.checksum) { + if (recoveryMethod == drflac_ogg_recover_on_crc_mismatch) { + continue; /* CRC mismatch. Skip this page. */ + } else { + /* + Even though we are failing on a CRC mismatch, we still want our stream to be in a good state. Therefore we + go to the next valid page to ensure we're in a good state, but return false to let the caller know that the + seek did not fully complete. + */ + drflac_oggbs__goto_next_page(oggbs, drflac_ogg_recover_on_crc_mismatch); + return DRFLAC_FALSE; + } + } +#else + (void)recoveryMethod; /* <-- Silence a warning. */ +#endif + + oggbs->currentPageHeader = header; + oggbs->bytesRemainingInPage = pageBodySize; + return DRFLAC_TRUE; + } +} + +/* Function below is unused at the moment, but I might be re-adding it later. */ +#if 0 +static drflac_uint8 drflac_oggbs__get_current_segment_index(drflac_oggbs* oggbs, drflac_uint8* pBytesRemainingInSeg) +{ + drflac_uint32 bytesConsumedInPage = drflac_ogg__get_page_body_size(&oggbs->currentPageHeader) - oggbs->bytesRemainingInPage; + drflac_uint8 iSeg = 0; + drflac_uint32 iByte = 0; + while (iByte < bytesConsumedInPage) { + drflac_uint8 segmentSize = oggbs->currentPageHeader.segmentTable[iSeg]; + if (iByte + segmentSize > bytesConsumedInPage) { + break; + } else { + iSeg += 1; + iByte += segmentSize; + } + } + + *pBytesRemainingInSeg = oggbs->currentPageHeader.segmentTable[iSeg] - (drflac_uint8)(bytesConsumedInPage - iByte); + return iSeg; +} + +static drflac_bool32 drflac_oggbs__seek_to_next_packet(drflac_oggbs* oggbs) +{ + /* The current packet ends when we get to the segment with a lacing value of < 255 which is not at the end of a page. */ + for (;;) { + drflac_bool32 atEndOfPage = DRFLAC_FALSE; + + drflac_uint8 bytesRemainingInSeg; + drflac_uint8 iFirstSeg = drflac_oggbs__get_current_segment_index(oggbs, &bytesRemainingInSeg); + + drflac_uint32 bytesToEndOfPacketOrPage = bytesRemainingInSeg; + for (drflac_uint8 iSeg = iFirstSeg; iSeg < oggbs->currentPageHeader.segmentCount; ++iSeg) { + drflac_uint8 segmentSize = oggbs->currentPageHeader.segmentTable[iSeg]; + if (segmentSize < 255) { + if (iSeg == oggbs->currentPageHeader.segmentCount-1) { + atEndOfPage = DRFLAC_TRUE; + } + + break; + } + + bytesToEndOfPacketOrPage += segmentSize; + } + + /* + At this point we will have found either the packet or the end of the page. If were at the end of the page we'll + want to load the next page and keep searching for the end of the packet. + */ + drflac_oggbs__seek_physical(oggbs, bytesToEndOfPacketOrPage, drflac_seek_origin_current); + oggbs->bytesRemainingInPage -= bytesToEndOfPacketOrPage; + + if (atEndOfPage) { + /* + We're potentially at the next packet, but we need to check the next page first to be sure because the packet may + straddle pages. + */ + if (!drflac_oggbs__goto_next_page(oggbs)) { + return DRFLAC_FALSE; + } + + /* If it's a fresh packet it most likely means we're at the next packet. */ + if ((oggbs->currentPageHeader.headerType & 0x01) == 0) { + return DRFLAC_TRUE; + } + } else { + /* We're at the next packet. */ + return DRFLAC_TRUE; + } + } +} + +static drflac_bool32 drflac_oggbs__seek_to_next_frame(drflac_oggbs* oggbs) +{ + /* The bitstream should be sitting on the first byte just after the header of the frame. */ + + /* What we're actually doing here is seeking to the start of the next packet. */ + return drflac_oggbs__seek_to_next_packet(oggbs); +} +#endif + +static size_t drflac__on_read_ogg(void* pUserData, void* bufferOut, size_t bytesToRead) +{ + drflac_oggbs* oggbs = (drflac_oggbs*)pUserData; + drflac_uint8* pRunningBufferOut = (drflac_uint8*)bufferOut; + size_t bytesRead = 0; + + DRFLAC_ASSERT(oggbs != NULL); + DRFLAC_ASSERT(pRunningBufferOut != NULL); + + /* Reading is done page-by-page. If we've run out of bytes in the page we need to move to the next one. */ + while (bytesRead < bytesToRead) { + size_t bytesRemainingToRead = bytesToRead - bytesRead; + + if (oggbs->bytesRemainingInPage >= bytesRemainingToRead) { + DRFLAC_COPY_MEMORY(pRunningBufferOut, oggbs->pageData + (oggbs->pageDataSize - oggbs->bytesRemainingInPage), bytesRemainingToRead); + bytesRead += bytesRemainingToRead; + oggbs->bytesRemainingInPage -= (drflac_uint32)bytesRemainingToRead; + break; + } + + /* If we get here it means some of the requested data is contained in the next pages. */ + if (oggbs->bytesRemainingInPage > 0) { + DRFLAC_COPY_MEMORY(pRunningBufferOut, oggbs->pageData + (oggbs->pageDataSize - oggbs->bytesRemainingInPage), oggbs->bytesRemainingInPage); + bytesRead += oggbs->bytesRemainingInPage; + pRunningBufferOut += oggbs->bytesRemainingInPage; + oggbs->bytesRemainingInPage = 0; + } + + DRFLAC_ASSERT(bytesRemainingToRead > 0); + if (!drflac_oggbs__goto_next_page(oggbs, drflac_ogg_recover_on_crc_mismatch)) { + break; /* Failed to go to the next page. Might have simply hit the end of the stream. */ + } + } + + return bytesRead; +} + +static drflac_bool32 drflac__on_seek_ogg(void* pUserData, int offset, drflac_seek_origin origin) +{ + drflac_oggbs* oggbs = (drflac_oggbs*)pUserData; + int bytesSeeked = 0; + + DRFLAC_ASSERT(oggbs != NULL); + DRFLAC_ASSERT(offset >= 0); /* <-- Never seek backwards. */ + + /* Seeking is always forward which makes things a lot simpler. */ + if (origin == drflac_seek_origin_start) { + if (!drflac_oggbs__seek_physical(oggbs, (int)oggbs->firstBytePos, drflac_seek_origin_start)) { + return DRFLAC_FALSE; + } + + if (!drflac_oggbs__goto_next_page(oggbs, drflac_ogg_fail_on_crc_mismatch)) { + return DRFLAC_FALSE; + } + + return drflac__on_seek_ogg(pUserData, offset, drflac_seek_origin_current); + } + + DRFLAC_ASSERT(origin == drflac_seek_origin_current); + + while (bytesSeeked < offset) { + int bytesRemainingToSeek = offset - bytesSeeked; + DRFLAC_ASSERT(bytesRemainingToSeek >= 0); + + if (oggbs->bytesRemainingInPage >= (size_t)bytesRemainingToSeek) { + bytesSeeked += bytesRemainingToSeek; + (void)bytesSeeked; /* <-- Silence a dead store warning emitted by Clang Static Analyzer. */ + oggbs->bytesRemainingInPage -= bytesRemainingToSeek; + break; + } + + /* If we get here it means some of the requested data is contained in the next pages. */ + if (oggbs->bytesRemainingInPage > 0) { + bytesSeeked += (int)oggbs->bytesRemainingInPage; + oggbs->bytesRemainingInPage = 0; + } + + DRFLAC_ASSERT(bytesRemainingToSeek > 0); + if (!drflac_oggbs__goto_next_page(oggbs, drflac_ogg_fail_on_crc_mismatch)) { + /* Failed to go to the next page. We either hit the end of the stream or had a CRC mismatch. */ + return DRFLAC_FALSE; + } + } + + return DRFLAC_TRUE; +} + + +static drflac_bool32 drflac_ogg__seek_to_pcm_frame(drflac* pFlac, drflac_uint64 pcmFrameIndex) +{ + drflac_oggbs* oggbs = (drflac_oggbs*)pFlac->_oggbs; + drflac_uint64 originalBytePos; + drflac_uint64 runningGranulePosition; + drflac_uint64 runningFrameBytePos; + drflac_uint64 runningPCMFrameCount; + + DRFLAC_ASSERT(oggbs != NULL); + + originalBytePos = oggbs->currentBytePos; /* For recovery. Points to the OggS identifier. */ + + /* First seek to the first frame. */ + if (!drflac__seek_to_byte(&pFlac->bs, pFlac->firstFLACFramePosInBytes)) { + return DRFLAC_FALSE; + } + oggbs->bytesRemainingInPage = 0; + + runningGranulePosition = 0; + for (;;) { + if (!drflac_oggbs__goto_next_page(oggbs, drflac_ogg_recover_on_crc_mismatch)) { + drflac_oggbs__seek_physical(oggbs, originalBytePos, drflac_seek_origin_start); + return DRFLAC_FALSE; /* Never did find that sample... */ + } + + runningFrameBytePos = oggbs->currentBytePos - drflac_ogg__get_page_header_size(&oggbs->currentPageHeader) - oggbs->pageDataSize; + if (oggbs->currentPageHeader.granulePosition >= pcmFrameIndex) { + break; /* The sample is somewhere in the previous page. */ + } + + /* + At this point we know the sample is not in the previous page. It could possibly be in this page. For simplicity we + disregard any pages that do not begin a fresh packet. + */ + if ((oggbs->currentPageHeader.headerType & 0x01) == 0) { /* <-- Is it a fresh page? */ + if (oggbs->currentPageHeader.segmentTable[0] >= 2) { + drflac_uint8 firstBytesInPage[2]; + firstBytesInPage[0] = oggbs->pageData[0]; + firstBytesInPage[1] = oggbs->pageData[1]; + + if ((firstBytesInPage[0] == 0xFF) && (firstBytesInPage[1] & 0xFC) == 0xF8) { /* <-- Does the page begin with a frame's sync code? */ + runningGranulePosition = oggbs->currentPageHeader.granulePosition; + } + + continue; + } + } + } + + /* + We found the page that that is closest to the sample, so now we need to find it. The first thing to do is seek to the + start of that page. In the loop above we checked that it was a fresh page which means this page is also the start of + a new frame. This property means that after we've seeked to the page we can immediately start looping over frames until + we find the one containing the target sample. + */ + if (!drflac_oggbs__seek_physical(oggbs, runningFrameBytePos, drflac_seek_origin_start)) { + return DRFLAC_FALSE; + } + if (!drflac_oggbs__goto_next_page(oggbs, drflac_ogg_recover_on_crc_mismatch)) { + return DRFLAC_FALSE; + } + + /* + At this point we'll be sitting on the first byte of the frame header of the first frame in the page. We just keep + looping over these frames until we find the one containing the sample we're after. + */ + runningPCMFrameCount = runningGranulePosition; + for (;;) { + /* + There are two ways to find the sample and seek past irrelevant frames: + 1) Use the native FLAC decoder. + 2) Use Ogg's framing system. + + Both of these options have their own pros and cons. Using the native FLAC decoder is slower because it needs to + do a full decode of the frame. Using Ogg's framing system is faster, but more complicated and involves some code + duplication for the decoding of frame headers. + + Another thing to consider is that using the Ogg framing system will perform direct seeking of the physical Ogg + bitstream. This is important to consider because it means we cannot read data from the drflac_bs object using the + standard drflac__*() APIs because that will read in extra data for its own internal caching which in turn breaks + the positioning of the read pointer of the physical Ogg bitstream. Therefore, anything that would normally be read + using the native FLAC decoding APIs, such as drflac__read_next_flac_frame_header(), need to be re-implemented so as to + avoid the use of the drflac_bs object. + + Considering these issues, I have decided to use the slower native FLAC decoding method for the following reasons: + 1) Seeking is already partially accelerated using Ogg's paging system in the code block above. + 2) Seeking in an Ogg encapsulated FLAC stream is probably quite uncommon. + 3) Simplicity. + */ + drflac_uint64 firstPCMFrameInFLACFrame = 0; + drflac_uint64 lastPCMFrameInFLACFrame = 0; + drflac_uint64 pcmFrameCountInThisFrame; + + if (!drflac__read_next_flac_frame_header(&pFlac->bs, pFlac->bitsPerSample, &pFlac->currentFLACFrame.header)) { + return DRFLAC_FALSE; + } + + drflac__get_pcm_frame_range_of_current_flac_frame(pFlac, &firstPCMFrameInFLACFrame, &lastPCMFrameInFLACFrame); + + pcmFrameCountInThisFrame = (lastPCMFrameInFLACFrame - firstPCMFrameInFLACFrame) + 1; + + /* If we are seeking to the end of the file and we've just hit it, we're done. */ + if (pcmFrameIndex == pFlac->totalPCMFrameCount && (runningPCMFrameCount + pcmFrameCountInThisFrame) == pFlac->totalPCMFrameCount) { + drflac_result result = drflac__decode_flac_frame(pFlac); + if (result == DRFLAC_SUCCESS) { + pFlac->currentPCMFrame = pcmFrameIndex; + pFlac->currentFLACFrame.pcmFramesRemaining = 0; + return DRFLAC_TRUE; + } else { + return DRFLAC_FALSE; + } + } + + if (pcmFrameIndex < (runningPCMFrameCount + pcmFrameCountInThisFrame)) { + /* + The sample should be in this FLAC frame. We need to fully decode it, however if it's an invalid frame (a CRC mismatch), we need to pretend + it never existed and keep iterating. + */ + drflac_result result = drflac__decode_flac_frame(pFlac); + if (result == DRFLAC_SUCCESS) { + /* The frame is valid. We just need to skip over some samples to ensure it's sample-exact. */ + drflac_uint64 pcmFramesToDecode = (size_t)(pcmFrameIndex - runningPCMFrameCount); /* <-- Safe cast because the maximum number of samples in a frame is 65535. */ + if (pcmFramesToDecode == 0) { + return DRFLAC_TRUE; + } + + pFlac->currentPCMFrame = runningPCMFrameCount; + + return drflac__seek_forward_by_pcm_frames(pFlac, pcmFramesToDecode) == pcmFramesToDecode; /* <-- If this fails, something bad has happened (it should never fail). */ + } else { + if (result == DRFLAC_CRC_MISMATCH) { + continue; /* CRC mismatch. Pretend this frame never existed. */ + } else { + return DRFLAC_FALSE; + } + } + } else { + /* + It's not in this frame. We need to seek past the frame, but check if there was a CRC mismatch. If so, we pretend this + frame never existed and leave the running sample count untouched. + */ + drflac_result result = drflac__seek_to_next_flac_frame(pFlac); + if (result == DRFLAC_SUCCESS) { + runningPCMFrameCount += pcmFrameCountInThisFrame; + } else { + if (result == DRFLAC_CRC_MISMATCH) { + continue; /* CRC mismatch. Pretend this frame never existed. */ + } else { + return DRFLAC_FALSE; + } + } + } + } +} + + + +static drflac_bool32 drflac__init_private__ogg(drflac_init_info* pInit, drflac_read_proc onRead, drflac_seek_proc onSeek, drflac_meta_proc onMeta, void* pUserData, void* pUserDataMD, drflac_bool32 relaxed) +{ + drflac_ogg_page_header header; + drflac_uint32 crc32 = DRFLAC_OGG_CAPTURE_PATTERN_CRC32; + drflac_uint32 bytesRead = 0; + + /* Pre Condition: The bit stream should be sitting just past the 4-byte OggS capture pattern. */ + (void)relaxed; + + pInit->container = drflac_container_ogg; + pInit->oggFirstBytePos = 0; + + /* + We'll get here if the first 4 bytes of the stream were the OggS capture pattern, however it doesn't necessarily mean the + stream includes FLAC encoded audio. To check for this we need to scan the beginning-of-stream page markers and check if + any match the FLAC specification. Important to keep in mind that the stream may be multiplexed. + */ + if (drflac_ogg__read_page_header_after_capture_pattern(onRead, pUserData, &header, &bytesRead, &crc32) != DRFLAC_SUCCESS) { + return DRFLAC_FALSE; + } + pInit->runningFilePos += bytesRead; + + for (;;) { + int pageBodySize; + + /* Break if we're past the beginning of stream page. */ + if ((header.headerType & 0x02) == 0) { + return DRFLAC_FALSE; + } + + /* Check if it's a FLAC header. */ + pageBodySize = drflac_ogg__get_page_body_size(&header); + if (pageBodySize == 51) { /* 51 = the lacing value of the FLAC header packet. */ + /* It could be a FLAC page... */ + drflac_uint32 bytesRemainingInPage = pageBodySize; + drflac_uint8 packetType; + + if (onRead(pUserData, &packetType, 1) != 1) { + return DRFLAC_FALSE; + } + + bytesRemainingInPage -= 1; + if (packetType == 0x7F) { + /* Increasingly more likely to be a FLAC page... */ + drflac_uint8 sig[4]; + if (onRead(pUserData, sig, 4) != 4) { + return DRFLAC_FALSE; + } + + bytesRemainingInPage -= 4; + if (sig[0] == 'F' && sig[1] == 'L' && sig[2] == 'A' && sig[3] == 'C') { + /* Almost certainly a FLAC page... */ + drflac_uint8 mappingVersion[2]; + if (onRead(pUserData, mappingVersion, 2) != 2) { + return DRFLAC_FALSE; + } + + if (mappingVersion[0] != 1) { + return DRFLAC_FALSE; /* Only supporting version 1.x of the Ogg mapping. */ + } + + /* + The next 2 bytes are the non-audio packets, not including this one. We don't care about this because we're going to + be handling it in a generic way based on the serial number and packet types. + */ + if (!onSeek(pUserData, 2, drflac_seek_origin_current)) { + return DRFLAC_FALSE; + } + + /* Expecting the native FLAC signature "fLaC". */ + if (onRead(pUserData, sig, 4) != 4) { + return DRFLAC_FALSE; + } + + if (sig[0] == 'f' && sig[1] == 'L' && sig[2] == 'a' && sig[3] == 'C') { + /* The remaining data in the page should be the STREAMINFO block. */ + drflac_streaminfo streaminfo; + drflac_uint8 isLastBlock; + drflac_uint8 blockType; + drflac_uint32 blockSize; + if (!drflac__read_and_decode_block_header(onRead, pUserData, &isLastBlock, &blockType, &blockSize)) { + return DRFLAC_FALSE; + } + + if (blockType != DRFLAC_METADATA_BLOCK_TYPE_STREAMINFO || blockSize != 34) { + return DRFLAC_FALSE; /* Invalid block type. First block must be the STREAMINFO block. */ + } + + if (drflac__read_streaminfo(onRead, pUserData, &streaminfo)) { + /* Success! */ + pInit->hasStreamInfoBlock = DRFLAC_TRUE; + pInit->sampleRate = streaminfo.sampleRate; + pInit->channels = streaminfo.channels; + pInit->bitsPerSample = streaminfo.bitsPerSample; + pInit->totalPCMFrameCount = streaminfo.totalPCMFrameCount; + pInit->maxBlockSizeInPCMFrames = streaminfo.maxBlockSizeInPCMFrames; + pInit->hasMetadataBlocks = !isLastBlock; + + if (onMeta) { + drflac_metadata metadata; + metadata.type = DRFLAC_METADATA_BLOCK_TYPE_STREAMINFO; + metadata.pRawData = NULL; + metadata.rawDataSize = 0; + metadata.data.streaminfo = streaminfo; + onMeta(pUserDataMD, &metadata); + } + + pInit->runningFilePos += pageBodySize; + pInit->oggFirstBytePos = pInit->runningFilePos - 79; /* Subtracting 79 will place us right on top of the "OggS" identifier of the FLAC bos page. */ + pInit->oggSerial = header.serialNumber; + pInit->oggBosHeader = header; + break; + } else { + /* Failed to read STREAMINFO block. Aww, so close... */ + return DRFLAC_FALSE; + } + } else { + /* Invalid file. */ + return DRFLAC_FALSE; + } + } else { + /* Not a FLAC header. Skip it. */ + if (!onSeek(pUserData, bytesRemainingInPage, drflac_seek_origin_current)) { + return DRFLAC_FALSE; + } + } + } else { + /* Not a FLAC header. Seek past the entire page and move on to the next. */ + if (!onSeek(pUserData, bytesRemainingInPage, drflac_seek_origin_current)) { + return DRFLAC_FALSE; + } + } + } else { + if (!onSeek(pUserData, pageBodySize, drflac_seek_origin_current)) { + return DRFLAC_FALSE; + } + } + + pInit->runningFilePos += pageBodySize; + + + /* Read the header of the next page. */ + if (drflac_ogg__read_page_header(onRead, pUserData, &header, &bytesRead, &crc32) != DRFLAC_SUCCESS) { + return DRFLAC_FALSE; + } + pInit->runningFilePos += bytesRead; + } + + /* + If we get here it means we found a FLAC audio stream. We should be sitting on the first byte of the header of the next page. The next + packets in the FLAC logical stream contain the metadata. The only thing left to do in the initialization phase for Ogg is to create the + Ogg bistream object. + */ + pInit->hasMetadataBlocks = DRFLAC_TRUE; /* <-- Always have at least VORBIS_COMMENT metadata block. */ + return DRFLAC_TRUE; +} +#endif + +static drflac_bool32 drflac__init_private(drflac_init_info* pInit, drflac_read_proc onRead, drflac_seek_proc onSeek, drflac_meta_proc onMeta, drflac_container container, void* pUserData, void* pUserDataMD) +{ + drflac_bool32 relaxed; + drflac_uint8 id[4]; + + if (pInit == NULL || onRead == NULL || onSeek == NULL) { + return DRFLAC_FALSE; + } + + DRFLAC_ZERO_MEMORY(pInit, sizeof(*pInit)); + pInit->onRead = onRead; + pInit->onSeek = onSeek; + pInit->onMeta = onMeta; + pInit->container = container; + pInit->pUserData = pUserData; + pInit->pUserDataMD = pUserDataMD; + + pInit->bs.onRead = onRead; + pInit->bs.onSeek = onSeek; + pInit->bs.pUserData = pUserData; + drflac__reset_cache(&pInit->bs); + + + /* If the container is explicitly defined then we can try opening in relaxed mode. */ + relaxed = container != drflac_container_unknown; + + /* Skip over any ID3 tags. */ + for (;;) { + if (onRead(pUserData, id, 4) != 4) { + return DRFLAC_FALSE; /* Ran out of data. */ + } + pInit->runningFilePos += 4; + + if (id[0] == 'I' && id[1] == 'D' && id[2] == '3') { + drflac_uint8 header[6]; + drflac_uint8 flags; + drflac_uint32 headerSize; + + if (onRead(pUserData, header, 6) != 6) { + return DRFLAC_FALSE; /* Ran out of data. */ + } + pInit->runningFilePos += 6; + + flags = header[1]; + + DRFLAC_COPY_MEMORY(&headerSize, header+2, 4); + headerSize = drflac__unsynchsafe_32(drflac__be2host_32(headerSize)); + if (flags & 0x10) { + headerSize += 10; + } + + if (!onSeek(pUserData, headerSize, drflac_seek_origin_current)) { + return DRFLAC_FALSE; /* Failed to seek past the tag. */ + } + pInit->runningFilePos += headerSize; + } else { + break; + } + } + + if (id[0] == 'f' && id[1] == 'L' && id[2] == 'a' && id[3] == 'C') { + return drflac__init_private__native(pInit, onRead, onSeek, onMeta, pUserData, pUserDataMD, relaxed); + } +#ifndef DR_FLAC_NO_OGG + if (id[0] == 'O' && id[1] == 'g' && id[2] == 'g' && id[3] == 'S') { + return drflac__init_private__ogg(pInit, onRead, onSeek, onMeta, pUserData, pUserDataMD, relaxed); + } +#endif + + /* If we get here it means we likely don't have a header. Try opening in relaxed mode, if applicable. */ + if (relaxed) { + if (container == drflac_container_native) { + return drflac__init_private__native(pInit, onRead, onSeek, onMeta, pUserData, pUserDataMD, relaxed); + } +#ifndef DR_FLAC_NO_OGG + if (container == drflac_container_ogg) { + return drflac__init_private__ogg(pInit, onRead, onSeek, onMeta, pUserData, pUserDataMD, relaxed); + } +#endif + } + + /* Unsupported container. */ + return DRFLAC_FALSE; +} + +static void drflac__init_from_info(drflac* pFlac, const drflac_init_info* pInit) +{ + DRFLAC_ASSERT(pFlac != NULL); + DRFLAC_ASSERT(pInit != NULL); + + DRFLAC_ZERO_MEMORY(pFlac, sizeof(*pFlac)); + pFlac->bs = pInit->bs; + pFlac->onMeta = pInit->onMeta; + pFlac->pUserDataMD = pInit->pUserDataMD; + pFlac->maxBlockSizeInPCMFrames = pInit->maxBlockSizeInPCMFrames; + pFlac->sampleRate = pInit->sampleRate; + pFlac->channels = (drflac_uint8)pInit->channels; + pFlac->bitsPerSample = (drflac_uint8)pInit->bitsPerSample; + pFlac->totalPCMFrameCount = pInit->totalPCMFrameCount; + pFlac->container = pInit->container; +} + + +static drflac* drflac_open_with_metadata_private(drflac_read_proc onRead, drflac_seek_proc onSeek, drflac_meta_proc onMeta, drflac_container container, void* pUserData, void* pUserDataMD, const drflac_allocation_callbacks* pAllocationCallbacks) +{ + drflac_init_info init; + drflac_uint32 allocationSize; + drflac_uint32 wholeSIMDVectorCountPerChannel; + drflac_uint32 decodedSamplesAllocationSize; +#ifndef DR_FLAC_NO_OGG + drflac_oggbs* pOggbs = NULL; +#endif + drflac_uint64 firstFramePos; + drflac_uint64 seektablePos; + drflac_uint32 seekpointCount; + drflac_allocation_callbacks allocationCallbacks; + drflac* pFlac; + + /* CPU support first. */ + drflac__init_cpu_caps(); + + if (!drflac__init_private(&init, onRead, onSeek, onMeta, container, pUserData, pUserDataMD)) { + return NULL; + } + + if (pAllocationCallbacks != NULL) { + allocationCallbacks = *pAllocationCallbacks; + if (allocationCallbacks.onFree == NULL || (allocationCallbacks.onMalloc == NULL && allocationCallbacks.onRealloc == NULL)) { + return NULL; /* Invalid allocation callbacks. */ + } + } else { + allocationCallbacks.pUserData = NULL; + allocationCallbacks.onMalloc = drflac__malloc_default; + allocationCallbacks.onRealloc = drflac__realloc_default; + allocationCallbacks.onFree = drflac__free_default; + } + + + /* + The size of the allocation for the drflac object needs to be large enough to fit the following: + 1) The main members of the drflac structure + 2) A block of memory large enough to store the decoded samples of the largest frame in the stream + 3) If the container is Ogg, a drflac_oggbs object + + The complicated part of the allocation is making sure there's enough room the decoded samples, taking into consideration + the different SIMD instruction sets. + */ + allocationSize = sizeof(drflac); + + /* + The allocation size for decoded frames depends on the number of 32-bit integers that fit inside the largest SIMD vector + we are supporting. + */ + if ((init.maxBlockSizeInPCMFrames % (DRFLAC_MAX_SIMD_VECTOR_SIZE / sizeof(drflac_int32))) == 0) { + wholeSIMDVectorCountPerChannel = (init.maxBlockSizeInPCMFrames / (DRFLAC_MAX_SIMD_VECTOR_SIZE / sizeof(drflac_int32))); + } else { + wholeSIMDVectorCountPerChannel = (init.maxBlockSizeInPCMFrames / (DRFLAC_MAX_SIMD_VECTOR_SIZE / sizeof(drflac_int32))) + 1; + } + + decodedSamplesAllocationSize = wholeSIMDVectorCountPerChannel * DRFLAC_MAX_SIMD_VECTOR_SIZE * init.channels; + + allocationSize += decodedSamplesAllocationSize; + allocationSize += DRFLAC_MAX_SIMD_VECTOR_SIZE; /* Allocate extra bytes to ensure we have enough for alignment. */ + +#ifndef DR_FLAC_NO_OGG + /* There's additional data required for Ogg streams. */ + if (init.container == drflac_container_ogg) { + allocationSize += sizeof(drflac_oggbs); + + pOggbs = (drflac_oggbs*)drflac__malloc_from_callbacks(sizeof(*pOggbs), &allocationCallbacks); + if (pOggbs == NULL) { + return NULL; /*DRFLAC_OUT_OF_MEMORY;*/ + } + + DRFLAC_ZERO_MEMORY(pOggbs, sizeof(*pOggbs)); + pOggbs->onRead = onRead; + pOggbs->onSeek = onSeek; + pOggbs->pUserData = pUserData; + pOggbs->currentBytePos = init.oggFirstBytePos; + pOggbs->firstBytePos = init.oggFirstBytePos; + pOggbs->serialNumber = init.oggSerial; + pOggbs->bosPageHeader = init.oggBosHeader; + pOggbs->bytesRemainingInPage = 0; + } +#endif + + /* + This part is a bit awkward. We need to load the seektable so that it can be referenced in-memory, but I want the drflac object to + consist of only a single heap allocation. To this, the size of the seek table needs to be known, which we determine when reading + and decoding the metadata. + */ + firstFramePos = 42; /* <-- We know we are at byte 42 at this point. */ + seektablePos = 0; + seekpointCount = 0; + if (init.hasMetadataBlocks) { + drflac_read_proc onReadOverride = onRead; + drflac_seek_proc onSeekOverride = onSeek; + void* pUserDataOverride = pUserData; + +#ifndef DR_FLAC_NO_OGG + if (init.container == drflac_container_ogg) { + onReadOverride = drflac__on_read_ogg; + onSeekOverride = drflac__on_seek_ogg; + pUserDataOverride = (void*)pOggbs; + } +#endif + + if (!drflac__read_and_decode_metadata(onReadOverride, onSeekOverride, onMeta, pUserDataOverride, pUserDataMD, &firstFramePos, &seektablePos, &seekpointCount, &allocationCallbacks)) { + #ifndef DR_FLAC_NO_OGG + drflac__free_from_callbacks(pOggbs, &allocationCallbacks); + #endif + return NULL; + } + + allocationSize += seekpointCount * sizeof(drflac_seekpoint); + } + + + pFlac = (drflac*)drflac__malloc_from_callbacks(allocationSize, &allocationCallbacks); + if (pFlac == NULL) { + #ifndef DR_FLAC_NO_OGG + drflac__free_from_callbacks(pOggbs, &allocationCallbacks); + #endif + return NULL; + } + + drflac__init_from_info(pFlac, &init); + pFlac->allocationCallbacks = allocationCallbacks; + pFlac->pDecodedSamples = (drflac_int32*)drflac_align((size_t)pFlac->pExtraData, DRFLAC_MAX_SIMD_VECTOR_SIZE); + +#ifndef DR_FLAC_NO_OGG + if (init.container == drflac_container_ogg) { + drflac_oggbs* pInternalOggbs = (drflac_oggbs*)((drflac_uint8*)pFlac->pDecodedSamples + decodedSamplesAllocationSize + (seekpointCount * sizeof(drflac_seekpoint))); + DRFLAC_COPY_MEMORY(pInternalOggbs, pOggbs, sizeof(*pOggbs)); + + /* At this point the pOggbs object has been handed over to pInternalOggbs and can be freed. */ + drflac__free_from_callbacks(pOggbs, &allocationCallbacks); + pOggbs = NULL; + + /* The Ogg bistream needs to be layered on top of the original bitstream. */ + pFlac->bs.onRead = drflac__on_read_ogg; + pFlac->bs.onSeek = drflac__on_seek_ogg; + pFlac->bs.pUserData = (void*)pInternalOggbs; + pFlac->_oggbs = (void*)pInternalOggbs; + } +#endif + + pFlac->firstFLACFramePosInBytes = firstFramePos; + + /* NOTE: Seektables are not currently compatible with Ogg encapsulation (Ogg has its own accelerated seeking system). I may change this later, so I'm leaving this here for now. */ +#ifndef DR_FLAC_NO_OGG + if (init.container == drflac_container_ogg) + { + pFlac->pSeekpoints = NULL; + pFlac->seekpointCount = 0; + } + else +#endif + { + /* If we have a seektable we need to load it now, making sure we move back to where we were previously. */ + if (seektablePos != 0) { + pFlac->seekpointCount = seekpointCount; + pFlac->pSeekpoints = (drflac_seekpoint*)((drflac_uint8*)pFlac->pDecodedSamples + decodedSamplesAllocationSize); + + DRFLAC_ASSERT(pFlac->bs.onSeek != NULL); + DRFLAC_ASSERT(pFlac->bs.onRead != NULL); + + /* Seek to the seektable, then just read directly into our seektable buffer. */ + if (pFlac->bs.onSeek(pFlac->bs.pUserData, (int)seektablePos, drflac_seek_origin_start)) { + drflac_uint32 iSeekpoint; + + for (iSeekpoint = 0; iSeekpoint < seekpointCount; iSeekpoint += 1) { + if (pFlac->bs.onRead(pFlac->bs.pUserData, pFlac->pSeekpoints + iSeekpoint, DRFLAC_SEEKPOINT_SIZE_IN_BYTES) == DRFLAC_SEEKPOINT_SIZE_IN_BYTES) { + /* Endian swap. */ + pFlac->pSeekpoints[iSeekpoint].firstPCMFrame = drflac__be2host_64(pFlac->pSeekpoints[iSeekpoint].firstPCMFrame); + pFlac->pSeekpoints[iSeekpoint].flacFrameOffset = drflac__be2host_64(pFlac->pSeekpoints[iSeekpoint].flacFrameOffset); + pFlac->pSeekpoints[iSeekpoint].pcmFrameCount = drflac__be2host_16(pFlac->pSeekpoints[iSeekpoint].pcmFrameCount); + } else { + /* Failed to read the seektable. Pretend we don't have one. */ + pFlac->pSeekpoints = NULL; + pFlac->seekpointCount = 0; + break; + } + } + + /* We need to seek back to where we were. If this fails it's a critical error. */ + if (!pFlac->bs.onSeek(pFlac->bs.pUserData, (int)pFlac->firstFLACFramePosInBytes, drflac_seek_origin_start)) { + drflac__free_from_callbacks(pFlac, &allocationCallbacks); + return NULL; + } + } else { + /* Failed to seek to the seektable. Ominous sign, but for now we can just pretend we don't have one. */ + pFlac->pSeekpoints = NULL; + pFlac->seekpointCount = 0; + } + } + } + + + /* + If we get here, but don't have a STREAMINFO block, it means we've opened the stream in relaxed mode and need to decode + the first frame. + */ + if (!init.hasStreamInfoBlock) { + pFlac->currentFLACFrame.header = init.firstFrameHeader; + for (;;) { + drflac_result result = drflac__decode_flac_frame(pFlac); + if (result == DRFLAC_SUCCESS) { + break; + } else { + if (result == DRFLAC_CRC_MISMATCH) { + if (!drflac__read_next_flac_frame_header(&pFlac->bs, pFlac->bitsPerSample, &pFlac->currentFLACFrame.header)) { + drflac__free_from_callbacks(pFlac, &allocationCallbacks); + return NULL; + } + continue; + } else { + drflac__free_from_callbacks(pFlac, &allocationCallbacks); + return NULL; + } + } + } + } + + return pFlac; +} + + + +#ifndef DR_FLAC_NO_STDIO +#include +#ifndef DR_FLAC_NO_WCHAR +#include /* For wcslen(), wcsrtombs() */ +#endif + +/* Errno */ +/* drflac_result_from_errno() is only used for fopen() and wfopen() so putting it inside DR_WAV_NO_STDIO for now. If something else needs this later we can move it out. */ +#include +static drflac_result drflac_result_from_errno(int e) +{ + switch (e) + { + case 0: return DRFLAC_SUCCESS; + #ifdef EPERM + case EPERM: return DRFLAC_INVALID_OPERATION; + #endif + #ifdef ENOENT + case ENOENT: return DRFLAC_DOES_NOT_EXIST; + #endif + #ifdef ESRCH + case ESRCH: return DRFLAC_DOES_NOT_EXIST; + #endif + #ifdef EINTR + case EINTR: return DRFLAC_INTERRUPT; + #endif + #ifdef EIO + case EIO: return DRFLAC_IO_ERROR; + #endif + #ifdef ENXIO + case ENXIO: return DRFLAC_DOES_NOT_EXIST; + #endif + #ifdef E2BIG + case E2BIG: return DRFLAC_INVALID_ARGS; + #endif + #ifdef ENOEXEC + case ENOEXEC: return DRFLAC_INVALID_FILE; + #endif + #ifdef EBADF + case EBADF: return DRFLAC_INVALID_FILE; + #endif + #ifdef ECHILD + case ECHILD: return DRFLAC_ERROR; + #endif + #ifdef EAGAIN + case EAGAIN: return DRFLAC_UNAVAILABLE; + #endif + #ifdef ENOMEM + case ENOMEM: return DRFLAC_OUT_OF_MEMORY; + #endif + #ifdef EACCES + case EACCES: return DRFLAC_ACCESS_DENIED; + #endif + #ifdef EFAULT + case EFAULT: return DRFLAC_BAD_ADDRESS; + #endif + #ifdef ENOTBLK + case ENOTBLK: return DRFLAC_ERROR; + #endif + #ifdef EBUSY + case EBUSY: return DRFLAC_BUSY; + #endif + #ifdef EEXIST + case EEXIST: return DRFLAC_ALREADY_EXISTS; + #endif + #ifdef EXDEV + case EXDEV: return DRFLAC_ERROR; + #endif + #ifdef ENODEV + case ENODEV: return DRFLAC_DOES_NOT_EXIST; + #endif + #ifdef ENOTDIR + case ENOTDIR: return DRFLAC_NOT_DIRECTORY; + #endif + #ifdef EISDIR + case EISDIR: return DRFLAC_IS_DIRECTORY; + #endif + #ifdef EINVAL + case EINVAL: return DRFLAC_INVALID_ARGS; + #endif + #ifdef ENFILE + case ENFILE: return DRFLAC_TOO_MANY_OPEN_FILES; + #endif + #ifdef EMFILE + case EMFILE: return DRFLAC_TOO_MANY_OPEN_FILES; + #endif + #ifdef ENOTTY + case ENOTTY: return DRFLAC_INVALID_OPERATION; + #endif + #ifdef ETXTBSY + case ETXTBSY: return DRFLAC_BUSY; + #endif + #ifdef EFBIG + case EFBIG: return DRFLAC_TOO_BIG; + #endif + #ifdef ENOSPC + case ENOSPC: return DRFLAC_NO_SPACE; + #endif + #ifdef ESPIPE + case ESPIPE: return DRFLAC_BAD_SEEK; + #endif + #ifdef EROFS + case EROFS: return DRFLAC_ACCESS_DENIED; + #endif + #ifdef EMLINK + case EMLINK: return DRFLAC_TOO_MANY_LINKS; + #endif + #ifdef EPIPE + case EPIPE: return DRFLAC_BAD_PIPE; + #endif + #ifdef EDOM + case EDOM: return DRFLAC_OUT_OF_RANGE; + #endif + #ifdef ERANGE + case ERANGE: return DRFLAC_OUT_OF_RANGE; + #endif + #ifdef EDEADLK + case EDEADLK: return DRFLAC_DEADLOCK; + #endif + #ifdef ENAMETOOLONG + case ENAMETOOLONG: return DRFLAC_PATH_TOO_LONG; + #endif + #ifdef ENOLCK + case ENOLCK: return DRFLAC_ERROR; + #endif + #ifdef ENOSYS + case ENOSYS: return DRFLAC_NOT_IMPLEMENTED; + #endif + #ifdef ENOTEMPTY + case ENOTEMPTY: return DRFLAC_DIRECTORY_NOT_EMPTY; + #endif + #ifdef ELOOP + case ELOOP: return DRFLAC_TOO_MANY_LINKS; + #endif + #ifdef ENOMSG + case ENOMSG: return DRFLAC_NO_MESSAGE; + #endif + #ifdef EIDRM + case EIDRM: return DRFLAC_ERROR; + #endif + #ifdef ECHRNG + case ECHRNG: return DRFLAC_ERROR; + #endif + #ifdef EL2NSYNC + case EL2NSYNC: return DRFLAC_ERROR; + #endif + #ifdef EL3HLT + case EL3HLT: return DRFLAC_ERROR; + #endif + #ifdef EL3RST + case EL3RST: return DRFLAC_ERROR; + #endif + #ifdef ELNRNG + case ELNRNG: return DRFLAC_OUT_OF_RANGE; + #endif + #ifdef EUNATCH + case EUNATCH: return DRFLAC_ERROR; + #endif + #ifdef ENOCSI + case ENOCSI: return DRFLAC_ERROR; + #endif + #ifdef EL2HLT + case EL2HLT: return DRFLAC_ERROR; + #endif + #ifdef EBADE + case EBADE: return DRFLAC_ERROR; + #endif + #ifdef EBADR + case EBADR: return DRFLAC_ERROR; + #endif + #ifdef EXFULL + case EXFULL: return DRFLAC_ERROR; + #endif + #ifdef ENOANO + case ENOANO: return DRFLAC_ERROR; + #endif + #ifdef EBADRQC + case EBADRQC: return DRFLAC_ERROR; + #endif + #ifdef EBADSLT + case EBADSLT: return DRFLAC_ERROR; + #endif + #ifdef EBFONT + case EBFONT: return DRFLAC_INVALID_FILE; + #endif + #ifdef ENOSTR + case ENOSTR: return DRFLAC_ERROR; + #endif + #ifdef ENODATA + case ENODATA: return DRFLAC_NO_DATA_AVAILABLE; + #endif + #ifdef ETIME + case ETIME: return DRFLAC_TIMEOUT; + #endif + #ifdef ENOSR + case ENOSR: return DRFLAC_NO_DATA_AVAILABLE; + #endif + #ifdef ENONET + case ENONET: return DRFLAC_NO_NETWORK; + #endif + #ifdef ENOPKG + case ENOPKG: return DRFLAC_ERROR; + #endif + #ifdef EREMOTE + case EREMOTE: return DRFLAC_ERROR; + #endif + #ifdef ENOLINK + case ENOLINK: return DRFLAC_ERROR; + #endif + #ifdef EADV + case EADV: return DRFLAC_ERROR; + #endif + #ifdef ESRMNT + case ESRMNT: return DRFLAC_ERROR; + #endif + #ifdef ECOMM + case ECOMM: return DRFLAC_ERROR; + #endif + #ifdef EPROTO + case EPROTO: return DRFLAC_ERROR; + #endif + #ifdef EMULTIHOP + case EMULTIHOP: return DRFLAC_ERROR; + #endif + #ifdef EDOTDOT + case EDOTDOT: return DRFLAC_ERROR; + #endif + #ifdef EBADMSG + case EBADMSG: return DRFLAC_BAD_MESSAGE; + #endif + #ifdef EOVERFLOW + case EOVERFLOW: return DRFLAC_TOO_BIG; + #endif + #ifdef ENOTUNIQ + case ENOTUNIQ: return DRFLAC_NOT_UNIQUE; + #endif + #ifdef EBADFD + case EBADFD: return DRFLAC_ERROR; + #endif + #ifdef EREMCHG + case EREMCHG: return DRFLAC_ERROR; + #endif + #ifdef ELIBACC + case ELIBACC: return DRFLAC_ACCESS_DENIED; + #endif + #ifdef ELIBBAD + case ELIBBAD: return DRFLAC_INVALID_FILE; + #endif + #ifdef ELIBSCN + case ELIBSCN: return DRFLAC_INVALID_FILE; + #endif + #ifdef ELIBMAX + case ELIBMAX: return DRFLAC_ERROR; + #endif + #ifdef ELIBEXEC + case ELIBEXEC: return DRFLAC_ERROR; + #endif + #ifdef EILSEQ + case EILSEQ: return DRFLAC_INVALID_DATA; + #endif + #ifdef ERESTART + case ERESTART: return DRFLAC_ERROR; + #endif + #ifdef ESTRPIPE + case ESTRPIPE: return DRFLAC_ERROR; + #endif + #ifdef EUSERS + case EUSERS: return DRFLAC_ERROR; + #endif + #ifdef ENOTSOCK + case ENOTSOCK: return DRFLAC_NOT_SOCKET; + #endif + #ifdef EDESTADDRREQ + case EDESTADDRREQ: return DRFLAC_NO_ADDRESS; + #endif + #ifdef EMSGSIZE + case EMSGSIZE: return DRFLAC_TOO_BIG; + #endif + #ifdef EPROTOTYPE + case EPROTOTYPE: return DRFLAC_BAD_PROTOCOL; + #endif + #ifdef ENOPROTOOPT + case ENOPROTOOPT: return DRFLAC_PROTOCOL_UNAVAILABLE; + #endif + #ifdef EPROTONOSUPPORT + case EPROTONOSUPPORT: return DRFLAC_PROTOCOL_NOT_SUPPORTED; + #endif + #ifdef ESOCKTNOSUPPORT + case ESOCKTNOSUPPORT: return DRFLAC_SOCKET_NOT_SUPPORTED; + #endif + #ifdef EOPNOTSUPP + case EOPNOTSUPP: return DRFLAC_INVALID_OPERATION; + #endif + #ifdef EPFNOSUPPORT + case EPFNOSUPPORT: return DRFLAC_PROTOCOL_FAMILY_NOT_SUPPORTED; + #endif + #ifdef EAFNOSUPPORT + case EAFNOSUPPORT: return DRFLAC_ADDRESS_FAMILY_NOT_SUPPORTED; + #endif + #ifdef EADDRINUSE + case EADDRINUSE: return DRFLAC_ALREADY_IN_USE; + #endif + #ifdef EADDRNOTAVAIL + case EADDRNOTAVAIL: return DRFLAC_ERROR; + #endif + #ifdef ENETDOWN + case ENETDOWN: return DRFLAC_NO_NETWORK; + #endif + #ifdef ENETUNREACH + case ENETUNREACH: return DRFLAC_NO_NETWORK; + #endif + #ifdef ENETRESET + case ENETRESET: return DRFLAC_NO_NETWORK; + #endif + #ifdef ECONNABORTED + case ECONNABORTED: return DRFLAC_NO_NETWORK; + #endif + #ifdef ECONNRESET + case ECONNRESET: return DRFLAC_CONNECTION_RESET; + #endif + #ifdef ENOBUFS + case ENOBUFS: return DRFLAC_NO_SPACE; + #endif + #ifdef EISCONN + case EISCONN: return DRFLAC_ALREADY_CONNECTED; + #endif + #ifdef ENOTCONN + case ENOTCONN: return DRFLAC_NOT_CONNECTED; + #endif + #ifdef ESHUTDOWN + case ESHUTDOWN: return DRFLAC_ERROR; + #endif + #ifdef ETOOMANYREFS + case ETOOMANYREFS: return DRFLAC_ERROR; + #endif + #ifdef ETIMEDOUT + case ETIMEDOUT: return DRFLAC_TIMEOUT; + #endif + #ifdef ECONNREFUSED + case ECONNREFUSED: return DRFLAC_CONNECTION_REFUSED; + #endif + #ifdef EHOSTDOWN + case EHOSTDOWN: return DRFLAC_NO_HOST; + #endif + #ifdef EHOSTUNREACH + case EHOSTUNREACH: return DRFLAC_NO_HOST; + #endif + #ifdef EALREADY + case EALREADY: return DRFLAC_IN_PROGRESS; + #endif + #ifdef EINPROGRESS + case EINPROGRESS: return DRFLAC_IN_PROGRESS; + #endif + #ifdef ESTALE + case ESTALE: return DRFLAC_INVALID_FILE; + #endif + #ifdef EUCLEAN + case EUCLEAN: return DRFLAC_ERROR; + #endif + #ifdef ENOTNAM + case ENOTNAM: return DRFLAC_ERROR; + #endif + #ifdef ENAVAIL + case ENAVAIL: return DRFLAC_ERROR; + #endif + #ifdef EISNAM + case EISNAM: return DRFLAC_ERROR; + #endif + #ifdef EREMOTEIO + case EREMOTEIO: return DRFLAC_IO_ERROR; + #endif + #ifdef EDQUOT + case EDQUOT: return DRFLAC_NO_SPACE; + #endif + #ifdef ENOMEDIUM + case ENOMEDIUM: return DRFLAC_DOES_NOT_EXIST; + #endif + #ifdef EMEDIUMTYPE + case EMEDIUMTYPE: return DRFLAC_ERROR; + #endif + #ifdef ECANCELED + case ECANCELED: return DRFLAC_CANCELLED; + #endif + #ifdef ENOKEY + case ENOKEY: return DRFLAC_ERROR; + #endif + #ifdef EKEYEXPIRED + case EKEYEXPIRED: return DRFLAC_ERROR; + #endif + #ifdef EKEYREVOKED + case EKEYREVOKED: return DRFLAC_ERROR; + #endif + #ifdef EKEYREJECTED + case EKEYREJECTED: return DRFLAC_ERROR; + #endif + #ifdef EOWNERDEAD + case EOWNERDEAD: return DRFLAC_ERROR; + #endif + #ifdef ENOTRECOVERABLE + case ENOTRECOVERABLE: return DRFLAC_ERROR; + #endif + #ifdef ERFKILL + case ERFKILL: return DRFLAC_ERROR; + #endif + #ifdef EHWPOISON + case EHWPOISON: return DRFLAC_ERROR; + #endif + default: return DRFLAC_ERROR; + } +} +/* End Errno */ + +/* fopen */ +static drflac_result drflac_fopen(FILE** ppFile, const char* pFilePath, const char* pOpenMode) +{ +#if defined(_MSC_VER) && _MSC_VER >= 1400 + errno_t err; +#endif + + if (ppFile != NULL) { + *ppFile = NULL; /* Safety. */ + } + + if (pFilePath == NULL || pOpenMode == NULL || ppFile == NULL) { + return DRFLAC_INVALID_ARGS; + } + +#if defined(_MSC_VER) && _MSC_VER >= 1400 + err = fopen_s(ppFile, pFilePath, pOpenMode); + if (err != 0) { + return drflac_result_from_errno(err); + } +#else +#if defined(_WIN32) || defined(__APPLE__) + *ppFile = fopen(pFilePath, pOpenMode); +#else + #if defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64 && defined(_LARGEFILE64_SOURCE) + *ppFile = fopen64(pFilePath, pOpenMode); + #else + *ppFile = fopen(pFilePath, pOpenMode); + #endif +#endif + if (*ppFile == NULL) { + drflac_result result = drflac_result_from_errno(errno); + if (result == DRFLAC_SUCCESS) { + result = DRFLAC_ERROR; /* Just a safety check to make sure we never ever return success when pFile == NULL. */ + } + + return result; + } +#endif + + return DRFLAC_SUCCESS; +} + +/* +_wfopen() isn't always available in all compilation environments. + + * Windows only. + * MSVC seems to support it universally as far back as VC6 from what I can tell (haven't checked further back). + * MinGW-64 (both 32- and 64-bit) seems to support it. + * MinGW wraps it in !defined(__STRICT_ANSI__). + * OpenWatcom wraps it in !defined(_NO_EXT_KEYS). + +This can be reviewed as compatibility issues arise. The preference is to use _wfopen_s() and _wfopen() as opposed to the wcsrtombs() +fallback, so if you notice your compiler not detecting this properly I'm happy to look at adding support. +*/ +#if defined(_WIN32) + #if defined(_MSC_VER) || defined(__MINGW64__) || (!defined(__STRICT_ANSI__) && !defined(_NO_EXT_KEYS)) + #define DRFLAC_HAS_WFOPEN + #endif +#endif + +#ifndef DR_FLAC_NO_WCHAR +static drflac_result drflac_wfopen(FILE** ppFile, const wchar_t* pFilePath, const wchar_t* pOpenMode, const drflac_allocation_callbacks* pAllocationCallbacks) +{ + if (ppFile != NULL) { + *ppFile = NULL; /* Safety. */ + } + + if (pFilePath == NULL || pOpenMode == NULL || ppFile == NULL) { + return DRFLAC_INVALID_ARGS; + } + +#if defined(DRFLAC_HAS_WFOPEN) + { + /* Use _wfopen() on Windows. */ + #if defined(_MSC_VER) && _MSC_VER >= 1400 + errno_t err = _wfopen_s(ppFile, pFilePath, pOpenMode); + if (err != 0) { + return drflac_result_from_errno(err); + } + #else + *ppFile = _wfopen(pFilePath, pOpenMode); + if (*ppFile == NULL) { + return drflac_result_from_errno(errno); + } + #endif + (void)pAllocationCallbacks; + } +#else + /* + Use fopen() on anything other than Windows. Requires a conversion. This is annoying because + fopen() is locale specific. The only real way I can think of to do this is with wcsrtombs(). Note + that wcstombs() is apparently not thread-safe because it uses a static global mbstate_t object for + maintaining state. I've checked this with -std=c89 and it works, but if somebody get's a compiler + error I'll look into improving compatibility. + */ + + /* + Some compilers don't support wchar_t or wcsrtombs() which we're using below. In this case we just + need to abort with an error. If you encounter a compiler lacking such support, add it to this list + and submit a bug report and it'll be added to the library upstream. + */ + #if defined(__DJGPP__) + { + /* Nothing to do here. This will fall through to the error check below. */ + } + #else + { + mbstate_t mbs; + size_t lenMB; + const wchar_t* pFilePathTemp = pFilePath; + char* pFilePathMB = NULL; + char pOpenModeMB[32] = {0}; + + /* Get the length first. */ + DRFLAC_ZERO_OBJECT(&mbs); + lenMB = wcsrtombs(NULL, &pFilePathTemp, 0, &mbs); + if (lenMB == (size_t)-1) { + return drflac_result_from_errno(errno); + } + + pFilePathMB = (char*)drflac__malloc_from_callbacks(lenMB + 1, pAllocationCallbacks); + if (pFilePathMB == NULL) { + return DRFLAC_OUT_OF_MEMORY; + } + + pFilePathTemp = pFilePath; + DRFLAC_ZERO_OBJECT(&mbs); + wcsrtombs(pFilePathMB, &pFilePathTemp, lenMB + 1, &mbs); + + /* The open mode should always consist of ASCII characters so we should be able to do a trivial conversion. */ + { + size_t i = 0; + for (;;) { + if (pOpenMode[i] == 0) { + pOpenModeMB[i] = '\0'; + break; + } + + pOpenModeMB[i] = (char)pOpenMode[i]; + i += 1; + } + } + + *ppFile = fopen(pFilePathMB, pOpenModeMB); + + drflac__free_from_callbacks(pFilePathMB, pAllocationCallbacks); + } + #endif + + if (*ppFile == NULL) { + return DRFLAC_ERROR; + } +#endif + + return DRFLAC_SUCCESS; +} +#endif +/* End fopen */ + +static size_t drflac__on_read_stdio(void* pUserData, void* bufferOut, size_t bytesToRead) +{ + return fread(bufferOut, 1, bytesToRead, (FILE*)pUserData); +} + +static drflac_bool32 drflac__on_seek_stdio(void* pUserData, int offset, drflac_seek_origin origin) +{ + DRFLAC_ASSERT(offset >= 0); /* <-- Never seek backwards. */ + + return fseek((FILE*)pUserData, offset, (origin == drflac_seek_origin_current) ? SEEK_CUR : SEEK_SET) == 0; +} + + +DRFLAC_API drflac* drflac_open_file(const char* pFileName, const drflac_allocation_callbacks* pAllocationCallbacks) +{ + drflac* pFlac; + FILE* pFile; + + if (drflac_fopen(&pFile, pFileName, "rb") != DRFLAC_SUCCESS) { + return NULL; + } + + pFlac = drflac_open(drflac__on_read_stdio, drflac__on_seek_stdio, (void*)pFile, pAllocationCallbacks); + if (pFlac == NULL) { + fclose(pFile); + return NULL; + } + + return pFlac; +} + +#ifndef DR_FLAC_NO_WCHAR +DRFLAC_API drflac* drflac_open_file_w(const wchar_t* pFileName, const drflac_allocation_callbacks* pAllocationCallbacks) +{ + drflac* pFlac; + FILE* pFile; + + if (drflac_wfopen(&pFile, pFileName, L"rb", pAllocationCallbacks) != DRFLAC_SUCCESS) { + return NULL; + } + + pFlac = drflac_open(drflac__on_read_stdio, drflac__on_seek_stdio, (void*)pFile, pAllocationCallbacks); + if (pFlac == NULL) { + fclose(pFile); + return NULL; + } + + return pFlac; +} +#endif + +DRFLAC_API drflac* drflac_open_file_with_metadata(const char* pFileName, drflac_meta_proc onMeta, void* pUserData, const drflac_allocation_callbacks* pAllocationCallbacks) +{ + drflac* pFlac; + FILE* pFile; + + if (drflac_fopen(&pFile, pFileName, "rb") != DRFLAC_SUCCESS) { + return NULL; + } + + pFlac = drflac_open_with_metadata_private(drflac__on_read_stdio, drflac__on_seek_stdio, onMeta, drflac_container_unknown, (void*)pFile, pUserData, pAllocationCallbacks); + if (pFlac == NULL) { + fclose(pFile); + return pFlac; + } + + return pFlac; +} + +#ifndef DR_FLAC_NO_WCHAR +DRFLAC_API drflac* drflac_open_file_with_metadata_w(const wchar_t* pFileName, drflac_meta_proc onMeta, void* pUserData, const drflac_allocation_callbacks* pAllocationCallbacks) +{ + drflac* pFlac; + FILE* pFile; + + if (drflac_wfopen(&pFile, pFileName, L"rb", pAllocationCallbacks) != DRFLAC_SUCCESS) { + return NULL; + } + + pFlac = drflac_open_with_metadata_private(drflac__on_read_stdio, drflac__on_seek_stdio, onMeta, drflac_container_unknown, (void*)pFile, pUserData, pAllocationCallbacks); + if (pFlac == NULL) { + fclose(pFile); + return pFlac; + } + + return pFlac; +} +#endif +#endif /* DR_FLAC_NO_STDIO */ + +static size_t drflac__on_read_memory(void* pUserData, void* bufferOut, size_t bytesToRead) +{ + drflac__memory_stream* memoryStream = (drflac__memory_stream*)pUserData; + size_t bytesRemaining; + + DRFLAC_ASSERT(memoryStream != NULL); + DRFLAC_ASSERT(memoryStream->dataSize >= memoryStream->currentReadPos); + + bytesRemaining = memoryStream->dataSize - memoryStream->currentReadPos; + if (bytesToRead > bytesRemaining) { + bytesToRead = bytesRemaining; + } + + if (bytesToRead > 0) { + DRFLAC_COPY_MEMORY(bufferOut, memoryStream->data + memoryStream->currentReadPos, bytesToRead); + memoryStream->currentReadPos += bytesToRead; + } + + return bytesToRead; +} + +static drflac_bool32 drflac__on_seek_memory(void* pUserData, int offset, drflac_seek_origin origin) +{ + drflac__memory_stream* memoryStream = (drflac__memory_stream*)pUserData; + + DRFLAC_ASSERT(memoryStream != NULL); + DRFLAC_ASSERT(offset >= 0); /* <-- Never seek backwards. */ + + if (offset > (drflac_int64)memoryStream->dataSize) { + return DRFLAC_FALSE; + } + + if (origin == drflac_seek_origin_current) { + if (memoryStream->currentReadPos + offset <= memoryStream->dataSize) { + memoryStream->currentReadPos += offset; + } else { + return DRFLAC_FALSE; /* Trying to seek too far forward. */ + } + } else { + if ((drflac_uint32)offset <= memoryStream->dataSize) { + memoryStream->currentReadPos = offset; + } else { + return DRFLAC_FALSE; /* Trying to seek too far forward. */ + } + } + + return DRFLAC_TRUE; +} + +DRFLAC_API drflac* drflac_open_memory(const void* pData, size_t dataSize, const drflac_allocation_callbacks* pAllocationCallbacks) +{ + drflac__memory_stream memoryStream; + drflac* pFlac; + + memoryStream.data = (const drflac_uint8*)pData; + memoryStream.dataSize = dataSize; + memoryStream.currentReadPos = 0; + pFlac = drflac_open(drflac__on_read_memory, drflac__on_seek_memory, &memoryStream, pAllocationCallbacks); + if (pFlac == NULL) { + return NULL; + } + + pFlac->memoryStream = memoryStream; + + /* This is an awful hack... */ +#ifndef DR_FLAC_NO_OGG + if (pFlac->container == drflac_container_ogg) + { + drflac_oggbs* oggbs = (drflac_oggbs*)pFlac->_oggbs; + oggbs->pUserData = &pFlac->memoryStream; + } + else +#endif + { + pFlac->bs.pUserData = &pFlac->memoryStream; + } + + return pFlac; +} + +DRFLAC_API drflac* drflac_open_memory_with_metadata(const void* pData, size_t dataSize, drflac_meta_proc onMeta, void* pUserData, const drflac_allocation_callbacks* pAllocationCallbacks) +{ + drflac__memory_stream memoryStream; + drflac* pFlac; + + memoryStream.data = (const drflac_uint8*)pData; + memoryStream.dataSize = dataSize; + memoryStream.currentReadPos = 0; + pFlac = drflac_open_with_metadata_private(drflac__on_read_memory, drflac__on_seek_memory, onMeta, drflac_container_unknown, &memoryStream, pUserData, pAllocationCallbacks); + if (pFlac == NULL) { + return NULL; + } + + pFlac->memoryStream = memoryStream; + + /* This is an awful hack... */ +#ifndef DR_FLAC_NO_OGG + if (pFlac->container == drflac_container_ogg) + { + drflac_oggbs* oggbs = (drflac_oggbs*)pFlac->_oggbs; + oggbs->pUserData = &pFlac->memoryStream; + } + else +#endif + { + pFlac->bs.pUserData = &pFlac->memoryStream; + } + + return pFlac; +} + + + +DRFLAC_API drflac* drflac_open(drflac_read_proc onRead, drflac_seek_proc onSeek, void* pUserData, const drflac_allocation_callbacks* pAllocationCallbacks) +{ + return drflac_open_with_metadata_private(onRead, onSeek, NULL, drflac_container_unknown, pUserData, pUserData, pAllocationCallbacks); +} +DRFLAC_API drflac* drflac_open_relaxed(drflac_read_proc onRead, drflac_seek_proc onSeek, drflac_container container, void* pUserData, const drflac_allocation_callbacks* pAllocationCallbacks) +{ + return drflac_open_with_metadata_private(onRead, onSeek, NULL, container, pUserData, pUserData, pAllocationCallbacks); +} + +DRFLAC_API drflac* drflac_open_with_metadata(drflac_read_proc onRead, drflac_seek_proc onSeek, drflac_meta_proc onMeta, void* pUserData, const drflac_allocation_callbacks* pAllocationCallbacks) +{ + return drflac_open_with_metadata_private(onRead, onSeek, onMeta, drflac_container_unknown, pUserData, pUserData, pAllocationCallbacks); +} +DRFLAC_API drflac* drflac_open_with_metadata_relaxed(drflac_read_proc onRead, drflac_seek_proc onSeek, drflac_meta_proc onMeta, drflac_container container, void* pUserData, const drflac_allocation_callbacks* pAllocationCallbacks) +{ + return drflac_open_with_metadata_private(onRead, onSeek, onMeta, container, pUserData, pUserData, pAllocationCallbacks); +} + +DRFLAC_API void drflac_close(drflac* pFlac) +{ + if (pFlac == NULL) { + return; + } + +#ifndef DR_FLAC_NO_STDIO + /* + If we opened the file with drflac_open_file() we will want to close the file handle. We can know whether or not drflac_open_file() + was used by looking at the callbacks. + */ + if (pFlac->bs.onRead == drflac__on_read_stdio) { + fclose((FILE*)pFlac->bs.pUserData); + } + +#ifndef DR_FLAC_NO_OGG + /* Need to clean up Ogg streams a bit differently due to the way the bit streaming is chained. */ + if (pFlac->container == drflac_container_ogg) { + drflac_oggbs* oggbs = (drflac_oggbs*)pFlac->_oggbs; + DRFLAC_ASSERT(pFlac->bs.onRead == drflac__on_read_ogg); + + if (oggbs->onRead == drflac__on_read_stdio) { + fclose((FILE*)oggbs->pUserData); + } + } +#endif +#endif + + drflac__free_from_callbacks(pFlac, &pFlac->allocationCallbacks); +} + + +#if 0 +static DRFLAC_INLINE void drflac_read_pcm_frames_s32__decode_left_side__reference(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int32* pOutputSamples) +{ + drflac_uint64 i; + for (i = 0; i < frameCount; ++i) { + drflac_uint32 left = (drflac_uint32)pInputSamples0[i] << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample); + drflac_uint32 side = (drflac_uint32)pInputSamples1[i] << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample); + drflac_uint32 right = left - side; + + pOutputSamples[i*2+0] = (drflac_int32)left; + pOutputSamples[i*2+1] = (drflac_int32)right; + } +} +#endif + +static DRFLAC_INLINE void drflac_read_pcm_frames_s32__decode_left_side__scalar(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int32* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + + for (i = 0; i < frameCount4; ++i) { + drflac_uint32 left0 = pInputSamples0U32[i*4+0] << shift0; + drflac_uint32 left1 = pInputSamples0U32[i*4+1] << shift0; + drflac_uint32 left2 = pInputSamples0U32[i*4+2] << shift0; + drflac_uint32 left3 = pInputSamples0U32[i*4+3] << shift0; + + drflac_uint32 side0 = pInputSamples1U32[i*4+0] << shift1; + drflac_uint32 side1 = pInputSamples1U32[i*4+1] << shift1; + drflac_uint32 side2 = pInputSamples1U32[i*4+2] << shift1; + drflac_uint32 side3 = pInputSamples1U32[i*4+3] << shift1; + + drflac_uint32 right0 = left0 - side0; + drflac_uint32 right1 = left1 - side1; + drflac_uint32 right2 = left2 - side2; + drflac_uint32 right3 = left3 - side3; + + pOutputSamples[i*8+0] = (drflac_int32)left0; + pOutputSamples[i*8+1] = (drflac_int32)right0; + pOutputSamples[i*8+2] = (drflac_int32)left1; + pOutputSamples[i*8+3] = (drflac_int32)right1; + pOutputSamples[i*8+4] = (drflac_int32)left2; + pOutputSamples[i*8+5] = (drflac_int32)right2; + pOutputSamples[i*8+6] = (drflac_int32)left3; + pOutputSamples[i*8+7] = (drflac_int32)right3; + } + + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 left = pInputSamples0U32[i] << shift0; + drflac_uint32 side = pInputSamples1U32[i] << shift1; + drflac_uint32 right = left - side; + + pOutputSamples[i*2+0] = (drflac_int32)left; + pOutputSamples[i*2+1] = (drflac_int32)right; + } +} + +#if defined(DRFLAC_SUPPORT_SSE2) +static DRFLAC_INLINE void drflac_read_pcm_frames_s32__decode_left_side__sse2(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int32* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + + DRFLAC_ASSERT(pFlac->bitsPerSample <= 24); + + for (i = 0; i < frameCount4; ++i) { + __m128i left = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples0 + i), shift0); + __m128i side = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples1 + i), shift1); + __m128i right = _mm_sub_epi32(left, side); + + _mm_storeu_si128((__m128i*)(pOutputSamples + i*8 + 0), _mm_unpacklo_epi32(left, right)); + _mm_storeu_si128((__m128i*)(pOutputSamples + i*8 + 4), _mm_unpackhi_epi32(left, right)); + } + + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 left = pInputSamples0U32[i] << shift0; + drflac_uint32 side = pInputSamples1U32[i] << shift1; + drflac_uint32 right = left - side; + + pOutputSamples[i*2+0] = (drflac_int32)left; + pOutputSamples[i*2+1] = (drflac_int32)right; + } +} +#endif + +#if defined(DRFLAC_SUPPORT_NEON) +static DRFLAC_INLINE void drflac_read_pcm_frames_s32__decode_left_side__neon(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int32* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + int32x4_t shift0_4; + int32x4_t shift1_4; + + DRFLAC_ASSERT(pFlac->bitsPerSample <= 24); + + shift0_4 = vdupq_n_s32(shift0); + shift1_4 = vdupq_n_s32(shift1); + + for (i = 0; i < frameCount4; ++i) { + uint32x4_t left; + uint32x4_t side; + uint32x4_t right; + + left = vshlq_u32(vld1q_u32(pInputSamples0U32 + i*4), shift0_4); + side = vshlq_u32(vld1q_u32(pInputSamples1U32 + i*4), shift1_4); + right = vsubq_u32(left, side); + + drflac__vst2q_u32((drflac_uint32*)pOutputSamples + i*8, vzipq_u32(left, right)); + } + + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 left = pInputSamples0U32[i] << shift0; + drflac_uint32 side = pInputSamples1U32[i] << shift1; + drflac_uint32 right = left - side; + + pOutputSamples[i*2+0] = (drflac_int32)left; + pOutputSamples[i*2+1] = (drflac_int32)right; + } +} +#endif + +static DRFLAC_INLINE void drflac_read_pcm_frames_s32__decode_left_side(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int32* pOutputSamples) +{ +#if defined(DRFLAC_SUPPORT_SSE2) + if (drflac__gIsSSE2Supported && pFlac->bitsPerSample <= 24) { + drflac_read_pcm_frames_s32__decode_left_side__sse2(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + } else +#elif defined(DRFLAC_SUPPORT_NEON) + if (drflac__gIsNEONSupported && pFlac->bitsPerSample <= 24) { + drflac_read_pcm_frames_s32__decode_left_side__neon(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + } else +#endif + { + /* Scalar fallback. */ +#if 0 + drflac_read_pcm_frames_s32__decode_left_side__reference(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#else + drflac_read_pcm_frames_s32__decode_left_side__scalar(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#endif + } +} + + +#if 0 +static DRFLAC_INLINE void drflac_read_pcm_frames_s32__decode_right_side__reference(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int32* pOutputSamples) +{ + drflac_uint64 i; + for (i = 0; i < frameCount; ++i) { + drflac_uint32 side = (drflac_uint32)pInputSamples0[i] << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample); + drflac_uint32 right = (drflac_uint32)pInputSamples1[i] << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample); + drflac_uint32 left = right + side; + + pOutputSamples[i*2+0] = (drflac_int32)left; + pOutputSamples[i*2+1] = (drflac_int32)right; + } +} +#endif + +static DRFLAC_INLINE void drflac_read_pcm_frames_s32__decode_right_side__scalar(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int32* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + + for (i = 0; i < frameCount4; ++i) { + drflac_uint32 side0 = pInputSamples0U32[i*4+0] << shift0; + drflac_uint32 side1 = pInputSamples0U32[i*4+1] << shift0; + drflac_uint32 side2 = pInputSamples0U32[i*4+2] << shift0; + drflac_uint32 side3 = pInputSamples0U32[i*4+3] << shift0; + + drflac_uint32 right0 = pInputSamples1U32[i*4+0] << shift1; + drflac_uint32 right1 = pInputSamples1U32[i*4+1] << shift1; + drflac_uint32 right2 = pInputSamples1U32[i*4+2] << shift1; + drflac_uint32 right3 = pInputSamples1U32[i*4+3] << shift1; + + drflac_uint32 left0 = right0 + side0; + drflac_uint32 left1 = right1 + side1; + drflac_uint32 left2 = right2 + side2; + drflac_uint32 left3 = right3 + side3; + + pOutputSamples[i*8+0] = (drflac_int32)left0; + pOutputSamples[i*8+1] = (drflac_int32)right0; + pOutputSamples[i*8+2] = (drflac_int32)left1; + pOutputSamples[i*8+3] = (drflac_int32)right1; + pOutputSamples[i*8+4] = (drflac_int32)left2; + pOutputSamples[i*8+5] = (drflac_int32)right2; + pOutputSamples[i*8+6] = (drflac_int32)left3; + pOutputSamples[i*8+7] = (drflac_int32)right3; + } + + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 side = pInputSamples0U32[i] << shift0; + drflac_uint32 right = pInputSamples1U32[i] << shift1; + drflac_uint32 left = right + side; + + pOutputSamples[i*2+0] = (drflac_int32)left; + pOutputSamples[i*2+1] = (drflac_int32)right; + } +} + +#if defined(DRFLAC_SUPPORT_SSE2) +static DRFLAC_INLINE void drflac_read_pcm_frames_s32__decode_right_side__sse2(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int32* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + + DRFLAC_ASSERT(pFlac->bitsPerSample <= 24); + + for (i = 0; i < frameCount4; ++i) { + __m128i side = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples0 + i), shift0); + __m128i right = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples1 + i), shift1); + __m128i left = _mm_add_epi32(right, side); + + _mm_storeu_si128((__m128i*)(pOutputSamples + i*8 + 0), _mm_unpacklo_epi32(left, right)); + _mm_storeu_si128((__m128i*)(pOutputSamples + i*8 + 4), _mm_unpackhi_epi32(left, right)); + } + + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 side = pInputSamples0U32[i] << shift0; + drflac_uint32 right = pInputSamples1U32[i] << shift1; + drflac_uint32 left = right + side; + + pOutputSamples[i*2+0] = (drflac_int32)left; + pOutputSamples[i*2+1] = (drflac_int32)right; + } +} +#endif + +#if defined(DRFLAC_SUPPORT_NEON) +static DRFLAC_INLINE void drflac_read_pcm_frames_s32__decode_right_side__neon(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int32* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + int32x4_t shift0_4; + int32x4_t shift1_4; + + DRFLAC_ASSERT(pFlac->bitsPerSample <= 24); + + shift0_4 = vdupq_n_s32(shift0); + shift1_4 = vdupq_n_s32(shift1); + + for (i = 0; i < frameCount4; ++i) { + uint32x4_t side; + uint32x4_t right; + uint32x4_t left; + + side = vshlq_u32(vld1q_u32(pInputSamples0U32 + i*4), shift0_4); + right = vshlq_u32(vld1q_u32(pInputSamples1U32 + i*4), shift1_4); + left = vaddq_u32(right, side); + + drflac__vst2q_u32((drflac_uint32*)pOutputSamples + i*8, vzipq_u32(left, right)); + } + + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 side = pInputSamples0U32[i] << shift0; + drflac_uint32 right = pInputSamples1U32[i] << shift1; + drflac_uint32 left = right + side; + + pOutputSamples[i*2+0] = (drflac_int32)left; + pOutputSamples[i*2+1] = (drflac_int32)right; + } +} +#endif + +static DRFLAC_INLINE void drflac_read_pcm_frames_s32__decode_right_side(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int32* pOutputSamples) +{ +#if defined(DRFLAC_SUPPORT_SSE2) + if (drflac__gIsSSE2Supported && pFlac->bitsPerSample <= 24) { + drflac_read_pcm_frames_s32__decode_right_side__sse2(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + } else +#elif defined(DRFLAC_SUPPORT_NEON) + if (drflac__gIsNEONSupported && pFlac->bitsPerSample <= 24) { + drflac_read_pcm_frames_s32__decode_right_side__neon(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + } else +#endif + { + /* Scalar fallback. */ +#if 0 + drflac_read_pcm_frames_s32__decode_right_side__reference(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#else + drflac_read_pcm_frames_s32__decode_right_side__scalar(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#endif + } +} + + +#if 0 +static DRFLAC_INLINE void drflac_read_pcm_frames_s32__decode_mid_side__reference(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int32* pOutputSamples) +{ + for (drflac_uint64 i = 0; i < frameCount; ++i) { + drflac_uint32 mid = pInputSamples0U32[i] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 side = pInputSamples1U32[i] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + + mid = (mid << 1) | (side & 0x01); + + pOutputSamples[i*2+0] = (drflac_int32)((drflac_uint32)((drflac_int32)(mid + side) >> 1) << unusedBitsPerSample); + pOutputSamples[i*2+1] = (drflac_int32)((drflac_uint32)((drflac_int32)(mid - side) >> 1) << unusedBitsPerSample); + } +} +#endif + +static DRFLAC_INLINE void drflac_read_pcm_frames_s32__decode_mid_side__scalar(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int32* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_int32 shift = unusedBitsPerSample; + + if (shift > 0) { + shift -= 1; + for (i = 0; i < frameCount4; ++i) { + drflac_uint32 temp0L; + drflac_uint32 temp1L; + drflac_uint32 temp2L; + drflac_uint32 temp3L; + drflac_uint32 temp0R; + drflac_uint32 temp1R; + drflac_uint32 temp2R; + drflac_uint32 temp3R; + + drflac_uint32 mid0 = pInputSamples0U32[i*4+0] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 mid1 = pInputSamples0U32[i*4+1] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 mid2 = pInputSamples0U32[i*4+2] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 mid3 = pInputSamples0U32[i*4+3] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + + drflac_uint32 side0 = pInputSamples1U32[i*4+0] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + drflac_uint32 side1 = pInputSamples1U32[i*4+1] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + drflac_uint32 side2 = pInputSamples1U32[i*4+2] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + drflac_uint32 side3 = pInputSamples1U32[i*4+3] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + + mid0 = (mid0 << 1) | (side0 & 0x01); + mid1 = (mid1 << 1) | (side1 & 0x01); + mid2 = (mid2 << 1) | (side2 & 0x01); + mid3 = (mid3 << 1) | (side3 & 0x01); + + temp0L = (mid0 + side0) << shift; + temp1L = (mid1 + side1) << shift; + temp2L = (mid2 + side2) << shift; + temp3L = (mid3 + side3) << shift; + + temp0R = (mid0 - side0) << shift; + temp1R = (mid1 - side1) << shift; + temp2R = (mid2 - side2) << shift; + temp3R = (mid3 - side3) << shift; + + pOutputSamples[i*8+0] = (drflac_int32)temp0L; + pOutputSamples[i*8+1] = (drflac_int32)temp0R; + pOutputSamples[i*8+2] = (drflac_int32)temp1L; + pOutputSamples[i*8+3] = (drflac_int32)temp1R; + pOutputSamples[i*8+4] = (drflac_int32)temp2L; + pOutputSamples[i*8+5] = (drflac_int32)temp2R; + pOutputSamples[i*8+6] = (drflac_int32)temp3L; + pOutputSamples[i*8+7] = (drflac_int32)temp3R; + } + } else { + for (i = 0; i < frameCount4; ++i) { + drflac_uint32 temp0L; + drflac_uint32 temp1L; + drflac_uint32 temp2L; + drflac_uint32 temp3L; + drflac_uint32 temp0R; + drflac_uint32 temp1R; + drflac_uint32 temp2R; + drflac_uint32 temp3R; + + drflac_uint32 mid0 = pInputSamples0U32[i*4+0] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 mid1 = pInputSamples0U32[i*4+1] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 mid2 = pInputSamples0U32[i*4+2] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 mid3 = pInputSamples0U32[i*4+3] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + + drflac_uint32 side0 = pInputSamples1U32[i*4+0] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + drflac_uint32 side1 = pInputSamples1U32[i*4+1] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + drflac_uint32 side2 = pInputSamples1U32[i*4+2] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + drflac_uint32 side3 = pInputSamples1U32[i*4+3] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + + mid0 = (mid0 << 1) | (side0 & 0x01); + mid1 = (mid1 << 1) | (side1 & 0x01); + mid2 = (mid2 << 1) | (side2 & 0x01); + mid3 = (mid3 << 1) | (side3 & 0x01); + + temp0L = (drflac_uint32)((drflac_int32)(mid0 + side0) >> 1); + temp1L = (drflac_uint32)((drflac_int32)(mid1 + side1) >> 1); + temp2L = (drflac_uint32)((drflac_int32)(mid2 + side2) >> 1); + temp3L = (drflac_uint32)((drflac_int32)(mid3 + side3) >> 1); + + temp0R = (drflac_uint32)((drflac_int32)(mid0 - side0) >> 1); + temp1R = (drflac_uint32)((drflac_int32)(mid1 - side1) >> 1); + temp2R = (drflac_uint32)((drflac_int32)(mid2 - side2) >> 1); + temp3R = (drflac_uint32)((drflac_int32)(mid3 - side3) >> 1); + + pOutputSamples[i*8+0] = (drflac_int32)temp0L; + pOutputSamples[i*8+1] = (drflac_int32)temp0R; + pOutputSamples[i*8+2] = (drflac_int32)temp1L; + pOutputSamples[i*8+3] = (drflac_int32)temp1R; + pOutputSamples[i*8+4] = (drflac_int32)temp2L; + pOutputSamples[i*8+5] = (drflac_int32)temp2R; + pOutputSamples[i*8+6] = (drflac_int32)temp3L; + pOutputSamples[i*8+7] = (drflac_int32)temp3R; + } + } + + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 mid = pInputSamples0U32[i] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 side = pInputSamples1U32[i] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + + mid = (mid << 1) | (side & 0x01); + + pOutputSamples[i*2+0] = (drflac_int32)((drflac_uint32)((drflac_int32)(mid + side) >> 1) << unusedBitsPerSample); + pOutputSamples[i*2+1] = (drflac_int32)((drflac_uint32)((drflac_int32)(mid - side) >> 1) << unusedBitsPerSample); + } +} + +#if defined(DRFLAC_SUPPORT_SSE2) +static DRFLAC_INLINE void drflac_read_pcm_frames_s32__decode_mid_side__sse2(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int32* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_int32 shift = unusedBitsPerSample; + + DRFLAC_ASSERT(pFlac->bitsPerSample <= 24); + + if (shift == 0) { + for (i = 0; i < frameCount4; ++i) { + __m128i mid; + __m128i side; + __m128i left; + __m128i right; + + mid = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples0 + i), pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample); + side = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples1 + i), pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample); + + mid = _mm_or_si128(_mm_slli_epi32(mid, 1), _mm_and_si128(side, _mm_set1_epi32(0x01))); + + left = _mm_srai_epi32(_mm_add_epi32(mid, side), 1); + right = _mm_srai_epi32(_mm_sub_epi32(mid, side), 1); + + _mm_storeu_si128((__m128i*)(pOutputSamples + i*8 + 0), _mm_unpacklo_epi32(left, right)); + _mm_storeu_si128((__m128i*)(pOutputSamples + i*8 + 4), _mm_unpackhi_epi32(left, right)); + } + + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 mid = pInputSamples0U32[i] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 side = pInputSamples1U32[i] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + + mid = (mid << 1) | (side & 0x01); + + pOutputSamples[i*2+0] = (drflac_int32)(mid + side) >> 1; + pOutputSamples[i*2+1] = (drflac_int32)(mid - side) >> 1; + } + } else { + shift -= 1; + for (i = 0; i < frameCount4; ++i) { + __m128i mid; + __m128i side; + __m128i left; + __m128i right; + + mid = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples0 + i), pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample); + side = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples1 + i), pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample); + + mid = _mm_or_si128(_mm_slli_epi32(mid, 1), _mm_and_si128(side, _mm_set1_epi32(0x01))); + + left = _mm_slli_epi32(_mm_add_epi32(mid, side), shift); + right = _mm_slli_epi32(_mm_sub_epi32(mid, side), shift); + + _mm_storeu_si128((__m128i*)(pOutputSamples + i*8 + 0), _mm_unpacklo_epi32(left, right)); + _mm_storeu_si128((__m128i*)(pOutputSamples + i*8 + 4), _mm_unpackhi_epi32(left, right)); + } + + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 mid = pInputSamples0U32[i] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 side = pInputSamples1U32[i] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + + mid = (mid << 1) | (side & 0x01); + + pOutputSamples[i*2+0] = (drflac_int32)((mid + side) << shift); + pOutputSamples[i*2+1] = (drflac_int32)((mid - side) << shift); + } + } +} +#endif + +#if defined(DRFLAC_SUPPORT_NEON) +static DRFLAC_INLINE void drflac_read_pcm_frames_s32__decode_mid_side__neon(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int32* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_int32 shift = unusedBitsPerSample; + int32x4_t wbpsShift0_4; /* wbps = Wasted Bits Per Sample */ + int32x4_t wbpsShift1_4; /* wbps = Wasted Bits Per Sample */ + uint32x4_t one4; + + DRFLAC_ASSERT(pFlac->bitsPerSample <= 24); + + wbpsShift0_4 = vdupq_n_s32(pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample); + wbpsShift1_4 = vdupq_n_s32(pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample); + one4 = vdupq_n_u32(1); + + if (shift == 0) { + for (i = 0; i < frameCount4; ++i) { + uint32x4_t mid; + uint32x4_t side; + int32x4_t left; + int32x4_t right; + + mid = vshlq_u32(vld1q_u32(pInputSamples0U32 + i*4), wbpsShift0_4); + side = vshlq_u32(vld1q_u32(pInputSamples1U32 + i*4), wbpsShift1_4); + + mid = vorrq_u32(vshlq_n_u32(mid, 1), vandq_u32(side, one4)); + + left = vshrq_n_s32(vreinterpretq_s32_u32(vaddq_u32(mid, side)), 1); + right = vshrq_n_s32(vreinterpretq_s32_u32(vsubq_u32(mid, side)), 1); + + drflac__vst2q_s32(pOutputSamples + i*8, vzipq_s32(left, right)); + } + + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 mid = pInputSamples0U32[i] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 side = pInputSamples1U32[i] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + + mid = (mid << 1) | (side & 0x01); + + pOutputSamples[i*2+0] = (drflac_int32)(mid + side) >> 1; + pOutputSamples[i*2+1] = (drflac_int32)(mid - side) >> 1; + } + } else { + int32x4_t shift4; + + shift -= 1; + shift4 = vdupq_n_s32(shift); + + for (i = 0; i < frameCount4; ++i) { + uint32x4_t mid; + uint32x4_t side; + int32x4_t left; + int32x4_t right; + + mid = vshlq_u32(vld1q_u32(pInputSamples0U32 + i*4), wbpsShift0_4); + side = vshlq_u32(vld1q_u32(pInputSamples1U32 + i*4), wbpsShift1_4); + + mid = vorrq_u32(vshlq_n_u32(mid, 1), vandq_u32(side, one4)); + + left = vreinterpretq_s32_u32(vshlq_u32(vaddq_u32(mid, side), shift4)); + right = vreinterpretq_s32_u32(vshlq_u32(vsubq_u32(mid, side), shift4)); + + drflac__vst2q_s32(pOutputSamples + i*8, vzipq_s32(left, right)); + } + + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 mid = pInputSamples0U32[i] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 side = pInputSamples1U32[i] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + + mid = (mid << 1) | (side & 0x01); + + pOutputSamples[i*2+0] = (drflac_int32)((mid + side) << shift); + pOutputSamples[i*2+1] = (drflac_int32)((mid - side) << shift); + } + } +} +#endif + +static DRFLAC_INLINE void drflac_read_pcm_frames_s32__decode_mid_side(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int32* pOutputSamples) +{ +#if defined(DRFLAC_SUPPORT_SSE2) + if (drflac__gIsSSE2Supported && pFlac->bitsPerSample <= 24) { + drflac_read_pcm_frames_s32__decode_mid_side__sse2(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + } else +#elif defined(DRFLAC_SUPPORT_NEON) + if (drflac__gIsNEONSupported && pFlac->bitsPerSample <= 24) { + drflac_read_pcm_frames_s32__decode_mid_side__neon(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + } else +#endif + { + /* Scalar fallback. */ +#if 0 + drflac_read_pcm_frames_s32__decode_mid_side__reference(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#else + drflac_read_pcm_frames_s32__decode_mid_side__scalar(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#endif + } +} + + +#if 0 +static DRFLAC_INLINE void drflac_read_pcm_frames_s32__decode_independent_stereo__reference(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int32* pOutputSamples) +{ + for (drflac_uint64 i = 0; i < frameCount; ++i) { + pOutputSamples[i*2+0] = (drflac_int32)((drflac_uint32)pInputSamples0[i] << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample)); + pOutputSamples[i*2+1] = (drflac_int32)((drflac_uint32)pInputSamples1[i] << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample)); + } +} +#endif + +static DRFLAC_INLINE void drflac_read_pcm_frames_s32__decode_independent_stereo__scalar(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int32* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + + for (i = 0; i < frameCount4; ++i) { + drflac_uint32 tempL0 = pInputSamples0U32[i*4+0] << shift0; + drflac_uint32 tempL1 = pInputSamples0U32[i*4+1] << shift0; + drflac_uint32 tempL2 = pInputSamples0U32[i*4+2] << shift0; + drflac_uint32 tempL3 = pInputSamples0U32[i*4+3] << shift0; + + drflac_uint32 tempR0 = pInputSamples1U32[i*4+0] << shift1; + drflac_uint32 tempR1 = pInputSamples1U32[i*4+1] << shift1; + drflac_uint32 tempR2 = pInputSamples1U32[i*4+2] << shift1; + drflac_uint32 tempR3 = pInputSamples1U32[i*4+3] << shift1; + + pOutputSamples[i*8+0] = (drflac_int32)tempL0; + pOutputSamples[i*8+1] = (drflac_int32)tempR0; + pOutputSamples[i*8+2] = (drflac_int32)tempL1; + pOutputSamples[i*8+3] = (drflac_int32)tempR1; + pOutputSamples[i*8+4] = (drflac_int32)tempL2; + pOutputSamples[i*8+5] = (drflac_int32)tempR2; + pOutputSamples[i*8+6] = (drflac_int32)tempL3; + pOutputSamples[i*8+7] = (drflac_int32)tempR3; + } + + for (i = (frameCount4 << 2); i < frameCount; ++i) { + pOutputSamples[i*2+0] = (drflac_int32)(pInputSamples0U32[i] << shift0); + pOutputSamples[i*2+1] = (drflac_int32)(pInputSamples1U32[i] << shift1); + } +} + +#if defined(DRFLAC_SUPPORT_SSE2) +static DRFLAC_INLINE void drflac_read_pcm_frames_s32__decode_independent_stereo__sse2(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int32* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + + for (i = 0; i < frameCount4; ++i) { + __m128i left = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples0 + i), shift0); + __m128i right = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples1 + i), shift1); + + _mm_storeu_si128((__m128i*)(pOutputSamples + i*8 + 0), _mm_unpacklo_epi32(left, right)); + _mm_storeu_si128((__m128i*)(pOutputSamples + i*8 + 4), _mm_unpackhi_epi32(left, right)); + } + + for (i = (frameCount4 << 2); i < frameCount; ++i) { + pOutputSamples[i*2+0] = (drflac_int32)(pInputSamples0U32[i] << shift0); + pOutputSamples[i*2+1] = (drflac_int32)(pInputSamples1U32[i] << shift1); + } +} +#endif + +#if defined(DRFLAC_SUPPORT_NEON) +static DRFLAC_INLINE void drflac_read_pcm_frames_s32__decode_independent_stereo__neon(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int32* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + + int32x4_t shift4_0 = vdupq_n_s32(shift0); + int32x4_t shift4_1 = vdupq_n_s32(shift1); + + for (i = 0; i < frameCount4; ++i) { + int32x4_t left; + int32x4_t right; + + left = vreinterpretq_s32_u32(vshlq_u32(vld1q_u32(pInputSamples0U32 + i*4), shift4_0)); + right = vreinterpretq_s32_u32(vshlq_u32(vld1q_u32(pInputSamples1U32 + i*4), shift4_1)); + + drflac__vst2q_s32(pOutputSamples + i*8, vzipq_s32(left, right)); + } + + for (i = (frameCount4 << 2); i < frameCount; ++i) { + pOutputSamples[i*2+0] = (drflac_int32)(pInputSamples0U32[i] << shift0); + pOutputSamples[i*2+1] = (drflac_int32)(pInputSamples1U32[i] << shift1); + } +} +#endif + +static DRFLAC_INLINE void drflac_read_pcm_frames_s32__decode_independent_stereo(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int32* pOutputSamples) +{ +#if defined(DRFLAC_SUPPORT_SSE2) + if (drflac__gIsSSE2Supported && pFlac->bitsPerSample <= 24) { + drflac_read_pcm_frames_s32__decode_independent_stereo__sse2(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + } else +#elif defined(DRFLAC_SUPPORT_NEON) + if (drflac__gIsNEONSupported && pFlac->bitsPerSample <= 24) { + drflac_read_pcm_frames_s32__decode_independent_stereo__neon(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + } else +#endif + { + /* Scalar fallback. */ +#if 0 + drflac_read_pcm_frames_s32__decode_independent_stereo__reference(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#else + drflac_read_pcm_frames_s32__decode_independent_stereo__scalar(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#endif + } +} + + +DRFLAC_API drflac_uint64 drflac_read_pcm_frames_s32(drflac* pFlac, drflac_uint64 framesToRead, drflac_int32* pBufferOut) +{ + drflac_uint64 framesRead; + drflac_uint32 unusedBitsPerSample; + + if (pFlac == NULL || framesToRead == 0) { + return 0; + } + + if (pBufferOut == NULL) { + return drflac__seek_forward_by_pcm_frames(pFlac, framesToRead); + } + + DRFLAC_ASSERT(pFlac->bitsPerSample <= 32); + unusedBitsPerSample = 32 - pFlac->bitsPerSample; + + framesRead = 0; + while (framesToRead > 0) { + /* If we've run out of samples in this frame, go to the next. */ + if (pFlac->currentFLACFrame.pcmFramesRemaining == 0) { + if (!drflac__read_and_decode_next_flac_frame(pFlac)) { + break; /* Couldn't read the next frame, so just break from the loop and return. */ + } + } else { + unsigned int channelCount = drflac__get_channel_count_from_channel_assignment(pFlac->currentFLACFrame.header.channelAssignment); + drflac_uint64 iFirstPCMFrame = pFlac->currentFLACFrame.header.blockSizeInPCMFrames - pFlac->currentFLACFrame.pcmFramesRemaining; + drflac_uint64 frameCountThisIteration = framesToRead; + + if (frameCountThisIteration > pFlac->currentFLACFrame.pcmFramesRemaining) { + frameCountThisIteration = pFlac->currentFLACFrame.pcmFramesRemaining; + } + + if (channelCount == 2) { + const drflac_int32* pDecodedSamples0 = pFlac->currentFLACFrame.subframes[0].pSamplesS32 + iFirstPCMFrame; + const drflac_int32* pDecodedSamples1 = pFlac->currentFLACFrame.subframes[1].pSamplesS32 + iFirstPCMFrame; + + switch (pFlac->currentFLACFrame.header.channelAssignment) + { + case DRFLAC_CHANNEL_ASSIGNMENT_LEFT_SIDE: + { + drflac_read_pcm_frames_s32__decode_left_side(pFlac, frameCountThisIteration, unusedBitsPerSample, pDecodedSamples0, pDecodedSamples1, pBufferOut); + } break; + + case DRFLAC_CHANNEL_ASSIGNMENT_RIGHT_SIDE: + { + drflac_read_pcm_frames_s32__decode_right_side(pFlac, frameCountThisIteration, unusedBitsPerSample, pDecodedSamples0, pDecodedSamples1, pBufferOut); + } break; + + case DRFLAC_CHANNEL_ASSIGNMENT_MID_SIDE: + { + drflac_read_pcm_frames_s32__decode_mid_side(pFlac, frameCountThisIteration, unusedBitsPerSample, pDecodedSamples0, pDecodedSamples1, pBufferOut); + } break; + + case DRFLAC_CHANNEL_ASSIGNMENT_INDEPENDENT: + default: + { + drflac_read_pcm_frames_s32__decode_independent_stereo(pFlac, frameCountThisIteration, unusedBitsPerSample, pDecodedSamples0, pDecodedSamples1, pBufferOut); + } break; + } + } else { + /* Generic interleaving. */ + drflac_uint64 i; + for (i = 0; i < frameCountThisIteration; ++i) { + unsigned int j; + for (j = 0; j < channelCount; ++j) { + pBufferOut[(i*channelCount)+j] = (drflac_int32)((drflac_uint32)(pFlac->currentFLACFrame.subframes[j].pSamplesS32[iFirstPCMFrame + i]) << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[j].wastedBitsPerSample)); + } + } + } + + framesRead += frameCountThisIteration; + pBufferOut += frameCountThisIteration * channelCount; + framesToRead -= frameCountThisIteration; + pFlac->currentPCMFrame += frameCountThisIteration; + pFlac->currentFLACFrame.pcmFramesRemaining -= (drflac_uint32)frameCountThisIteration; + } + } + + return framesRead; +} + + +#if 0 +static DRFLAC_INLINE void drflac_read_pcm_frames_s16__decode_left_side__reference(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int16* pOutputSamples) +{ + drflac_uint64 i; + for (i = 0; i < frameCount; ++i) { + drflac_uint32 left = (drflac_uint32)pInputSamples0[i] << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample); + drflac_uint32 side = (drflac_uint32)pInputSamples1[i] << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample); + drflac_uint32 right = left - side; + + left >>= 16; + right >>= 16; + + pOutputSamples[i*2+0] = (drflac_int16)left; + pOutputSamples[i*2+1] = (drflac_int16)right; + } +} +#endif + +static DRFLAC_INLINE void drflac_read_pcm_frames_s16__decode_left_side__scalar(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int16* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + + for (i = 0; i < frameCount4; ++i) { + drflac_uint32 left0 = pInputSamples0U32[i*4+0] << shift0; + drflac_uint32 left1 = pInputSamples0U32[i*4+1] << shift0; + drflac_uint32 left2 = pInputSamples0U32[i*4+2] << shift0; + drflac_uint32 left3 = pInputSamples0U32[i*4+3] << shift0; + + drflac_uint32 side0 = pInputSamples1U32[i*4+0] << shift1; + drflac_uint32 side1 = pInputSamples1U32[i*4+1] << shift1; + drflac_uint32 side2 = pInputSamples1U32[i*4+2] << shift1; + drflac_uint32 side3 = pInputSamples1U32[i*4+3] << shift1; + + drflac_uint32 right0 = left0 - side0; + drflac_uint32 right1 = left1 - side1; + drflac_uint32 right2 = left2 - side2; + drflac_uint32 right3 = left3 - side3; + + left0 >>= 16; + left1 >>= 16; + left2 >>= 16; + left3 >>= 16; + + right0 >>= 16; + right1 >>= 16; + right2 >>= 16; + right3 >>= 16; + + pOutputSamples[i*8+0] = (drflac_int16)left0; + pOutputSamples[i*8+1] = (drflac_int16)right0; + pOutputSamples[i*8+2] = (drflac_int16)left1; + pOutputSamples[i*8+3] = (drflac_int16)right1; + pOutputSamples[i*8+4] = (drflac_int16)left2; + pOutputSamples[i*8+5] = (drflac_int16)right2; + pOutputSamples[i*8+6] = (drflac_int16)left3; + pOutputSamples[i*8+7] = (drflac_int16)right3; + } + + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 left = pInputSamples0U32[i] << shift0; + drflac_uint32 side = pInputSamples1U32[i] << shift1; + drflac_uint32 right = left - side; + + left >>= 16; + right >>= 16; + + pOutputSamples[i*2+0] = (drflac_int16)left; + pOutputSamples[i*2+1] = (drflac_int16)right; + } +} + +#if defined(DRFLAC_SUPPORT_SSE2) +static DRFLAC_INLINE void drflac_read_pcm_frames_s16__decode_left_side__sse2(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int16* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + + DRFLAC_ASSERT(pFlac->bitsPerSample <= 24); + + for (i = 0; i < frameCount4; ++i) { + __m128i left = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples0 + i), shift0); + __m128i side = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples1 + i), shift1); + __m128i right = _mm_sub_epi32(left, side); + + left = _mm_srai_epi32(left, 16); + right = _mm_srai_epi32(right, 16); + + _mm_storeu_si128((__m128i*)(pOutputSamples + i*8), drflac__mm_packs_interleaved_epi32(left, right)); + } + + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 left = pInputSamples0U32[i] << shift0; + drflac_uint32 side = pInputSamples1U32[i] << shift1; + drflac_uint32 right = left - side; + + left >>= 16; + right >>= 16; + + pOutputSamples[i*2+0] = (drflac_int16)left; + pOutputSamples[i*2+1] = (drflac_int16)right; + } +} +#endif + +#if defined(DRFLAC_SUPPORT_NEON) +static DRFLAC_INLINE void drflac_read_pcm_frames_s16__decode_left_side__neon(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int16* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + int32x4_t shift0_4; + int32x4_t shift1_4; + + DRFLAC_ASSERT(pFlac->bitsPerSample <= 24); + + shift0_4 = vdupq_n_s32(shift0); + shift1_4 = vdupq_n_s32(shift1); + + for (i = 0; i < frameCount4; ++i) { + uint32x4_t left; + uint32x4_t side; + uint32x4_t right; + + left = vshlq_u32(vld1q_u32(pInputSamples0U32 + i*4), shift0_4); + side = vshlq_u32(vld1q_u32(pInputSamples1U32 + i*4), shift1_4); + right = vsubq_u32(left, side); + + left = vshrq_n_u32(left, 16); + right = vshrq_n_u32(right, 16); + + drflac__vst2q_u16((drflac_uint16*)pOutputSamples + i*8, vzip_u16(vmovn_u32(left), vmovn_u32(right))); + } + + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 left = pInputSamples0U32[i] << shift0; + drflac_uint32 side = pInputSamples1U32[i] << shift1; + drflac_uint32 right = left - side; + + left >>= 16; + right >>= 16; + + pOutputSamples[i*2+0] = (drflac_int16)left; + pOutputSamples[i*2+1] = (drflac_int16)right; + } +} +#endif + +static DRFLAC_INLINE void drflac_read_pcm_frames_s16__decode_left_side(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int16* pOutputSamples) +{ +#if defined(DRFLAC_SUPPORT_SSE2) + if (drflac__gIsSSE2Supported && pFlac->bitsPerSample <= 24) { + drflac_read_pcm_frames_s16__decode_left_side__sse2(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + } else +#elif defined(DRFLAC_SUPPORT_NEON) + if (drflac__gIsNEONSupported && pFlac->bitsPerSample <= 24) { + drflac_read_pcm_frames_s16__decode_left_side__neon(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + } else +#endif + { + /* Scalar fallback. */ +#if 0 + drflac_read_pcm_frames_s16__decode_left_side__reference(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#else + drflac_read_pcm_frames_s16__decode_left_side__scalar(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#endif + } +} + + +#if 0 +static DRFLAC_INLINE void drflac_read_pcm_frames_s16__decode_right_side__reference(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int16* pOutputSamples) +{ + drflac_uint64 i; + for (i = 0; i < frameCount; ++i) { + drflac_uint32 side = (drflac_uint32)pInputSamples0[i] << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample); + drflac_uint32 right = (drflac_uint32)pInputSamples1[i] << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample); + drflac_uint32 left = right + side; + + left >>= 16; + right >>= 16; + + pOutputSamples[i*2+0] = (drflac_int16)left; + pOutputSamples[i*2+1] = (drflac_int16)right; + } +} +#endif + +static DRFLAC_INLINE void drflac_read_pcm_frames_s16__decode_right_side__scalar(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int16* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + + for (i = 0; i < frameCount4; ++i) { + drflac_uint32 side0 = pInputSamples0U32[i*4+0] << shift0; + drflac_uint32 side1 = pInputSamples0U32[i*4+1] << shift0; + drflac_uint32 side2 = pInputSamples0U32[i*4+2] << shift0; + drflac_uint32 side3 = pInputSamples0U32[i*4+3] << shift0; + + drflac_uint32 right0 = pInputSamples1U32[i*4+0] << shift1; + drflac_uint32 right1 = pInputSamples1U32[i*4+1] << shift1; + drflac_uint32 right2 = pInputSamples1U32[i*4+2] << shift1; + drflac_uint32 right3 = pInputSamples1U32[i*4+3] << shift1; + + drflac_uint32 left0 = right0 + side0; + drflac_uint32 left1 = right1 + side1; + drflac_uint32 left2 = right2 + side2; + drflac_uint32 left3 = right3 + side3; + + left0 >>= 16; + left1 >>= 16; + left2 >>= 16; + left3 >>= 16; + + right0 >>= 16; + right1 >>= 16; + right2 >>= 16; + right3 >>= 16; + + pOutputSamples[i*8+0] = (drflac_int16)left0; + pOutputSamples[i*8+1] = (drflac_int16)right0; + pOutputSamples[i*8+2] = (drflac_int16)left1; + pOutputSamples[i*8+3] = (drflac_int16)right1; + pOutputSamples[i*8+4] = (drflac_int16)left2; + pOutputSamples[i*8+5] = (drflac_int16)right2; + pOutputSamples[i*8+6] = (drflac_int16)left3; + pOutputSamples[i*8+7] = (drflac_int16)right3; + } + + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 side = pInputSamples0U32[i] << shift0; + drflac_uint32 right = pInputSamples1U32[i] << shift1; + drflac_uint32 left = right + side; + + left >>= 16; + right >>= 16; + + pOutputSamples[i*2+0] = (drflac_int16)left; + pOutputSamples[i*2+1] = (drflac_int16)right; + } +} + +#if defined(DRFLAC_SUPPORT_SSE2) +static DRFLAC_INLINE void drflac_read_pcm_frames_s16__decode_right_side__sse2(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int16* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + + DRFLAC_ASSERT(pFlac->bitsPerSample <= 24); + + for (i = 0; i < frameCount4; ++i) { + __m128i side = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples0 + i), shift0); + __m128i right = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples1 + i), shift1); + __m128i left = _mm_add_epi32(right, side); + + left = _mm_srai_epi32(left, 16); + right = _mm_srai_epi32(right, 16); + + _mm_storeu_si128((__m128i*)(pOutputSamples + i*8), drflac__mm_packs_interleaved_epi32(left, right)); + } + + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 side = pInputSamples0U32[i] << shift0; + drflac_uint32 right = pInputSamples1U32[i] << shift1; + drflac_uint32 left = right + side; + + left >>= 16; + right >>= 16; + + pOutputSamples[i*2+0] = (drflac_int16)left; + pOutputSamples[i*2+1] = (drflac_int16)right; + } +} +#endif + +#if defined(DRFLAC_SUPPORT_NEON) +static DRFLAC_INLINE void drflac_read_pcm_frames_s16__decode_right_side__neon(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int16* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + int32x4_t shift0_4; + int32x4_t shift1_4; + + DRFLAC_ASSERT(pFlac->bitsPerSample <= 24); + + shift0_4 = vdupq_n_s32(shift0); + shift1_4 = vdupq_n_s32(shift1); + + for (i = 0; i < frameCount4; ++i) { + uint32x4_t side; + uint32x4_t right; + uint32x4_t left; + + side = vshlq_u32(vld1q_u32(pInputSamples0U32 + i*4), shift0_4); + right = vshlq_u32(vld1q_u32(pInputSamples1U32 + i*4), shift1_4); + left = vaddq_u32(right, side); + + left = vshrq_n_u32(left, 16); + right = vshrq_n_u32(right, 16); + + drflac__vst2q_u16((drflac_uint16*)pOutputSamples + i*8, vzip_u16(vmovn_u32(left), vmovn_u32(right))); + } + + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 side = pInputSamples0U32[i] << shift0; + drflac_uint32 right = pInputSamples1U32[i] << shift1; + drflac_uint32 left = right + side; + + left >>= 16; + right >>= 16; + + pOutputSamples[i*2+0] = (drflac_int16)left; + pOutputSamples[i*2+1] = (drflac_int16)right; + } +} +#endif + +static DRFLAC_INLINE void drflac_read_pcm_frames_s16__decode_right_side(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int16* pOutputSamples) +{ +#if defined(DRFLAC_SUPPORT_SSE2) + if (drflac__gIsSSE2Supported && pFlac->bitsPerSample <= 24) { + drflac_read_pcm_frames_s16__decode_right_side__sse2(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + } else +#elif defined(DRFLAC_SUPPORT_NEON) + if (drflac__gIsNEONSupported && pFlac->bitsPerSample <= 24) { + drflac_read_pcm_frames_s16__decode_right_side__neon(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + } else +#endif + { + /* Scalar fallback. */ +#if 0 + drflac_read_pcm_frames_s16__decode_right_side__reference(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#else + drflac_read_pcm_frames_s16__decode_right_side__scalar(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#endif + } +} + + +#if 0 +static DRFLAC_INLINE void drflac_read_pcm_frames_s16__decode_mid_side__reference(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int16* pOutputSamples) +{ + for (drflac_uint64 i = 0; i < frameCount; ++i) { + drflac_uint32 mid = (drflac_uint32)pInputSamples0[i] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 side = (drflac_uint32)pInputSamples1[i] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + + mid = (mid << 1) | (side & 0x01); + + pOutputSamples[i*2+0] = (drflac_int16)(((drflac_uint32)((drflac_int32)(mid + side) >> 1) << unusedBitsPerSample) >> 16); + pOutputSamples[i*2+1] = (drflac_int16)(((drflac_uint32)((drflac_int32)(mid - side) >> 1) << unusedBitsPerSample) >> 16); + } +} +#endif + +static DRFLAC_INLINE void drflac_read_pcm_frames_s16__decode_mid_side__scalar(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int16* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift = unusedBitsPerSample; + + if (shift > 0) { + shift -= 1; + for (i = 0; i < frameCount4; ++i) { + drflac_uint32 temp0L; + drflac_uint32 temp1L; + drflac_uint32 temp2L; + drflac_uint32 temp3L; + drflac_uint32 temp0R; + drflac_uint32 temp1R; + drflac_uint32 temp2R; + drflac_uint32 temp3R; + + drflac_uint32 mid0 = pInputSamples0U32[i*4+0] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 mid1 = pInputSamples0U32[i*4+1] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 mid2 = pInputSamples0U32[i*4+2] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 mid3 = pInputSamples0U32[i*4+3] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + + drflac_uint32 side0 = pInputSamples1U32[i*4+0] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + drflac_uint32 side1 = pInputSamples1U32[i*4+1] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + drflac_uint32 side2 = pInputSamples1U32[i*4+2] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + drflac_uint32 side3 = pInputSamples1U32[i*4+3] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + + mid0 = (mid0 << 1) | (side0 & 0x01); + mid1 = (mid1 << 1) | (side1 & 0x01); + mid2 = (mid2 << 1) | (side2 & 0x01); + mid3 = (mid3 << 1) | (side3 & 0x01); + + temp0L = (mid0 + side0) << shift; + temp1L = (mid1 + side1) << shift; + temp2L = (mid2 + side2) << shift; + temp3L = (mid3 + side3) << shift; + + temp0R = (mid0 - side0) << shift; + temp1R = (mid1 - side1) << shift; + temp2R = (mid2 - side2) << shift; + temp3R = (mid3 - side3) << shift; + + temp0L >>= 16; + temp1L >>= 16; + temp2L >>= 16; + temp3L >>= 16; + + temp0R >>= 16; + temp1R >>= 16; + temp2R >>= 16; + temp3R >>= 16; + + pOutputSamples[i*8+0] = (drflac_int16)temp0L; + pOutputSamples[i*8+1] = (drflac_int16)temp0R; + pOutputSamples[i*8+2] = (drflac_int16)temp1L; + pOutputSamples[i*8+3] = (drflac_int16)temp1R; + pOutputSamples[i*8+4] = (drflac_int16)temp2L; + pOutputSamples[i*8+5] = (drflac_int16)temp2R; + pOutputSamples[i*8+6] = (drflac_int16)temp3L; + pOutputSamples[i*8+7] = (drflac_int16)temp3R; + } + } else { + for (i = 0; i < frameCount4; ++i) { + drflac_uint32 temp0L; + drflac_uint32 temp1L; + drflac_uint32 temp2L; + drflac_uint32 temp3L; + drflac_uint32 temp0R; + drflac_uint32 temp1R; + drflac_uint32 temp2R; + drflac_uint32 temp3R; + + drflac_uint32 mid0 = pInputSamples0U32[i*4+0] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 mid1 = pInputSamples0U32[i*4+1] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 mid2 = pInputSamples0U32[i*4+2] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 mid3 = pInputSamples0U32[i*4+3] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + + drflac_uint32 side0 = pInputSamples1U32[i*4+0] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + drflac_uint32 side1 = pInputSamples1U32[i*4+1] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + drflac_uint32 side2 = pInputSamples1U32[i*4+2] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + drflac_uint32 side3 = pInputSamples1U32[i*4+3] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + + mid0 = (mid0 << 1) | (side0 & 0x01); + mid1 = (mid1 << 1) | (side1 & 0x01); + mid2 = (mid2 << 1) | (side2 & 0x01); + mid3 = (mid3 << 1) | (side3 & 0x01); + + temp0L = ((drflac_int32)(mid0 + side0) >> 1); + temp1L = ((drflac_int32)(mid1 + side1) >> 1); + temp2L = ((drflac_int32)(mid2 + side2) >> 1); + temp3L = ((drflac_int32)(mid3 + side3) >> 1); + + temp0R = ((drflac_int32)(mid0 - side0) >> 1); + temp1R = ((drflac_int32)(mid1 - side1) >> 1); + temp2R = ((drflac_int32)(mid2 - side2) >> 1); + temp3R = ((drflac_int32)(mid3 - side3) >> 1); + + temp0L >>= 16; + temp1L >>= 16; + temp2L >>= 16; + temp3L >>= 16; + + temp0R >>= 16; + temp1R >>= 16; + temp2R >>= 16; + temp3R >>= 16; + + pOutputSamples[i*8+0] = (drflac_int16)temp0L; + pOutputSamples[i*8+1] = (drflac_int16)temp0R; + pOutputSamples[i*8+2] = (drflac_int16)temp1L; + pOutputSamples[i*8+3] = (drflac_int16)temp1R; + pOutputSamples[i*8+4] = (drflac_int16)temp2L; + pOutputSamples[i*8+5] = (drflac_int16)temp2R; + pOutputSamples[i*8+6] = (drflac_int16)temp3L; + pOutputSamples[i*8+7] = (drflac_int16)temp3R; + } + } + + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 mid = pInputSamples0U32[i] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 side = pInputSamples1U32[i] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + + mid = (mid << 1) | (side & 0x01); + + pOutputSamples[i*2+0] = (drflac_int16)(((drflac_uint32)((drflac_int32)(mid + side) >> 1) << unusedBitsPerSample) >> 16); + pOutputSamples[i*2+1] = (drflac_int16)(((drflac_uint32)((drflac_int32)(mid - side) >> 1) << unusedBitsPerSample) >> 16); + } +} + +#if defined(DRFLAC_SUPPORT_SSE2) +static DRFLAC_INLINE void drflac_read_pcm_frames_s16__decode_mid_side__sse2(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int16* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift = unusedBitsPerSample; + + DRFLAC_ASSERT(pFlac->bitsPerSample <= 24); + + if (shift == 0) { + for (i = 0; i < frameCount4; ++i) { + __m128i mid; + __m128i side; + __m128i left; + __m128i right; + + mid = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples0 + i), pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample); + side = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples1 + i), pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample); + + mid = _mm_or_si128(_mm_slli_epi32(mid, 1), _mm_and_si128(side, _mm_set1_epi32(0x01))); + + left = _mm_srai_epi32(_mm_add_epi32(mid, side), 1); + right = _mm_srai_epi32(_mm_sub_epi32(mid, side), 1); + + left = _mm_srai_epi32(left, 16); + right = _mm_srai_epi32(right, 16); + + _mm_storeu_si128((__m128i*)(pOutputSamples + i*8), drflac__mm_packs_interleaved_epi32(left, right)); + } + + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 mid = pInputSamples0U32[i] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 side = pInputSamples1U32[i] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + + mid = (mid << 1) | (side & 0x01); + + pOutputSamples[i*2+0] = (drflac_int16)(((drflac_int32)(mid + side) >> 1) >> 16); + pOutputSamples[i*2+1] = (drflac_int16)(((drflac_int32)(mid - side) >> 1) >> 16); + } + } else { + shift -= 1; + for (i = 0; i < frameCount4; ++i) { + __m128i mid; + __m128i side; + __m128i left; + __m128i right; + + mid = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples0 + i), pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample); + side = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples1 + i), pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample); + + mid = _mm_or_si128(_mm_slli_epi32(mid, 1), _mm_and_si128(side, _mm_set1_epi32(0x01))); + + left = _mm_slli_epi32(_mm_add_epi32(mid, side), shift); + right = _mm_slli_epi32(_mm_sub_epi32(mid, side), shift); + + left = _mm_srai_epi32(left, 16); + right = _mm_srai_epi32(right, 16); + + _mm_storeu_si128((__m128i*)(pOutputSamples + i*8), drflac__mm_packs_interleaved_epi32(left, right)); + } + + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 mid = pInputSamples0U32[i] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 side = pInputSamples1U32[i] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + + mid = (mid << 1) | (side & 0x01); + + pOutputSamples[i*2+0] = (drflac_int16)(((mid + side) << shift) >> 16); + pOutputSamples[i*2+1] = (drflac_int16)(((mid - side) << shift) >> 16); + } + } +} +#endif + +#if defined(DRFLAC_SUPPORT_NEON) +static DRFLAC_INLINE void drflac_read_pcm_frames_s16__decode_mid_side__neon(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int16* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift = unusedBitsPerSample; + int32x4_t wbpsShift0_4; /* wbps = Wasted Bits Per Sample */ + int32x4_t wbpsShift1_4; /* wbps = Wasted Bits Per Sample */ + + DRFLAC_ASSERT(pFlac->bitsPerSample <= 24); + + wbpsShift0_4 = vdupq_n_s32(pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample); + wbpsShift1_4 = vdupq_n_s32(pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample); + + if (shift == 0) { + for (i = 0; i < frameCount4; ++i) { + uint32x4_t mid; + uint32x4_t side; + int32x4_t left; + int32x4_t right; + + mid = vshlq_u32(vld1q_u32(pInputSamples0U32 + i*4), wbpsShift0_4); + side = vshlq_u32(vld1q_u32(pInputSamples1U32 + i*4), wbpsShift1_4); + + mid = vorrq_u32(vshlq_n_u32(mid, 1), vandq_u32(side, vdupq_n_u32(1))); + + left = vshrq_n_s32(vreinterpretq_s32_u32(vaddq_u32(mid, side)), 1); + right = vshrq_n_s32(vreinterpretq_s32_u32(vsubq_u32(mid, side)), 1); + + left = vshrq_n_s32(left, 16); + right = vshrq_n_s32(right, 16); + + drflac__vst2q_s16(pOutputSamples + i*8, vzip_s16(vmovn_s32(left), vmovn_s32(right))); + } + + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 mid = pInputSamples0U32[i] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 side = pInputSamples1U32[i] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + + mid = (mid << 1) | (side & 0x01); + + pOutputSamples[i*2+0] = (drflac_int16)(((drflac_int32)(mid + side) >> 1) >> 16); + pOutputSamples[i*2+1] = (drflac_int16)(((drflac_int32)(mid - side) >> 1) >> 16); + } + } else { + int32x4_t shift4; + + shift -= 1; + shift4 = vdupq_n_s32(shift); + + for (i = 0; i < frameCount4; ++i) { + uint32x4_t mid; + uint32x4_t side; + int32x4_t left; + int32x4_t right; + + mid = vshlq_u32(vld1q_u32(pInputSamples0U32 + i*4), wbpsShift0_4); + side = vshlq_u32(vld1q_u32(pInputSamples1U32 + i*4), wbpsShift1_4); + + mid = vorrq_u32(vshlq_n_u32(mid, 1), vandq_u32(side, vdupq_n_u32(1))); + + left = vreinterpretq_s32_u32(vshlq_u32(vaddq_u32(mid, side), shift4)); + right = vreinterpretq_s32_u32(vshlq_u32(vsubq_u32(mid, side), shift4)); + + left = vshrq_n_s32(left, 16); + right = vshrq_n_s32(right, 16); + + drflac__vst2q_s16(pOutputSamples + i*8, vzip_s16(vmovn_s32(left), vmovn_s32(right))); + } + + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 mid = pInputSamples0U32[i] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 side = pInputSamples1U32[i] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + + mid = (mid << 1) | (side & 0x01); + + pOutputSamples[i*2+0] = (drflac_int16)(((mid + side) << shift) >> 16); + pOutputSamples[i*2+1] = (drflac_int16)(((mid - side) << shift) >> 16); + } + } +} +#endif + +static DRFLAC_INLINE void drflac_read_pcm_frames_s16__decode_mid_side(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int16* pOutputSamples) +{ +#if defined(DRFLAC_SUPPORT_SSE2) + if (drflac__gIsSSE2Supported && pFlac->bitsPerSample <= 24) { + drflac_read_pcm_frames_s16__decode_mid_side__sse2(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + } else +#elif defined(DRFLAC_SUPPORT_NEON) + if (drflac__gIsNEONSupported && pFlac->bitsPerSample <= 24) { + drflac_read_pcm_frames_s16__decode_mid_side__neon(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + } else +#endif + { + /* Scalar fallback. */ +#if 0 + drflac_read_pcm_frames_s16__decode_mid_side__reference(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#else + drflac_read_pcm_frames_s16__decode_mid_side__scalar(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#endif + } +} + + +#if 0 +static DRFLAC_INLINE void drflac_read_pcm_frames_s16__decode_independent_stereo__reference(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int16* pOutputSamples) +{ + for (drflac_uint64 i = 0; i < frameCount; ++i) { + pOutputSamples[i*2+0] = (drflac_int16)((drflac_int32)((drflac_uint32)pInputSamples0[i] << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample)) >> 16); + pOutputSamples[i*2+1] = (drflac_int16)((drflac_int32)((drflac_uint32)pInputSamples1[i] << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample)) >> 16); + } +} +#endif + +static DRFLAC_INLINE void drflac_read_pcm_frames_s16__decode_independent_stereo__scalar(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int16* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + + for (i = 0; i < frameCount4; ++i) { + drflac_uint32 tempL0 = pInputSamples0U32[i*4+0] << shift0; + drflac_uint32 tempL1 = pInputSamples0U32[i*4+1] << shift0; + drflac_uint32 tempL2 = pInputSamples0U32[i*4+2] << shift0; + drflac_uint32 tempL3 = pInputSamples0U32[i*4+3] << shift0; + + drflac_uint32 tempR0 = pInputSamples1U32[i*4+0] << shift1; + drflac_uint32 tempR1 = pInputSamples1U32[i*4+1] << shift1; + drflac_uint32 tempR2 = pInputSamples1U32[i*4+2] << shift1; + drflac_uint32 tempR3 = pInputSamples1U32[i*4+3] << shift1; + + tempL0 >>= 16; + tempL1 >>= 16; + tempL2 >>= 16; + tempL3 >>= 16; + + tempR0 >>= 16; + tempR1 >>= 16; + tempR2 >>= 16; + tempR3 >>= 16; + + pOutputSamples[i*8+0] = (drflac_int16)tempL0; + pOutputSamples[i*8+1] = (drflac_int16)tempR0; + pOutputSamples[i*8+2] = (drflac_int16)tempL1; + pOutputSamples[i*8+3] = (drflac_int16)tempR1; + pOutputSamples[i*8+4] = (drflac_int16)tempL2; + pOutputSamples[i*8+5] = (drflac_int16)tempR2; + pOutputSamples[i*8+6] = (drflac_int16)tempL3; + pOutputSamples[i*8+7] = (drflac_int16)tempR3; + } + + for (i = (frameCount4 << 2); i < frameCount; ++i) { + pOutputSamples[i*2+0] = (drflac_int16)((pInputSamples0U32[i] << shift0) >> 16); + pOutputSamples[i*2+1] = (drflac_int16)((pInputSamples1U32[i] << shift1) >> 16); + } +} + +#if defined(DRFLAC_SUPPORT_SSE2) +static DRFLAC_INLINE void drflac_read_pcm_frames_s16__decode_independent_stereo__sse2(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int16* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + + for (i = 0; i < frameCount4; ++i) { + __m128i left = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples0 + i), shift0); + __m128i right = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples1 + i), shift1); + + left = _mm_srai_epi32(left, 16); + right = _mm_srai_epi32(right, 16); + + /* At this point we have results. We can now pack and interleave these into a single __m128i object and then store the in the output buffer. */ + _mm_storeu_si128((__m128i*)(pOutputSamples + i*8), drflac__mm_packs_interleaved_epi32(left, right)); + } + + for (i = (frameCount4 << 2); i < frameCount; ++i) { + pOutputSamples[i*2+0] = (drflac_int16)((pInputSamples0U32[i] << shift0) >> 16); + pOutputSamples[i*2+1] = (drflac_int16)((pInputSamples1U32[i] << shift1) >> 16); + } +} +#endif + +#if defined(DRFLAC_SUPPORT_NEON) +static DRFLAC_INLINE void drflac_read_pcm_frames_s16__decode_independent_stereo__neon(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int16* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + + int32x4_t shift0_4 = vdupq_n_s32(shift0); + int32x4_t shift1_4 = vdupq_n_s32(shift1); + + for (i = 0; i < frameCount4; ++i) { + int32x4_t left; + int32x4_t right; + + left = vreinterpretq_s32_u32(vshlq_u32(vld1q_u32(pInputSamples0U32 + i*4), shift0_4)); + right = vreinterpretq_s32_u32(vshlq_u32(vld1q_u32(pInputSamples1U32 + i*4), shift1_4)); + + left = vshrq_n_s32(left, 16); + right = vshrq_n_s32(right, 16); + + drflac__vst2q_s16(pOutputSamples + i*8, vzip_s16(vmovn_s32(left), vmovn_s32(right))); + } + + for (i = (frameCount4 << 2); i < frameCount; ++i) { + pOutputSamples[i*2+0] = (drflac_int16)((pInputSamples0U32[i] << shift0) >> 16); + pOutputSamples[i*2+1] = (drflac_int16)((pInputSamples1U32[i] << shift1) >> 16); + } +} +#endif + +static DRFLAC_INLINE void drflac_read_pcm_frames_s16__decode_independent_stereo(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int16* pOutputSamples) +{ +#if defined(DRFLAC_SUPPORT_SSE2) + if (drflac__gIsSSE2Supported && pFlac->bitsPerSample <= 24) { + drflac_read_pcm_frames_s16__decode_independent_stereo__sse2(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + } else +#elif defined(DRFLAC_SUPPORT_NEON) + if (drflac__gIsNEONSupported && pFlac->bitsPerSample <= 24) { + drflac_read_pcm_frames_s16__decode_independent_stereo__neon(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + } else +#endif + { + /* Scalar fallback. */ +#if 0 + drflac_read_pcm_frames_s16__decode_independent_stereo__reference(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#else + drflac_read_pcm_frames_s16__decode_independent_stereo__scalar(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#endif + } +} + +DRFLAC_API drflac_uint64 drflac_read_pcm_frames_s16(drflac* pFlac, drflac_uint64 framesToRead, drflac_int16* pBufferOut) +{ + drflac_uint64 framesRead; + drflac_uint32 unusedBitsPerSample; + + if (pFlac == NULL || framesToRead == 0) { + return 0; + } + + if (pBufferOut == NULL) { + return drflac__seek_forward_by_pcm_frames(pFlac, framesToRead); + } + + DRFLAC_ASSERT(pFlac->bitsPerSample <= 32); + unusedBitsPerSample = 32 - pFlac->bitsPerSample; + + framesRead = 0; + while (framesToRead > 0) { + /* If we've run out of samples in this frame, go to the next. */ + if (pFlac->currentFLACFrame.pcmFramesRemaining == 0) { + if (!drflac__read_and_decode_next_flac_frame(pFlac)) { + break; /* Couldn't read the next frame, so just break from the loop and return. */ + } + } else { + unsigned int channelCount = drflac__get_channel_count_from_channel_assignment(pFlac->currentFLACFrame.header.channelAssignment); + drflac_uint64 iFirstPCMFrame = pFlac->currentFLACFrame.header.blockSizeInPCMFrames - pFlac->currentFLACFrame.pcmFramesRemaining; + drflac_uint64 frameCountThisIteration = framesToRead; + + if (frameCountThisIteration > pFlac->currentFLACFrame.pcmFramesRemaining) { + frameCountThisIteration = pFlac->currentFLACFrame.pcmFramesRemaining; + } + + if (channelCount == 2) { + const drflac_int32* pDecodedSamples0 = pFlac->currentFLACFrame.subframes[0].pSamplesS32 + iFirstPCMFrame; + const drflac_int32* pDecodedSamples1 = pFlac->currentFLACFrame.subframes[1].pSamplesS32 + iFirstPCMFrame; + + switch (pFlac->currentFLACFrame.header.channelAssignment) + { + case DRFLAC_CHANNEL_ASSIGNMENT_LEFT_SIDE: + { + drflac_read_pcm_frames_s16__decode_left_side(pFlac, frameCountThisIteration, unusedBitsPerSample, pDecodedSamples0, pDecodedSamples1, pBufferOut); + } break; + + case DRFLAC_CHANNEL_ASSIGNMENT_RIGHT_SIDE: + { + drflac_read_pcm_frames_s16__decode_right_side(pFlac, frameCountThisIteration, unusedBitsPerSample, pDecodedSamples0, pDecodedSamples1, pBufferOut); + } break; + + case DRFLAC_CHANNEL_ASSIGNMENT_MID_SIDE: + { + drflac_read_pcm_frames_s16__decode_mid_side(pFlac, frameCountThisIteration, unusedBitsPerSample, pDecodedSamples0, pDecodedSamples1, pBufferOut); + } break; + + case DRFLAC_CHANNEL_ASSIGNMENT_INDEPENDENT: + default: + { + drflac_read_pcm_frames_s16__decode_independent_stereo(pFlac, frameCountThisIteration, unusedBitsPerSample, pDecodedSamples0, pDecodedSamples1, pBufferOut); + } break; + } + } else { + /* Generic interleaving. */ + drflac_uint64 i; + for (i = 0; i < frameCountThisIteration; ++i) { + unsigned int j; + for (j = 0; j < channelCount; ++j) { + drflac_int32 sampleS32 = (drflac_int32)((drflac_uint32)(pFlac->currentFLACFrame.subframes[j].pSamplesS32[iFirstPCMFrame + i]) << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[j].wastedBitsPerSample)); + pBufferOut[(i*channelCount)+j] = (drflac_int16)(sampleS32 >> 16); + } + } + } + + framesRead += frameCountThisIteration; + pBufferOut += frameCountThisIteration * channelCount; + framesToRead -= frameCountThisIteration; + pFlac->currentPCMFrame += frameCountThisIteration; + pFlac->currentFLACFrame.pcmFramesRemaining -= (drflac_uint32)frameCountThisIteration; + } + } + + return framesRead; +} + + +#if 0 +static DRFLAC_INLINE void drflac_read_pcm_frames_f32__decode_left_side__reference(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, float* pOutputSamples) +{ + drflac_uint64 i; + for (i = 0; i < frameCount; ++i) { + drflac_uint32 left = (drflac_uint32)pInputSamples0[i] << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample); + drflac_uint32 side = (drflac_uint32)pInputSamples1[i] << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample); + drflac_uint32 right = left - side; + + pOutputSamples[i*2+0] = (float)((drflac_int32)left / 2147483648.0); + pOutputSamples[i*2+1] = (float)((drflac_int32)right / 2147483648.0); + } +} +#endif + +static DRFLAC_INLINE void drflac_read_pcm_frames_f32__decode_left_side__scalar(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, float* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + + float factor = 1 / 2147483648.0; + + for (i = 0; i < frameCount4; ++i) { + drflac_uint32 left0 = pInputSamples0U32[i*4+0] << shift0; + drflac_uint32 left1 = pInputSamples0U32[i*4+1] << shift0; + drflac_uint32 left2 = pInputSamples0U32[i*4+2] << shift0; + drflac_uint32 left3 = pInputSamples0U32[i*4+3] << shift0; + + drflac_uint32 side0 = pInputSamples1U32[i*4+0] << shift1; + drflac_uint32 side1 = pInputSamples1U32[i*4+1] << shift1; + drflac_uint32 side2 = pInputSamples1U32[i*4+2] << shift1; + drflac_uint32 side3 = pInputSamples1U32[i*4+3] << shift1; + + drflac_uint32 right0 = left0 - side0; + drflac_uint32 right1 = left1 - side1; + drflac_uint32 right2 = left2 - side2; + drflac_uint32 right3 = left3 - side3; + + pOutputSamples[i*8+0] = (drflac_int32)left0 * factor; + pOutputSamples[i*8+1] = (drflac_int32)right0 * factor; + pOutputSamples[i*8+2] = (drflac_int32)left1 * factor; + pOutputSamples[i*8+3] = (drflac_int32)right1 * factor; + pOutputSamples[i*8+4] = (drflac_int32)left2 * factor; + pOutputSamples[i*8+5] = (drflac_int32)right2 * factor; + pOutputSamples[i*8+6] = (drflac_int32)left3 * factor; + pOutputSamples[i*8+7] = (drflac_int32)right3 * factor; + } + + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 left = pInputSamples0U32[i] << shift0; + drflac_uint32 side = pInputSamples1U32[i] << shift1; + drflac_uint32 right = left - side; + + pOutputSamples[i*2+0] = (drflac_int32)left * factor; + pOutputSamples[i*2+1] = (drflac_int32)right * factor; + } +} + +#if defined(DRFLAC_SUPPORT_SSE2) +static DRFLAC_INLINE void drflac_read_pcm_frames_f32__decode_left_side__sse2(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, float* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift0 = (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample) - 8; + drflac_uint32 shift1 = (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample) - 8; + __m128 factor; + + DRFLAC_ASSERT(pFlac->bitsPerSample <= 24); + + factor = _mm_set1_ps(1.0f / 8388608.0f); + + for (i = 0; i < frameCount4; ++i) { + __m128i left = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples0 + i), shift0); + __m128i side = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples1 + i), shift1); + __m128i right = _mm_sub_epi32(left, side); + __m128 leftf = _mm_mul_ps(_mm_cvtepi32_ps(left), factor); + __m128 rightf = _mm_mul_ps(_mm_cvtepi32_ps(right), factor); + + _mm_storeu_ps(pOutputSamples + i*8 + 0, _mm_unpacklo_ps(leftf, rightf)); + _mm_storeu_ps(pOutputSamples + i*8 + 4, _mm_unpackhi_ps(leftf, rightf)); + } + + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 left = pInputSamples0U32[i] << shift0; + drflac_uint32 side = pInputSamples1U32[i] << shift1; + drflac_uint32 right = left - side; + + pOutputSamples[i*2+0] = (drflac_int32)left / 8388608.0f; + pOutputSamples[i*2+1] = (drflac_int32)right / 8388608.0f; + } +} +#endif + +#if defined(DRFLAC_SUPPORT_NEON) +static DRFLAC_INLINE void drflac_read_pcm_frames_f32__decode_left_side__neon(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, float* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift0 = (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample) - 8; + drflac_uint32 shift1 = (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample) - 8; + float32x4_t factor4; + int32x4_t shift0_4; + int32x4_t shift1_4; + + DRFLAC_ASSERT(pFlac->bitsPerSample <= 24); + + factor4 = vdupq_n_f32(1.0f / 8388608.0f); + shift0_4 = vdupq_n_s32(shift0); + shift1_4 = vdupq_n_s32(shift1); + + for (i = 0; i < frameCount4; ++i) { + uint32x4_t left; + uint32x4_t side; + uint32x4_t right; + float32x4_t leftf; + float32x4_t rightf; + + left = vshlq_u32(vld1q_u32(pInputSamples0U32 + i*4), shift0_4); + side = vshlq_u32(vld1q_u32(pInputSamples1U32 + i*4), shift1_4); + right = vsubq_u32(left, side); + leftf = vmulq_f32(vcvtq_f32_s32(vreinterpretq_s32_u32(left)), factor4); + rightf = vmulq_f32(vcvtq_f32_s32(vreinterpretq_s32_u32(right)), factor4); + + drflac__vst2q_f32(pOutputSamples + i*8, vzipq_f32(leftf, rightf)); + } + + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 left = pInputSamples0U32[i] << shift0; + drflac_uint32 side = pInputSamples1U32[i] << shift1; + drflac_uint32 right = left - side; + + pOutputSamples[i*2+0] = (drflac_int32)left / 8388608.0f; + pOutputSamples[i*2+1] = (drflac_int32)right / 8388608.0f; + } +} +#endif + +static DRFLAC_INLINE void drflac_read_pcm_frames_f32__decode_left_side(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, float* pOutputSamples) +{ +#if defined(DRFLAC_SUPPORT_SSE2) + if (drflac__gIsSSE2Supported && pFlac->bitsPerSample <= 24) { + drflac_read_pcm_frames_f32__decode_left_side__sse2(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + } else +#elif defined(DRFLAC_SUPPORT_NEON) + if (drflac__gIsNEONSupported && pFlac->bitsPerSample <= 24) { + drflac_read_pcm_frames_f32__decode_left_side__neon(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + } else +#endif + { + /* Scalar fallback. */ +#if 0 + drflac_read_pcm_frames_f32__decode_left_side__reference(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#else + drflac_read_pcm_frames_f32__decode_left_side__scalar(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#endif + } +} + + +#if 0 +static DRFLAC_INLINE void drflac_read_pcm_frames_f32__decode_right_side__reference(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, float* pOutputSamples) +{ + drflac_uint64 i; + for (i = 0; i < frameCount; ++i) { + drflac_uint32 side = (drflac_uint32)pInputSamples0[i] << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample); + drflac_uint32 right = (drflac_uint32)pInputSamples1[i] << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample); + drflac_uint32 left = right + side; + + pOutputSamples[i*2+0] = (float)((drflac_int32)left / 2147483648.0); + pOutputSamples[i*2+1] = (float)((drflac_int32)right / 2147483648.0); + } +} +#endif + +static DRFLAC_INLINE void drflac_read_pcm_frames_f32__decode_right_side__scalar(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, float* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + float factor = 1 / 2147483648.0; + + for (i = 0; i < frameCount4; ++i) { + drflac_uint32 side0 = pInputSamples0U32[i*4+0] << shift0; + drflac_uint32 side1 = pInputSamples0U32[i*4+1] << shift0; + drflac_uint32 side2 = pInputSamples0U32[i*4+2] << shift0; + drflac_uint32 side3 = pInputSamples0U32[i*4+3] << shift0; + + drflac_uint32 right0 = pInputSamples1U32[i*4+0] << shift1; + drflac_uint32 right1 = pInputSamples1U32[i*4+1] << shift1; + drflac_uint32 right2 = pInputSamples1U32[i*4+2] << shift1; + drflac_uint32 right3 = pInputSamples1U32[i*4+3] << shift1; + + drflac_uint32 left0 = right0 + side0; + drflac_uint32 left1 = right1 + side1; + drflac_uint32 left2 = right2 + side2; + drflac_uint32 left3 = right3 + side3; + + pOutputSamples[i*8+0] = (drflac_int32)left0 * factor; + pOutputSamples[i*8+1] = (drflac_int32)right0 * factor; + pOutputSamples[i*8+2] = (drflac_int32)left1 * factor; + pOutputSamples[i*8+3] = (drflac_int32)right1 * factor; + pOutputSamples[i*8+4] = (drflac_int32)left2 * factor; + pOutputSamples[i*8+5] = (drflac_int32)right2 * factor; + pOutputSamples[i*8+6] = (drflac_int32)left3 * factor; + pOutputSamples[i*8+7] = (drflac_int32)right3 * factor; + } + + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 side = pInputSamples0U32[i] << shift0; + drflac_uint32 right = pInputSamples1U32[i] << shift1; + drflac_uint32 left = right + side; + + pOutputSamples[i*2+0] = (drflac_int32)left * factor; + pOutputSamples[i*2+1] = (drflac_int32)right * factor; + } +} + +#if defined(DRFLAC_SUPPORT_SSE2) +static DRFLAC_INLINE void drflac_read_pcm_frames_f32__decode_right_side__sse2(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, float* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift0 = (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample) - 8; + drflac_uint32 shift1 = (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample) - 8; + __m128 factor; + + DRFLAC_ASSERT(pFlac->bitsPerSample <= 24); + + factor = _mm_set1_ps(1.0f / 8388608.0f); + + for (i = 0; i < frameCount4; ++i) { + __m128i side = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples0 + i), shift0); + __m128i right = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples1 + i), shift1); + __m128i left = _mm_add_epi32(right, side); + __m128 leftf = _mm_mul_ps(_mm_cvtepi32_ps(left), factor); + __m128 rightf = _mm_mul_ps(_mm_cvtepi32_ps(right), factor); + + _mm_storeu_ps(pOutputSamples + i*8 + 0, _mm_unpacklo_ps(leftf, rightf)); + _mm_storeu_ps(pOutputSamples + i*8 + 4, _mm_unpackhi_ps(leftf, rightf)); + } + + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 side = pInputSamples0U32[i] << shift0; + drflac_uint32 right = pInputSamples1U32[i] << shift1; + drflac_uint32 left = right + side; + + pOutputSamples[i*2+0] = (drflac_int32)left / 8388608.0f; + pOutputSamples[i*2+1] = (drflac_int32)right / 8388608.0f; + } +} +#endif + +#if defined(DRFLAC_SUPPORT_NEON) +static DRFLAC_INLINE void drflac_read_pcm_frames_f32__decode_right_side__neon(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, float* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift0 = (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample) - 8; + drflac_uint32 shift1 = (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample) - 8; + float32x4_t factor4; + int32x4_t shift0_4; + int32x4_t shift1_4; + + DRFLAC_ASSERT(pFlac->bitsPerSample <= 24); + + factor4 = vdupq_n_f32(1.0f / 8388608.0f); + shift0_4 = vdupq_n_s32(shift0); + shift1_4 = vdupq_n_s32(shift1); + + for (i = 0; i < frameCount4; ++i) { + uint32x4_t side; + uint32x4_t right; + uint32x4_t left; + float32x4_t leftf; + float32x4_t rightf; + + side = vshlq_u32(vld1q_u32(pInputSamples0U32 + i*4), shift0_4); + right = vshlq_u32(vld1q_u32(pInputSamples1U32 + i*4), shift1_4); + left = vaddq_u32(right, side); + leftf = vmulq_f32(vcvtq_f32_s32(vreinterpretq_s32_u32(left)), factor4); + rightf = vmulq_f32(vcvtq_f32_s32(vreinterpretq_s32_u32(right)), factor4); + + drflac__vst2q_f32(pOutputSamples + i*8, vzipq_f32(leftf, rightf)); + } + + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 side = pInputSamples0U32[i] << shift0; + drflac_uint32 right = pInputSamples1U32[i] << shift1; + drflac_uint32 left = right + side; + + pOutputSamples[i*2+0] = (drflac_int32)left / 8388608.0f; + pOutputSamples[i*2+1] = (drflac_int32)right / 8388608.0f; + } +} +#endif + +static DRFLAC_INLINE void drflac_read_pcm_frames_f32__decode_right_side(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, float* pOutputSamples) +{ +#if defined(DRFLAC_SUPPORT_SSE2) + if (drflac__gIsSSE2Supported && pFlac->bitsPerSample <= 24) { + drflac_read_pcm_frames_f32__decode_right_side__sse2(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + } else +#elif defined(DRFLAC_SUPPORT_NEON) + if (drflac__gIsNEONSupported && pFlac->bitsPerSample <= 24) { + drflac_read_pcm_frames_f32__decode_right_side__neon(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + } else +#endif + { + /* Scalar fallback. */ +#if 0 + drflac_read_pcm_frames_f32__decode_right_side__reference(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#else + drflac_read_pcm_frames_f32__decode_right_side__scalar(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#endif + } +} + + +#if 0 +static DRFLAC_INLINE void drflac_read_pcm_frames_f32__decode_mid_side__reference(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, float* pOutputSamples) +{ + for (drflac_uint64 i = 0; i < frameCount; ++i) { + drflac_uint32 mid = (drflac_uint32)pInputSamples0[i] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 side = (drflac_uint32)pInputSamples1[i] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + + mid = (mid << 1) | (side & 0x01); + + pOutputSamples[i*2+0] = (float)((((drflac_int32)(mid + side) >> 1) << (unusedBitsPerSample)) / 2147483648.0); + pOutputSamples[i*2+1] = (float)((((drflac_int32)(mid - side) >> 1) << (unusedBitsPerSample)) / 2147483648.0); + } +} +#endif + +static DRFLAC_INLINE void drflac_read_pcm_frames_f32__decode_mid_side__scalar(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, float* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift = unusedBitsPerSample; + float factor = 1 / 2147483648.0; + + if (shift > 0) { + shift -= 1; + for (i = 0; i < frameCount4; ++i) { + drflac_uint32 temp0L; + drflac_uint32 temp1L; + drflac_uint32 temp2L; + drflac_uint32 temp3L; + drflac_uint32 temp0R; + drflac_uint32 temp1R; + drflac_uint32 temp2R; + drflac_uint32 temp3R; + + drflac_uint32 mid0 = pInputSamples0U32[i*4+0] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 mid1 = pInputSamples0U32[i*4+1] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 mid2 = pInputSamples0U32[i*4+2] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 mid3 = pInputSamples0U32[i*4+3] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + + drflac_uint32 side0 = pInputSamples1U32[i*4+0] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + drflac_uint32 side1 = pInputSamples1U32[i*4+1] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + drflac_uint32 side2 = pInputSamples1U32[i*4+2] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + drflac_uint32 side3 = pInputSamples1U32[i*4+3] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + + mid0 = (mid0 << 1) | (side0 & 0x01); + mid1 = (mid1 << 1) | (side1 & 0x01); + mid2 = (mid2 << 1) | (side2 & 0x01); + mid3 = (mid3 << 1) | (side3 & 0x01); + + temp0L = (mid0 + side0) << shift; + temp1L = (mid1 + side1) << shift; + temp2L = (mid2 + side2) << shift; + temp3L = (mid3 + side3) << shift; + + temp0R = (mid0 - side0) << shift; + temp1R = (mid1 - side1) << shift; + temp2R = (mid2 - side2) << shift; + temp3R = (mid3 - side3) << shift; + + pOutputSamples[i*8+0] = (drflac_int32)temp0L * factor; + pOutputSamples[i*8+1] = (drflac_int32)temp0R * factor; + pOutputSamples[i*8+2] = (drflac_int32)temp1L * factor; + pOutputSamples[i*8+3] = (drflac_int32)temp1R * factor; + pOutputSamples[i*8+4] = (drflac_int32)temp2L * factor; + pOutputSamples[i*8+5] = (drflac_int32)temp2R * factor; + pOutputSamples[i*8+6] = (drflac_int32)temp3L * factor; + pOutputSamples[i*8+7] = (drflac_int32)temp3R * factor; + } + } else { + for (i = 0; i < frameCount4; ++i) { + drflac_uint32 temp0L; + drflac_uint32 temp1L; + drflac_uint32 temp2L; + drflac_uint32 temp3L; + drflac_uint32 temp0R; + drflac_uint32 temp1R; + drflac_uint32 temp2R; + drflac_uint32 temp3R; + + drflac_uint32 mid0 = pInputSamples0U32[i*4+0] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 mid1 = pInputSamples0U32[i*4+1] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 mid2 = pInputSamples0U32[i*4+2] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 mid3 = pInputSamples0U32[i*4+3] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + + drflac_uint32 side0 = pInputSamples1U32[i*4+0] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + drflac_uint32 side1 = pInputSamples1U32[i*4+1] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + drflac_uint32 side2 = pInputSamples1U32[i*4+2] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + drflac_uint32 side3 = pInputSamples1U32[i*4+3] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + + mid0 = (mid0 << 1) | (side0 & 0x01); + mid1 = (mid1 << 1) | (side1 & 0x01); + mid2 = (mid2 << 1) | (side2 & 0x01); + mid3 = (mid3 << 1) | (side3 & 0x01); + + temp0L = (drflac_uint32)((drflac_int32)(mid0 + side0) >> 1); + temp1L = (drflac_uint32)((drflac_int32)(mid1 + side1) >> 1); + temp2L = (drflac_uint32)((drflac_int32)(mid2 + side2) >> 1); + temp3L = (drflac_uint32)((drflac_int32)(mid3 + side3) >> 1); + + temp0R = (drflac_uint32)((drflac_int32)(mid0 - side0) >> 1); + temp1R = (drflac_uint32)((drflac_int32)(mid1 - side1) >> 1); + temp2R = (drflac_uint32)((drflac_int32)(mid2 - side2) >> 1); + temp3R = (drflac_uint32)((drflac_int32)(mid3 - side3) >> 1); + + pOutputSamples[i*8+0] = (drflac_int32)temp0L * factor; + pOutputSamples[i*8+1] = (drflac_int32)temp0R * factor; + pOutputSamples[i*8+2] = (drflac_int32)temp1L * factor; + pOutputSamples[i*8+3] = (drflac_int32)temp1R * factor; + pOutputSamples[i*8+4] = (drflac_int32)temp2L * factor; + pOutputSamples[i*8+5] = (drflac_int32)temp2R * factor; + pOutputSamples[i*8+6] = (drflac_int32)temp3L * factor; + pOutputSamples[i*8+7] = (drflac_int32)temp3R * factor; + } + } + + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 mid = pInputSamples0U32[i] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 side = pInputSamples1U32[i] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + + mid = (mid << 1) | (side & 0x01); + + pOutputSamples[i*2+0] = (drflac_int32)((drflac_uint32)((drflac_int32)(mid + side) >> 1) << unusedBitsPerSample) * factor; + pOutputSamples[i*2+1] = (drflac_int32)((drflac_uint32)((drflac_int32)(mid - side) >> 1) << unusedBitsPerSample) * factor; + } +} + +#if defined(DRFLAC_SUPPORT_SSE2) +static DRFLAC_INLINE void drflac_read_pcm_frames_f32__decode_mid_side__sse2(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, float* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift = unusedBitsPerSample - 8; + float factor; + __m128 factor128; + + DRFLAC_ASSERT(pFlac->bitsPerSample <= 24); + + factor = 1.0f / 8388608.0f; + factor128 = _mm_set1_ps(factor); + + if (shift == 0) { + for (i = 0; i < frameCount4; ++i) { + __m128i mid; + __m128i side; + __m128i tempL; + __m128i tempR; + __m128 leftf; + __m128 rightf; + + mid = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples0 + i), pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample); + side = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples1 + i), pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample); + + mid = _mm_or_si128(_mm_slli_epi32(mid, 1), _mm_and_si128(side, _mm_set1_epi32(0x01))); + + tempL = _mm_srai_epi32(_mm_add_epi32(mid, side), 1); + tempR = _mm_srai_epi32(_mm_sub_epi32(mid, side), 1); + + leftf = _mm_mul_ps(_mm_cvtepi32_ps(tempL), factor128); + rightf = _mm_mul_ps(_mm_cvtepi32_ps(tempR), factor128); + + _mm_storeu_ps(pOutputSamples + i*8 + 0, _mm_unpacklo_ps(leftf, rightf)); + _mm_storeu_ps(pOutputSamples + i*8 + 4, _mm_unpackhi_ps(leftf, rightf)); + } + + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 mid = pInputSamples0U32[i] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 side = pInputSamples1U32[i] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + + mid = (mid << 1) | (side & 0x01); + + pOutputSamples[i*2+0] = ((drflac_int32)(mid + side) >> 1) * factor; + pOutputSamples[i*2+1] = ((drflac_int32)(mid - side) >> 1) * factor; + } + } else { + shift -= 1; + for (i = 0; i < frameCount4; ++i) { + __m128i mid; + __m128i side; + __m128i tempL; + __m128i tempR; + __m128 leftf; + __m128 rightf; + + mid = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples0 + i), pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample); + side = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples1 + i), pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample); + + mid = _mm_or_si128(_mm_slli_epi32(mid, 1), _mm_and_si128(side, _mm_set1_epi32(0x01))); + + tempL = _mm_slli_epi32(_mm_add_epi32(mid, side), shift); + tempR = _mm_slli_epi32(_mm_sub_epi32(mid, side), shift); + + leftf = _mm_mul_ps(_mm_cvtepi32_ps(tempL), factor128); + rightf = _mm_mul_ps(_mm_cvtepi32_ps(tempR), factor128); + + _mm_storeu_ps(pOutputSamples + i*8 + 0, _mm_unpacklo_ps(leftf, rightf)); + _mm_storeu_ps(pOutputSamples + i*8 + 4, _mm_unpackhi_ps(leftf, rightf)); + } + + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 mid = pInputSamples0U32[i] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 side = pInputSamples1U32[i] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + + mid = (mid << 1) | (side & 0x01); + + pOutputSamples[i*2+0] = (drflac_int32)((mid + side) << shift) * factor; + pOutputSamples[i*2+1] = (drflac_int32)((mid - side) << shift) * factor; + } + } +} +#endif + +#if defined(DRFLAC_SUPPORT_NEON) +static DRFLAC_INLINE void drflac_read_pcm_frames_f32__decode_mid_side__neon(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, float* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift = unusedBitsPerSample - 8; + float factor; + float32x4_t factor4; + int32x4_t shift4; + int32x4_t wbps0_4; /* Wasted Bits Per Sample */ + int32x4_t wbps1_4; /* Wasted Bits Per Sample */ + + DRFLAC_ASSERT(pFlac->bitsPerSample <= 24); + + factor = 1.0f / 8388608.0f; + factor4 = vdupq_n_f32(factor); + wbps0_4 = vdupq_n_s32(pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample); + wbps1_4 = vdupq_n_s32(pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample); + + if (shift == 0) { + for (i = 0; i < frameCount4; ++i) { + int32x4_t lefti; + int32x4_t righti; + float32x4_t leftf; + float32x4_t rightf; + + uint32x4_t mid = vshlq_u32(vld1q_u32(pInputSamples0U32 + i*4), wbps0_4); + uint32x4_t side = vshlq_u32(vld1q_u32(pInputSamples1U32 + i*4), wbps1_4); + + mid = vorrq_u32(vshlq_n_u32(mid, 1), vandq_u32(side, vdupq_n_u32(1))); + + lefti = vshrq_n_s32(vreinterpretq_s32_u32(vaddq_u32(mid, side)), 1); + righti = vshrq_n_s32(vreinterpretq_s32_u32(vsubq_u32(mid, side)), 1); + + leftf = vmulq_f32(vcvtq_f32_s32(lefti), factor4); + rightf = vmulq_f32(vcvtq_f32_s32(righti), factor4); + + drflac__vst2q_f32(pOutputSamples + i*8, vzipq_f32(leftf, rightf)); + } + + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 mid = pInputSamples0U32[i] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 side = pInputSamples1U32[i] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + + mid = (mid << 1) | (side & 0x01); + + pOutputSamples[i*2+0] = ((drflac_int32)(mid + side) >> 1) * factor; + pOutputSamples[i*2+1] = ((drflac_int32)(mid - side) >> 1) * factor; + } + } else { + shift -= 1; + shift4 = vdupq_n_s32(shift); + for (i = 0; i < frameCount4; ++i) { + uint32x4_t mid; + uint32x4_t side; + int32x4_t lefti; + int32x4_t righti; + float32x4_t leftf; + float32x4_t rightf; + + mid = vshlq_u32(vld1q_u32(pInputSamples0U32 + i*4), wbps0_4); + side = vshlq_u32(vld1q_u32(pInputSamples1U32 + i*4), wbps1_4); + + mid = vorrq_u32(vshlq_n_u32(mid, 1), vandq_u32(side, vdupq_n_u32(1))); + + lefti = vreinterpretq_s32_u32(vshlq_u32(vaddq_u32(mid, side), shift4)); + righti = vreinterpretq_s32_u32(vshlq_u32(vsubq_u32(mid, side), shift4)); + + leftf = vmulq_f32(vcvtq_f32_s32(lefti), factor4); + rightf = vmulq_f32(vcvtq_f32_s32(righti), factor4); + + drflac__vst2q_f32(pOutputSamples + i*8, vzipq_f32(leftf, rightf)); + } + + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 mid = pInputSamples0U32[i] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 side = pInputSamples1U32[i] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + + mid = (mid << 1) | (side & 0x01); + + pOutputSamples[i*2+0] = (drflac_int32)((mid + side) << shift) * factor; + pOutputSamples[i*2+1] = (drflac_int32)((mid - side) << shift) * factor; + } + } +} +#endif + +static DRFLAC_INLINE void drflac_read_pcm_frames_f32__decode_mid_side(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, float* pOutputSamples) +{ +#if defined(DRFLAC_SUPPORT_SSE2) + if (drflac__gIsSSE2Supported && pFlac->bitsPerSample <= 24) { + drflac_read_pcm_frames_f32__decode_mid_side__sse2(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + } else +#elif defined(DRFLAC_SUPPORT_NEON) + if (drflac__gIsNEONSupported && pFlac->bitsPerSample <= 24) { + drflac_read_pcm_frames_f32__decode_mid_side__neon(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + } else +#endif + { + /* Scalar fallback. */ +#if 0 + drflac_read_pcm_frames_f32__decode_mid_side__reference(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#else + drflac_read_pcm_frames_f32__decode_mid_side__scalar(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#endif + } +} + +#if 0 +static DRFLAC_INLINE void drflac_read_pcm_frames_f32__decode_independent_stereo__reference(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, float* pOutputSamples) +{ + for (drflac_uint64 i = 0; i < frameCount; ++i) { + pOutputSamples[i*2+0] = (float)((drflac_int32)((drflac_uint32)pInputSamples0[i] << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample)) / 2147483648.0); + pOutputSamples[i*2+1] = (float)((drflac_int32)((drflac_uint32)pInputSamples1[i] << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample)) / 2147483648.0); + } +} +#endif + +static DRFLAC_INLINE void drflac_read_pcm_frames_f32__decode_independent_stereo__scalar(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, float* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + float factor = 1 / 2147483648.0; + + for (i = 0; i < frameCount4; ++i) { + drflac_uint32 tempL0 = pInputSamples0U32[i*4+0] << shift0; + drflac_uint32 tempL1 = pInputSamples0U32[i*4+1] << shift0; + drflac_uint32 tempL2 = pInputSamples0U32[i*4+2] << shift0; + drflac_uint32 tempL3 = pInputSamples0U32[i*4+3] << shift0; + + drflac_uint32 tempR0 = pInputSamples1U32[i*4+0] << shift1; + drflac_uint32 tempR1 = pInputSamples1U32[i*4+1] << shift1; + drflac_uint32 tempR2 = pInputSamples1U32[i*4+2] << shift1; + drflac_uint32 tempR3 = pInputSamples1U32[i*4+3] << shift1; + + pOutputSamples[i*8+0] = (drflac_int32)tempL0 * factor; + pOutputSamples[i*8+1] = (drflac_int32)tempR0 * factor; + pOutputSamples[i*8+2] = (drflac_int32)tempL1 * factor; + pOutputSamples[i*8+3] = (drflac_int32)tempR1 * factor; + pOutputSamples[i*8+4] = (drflac_int32)tempL2 * factor; + pOutputSamples[i*8+5] = (drflac_int32)tempR2 * factor; + pOutputSamples[i*8+6] = (drflac_int32)tempL3 * factor; + pOutputSamples[i*8+7] = (drflac_int32)tempR3 * factor; + } + + for (i = (frameCount4 << 2); i < frameCount; ++i) { + pOutputSamples[i*2+0] = (drflac_int32)(pInputSamples0U32[i] << shift0) * factor; + pOutputSamples[i*2+1] = (drflac_int32)(pInputSamples1U32[i] << shift1) * factor; + } +} + +#if defined(DRFLAC_SUPPORT_SSE2) +static DRFLAC_INLINE void drflac_read_pcm_frames_f32__decode_independent_stereo__sse2(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, float* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift0 = (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample) - 8; + drflac_uint32 shift1 = (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample) - 8; + + float factor = 1.0f / 8388608.0f; + __m128 factor128 = _mm_set1_ps(factor); + + for (i = 0; i < frameCount4; ++i) { + __m128i lefti; + __m128i righti; + __m128 leftf; + __m128 rightf; + + lefti = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples0 + i), shift0); + righti = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples1 + i), shift1); + + leftf = _mm_mul_ps(_mm_cvtepi32_ps(lefti), factor128); + rightf = _mm_mul_ps(_mm_cvtepi32_ps(righti), factor128); + + _mm_storeu_ps(pOutputSamples + i*8 + 0, _mm_unpacklo_ps(leftf, rightf)); + _mm_storeu_ps(pOutputSamples + i*8 + 4, _mm_unpackhi_ps(leftf, rightf)); + } + + for (i = (frameCount4 << 2); i < frameCount; ++i) { + pOutputSamples[i*2+0] = (drflac_int32)(pInputSamples0U32[i] << shift0) * factor; + pOutputSamples[i*2+1] = (drflac_int32)(pInputSamples1U32[i] << shift1) * factor; + } +} +#endif + +#if defined(DRFLAC_SUPPORT_NEON) +static DRFLAC_INLINE void drflac_read_pcm_frames_f32__decode_independent_stereo__neon(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, float* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift0 = (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample) - 8; + drflac_uint32 shift1 = (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample) - 8; + + float factor = 1.0f / 8388608.0f; + float32x4_t factor4 = vdupq_n_f32(factor); + int32x4_t shift0_4 = vdupq_n_s32(shift0); + int32x4_t shift1_4 = vdupq_n_s32(shift1); + + for (i = 0; i < frameCount4; ++i) { + int32x4_t lefti; + int32x4_t righti; + float32x4_t leftf; + float32x4_t rightf; + + lefti = vreinterpretq_s32_u32(vshlq_u32(vld1q_u32(pInputSamples0U32 + i*4), shift0_4)); + righti = vreinterpretq_s32_u32(vshlq_u32(vld1q_u32(pInputSamples1U32 + i*4), shift1_4)); + + leftf = vmulq_f32(vcvtq_f32_s32(lefti), factor4); + rightf = vmulq_f32(vcvtq_f32_s32(righti), factor4); + + drflac__vst2q_f32(pOutputSamples + i*8, vzipq_f32(leftf, rightf)); + } + + for (i = (frameCount4 << 2); i < frameCount; ++i) { + pOutputSamples[i*2+0] = (drflac_int32)(pInputSamples0U32[i] << shift0) * factor; + pOutputSamples[i*2+1] = (drflac_int32)(pInputSamples1U32[i] << shift1) * factor; + } +} +#endif + +static DRFLAC_INLINE void drflac_read_pcm_frames_f32__decode_independent_stereo(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, float* pOutputSamples) +{ +#if defined(DRFLAC_SUPPORT_SSE2) + if (drflac__gIsSSE2Supported && pFlac->bitsPerSample <= 24) { + drflac_read_pcm_frames_f32__decode_independent_stereo__sse2(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + } else +#elif defined(DRFLAC_SUPPORT_NEON) + if (drflac__gIsNEONSupported && pFlac->bitsPerSample <= 24) { + drflac_read_pcm_frames_f32__decode_independent_stereo__neon(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + } else +#endif + { + /* Scalar fallback. */ +#if 0 + drflac_read_pcm_frames_f32__decode_independent_stereo__reference(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#else + drflac_read_pcm_frames_f32__decode_independent_stereo__scalar(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#endif + } +} + +DRFLAC_API drflac_uint64 drflac_read_pcm_frames_f32(drflac* pFlac, drflac_uint64 framesToRead, float* pBufferOut) +{ + drflac_uint64 framesRead; + drflac_uint32 unusedBitsPerSample; + + if (pFlac == NULL || framesToRead == 0) { + return 0; + } + + if (pBufferOut == NULL) { + return drflac__seek_forward_by_pcm_frames(pFlac, framesToRead); + } + + DRFLAC_ASSERT(pFlac->bitsPerSample <= 32); + unusedBitsPerSample = 32 - pFlac->bitsPerSample; + + framesRead = 0; + while (framesToRead > 0) { + /* If we've run out of samples in this frame, go to the next. */ + if (pFlac->currentFLACFrame.pcmFramesRemaining == 0) { + if (!drflac__read_and_decode_next_flac_frame(pFlac)) { + break; /* Couldn't read the next frame, so just break from the loop and return. */ + } + } else { + unsigned int channelCount = drflac__get_channel_count_from_channel_assignment(pFlac->currentFLACFrame.header.channelAssignment); + drflac_uint64 iFirstPCMFrame = pFlac->currentFLACFrame.header.blockSizeInPCMFrames - pFlac->currentFLACFrame.pcmFramesRemaining; + drflac_uint64 frameCountThisIteration = framesToRead; + + if (frameCountThisIteration > pFlac->currentFLACFrame.pcmFramesRemaining) { + frameCountThisIteration = pFlac->currentFLACFrame.pcmFramesRemaining; + } + + if (channelCount == 2) { + const drflac_int32* pDecodedSamples0 = pFlac->currentFLACFrame.subframes[0].pSamplesS32 + iFirstPCMFrame; + const drflac_int32* pDecodedSamples1 = pFlac->currentFLACFrame.subframes[1].pSamplesS32 + iFirstPCMFrame; + + switch (pFlac->currentFLACFrame.header.channelAssignment) + { + case DRFLAC_CHANNEL_ASSIGNMENT_LEFT_SIDE: + { + drflac_read_pcm_frames_f32__decode_left_side(pFlac, frameCountThisIteration, unusedBitsPerSample, pDecodedSamples0, pDecodedSamples1, pBufferOut); + } break; + + case DRFLAC_CHANNEL_ASSIGNMENT_RIGHT_SIDE: + { + drflac_read_pcm_frames_f32__decode_right_side(pFlac, frameCountThisIteration, unusedBitsPerSample, pDecodedSamples0, pDecodedSamples1, pBufferOut); + } break; + + case DRFLAC_CHANNEL_ASSIGNMENT_MID_SIDE: + { + drflac_read_pcm_frames_f32__decode_mid_side(pFlac, frameCountThisIteration, unusedBitsPerSample, pDecodedSamples0, pDecodedSamples1, pBufferOut); + } break; + + case DRFLAC_CHANNEL_ASSIGNMENT_INDEPENDENT: + default: + { + drflac_read_pcm_frames_f32__decode_independent_stereo(pFlac, frameCountThisIteration, unusedBitsPerSample, pDecodedSamples0, pDecodedSamples1, pBufferOut); + } break; + } + } else { + /* Generic interleaving. */ + drflac_uint64 i; + for (i = 0; i < frameCountThisIteration; ++i) { + unsigned int j; + for (j = 0; j < channelCount; ++j) { + drflac_int32 sampleS32 = (drflac_int32)((drflac_uint32)(pFlac->currentFLACFrame.subframes[j].pSamplesS32[iFirstPCMFrame + i]) << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[j].wastedBitsPerSample)); + pBufferOut[(i*channelCount)+j] = (float)(sampleS32 / 2147483648.0); + } + } + } + + framesRead += frameCountThisIteration; + pBufferOut += frameCountThisIteration * channelCount; + framesToRead -= frameCountThisIteration; + pFlac->currentPCMFrame += frameCountThisIteration; + pFlac->currentFLACFrame.pcmFramesRemaining -= (unsigned int)frameCountThisIteration; + } + } + + return framesRead; +} + + +DRFLAC_API drflac_bool32 drflac_seek_to_pcm_frame(drflac* pFlac, drflac_uint64 pcmFrameIndex) +{ + if (pFlac == NULL) { + return DRFLAC_FALSE; + } + + /* Don't do anything if we're already on the seek point. */ + if (pFlac->currentPCMFrame == pcmFrameIndex) { + return DRFLAC_TRUE; + } + + /* + If we don't know where the first frame begins then we can't seek. This will happen when the STREAMINFO block was not present + when the decoder was opened. + */ + if (pFlac->firstFLACFramePosInBytes == 0) { + return DRFLAC_FALSE; + } + + if (pcmFrameIndex == 0) { + pFlac->currentPCMFrame = 0; + return drflac__seek_to_first_frame(pFlac); + } else { + drflac_bool32 wasSuccessful = DRFLAC_FALSE; + drflac_uint64 originalPCMFrame = pFlac->currentPCMFrame; + + /* Clamp the sample to the end. */ + if (pcmFrameIndex > pFlac->totalPCMFrameCount) { + pcmFrameIndex = pFlac->totalPCMFrameCount; + } + + /* If the target sample and the current sample are in the same frame we just move the position forward. */ + if (pcmFrameIndex > pFlac->currentPCMFrame) { + /* Forward. */ + drflac_uint32 offset = (drflac_uint32)(pcmFrameIndex - pFlac->currentPCMFrame); + if (pFlac->currentFLACFrame.pcmFramesRemaining > offset) { + pFlac->currentFLACFrame.pcmFramesRemaining -= offset; + pFlac->currentPCMFrame = pcmFrameIndex; + return DRFLAC_TRUE; + } + } else { + /* Backward. */ + drflac_uint32 offsetAbs = (drflac_uint32)(pFlac->currentPCMFrame - pcmFrameIndex); + drflac_uint32 currentFLACFramePCMFrameCount = pFlac->currentFLACFrame.header.blockSizeInPCMFrames; + drflac_uint32 currentFLACFramePCMFramesConsumed = currentFLACFramePCMFrameCount - pFlac->currentFLACFrame.pcmFramesRemaining; + if (currentFLACFramePCMFramesConsumed > offsetAbs) { + pFlac->currentFLACFrame.pcmFramesRemaining += offsetAbs; + pFlac->currentPCMFrame = pcmFrameIndex; + return DRFLAC_TRUE; + } + } + + /* + Different techniques depending on encapsulation. Using the native FLAC seektable with Ogg encapsulation is a bit awkward so + we'll instead use Ogg's natural seeking facility. + */ +#ifndef DR_FLAC_NO_OGG + if (pFlac->container == drflac_container_ogg) + { + wasSuccessful = drflac_ogg__seek_to_pcm_frame(pFlac, pcmFrameIndex); + } + else +#endif + { + /* First try seeking via the seek table. If this fails, fall back to a brute force seek which is much slower. */ + if (/*!wasSuccessful && */!pFlac->_noSeekTableSeek) { + wasSuccessful = drflac__seek_to_pcm_frame__seek_table(pFlac, pcmFrameIndex); + } + +#if !defined(DR_FLAC_NO_CRC) + /* Fall back to binary search if seek table seeking fails. This requires the length of the stream to be known. */ + if (!wasSuccessful && !pFlac->_noBinarySearchSeek && pFlac->totalPCMFrameCount > 0) { + wasSuccessful = drflac__seek_to_pcm_frame__binary_search(pFlac, pcmFrameIndex); + } +#endif + + /* Fall back to brute force if all else fails. */ + if (!wasSuccessful && !pFlac->_noBruteForceSeek) { + wasSuccessful = drflac__seek_to_pcm_frame__brute_force(pFlac, pcmFrameIndex); + } + } + + if (wasSuccessful) { + pFlac->currentPCMFrame = pcmFrameIndex; + } else { + /* Seek failed. Try putting the decoder back to it's original state. */ + if (drflac_seek_to_pcm_frame(pFlac, originalPCMFrame) == DRFLAC_FALSE) { + /* Failed to seek back to the original PCM frame. Fall back to 0. */ + drflac_seek_to_pcm_frame(pFlac, 0); + } + } + + return wasSuccessful; + } +} + + + +/* High Level APIs */ + +/* SIZE_MAX */ +#if defined(SIZE_MAX) + #define DRFLAC_SIZE_MAX SIZE_MAX +#else + #if defined(DRFLAC_64BIT) + #define DRFLAC_SIZE_MAX ((drflac_uint64)0xFFFFFFFFFFFFFFFF) + #else + #define DRFLAC_SIZE_MAX 0xFFFFFFFF + #endif +#endif +/* End SIZE_MAX */ + + +/* Using a macro as the definition of the drflac__full_decode_and_close_*() API family. Sue me. */ +#define DRFLAC_DEFINE_FULL_READ_AND_CLOSE(extension, type) \ +static type* drflac__full_read_and_close_ ## extension (drflac* pFlac, unsigned int* channelsOut, unsigned int* sampleRateOut, drflac_uint64* totalPCMFrameCountOut)\ +{ \ + type* pSampleData = NULL; \ + drflac_uint64 totalPCMFrameCount; \ + \ + DRFLAC_ASSERT(pFlac != NULL); \ + \ + totalPCMFrameCount = pFlac->totalPCMFrameCount; \ + \ + if (totalPCMFrameCount == 0) { \ + type buffer[4096]; \ + drflac_uint64 pcmFramesRead; \ + size_t sampleDataBufferSize = sizeof(buffer); \ + \ + pSampleData = (type*)drflac__malloc_from_callbacks(sampleDataBufferSize, &pFlac->allocationCallbacks); \ + if (pSampleData == NULL) { \ + goto on_error; \ + } \ + \ + while ((pcmFramesRead = (drflac_uint64)drflac_read_pcm_frames_##extension(pFlac, sizeof(buffer)/sizeof(buffer[0])/pFlac->channels, buffer)) > 0) { \ + if (((totalPCMFrameCount + pcmFramesRead) * pFlac->channels * sizeof(type)) > sampleDataBufferSize) { \ + type* pNewSampleData; \ + size_t newSampleDataBufferSize; \ + \ + newSampleDataBufferSize = sampleDataBufferSize * 2; \ + pNewSampleData = (type*)drflac__realloc_from_callbacks(pSampleData, newSampleDataBufferSize, sampleDataBufferSize, &pFlac->allocationCallbacks); \ + if (pNewSampleData == NULL) { \ + drflac__free_from_callbacks(pSampleData, &pFlac->allocationCallbacks); \ + goto on_error; \ + } \ + \ + sampleDataBufferSize = newSampleDataBufferSize; \ + pSampleData = pNewSampleData; \ + } \ + \ + DRFLAC_COPY_MEMORY(pSampleData + (totalPCMFrameCount*pFlac->channels), buffer, (size_t)(pcmFramesRead*pFlac->channels*sizeof(type))); \ + totalPCMFrameCount += pcmFramesRead; \ + } \ + \ + /* At this point everything should be decoded, but we just want to fill the unused part buffer with silence - need to \ + protect those ears from random noise! */ \ + DRFLAC_ZERO_MEMORY(pSampleData + (totalPCMFrameCount*pFlac->channels), (size_t)(sampleDataBufferSize - totalPCMFrameCount*pFlac->channels*sizeof(type))); \ + } else { \ + drflac_uint64 dataSize = totalPCMFrameCount*pFlac->channels*sizeof(type); \ + if (dataSize > (drflac_uint64)DRFLAC_SIZE_MAX) { \ + goto on_error; /* The decoded data is too big. */ \ + } \ + \ + pSampleData = (type*)drflac__malloc_from_callbacks((size_t)dataSize, &pFlac->allocationCallbacks); /* <-- Safe cast as per the check above. */ \ + if (pSampleData == NULL) { \ + goto on_error; \ + } \ + \ + totalPCMFrameCount = drflac_read_pcm_frames_##extension(pFlac, pFlac->totalPCMFrameCount, pSampleData); \ + } \ + \ + if (sampleRateOut) *sampleRateOut = pFlac->sampleRate; \ + if (channelsOut) *channelsOut = pFlac->channels; \ + if (totalPCMFrameCountOut) *totalPCMFrameCountOut = totalPCMFrameCount; \ + \ + drflac_close(pFlac); \ + return pSampleData; \ + \ +on_error: \ + drflac_close(pFlac); \ + return NULL; \ +} + +DRFLAC_DEFINE_FULL_READ_AND_CLOSE(s32, drflac_int32) +DRFLAC_DEFINE_FULL_READ_AND_CLOSE(s16, drflac_int16) +DRFLAC_DEFINE_FULL_READ_AND_CLOSE(f32, float) + +DRFLAC_API drflac_int32* drflac_open_and_read_pcm_frames_s32(drflac_read_proc onRead, drflac_seek_proc onSeek, void* pUserData, unsigned int* channelsOut, unsigned int* sampleRateOut, drflac_uint64* totalPCMFrameCountOut, const drflac_allocation_callbacks* pAllocationCallbacks) +{ + drflac* pFlac; + + if (channelsOut) { + *channelsOut = 0; + } + if (sampleRateOut) { + *sampleRateOut = 0; + } + if (totalPCMFrameCountOut) { + *totalPCMFrameCountOut = 0; + } + + pFlac = drflac_open(onRead, onSeek, pUserData, pAllocationCallbacks); + if (pFlac == NULL) { + return NULL; + } + + return drflac__full_read_and_close_s32(pFlac, channelsOut, sampleRateOut, totalPCMFrameCountOut); +} + +DRFLAC_API drflac_int16* drflac_open_and_read_pcm_frames_s16(drflac_read_proc onRead, drflac_seek_proc onSeek, void* pUserData, unsigned int* channelsOut, unsigned int* sampleRateOut, drflac_uint64* totalPCMFrameCountOut, const drflac_allocation_callbacks* pAllocationCallbacks) +{ + drflac* pFlac; + + if (channelsOut) { + *channelsOut = 0; + } + if (sampleRateOut) { + *sampleRateOut = 0; + } + if (totalPCMFrameCountOut) { + *totalPCMFrameCountOut = 0; + } + + pFlac = drflac_open(onRead, onSeek, pUserData, pAllocationCallbacks); + if (pFlac == NULL) { + return NULL; + } + + return drflac__full_read_and_close_s16(pFlac, channelsOut, sampleRateOut, totalPCMFrameCountOut); +} + +DRFLAC_API float* drflac_open_and_read_pcm_frames_f32(drflac_read_proc onRead, drflac_seek_proc onSeek, void* pUserData, unsigned int* channelsOut, unsigned int* sampleRateOut, drflac_uint64* totalPCMFrameCountOut, const drflac_allocation_callbacks* pAllocationCallbacks) +{ + drflac* pFlac; + + if (channelsOut) { + *channelsOut = 0; + } + if (sampleRateOut) { + *sampleRateOut = 0; + } + if (totalPCMFrameCountOut) { + *totalPCMFrameCountOut = 0; + } + + pFlac = drflac_open(onRead, onSeek, pUserData, pAllocationCallbacks); + if (pFlac == NULL) { + return NULL; + } + + return drflac__full_read_and_close_f32(pFlac, channelsOut, sampleRateOut, totalPCMFrameCountOut); +} + +#ifndef DR_FLAC_NO_STDIO +DRFLAC_API drflac_int32* drflac_open_file_and_read_pcm_frames_s32(const char* filename, unsigned int* channels, unsigned int* sampleRate, drflac_uint64* totalPCMFrameCount, const drflac_allocation_callbacks* pAllocationCallbacks) +{ + drflac* pFlac; + + if (sampleRate) { + *sampleRate = 0; + } + if (channels) { + *channels = 0; + } + if (totalPCMFrameCount) { + *totalPCMFrameCount = 0; + } + + pFlac = drflac_open_file(filename, pAllocationCallbacks); + if (pFlac == NULL) { + return NULL; + } + + return drflac__full_read_and_close_s32(pFlac, channels, sampleRate, totalPCMFrameCount); +} + +DRFLAC_API drflac_int16* drflac_open_file_and_read_pcm_frames_s16(const char* filename, unsigned int* channels, unsigned int* sampleRate, drflac_uint64* totalPCMFrameCount, const drflac_allocation_callbacks* pAllocationCallbacks) +{ + drflac* pFlac; + + if (sampleRate) { + *sampleRate = 0; + } + if (channels) { + *channels = 0; + } + if (totalPCMFrameCount) { + *totalPCMFrameCount = 0; + } + + pFlac = drflac_open_file(filename, pAllocationCallbacks); + if (pFlac == NULL) { + return NULL; + } + + return drflac__full_read_and_close_s16(pFlac, channels, sampleRate, totalPCMFrameCount); +} + +DRFLAC_API float* drflac_open_file_and_read_pcm_frames_f32(const char* filename, unsigned int* channels, unsigned int* sampleRate, drflac_uint64* totalPCMFrameCount, const drflac_allocation_callbacks* pAllocationCallbacks) +{ + drflac* pFlac; + + if (sampleRate) { + *sampleRate = 0; + } + if (channels) { + *channels = 0; + } + if (totalPCMFrameCount) { + *totalPCMFrameCount = 0; + } + + pFlac = drflac_open_file(filename, pAllocationCallbacks); + if (pFlac == NULL) { + return NULL; + } + + return drflac__full_read_and_close_f32(pFlac, channels, sampleRate, totalPCMFrameCount); +} +#endif + +DRFLAC_API drflac_int32* drflac_open_memory_and_read_pcm_frames_s32(const void* data, size_t dataSize, unsigned int* channels, unsigned int* sampleRate, drflac_uint64* totalPCMFrameCount, const drflac_allocation_callbacks* pAllocationCallbacks) +{ + drflac* pFlac; + + if (sampleRate) { + *sampleRate = 0; + } + if (channels) { + *channels = 0; + } + if (totalPCMFrameCount) { + *totalPCMFrameCount = 0; + } + + pFlac = drflac_open_memory(data, dataSize, pAllocationCallbacks); + if (pFlac == NULL) { + return NULL; + } + + return drflac__full_read_and_close_s32(pFlac, channels, sampleRate, totalPCMFrameCount); +} + +DRFLAC_API drflac_int16* drflac_open_memory_and_read_pcm_frames_s16(const void* data, size_t dataSize, unsigned int* channels, unsigned int* sampleRate, drflac_uint64* totalPCMFrameCount, const drflac_allocation_callbacks* pAllocationCallbacks) +{ + drflac* pFlac; + + if (sampleRate) { + *sampleRate = 0; + } + if (channels) { + *channels = 0; + } + if (totalPCMFrameCount) { + *totalPCMFrameCount = 0; + } + + pFlac = drflac_open_memory(data, dataSize, pAllocationCallbacks); + if (pFlac == NULL) { + return NULL; + } + + return drflac__full_read_and_close_s16(pFlac, channels, sampleRate, totalPCMFrameCount); +} + +DRFLAC_API float* drflac_open_memory_and_read_pcm_frames_f32(const void* data, size_t dataSize, unsigned int* channels, unsigned int* sampleRate, drflac_uint64* totalPCMFrameCount, const drflac_allocation_callbacks* pAllocationCallbacks) +{ + drflac* pFlac; + + if (sampleRate) { + *sampleRate = 0; + } + if (channels) { + *channels = 0; + } + if (totalPCMFrameCount) { + *totalPCMFrameCount = 0; + } + + pFlac = drflac_open_memory(data, dataSize, pAllocationCallbacks); + if (pFlac == NULL) { + return NULL; + } + + return drflac__full_read_and_close_f32(pFlac, channels, sampleRate, totalPCMFrameCount); +} + + +DRFLAC_API void drflac_free(void* p, const drflac_allocation_callbacks* pAllocationCallbacks) +{ + if (pAllocationCallbacks != NULL) { + drflac__free_from_callbacks(p, pAllocationCallbacks); + } else { + drflac__free_default(p, NULL); + } +} + + + + +DRFLAC_API void drflac_init_vorbis_comment_iterator(drflac_vorbis_comment_iterator* pIter, drflac_uint32 commentCount, const void* pComments) +{ + if (pIter == NULL) { + return; + } + + pIter->countRemaining = commentCount; + pIter->pRunningData = (const char*)pComments; +} + +DRFLAC_API const char* drflac_next_vorbis_comment(drflac_vorbis_comment_iterator* pIter, drflac_uint32* pCommentLengthOut) +{ + drflac_int32 length; + const char* pComment; + + /* Safety. */ + if (pCommentLengthOut) { + *pCommentLengthOut = 0; + } + + if (pIter == NULL || pIter->countRemaining == 0 || pIter->pRunningData == NULL) { + return NULL; + } + + length = drflac__le2host_32_ptr_unaligned(pIter->pRunningData); + pIter->pRunningData += 4; + + pComment = pIter->pRunningData; + pIter->pRunningData += length; + pIter->countRemaining -= 1; + + if (pCommentLengthOut) { + *pCommentLengthOut = length; + } + + return pComment; +} + + + + +DRFLAC_API void drflac_init_cuesheet_track_iterator(drflac_cuesheet_track_iterator* pIter, drflac_uint32 trackCount, const void* pTrackData) +{ + if (pIter == NULL) { + return; + } + + pIter->countRemaining = trackCount; + pIter->pRunningData = (const char*)pTrackData; +} + +DRFLAC_API drflac_bool32 drflac_next_cuesheet_track(drflac_cuesheet_track_iterator* pIter, drflac_cuesheet_track* pCuesheetTrack) +{ + drflac_cuesheet_track cuesheetTrack; + const char* pRunningData; + drflac_uint64 offsetHi; + drflac_uint64 offsetLo; + + if (pIter == NULL || pIter->countRemaining == 0 || pIter->pRunningData == NULL) { + return DRFLAC_FALSE; + } + + pRunningData = pIter->pRunningData; + + offsetHi = drflac__be2host_32(*(const drflac_uint32*)pRunningData); pRunningData += 4; + offsetLo = drflac__be2host_32(*(const drflac_uint32*)pRunningData); pRunningData += 4; + cuesheetTrack.offset = offsetLo | (offsetHi << 32); + cuesheetTrack.trackNumber = pRunningData[0]; pRunningData += 1; + DRFLAC_COPY_MEMORY(cuesheetTrack.ISRC, pRunningData, sizeof(cuesheetTrack.ISRC)); pRunningData += 12; + cuesheetTrack.isAudio = (pRunningData[0] & 0x80) != 0; + cuesheetTrack.preEmphasis = (pRunningData[0] & 0x40) != 0; pRunningData += 14; + cuesheetTrack.indexCount = pRunningData[0]; pRunningData += 1; + cuesheetTrack.pIndexPoints = (const drflac_cuesheet_track_index*)pRunningData; pRunningData += cuesheetTrack.indexCount * sizeof(drflac_cuesheet_track_index); + + pIter->pRunningData = pRunningData; + pIter->countRemaining -= 1; + + if (pCuesheetTrack) { + *pCuesheetTrack = cuesheetTrack; + } + + return DRFLAC_TRUE; +} + +#if defined(__clang__) || (defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))) + #pragma GCC diagnostic pop +#endif +#endif /* dr_flac_c */ +#endif /* DR_FLAC_IMPLEMENTATION */ + + +/* +REVISION HISTORY +================ +v0.12.42 - 2023-11-02 + - Fix build for ARMv6-M. + - Fix a compilation warning with GCC. + +v0.12.41 - 2023-06-17 + - Fix an incorrect date in revision history. No functional change. + +v0.12.40 - 2023-05-22 + - Minor code restructure. No functional change. + +v0.12.39 - 2022-09-17 + - Fix compilation with DJGPP. + - Fix compilation error with Visual Studio 2019 and the ARM build. + - Fix an error with SSE 4.1 detection. + - Add support for disabling wchar_t with DR_WAV_NO_WCHAR. + - Improve compatibility with compilers which lack support for explicit struct packing. + - Improve compatibility with low-end and embedded hardware by reducing the amount of stack + allocation when loading an Ogg encapsulated file. + +v0.12.38 - 2022-04-10 + - Fix compilation error on older versions of GCC. + +v0.12.37 - 2022-02-12 + - Improve ARM detection. + +v0.12.36 - 2022-02-07 + - Fix a compilation error with the ARM build. + +v0.12.35 - 2022-02-06 + - Fix a bug due to underestimating the amount of precision required for the prediction stage. + - Fix some bugs found from fuzz testing. + +v0.12.34 - 2022-01-07 + - Fix some misalignment bugs when reading metadata. + +v0.12.33 - 2021-12-22 + - Fix a bug with seeking when the seek table does not start at PCM frame 0. + +v0.12.32 - 2021-12-11 + - Fix a warning with Clang. + +v0.12.31 - 2021-08-16 + - Silence some warnings. + +v0.12.30 - 2021-07-31 + - Fix platform detection for ARM64. + +v0.12.29 - 2021-04-02 + - Fix a bug where the running PCM frame index is set to an invalid value when over-seeking. + - Fix a decoding error due to an incorrect validation check. + +v0.12.28 - 2021-02-21 + - Fix a warning due to referencing _MSC_VER when it is undefined. + +v0.12.27 - 2021-01-31 + - Fix a static analysis warning. + +v0.12.26 - 2021-01-17 + - Fix a compilation warning due to _BSD_SOURCE being deprecated. + +v0.12.25 - 2020-12-26 + - Update documentation. + +v0.12.24 - 2020-11-29 + - Fix ARM64/NEON detection when compiling with MSVC. + +v0.12.23 - 2020-11-21 + - Fix compilation with OpenWatcom. + +v0.12.22 - 2020-11-01 + - Fix an error with the previous release. + +v0.12.21 - 2020-11-01 + - Fix a possible deadlock when seeking. + - Improve compiler support for older versions of GCC. + +v0.12.20 - 2020-09-08 + - Fix a compilation error on older compilers. + +v0.12.19 - 2020-08-30 + - Fix a bug due to an undefined 32-bit shift. + +v0.12.18 - 2020-08-14 + - Fix a crash when compiling with clang-cl. + +v0.12.17 - 2020-08-02 + - Simplify sized types. + +v0.12.16 - 2020-07-25 + - Fix a compilation warning. + +v0.12.15 - 2020-07-06 + - Check for negative LPC shifts and return an error. + +v0.12.14 - 2020-06-23 + - Add include guard for the implementation section. + +v0.12.13 - 2020-05-16 + - Add compile-time and run-time version querying. + - DRFLAC_VERSION_MINOR + - DRFLAC_VERSION_MAJOR + - DRFLAC_VERSION_REVISION + - DRFLAC_VERSION_STRING + - drflac_version() + - drflac_version_string() + +v0.12.12 - 2020-04-30 + - Fix compilation errors with VC6. + +v0.12.11 - 2020-04-19 + - Fix some pedantic warnings. + - Fix some undefined behaviour warnings. + +v0.12.10 - 2020-04-10 + - Fix some bugs when trying to seek with an invalid seek table. + +v0.12.9 - 2020-04-05 + - Fix warnings. + +v0.12.8 - 2020-04-04 + - Add drflac_open_file_w() and drflac_open_file_with_metadata_w(). + - Fix some static analysis warnings. + - Minor documentation updates. + +v0.12.7 - 2020-03-14 + - Fix compilation errors with VC6. + +v0.12.6 - 2020-03-07 + - Fix compilation error with Visual Studio .NET 2003. + +v0.12.5 - 2020-01-30 + - Silence some static analysis warnings. + +v0.12.4 - 2020-01-29 + - Silence some static analysis warnings. + +v0.12.3 - 2019-12-02 + - Fix some warnings when compiling with GCC and the -Og flag. + - Fix a crash in out-of-memory situations. + - Fix potential integer overflow bug. + - Fix some static analysis warnings. + - Fix a possible crash when using custom memory allocators without a custom realloc() implementation. + - Fix a bug with binary search seeking where the bits per sample is not a multiple of 8. + +v0.12.2 - 2019-10-07 + - Internal code clean up. + +v0.12.1 - 2019-09-29 + - Fix some Clang Static Analyzer warnings. + - Fix an unused variable warning. + +v0.12.0 - 2019-09-23 + - API CHANGE: Add support for user defined memory allocation routines. This system allows the program to specify their own memory allocation + routines with a user data pointer for client-specific contextual data. This adds an extra parameter to the end of the following APIs: + - drflac_open() + - drflac_open_relaxed() + - drflac_open_with_metadata() + - drflac_open_with_metadata_relaxed() + - drflac_open_file() + - drflac_open_file_with_metadata() + - drflac_open_memory() + - drflac_open_memory_with_metadata() + - drflac_open_and_read_pcm_frames_s32() + - drflac_open_and_read_pcm_frames_s16() + - drflac_open_and_read_pcm_frames_f32() + - drflac_open_file_and_read_pcm_frames_s32() + - drflac_open_file_and_read_pcm_frames_s16() + - drflac_open_file_and_read_pcm_frames_f32() + - drflac_open_memory_and_read_pcm_frames_s32() + - drflac_open_memory_and_read_pcm_frames_s16() + - drflac_open_memory_and_read_pcm_frames_f32() + Set this extra parameter to NULL to use defaults which is the same as the previous behaviour. Setting this NULL will use + DRFLAC_MALLOC, DRFLAC_REALLOC and DRFLAC_FREE. + - Remove deprecated APIs: + - drflac_read_s32() + - drflac_read_s16() + - drflac_read_f32() + - drflac_seek_to_sample() + - drflac_open_and_decode_s32() + - drflac_open_and_decode_s16() + - drflac_open_and_decode_f32() + - drflac_open_and_decode_file_s32() + - drflac_open_and_decode_file_s16() + - drflac_open_and_decode_file_f32() + - drflac_open_and_decode_memory_s32() + - drflac_open_and_decode_memory_s16() + - drflac_open_and_decode_memory_f32() + - Remove drflac.totalSampleCount which is now replaced with drflac.totalPCMFrameCount. You can emulate drflac.totalSampleCount + by doing pFlac->totalPCMFrameCount*pFlac->channels. + - Rename drflac.currentFrame to drflac.currentFLACFrame to remove ambiguity with PCM frames. + - Fix errors when seeking to the end of a stream. + - Optimizations to seeking. + - SSE improvements and optimizations. + - ARM NEON optimizations. + - Optimizations to drflac_read_pcm_frames_s16(). + - Optimizations to drflac_read_pcm_frames_s32(). + +v0.11.10 - 2019-06-26 + - Fix a compiler error. + +v0.11.9 - 2019-06-16 + - Silence some ThreadSanitizer warnings. + +v0.11.8 - 2019-05-21 + - Fix warnings. + +v0.11.7 - 2019-05-06 + - C89 fixes. + +v0.11.6 - 2019-05-05 + - Add support for C89. + - Fix a compiler warning when CRC is disabled. + - Change license to choice of public domain or MIT-0. + +v0.11.5 - 2019-04-19 + - Fix a compiler error with GCC. + +v0.11.4 - 2019-04-17 + - Fix some warnings with GCC when compiling with -std=c99. + +v0.11.3 - 2019-04-07 + - Silence warnings with GCC. + +v0.11.2 - 2019-03-10 + - Fix a warning. + +v0.11.1 - 2019-02-17 + - Fix a potential bug with seeking. + +v0.11.0 - 2018-12-16 + - API CHANGE: Deprecated drflac_read_s32(), drflac_read_s16() and drflac_read_f32() and replaced them with + drflac_read_pcm_frames_s32(), drflac_read_pcm_frames_s16() and drflac_read_pcm_frames_f32(). The new APIs take + and return PCM frame counts instead of sample counts. To upgrade you will need to change the input count by + dividing it by the channel count, and then do the same with the return value. + - API_CHANGE: Deprecated drflac_seek_to_sample() and replaced with drflac_seek_to_pcm_frame(). Same rules as + the changes to drflac_read_*() apply. + - API CHANGE: Deprecated drflac_open_and_decode_*() and replaced with drflac_open_*_and_read_*(). Same rules as + the changes to drflac_read_*() apply. + - Optimizations. + +v0.10.0 - 2018-09-11 + - Remove the DR_FLAC_NO_WIN32_IO option and the Win32 file IO functionality. If you need to use Win32 file IO you + need to do it yourself via the callback API. + - Fix the clang build. + - Fix undefined behavior. + - Fix errors with CUESHEET metdata blocks. + - Add an API for iterating over each cuesheet track in the CUESHEET metadata block. This works the same way as the + Vorbis comment API. + - Other miscellaneous bug fixes, mostly relating to invalid FLAC streams. + - Minor optimizations. + +v0.9.11 - 2018-08-29 + - Fix a bug with sample reconstruction. + +v0.9.10 - 2018-08-07 + - Improve 64-bit detection. + +v0.9.9 - 2018-08-05 + - Fix C++ build on older versions of GCC. + +v0.9.8 - 2018-07-24 + - Fix compilation errors. + +v0.9.7 - 2018-07-05 + - Fix a warning. + +v0.9.6 - 2018-06-29 + - Fix some typos. + +v0.9.5 - 2018-06-23 + - Fix some warnings. + +v0.9.4 - 2018-06-14 + - Optimizations to seeking. + - Clean up. + +v0.9.3 - 2018-05-22 + - Bug fix. + +v0.9.2 - 2018-05-12 + - Fix a compilation error due to a missing break statement. + +v0.9.1 - 2018-04-29 + - Fix compilation error with Clang. + +v0.9 - 2018-04-24 + - Fix Clang build. + - Start using major.minor.revision versioning. + +v0.8g - 2018-04-19 + - Fix build on non-x86/x64 architectures. + +v0.8f - 2018-02-02 + - Stop pretending to support changing rate/channels mid stream. + +v0.8e - 2018-02-01 + - Fix a crash when the block size of a frame is larger than the maximum block size defined by the FLAC stream. + - Fix a crash the the Rice partition order is invalid. + +v0.8d - 2017-09-22 + - Add support for decoding streams with ID3 tags. ID3 tags are just skipped. + +v0.8c - 2017-09-07 + - Fix warning on non-x86/x64 architectures. + +v0.8b - 2017-08-19 + - Fix build on non-x86/x64 architectures. + +v0.8a - 2017-08-13 + - A small optimization for the Clang build. + +v0.8 - 2017-08-12 + - API CHANGE: Rename dr_* types to drflac_*. + - Optimizations. This brings dr_flac back to about the same class of efficiency as the reference implementation. + - Add support for custom implementations of malloc(), realloc(), etc. + - Add CRC checking to Ogg encapsulated streams. + - Fix VC++ 6 build. This is only for the C++ compiler. The C compiler is not currently supported. + - Bug fixes. + +v0.7 - 2017-07-23 + - Add support for opening a stream without a header block. To do this, use drflac_open_relaxed() / drflac_open_with_metadata_relaxed(). + +v0.6 - 2017-07-22 + - Add support for recovering from invalid frames. With this change, dr_flac will simply skip over invalid frames as if they + never existed. Frames are checked against their sync code, the CRC-8 of the frame header and the CRC-16 of the whole frame. + +v0.5 - 2017-07-16 + - Fix typos. + - Change drflac_bool* types to unsigned. + - Add CRC checking. This makes dr_flac slower, but can be disabled with #define DR_FLAC_NO_CRC. + +v0.4f - 2017-03-10 + - Fix a couple of bugs with the bitstreaming code. + +v0.4e - 2017-02-17 + - Fix some warnings. + +v0.4d - 2016-12-26 + - Add support for 32-bit floating-point PCM decoding. + - Use drflac_int* and drflac_uint* sized types to improve compiler support. + - Minor improvements to documentation. + +v0.4c - 2016-12-26 + - Add support for signed 16-bit integer PCM decoding. + +v0.4b - 2016-10-23 + - A minor change to drflac_bool8 and drflac_bool32 types. + +v0.4a - 2016-10-11 + - Rename drBool32 to drflac_bool32 for styling consistency. + +v0.4 - 2016-09-29 + - API/ABI CHANGE: Use fixed size 32-bit booleans instead of the built-in bool type. + - API CHANGE: Rename drflac_open_and_decode*() to drflac_open_and_decode*_s32(). + - API CHANGE: Swap the order of "channels" and "sampleRate" parameters in drflac_open_and_decode*(). Rationale for this is to + keep it consistent with drflac_audio. + +v0.3f - 2016-09-21 + - Fix a warning with GCC. + +v0.3e - 2016-09-18 + - Fixed a bug where GCC 4.3+ was not getting properly identified. + - Fixed a few typos. + - Changed date formats to ISO 8601 (YYYY-MM-DD). + +v0.3d - 2016-06-11 + - Minor clean up. + +v0.3c - 2016-05-28 + - Fixed compilation error. + +v0.3b - 2016-05-16 + - Fixed Linux/GCC build. + - Updated documentation. + +v0.3a - 2016-05-15 + - Minor fixes to documentation. + +v0.3 - 2016-05-11 + - Optimizations. Now at about parity with the reference implementation on 32-bit builds. + - Lots of clean up. + +v0.2b - 2016-05-10 + - Bug fixes. + +v0.2a - 2016-05-10 + - Made drflac_open_and_decode() more robust. + - Removed an unused debugging variable + +v0.2 - 2016-05-09 + - Added support for Ogg encapsulation. + - API CHANGE. Have the onSeek callback take a third argument which specifies whether or not the seek + should be relative to the start or the current position. Also changes the seeking rules such that + seeking offsets will never be negative. + - Have drflac_open_and_decode() fail gracefully if the stream has an unknown total sample count. + +v0.1b - 2016-05-07 + - Properly close the file handle in drflac_open_file() and family when the decoder fails to initialize. + - Removed a stale comment. + +v0.1a - 2016-05-05 + - Minor formatting changes. + - Fixed a warning on the GCC build. + +v0.1 - 2016-05-03 + - Initial versioned release. +*/ + +/* +This software is available as a choice of the following licenses. Choose +whichever you prefer. + +=============================================================================== +ALTERNATIVE 1 - Public Domain (www.unlicense.org) +=============================================================================== +This is free and unencumbered software released into the public domain. + +Anyone is free to copy, modify, publish, use, compile, sell, or distribute this +software, either in source code form or as a compiled binary, for any purpose, +commercial or non-commercial, and by any means. + +In jurisdictions that recognize copyright laws, the author or authors of this +software dedicate any and all copyright interest in the software to the public +domain. We make this dedication for the benefit of the public at large and to +the detriment of our heirs and successors. We intend this dedication to be an +overt act of relinquishment in perpetuity of all present and future rights to +this software under copyright law. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN +ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +For more information, please refer to + +=============================================================================== +ALTERNATIVE 2 - MIT No Attribution +=============================================================================== +Copyright 2023 David Reid + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +*/ diff --git a/modules/audio_decoders/source/dr_mp3.h b/modules/audio_decoders/source/dr_mp3.h new file mode 100644 index 0000000..84849ee --- /dev/null +++ b/modules/audio_decoders/source/dr_mp3.h @@ -0,0 +1,4834 @@ +/* +MP3 audio decoder. Choice of public domain or MIT-0. See license statements at the end of this file. +dr_mp3 - v0.6.38 - 2023-11-02 + +David Reid - mackron@gmail.com + +GitHub: https://github.com/mackron/dr_libs + +Based on minimp3 (https://github.com/lieff/minimp3) which is where the real work was done. See the bottom of this file for differences between minimp3 and dr_mp3. +*/ + +/* +RELEASE NOTES - VERSION 0.6 +=========================== +Version 0.6 includes breaking changes with the configuration of decoders. The ability to customize the number of output channels and the sample rate has been +removed. You must now use the channel count and sample rate reported by the MP3 stream itself, and all channel and sample rate conversion must be done +yourself. + + +Changes to Initialization +------------------------- +Previously, `drmp3_init()`, etc. took a pointer to a `drmp3_config` object that allowed you to customize the output channels and sample rate. This has been +removed. If you need the old behaviour you will need to convert the data yourself or just not upgrade. The following APIs have changed. + + `drmp3_init()` + `drmp3_init_memory()` + `drmp3_init_file()` + + +Miscellaneous Changes +--------------------- +Support for loading a file from a `wchar_t` string has been added via the `drmp3_init_file_w()` API. +*/ + +/* +Introducation +============= +dr_mp3 is a single file library. To use it, do something like the following in one .c file. + + ```c + #define DR_MP3_IMPLEMENTATION + #include "dr_mp3.h" + ``` + +You can then #include this file in other parts of the program as you would with any other header file. To decode audio data, do something like the following: + + ```c + drmp3 mp3; + if (!drmp3_init_file(&mp3, "MySong.mp3", NULL)) { + // Failed to open file + } + + ... + + drmp3_uint64 framesRead = drmp3_read_pcm_frames_f32(pMP3, framesToRead, pFrames); + ``` + +The drmp3 object is transparent so you can get access to the channel count and sample rate like so: + + ``` + drmp3_uint32 channels = mp3.channels; + drmp3_uint32 sampleRate = mp3.sampleRate; + ``` + +The example above initializes a decoder from a file, but you can also initialize it from a block of memory and read and seek callbacks with +`drmp3_init_memory()` and `drmp3_init()` respectively. + +You do not need to do any annoying memory management when reading PCM frames - this is all managed internally. You can request any number of PCM frames in each +call to `drmp3_read_pcm_frames_f32()` and it will return as many PCM frames as it can, up to the requested amount. + +You can also decode an entire file in one go with `drmp3_open_and_read_pcm_frames_f32()`, `drmp3_open_memory_and_read_pcm_frames_f32()` and +`drmp3_open_file_and_read_pcm_frames_f32()`. + + +Build Options +============= +#define these options before including this file. + +#define DR_MP3_NO_STDIO + Disable drmp3_init_file(), etc. + +#define DR_MP3_NO_SIMD + Disable SIMD optimizations. +*/ + +#ifndef dr_mp3_h +#define dr_mp3_h + +#ifdef __cplusplus +extern "C" { +#endif + +#define DRMP3_STRINGIFY(x) #x +#define DRMP3_XSTRINGIFY(x) DRMP3_STRINGIFY(x) + +#define DRMP3_VERSION_MAJOR 0 +#define DRMP3_VERSION_MINOR 6 +#define DRMP3_VERSION_REVISION 38 +#define DRMP3_VERSION_STRING DRMP3_XSTRINGIFY(DRMP3_VERSION_MAJOR) "." DRMP3_XSTRINGIFY(DRMP3_VERSION_MINOR) "." DRMP3_XSTRINGIFY(DRMP3_VERSION_REVISION) + +#include /* For size_t. */ + +/* Sized Types */ +typedef signed char drmp3_int8; +typedef unsigned char drmp3_uint8; +typedef signed short drmp3_int16; +typedef unsigned short drmp3_uint16; +typedef signed int drmp3_int32; +typedef unsigned int drmp3_uint32; +#if defined(_MSC_VER) && !defined(__clang__) + typedef signed __int64 drmp3_int64; + typedef unsigned __int64 drmp3_uint64; +#else + #if defined(__clang__) || (defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))) + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Wlong-long" + #if defined(__clang__) + #pragma GCC diagnostic ignored "-Wc++11-long-long" + #endif + #endif + typedef signed long long drmp3_int64; + typedef unsigned long long drmp3_uint64; + #if defined(__clang__) || (defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))) + #pragma GCC diagnostic pop + #endif +#endif +#if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__)) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(_M_ARM64) || defined(__powerpc64__) + typedef drmp3_uint64 drmp3_uintptr; +#else + typedef drmp3_uint32 drmp3_uintptr; +#endif +typedef drmp3_uint8 drmp3_bool8; +typedef drmp3_uint32 drmp3_bool32; +#define DRMP3_TRUE 1 +#define DRMP3_FALSE 0 +/* End Sized Types */ + +/* Decorations */ +#if !defined(DRMP3_API) + #if defined(DRMP3_DLL) + #if defined(_WIN32) + #define DRMP3_DLL_IMPORT __declspec(dllimport) + #define DRMP3_DLL_EXPORT __declspec(dllexport) + #define DRMP3_DLL_PRIVATE static + #else + #if defined(__GNUC__) && __GNUC__ >= 4 + #define DRMP3_DLL_IMPORT __attribute__((visibility("default"))) + #define DRMP3_DLL_EXPORT __attribute__((visibility("default"))) + #define DRMP3_DLL_PRIVATE __attribute__((visibility("hidden"))) + #else + #define DRMP3_DLL_IMPORT + #define DRMP3_DLL_EXPORT + #define DRMP3_DLL_PRIVATE static + #endif + #endif + + #if defined(DR_MP3_IMPLEMENTATION) || defined(DRMP3_IMPLEMENTATION) + #define DRMP3_API DRMP3_DLL_EXPORT + #else + #define DRMP3_API DRMP3_DLL_IMPORT + #endif + #define DRMP3_PRIVATE DRMP3_DLL_PRIVATE + #else + #define DRMP3_API extern + #define DRMP3_PRIVATE static + #endif +#endif +/* End Decorations */ + +/* Result Codes */ +typedef drmp3_int32 drmp3_result; +#define DRMP3_SUCCESS 0 +#define DRMP3_ERROR -1 /* A generic error. */ +#define DRMP3_INVALID_ARGS -2 +#define DRMP3_INVALID_OPERATION -3 +#define DRMP3_OUT_OF_MEMORY -4 +#define DRMP3_OUT_OF_RANGE -5 +#define DRMP3_ACCESS_DENIED -6 +#define DRMP3_DOES_NOT_EXIST -7 +#define DRMP3_ALREADY_EXISTS -8 +#define DRMP3_TOO_MANY_OPEN_FILES -9 +#define DRMP3_INVALID_FILE -10 +#define DRMP3_TOO_BIG -11 +#define DRMP3_PATH_TOO_LONG -12 +#define DRMP3_NAME_TOO_LONG -13 +#define DRMP3_NOT_DIRECTORY -14 +#define DRMP3_IS_DIRECTORY -15 +#define DRMP3_DIRECTORY_NOT_EMPTY -16 +#define DRMP3_END_OF_FILE -17 +#define DRMP3_NO_SPACE -18 +#define DRMP3_BUSY -19 +#define DRMP3_IO_ERROR -20 +#define DRMP3_INTERRUPT -21 +#define DRMP3_UNAVAILABLE -22 +#define DRMP3_ALREADY_IN_USE -23 +#define DRMP3_BAD_ADDRESS -24 +#define DRMP3_BAD_SEEK -25 +#define DRMP3_BAD_PIPE -26 +#define DRMP3_DEADLOCK -27 +#define DRMP3_TOO_MANY_LINKS -28 +#define DRMP3_NOT_IMPLEMENTED -29 +#define DRMP3_NO_MESSAGE -30 +#define DRMP3_BAD_MESSAGE -31 +#define DRMP3_NO_DATA_AVAILABLE -32 +#define DRMP3_INVALID_DATA -33 +#define DRMP3_TIMEOUT -34 +#define DRMP3_NO_NETWORK -35 +#define DRMP3_NOT_UNIQUE -36 +#define DRMP3_NOT_SOCKET -37 +#define DRMP3_NO_ADDRESS -38 +#define DRMP3_BAD_PROTOCOL -39 +#define DRMP3_PROTOCOL_UNAVAILABLE -40 +#define DRMP3_PROTOCOL_NOT_SUPPORTED -41 +#define DRMP3_PROTOCOL_FAMILY_NOT_SUPPORTED -42 +#define DRMP3_ADDRESS_FAMILY_NOT_SUPPORTED -43 +#define DRMP3_SOCKET_NOT_SUPPORTED -44 +#define DRMP3_CONNECTION_RESET -45 +#define DRMP3_ALREADY_CONNECTED -46 +#define DRMP3_NOT_CONNECTED -47 +#define DRMP3_CONNECTION_REFUSED -48 +#define DRMP3_NO_HOST -49 +#define DRMP3_IN_PROGRESS -50 +#define DRMP3_CANCELLED -51 +#define DRMP3_MEMORY_ALREADY_MAPPED -52 +#define DRMP3_AT_END -53 +/* End Result Codes */ + +#define DRMP3_MAX_PCM_FRAMES_PER_MP3_FRAME 1152 +#define DRMP3_MAX_SAMPLES_PER_FRAME (DRMP3_MAX_PCM_FRAMES_PER_MP3_FRAME*2) + +/* Inline */ +#ifdef _MSC_VER + #define DRMP3_INLINE __forceinline +#elif defined(__GNUC__) + /* + I've had a bug report where GCC is emitting warnings about functions possibly not being inlineable. This warning happens when + the __attribute__((always_inline)) attribute is defined without an "inline" statement. I think therefore there must be some + case where "__inline__" is not always defined, thus the compiler emitting these warnings. When using -std=c89 or -ansi on the + command line, we cannot use the "inline" keyword and instead need to use "__inline__". In an attempt to work around this issue + I am using "__inline__" only when we're compiling in strict ANSI mode. + */ + #if defined(__STRICT_ANSI__) + #define DRMP3_GNUC_INLINE_HINT __inline__ + #else + #define DRMP3_GNUC_INLINE_HINT inline + #endif + + #if (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)) || defined(__clang__) + #define DRMP3_INLINE DRMP3_GNUC_INLINE_HINT __attribute__((always_inline)) + #else + #define DRMP3_INLINE DRMP3_GNUC_INLINE_HINT + #endif +#elif defined(__WATCOMC__) + #define DRMP3_INLINE __inline +#else + #define DRMP3_INLINE +#endif +/* End Inline */ + + +DRMP3_API void drmp3_version(drmp3_uint32* pMajor, drmp3_uint32* pMinor, drmp3_uint32* pRevision); +DRMP3_API const char* drmp3_version_string(void); + + +/* Allocation Callbacks */ +typedef struct +{ + void* pUserData; + void* (* onMalloc)(size_t sz, void* pUserData); + void* (* onRealloc)(void* p, size_t sz, void* pUserData); + void (* onFree)(void* p, void* pUserData); +} drmp3_allocation_callbacks; +/* End Allocation Callbacks */ + + +/* +Low Level Push API +================== +*/ +typedef struct +{ + int frame_bytes, channels, hz, layer, bitrate_kbps; +} drmp3dec_frame_info; + +typedef struct +{ + float mdct_overlap[2][9*32], qmf_state[15*2*32]; + int reserv, free_format_bytes; + drmp3_uint8 header[4], reserv_buf[511]; +} drmp3dec; + +/* Initializes a low level decoder. */ +DRMP3_API void drmp3dec_init(drmp3dec *dec); + +/* Reads a frame from a low level decoder. */ +DRMP3_API int drmp3dec_decode_frame(drmp3dec *dec, const drmp3_uint8 *mp3, int mp3_bytes, void *pcm, drmp3dec_frame_info *info); + +/* Helper for converting between f32 and s16. */ +DRMP3_API void drmp3dec_f32_to_s16(const float *in, drmp3_int16 *out, size_t num_samples); + + + +/* +Main API (Pull API) +=================== +*/ +typedef enum +{ + drmp3_seek_origin_start, + drmp3_seek_origin_current +} drmp3_seek_origin; + +typedef struct +{ + drmp3_uint64 seekPosInBytes; /* Points to the first byte of an MP3 frame. */ + drmp3_uint64 pcmFrameIndex; /* The index of the PCM frame this seek point targets. */ + drmp3_uint16 mp3FramesToDiscard; /* The number of whole MP3 frames to be discarded before pcmFramesToDiscard. */ + drmp3_uint16 pcmFramesToDiscard; /* The number of leading samples to read and discard. These are discarded after mp3FramesToDiscard. */ +} drmp3_seek_point; + +/* +Callback for when data is read. Return value is the number of bytes actually read. + +pUserData [in] The user data that was passed to drmp3_init(), drmp3_open() and family. +pBufferOut [out] The output buffer. +bytesToRead [in] The number of bytes to read. + +Returns the number of bytes actually read. + +A return value of less than bytesToRead indicates the end of the stream. Do _not_ return from this callback until +either the entire bytesToRead is filled or you have reached the end of the stream. +*/ +typedef size_t (* drmp3_read_proc)(void* pUserData, void* pBufferOut, size_t bytesToRead); + +/* +Callback for when data needs to be seeked. + +pUserData [in] The user data that was passed to drmp3_init(), drmp3_open() and family. +offset [in] The number of bytes to move, relative to the origin. Will never be negative. +origin [in] The origin of the seek - the current position or the start of the stream. + +Returns whether or not the seek was successful. + +Whether or not it is relative to the beginning or current position is determined by the "origin" parameter which +will be either drmp3_seek_origin_start or drmp3_seek_origin_current. +*/ +typedef drmp3_bool32 (* drmp3_seek_proc)(void* pUserData, int offset, drmp3_seek_origin origin); + +typedef struct +{ + drmp3_uint32 channels; + drmp3_uint32 sampleRate; +} drmp3_config; + +typedef struct +{ + drmp3dec decoder; + drmp3_uint32 channels; + drmp3_uint32 sampleRate; + drmp3_read_proc onRead; + drmp3_seek_proc onSeek; + void* pUserData; + drmp3_allocation_callbacks allocationCallbacks; + drmp3_uint32 mp3FrameChannels; /* The number of channels in the currently loaded MP3 frame. Internal use only. */ + drmp3_uint32 mp3FrameSampleRate; /* The sample rate of the currently loaded MP3 frame. Internal use only. */ + drmp3_uint32 pcmFramesConsumedInMP3Frame; + drmp3_uint32 pcmFramesRemainingInMP3Frame; + drmp3_uint8 pcmFrames[sizeof(float)*DRMP3_MAX_SAMPLES_PER_FRAME]; /* <-- Multipled by sizeof(float) to ensure there's enough room for DR_MP3_FLOAT_OUTPUT. */ + drmp3_uint64 currentPCMFrame; /* The current PCM frame, globally, based on the output sample rate. Mainly used for seeking. */ + drmp3_uint64 streamCursor; /* The current byte the decoder is sitting on in the raw stream. */ + drmp3_seek_point* pSeekPoints; /* NULL by default. Set with drmp3_bind_seek_table(). Memory is owned by the client. dr_mp3 will never attempt to free this pointer. */ + drmp3_uint32 seekPointCount; /* The number of items in pSeekPoints. When set to 0 assumes to no seek table. Defaults to zero. */ + size_t dataSize; + size_t dataCapacity; + size_t dataConsumed; + drmp3_uint8* pData; + drmp3_bool32 atEnd : 1; + struct + { + const drmp3_uint8* pData; + size_t dataSize; + size_t currentReadPos; + } memory; /* Only used for decoders that were opened against a block of memory. */ +} drmp3; + +/* +Initializes an MP3 decoder. + +onRead [in] The function to call when data needs to be read from the client. +onSeek [in] The function to call when the read position of the client data needs to move. +pUserData [in, optional] A pointer to application defined data that will be passed to onRead and onSeek. + +Returns true if successful; false otherwise. + +Close the loader with drmp3_uninit(). + +See also: drmp3_init_file(), drmp3_init_memory(), drmp3_uninit() +*/ +DRMP3_API drmp3_bool32 drmp3_init(drmp3* pMP3, drmp3_read_proc onRead, drmp3_seek_proc onSeek, void* pUserData, const drmp3_allocation_callbacks* pAllocationCallbacks); + +/* +Initializes an MP3 decoder from a block of memory. + +This does not create a copy of the data. It is up to the application to ensure the buffer remains valid for +the lifetime of the drmp3 object. + +The buffer should contain the contents of the entire MP3 file. +*/ +DRMP3_API drmp3_bool32 drmp3_init_memory(drmp3* pMP3, const void* pData, size_t dataSize, const drmp3_allocation_callbacks* pAllocationCallbacks); + +#ifndef DR_MP3_NO_STDIO +/* +Initializes an MP3 decoder from a file. + +This holds the internal FILE object until drmp3_uninit() is called. Keep this in mind if you're caching drmp3 +objects because the operating system may restrict the number of file handles an application can have open at +any given time. +*/ +DRMP3_API drmp3_bool32 drmp3_init_file(drmp3* pMP3, const char* pFilePath, const drmp3_allocation_callbacks* pAllocationCallbacks); +DRMP3_API drmp3_bool32 drmp3_init_file_w(drmp3* pMP3, const wchar_t* pFilePath, const drmp3_allocation_callbacks* pAllocationCallbacks); +#endif + +/* +Uninitializes an MP3 decoder. +*/ +DRMP3_API void drmp3_uninit(drmp3* pMP3); + +/* +Reads PCM frames as interleaved 32-bit IEEE floating point PCM. + +Note that framesToRead specifies the number of PCM frames to read, _not_ the number of MP3 frames. +*/ +DRMP3_API drmp3_uint64 drmp3_read_pcm_frames_f32(drmp3* pMP3, drmp3_uint64 framesToRead, float* pBufferOut); + +/* +Reads PCM frames as interleaved signed 16-bit integer PCM. + +Note that framesToRead specifies the number of PCM frames to read, _not_ the number of MP3 frames. +*/ +DRMP3_API drmp3_uint64 drmp3_read_pcm_frames_s16(drmp3* pMP3, drmp3_uint64 framesToRead, drmp3_int16* pBufferOut); + +/* +Seeks to a specific frame. + +Note that this is _not_ an MP3 frame, but rather a PCM frame. +*/ +DRMP3_API drmp3_bool32 drmp3_seek_to_pcm_frame(drmp3* pMP3, drmp3_uint64 frameIndex); + +/* +Calculates the total number of PCM frames in the MP3 stream. Cannot be used for infinite streams such as internet +radio. Runs in linear time. Returns 0 on error. +*/ +DRMP3_API drmp3_uint64 drmp3_get_pcm_frame_count(drmp3* pMP3); + +/* +Calculates the total number of MP3 frames in the MP3 stream. Cannot be used for infinite streams such as internet +radio. Runs in linear time. Returns 0 on error. +*/ +DRMP3_API drmp3_uint64 drmp3_get_mp3_frame_count(drmp3* pMP3); + +/* +Calculates the total number of MP3 and PCM frames in the MP3 stream. Cannot be used for infinite streams such as internet +radio. Runs in linear time. Returns 0 on error. + +This is equivalent to calling drmp3_get_mp3_frame_count() and drmp3_get_pcm_frame_count() except that it's more efficient. +*/ +DRMP3_API drmp3_bool32 drmp3_get_mp3_and_pcm_frame_count(drmp3* pMP3, drmp3_uint64* pMP3FrameCount, drmp3_uint64* pPCMFrameCount); + +/* +Calculates the seekpoints based on PCM frames. This is slow. + +pSeekpoint count is a pointer to a uint32 containing the seekpoint count. On input it contains the desired count. +On output it contains the actual count. The reason for this design is that the client may request too many +seekpoints, in which case dr_mp3 will return a corrected count. + +Note that seektable seeking is not quite sample exact when the MP3 stream contains inconsistent sample rates. +*/ +DRMP3_API drmp3_bool32 drmp3_calculate_seek_points(drmp3* pMP3, drmp3_uint32* pSeekPointCount, drmp3_seek_point* pSeekPoints); + +/* +Binds a seek table to the decoder. + +This does _not_ make a copy of pSeekPoints - it only references it. It is up to the application to ensure this +remains valid while it is bound to the decoder. + +Use drmp3_calculate_seek_points() to calculate the seek points. +*/ +DRMP3_API drmp3_bool32 drmp3_bind_seek_table(drmp3* pMP3, drmp3_uint32 seekPointCount, drmp3_seek_point* pSeekPoints); + + +/* +Opens an decodes an entire MP3 stream as a single operation. + +On output pConfig will receive the channel count and sample rate of the stream. + +Free the returned pointer with drmp3_free(). +*/ +DRMP3_API float* drmp3_open_and_read_pcm_frames_f32(drmp3_read_proc onRead, drmp3_seek_proc onSeek, void* pUserData, drmp3_config* pConfig, drmp3_uint64* pTotalFrameCount, const drmp3_allocation_callbacks* pAllocationCallbacks); +DRMP3_API drmp3_int16* drmp3_open_and_read_pcm_frames_s16(drmp3_read_proc onRead, drmp3_seek_proc onSeek, void* pUserData, drmp3_config* pConfig, drmp3_uint64* pTotalFrameCount, const drmp3_allocation_callbacks* pAllocationCallbacks); + +DRMP3_API float* drmp3_open_memory_and_read_pcm_frames_f32(const void* pData, size_t dataSize, drmp3_config* pConfig, drmp3_uint64* pTotalFrameCount, const drmp3_allocation_callbacks* pAllocationCallbacks); +DRMP3_API drmp3_int16* drmp3_open_memory_and_read_pcm_frames_s16(const void* pData, size_t dataSize, drmp3_config* pConfig, drmp3_uint64* pTotalFrameCount, const drmp3_allocation_callbacks* pAllocationCallbacks); + +#ifndef DR_MP3_NO_STDIO +DRMP3_API float* drmp3_open_file_and_read_pcm_frames_f32(const char* filePath, drmp3_config* pConfig, drmp3_uint64* pTotalFrameCount, const drmp3_allocation_callbacks* pAllocationCallbacks); +DRMP3_API drmp3_int16* drmp3_open_file_and_read_pcm_frames_s16(const char* filePath, drmp3_config* pConfig, drmp3_uint64* pTotalFrameCount, const drmp3_allocation_callbacks* pAllocationCallbacks); +#endif + +/* +Allocates a block of memory on the heap. +*/ +DRMP3_API void* drmp3_malloc(size_t sz, const drmp3_allocation_callbacks* pAllocationCallbacks); + +/* +Frees any memory that was allocated by a public drmp3 API. +*/ +DRMP3_API void drmp3_free(void* p, const drmp3_allocation_callbacks* pAllocationCallbacks); + +#ifdef __cplusplus +} +#endif +#endif /* dr_mp3_h */ + + +/************************************************************************************************************************************************************ + ************************************************************************************************************************************************************ + + IMPLEMENTATION + + ************************************************************************************************************************************************************ + ************************************************************************************************************************************************************/ +#if defined(DR_MP3_IMPLEMENTATION) || defined(DRMP3_IMPLEMENTATION) +#ifndef dr_mp3_c +#define dr_mp3_c + +#include +#include +#include /* For INT_MAX */ + +DRMP3_API void drmp3_version(drmp3_uint32* pMajor, drmp3_uint32* pMinor, drmp3_uint32* pRevision) +{ + if (pMajor) { + *pMajor = DRMP3_VERSION_MAJOR; + } + + if (pMinor) { + *pMinor = DRMP3_VERSION_MINOR; + } + + if (pRevision) { + *pRevision = DRMP3_VERSION_REVISION; + } +} + +DRMP3_API const char* drmp3_version_string(void) +{ + return DRMP3_VERSION_STRING; +} + +/* Disable SIMD when compiling with TCC for now. */ +#if defined(__TINYC__) +#define DR_MP3_NO_SIMD +#endif + +#define DRMP3_OFFSET_PTR(p, offset) ((void*)((drmp3_uint8*)(p) + (offset))) + +#define DRMP3_MAX_FREE_FORMAT_FRAME_SIZE 2304 /* more than ISO spec's */ +#ifndef DRMP3_MAX_FRAME_SYNC_MATCHES +#define DRMP3_MAX_FRAME_SYNC_MATCHES 10 +#endif + +#define DRMP3_MAX_L3_FRAME_PAYLOAD_BYTES DRMP3_MAX_FREE_FORMAT_FRAME_SIZE /* MUST be >= 320000/8/32000*1152 = 1440 */ + +#define DRMP3_MAX_BITRESERVOIR_BYTES 511 +#define DRMP3_SHORT_BLOCK_TYPE 2 +#define DRMP3_STOP_BLOCK_TYPE 3 +#define DRMP3_MODE_MONO 3 +#define DRMP3_MODE_JOINT_STEREO 1 +#define DRMP3_HDR_SIZE 4 +#define DRMP3_HDR_IS_MONO(h) (((h[3]) & 0xC0) == 0xC0) +#define DRMP3_HDR_IS_MS_STEREO(h) (((h[3]) & 0xE0) == 0x60) +#define DRMP3_HDR_IS_FREE_FORMAT(h) (((h[2]) & 0xF0) == 0) +#define DRMP3_HDR_IS_CRC(h) (!((h[1]) & 1)) +#define DRMP3_HDR_TEST_PADDING(h) ((h[2]) & 0x2) +#define DRMP3_HDR_TEST_MPEG1(h) ((h[1]) & 0x8) +#define DRMP3_HDR_TEST_NOT_MPEG25(h) ((h[1]) & 0x10) +#define DRMP3_HDR_TEST_I_STEREO(h) ((h[3]) & 0x10) +#define DRMP3_HDR_TEST_MS_STEREO(h) ((h[3]) & 0x20) +#define DRMP3_HDR_GET_STEREO_MODE(h) (((h[3]) >> 6) & 3) +#define DRMP3_HDR_GET_STEREO_MODE_EXT(h) (((h[3]) >> 4) & 3) +#define DRMP3_HDR_GET_LAYER(h) (((h[1]) >> 1) & 3) +#define DRMP3_HDR_GET_BITRATE(h) ((h[2]) >> 4) +#define DRMP3_HDR_GET_SAMPLE_RATE(h) (((h[2]) >> 2) & 3) +#define DRMP3_HDR_GET_MY_SAMPLE_RATE(h) (DRMP3_HDR_GET_SAMPLE_RATE(h) + (((h[1] >> 3) & 1) + ((h[1] >> 4) & 1))*3) +#define DRMP3_HDR_IS_FRAME_576(h) ((h[1] & 14) == 2) +#define DRMP3_HDR_IS_LAYER_1(h) ((h[1] & 6) == 6) + +#define DRMP3_BITS_DEQUANTIZER_OUT -1 +#define DRMP3_MAX_SCF (255 + DRMP3_BITS_DEQUANTIZER_OUT*4 - 210) +#define DRMP3_MAX_SCFI ((DRMP3_MAX_SCF + 3) & ~3) + +#define DRMP3_MIN(a, b) ((a) > (b) ? (b) : (a)) +#define DRMP3_MAX(a, b) ((a) < (b) ? (b) : (a)) + +#if !defined(DR_MP3_NO_SIMD) + +#if !defined(DR_MP3_ONLY_SIMD) && (defined(_M_X64) || defined(__x86_64__) || defined(__aarch64__) || defined(_M_ARM64)) +/* x64 always have SSE2, arm64 always have neon, no need for generic code */ +#define DR_MP3_ONLY_SIMD +#endif + +#if ((defined(_MSC_VER) && _MSC_VER >= 1400) && defined(_M_X64)) || ((defined(__i386) || defined(_M_IX86) || defined(__i386__) || defined(__x86_64__)) && ((defined(_M_IX86_FP) && _M_IX86_FP == 2) || defined(__SSE2__))) +#if defined(_MSC_VER) +#include +#endif +#include +#define DRMP3_HAVE_SSE 1 +#define DRMP3_HAVE_SIMD 1 +#define DRMP3_VSTORE _mm_storeu_ps +#define DRMP3_VLD _mm_loadu_ps +#define DRMP3_VSET _mm_set1_ps +#define DRMP3_VADD _mm_add_ps +#define DRMP3_VSUB _mm_sub_ps +#define DRMP3_VMUL _mm_mul_ps +#define DRMP3_VMAC(a, x, y) _mm_add_ps(a, _mm_mul_ps(x, y)) +#define DRMP3_VMSB(a, x, y) _mm_sub_ps(a, _mm_mul_ps(x, y)) +#define DRMP3_VMUL_S(x, s) _mm_mul_ps(x, _mm_set1_ps(s)) +#define DRMP3_VREV(x) _mm_shuffle_ps(x, x, _MM_SHUFFLE(0, 1, 2, 3)) +typedef __m128 drmp3_f4; +#if defined(_MSC_VER) || defined(DR_MP3_ONLY_SIMD) +#define drmp3_cpuid __cpuid +#else +static __inline__ __attribute__((always_inline)) void drmp3_cpuid(int CPUInfo[], const int InfoType) +{ +#if defined(__PIC__) + __asm__ __volatile__( +#if defined(__x86_64__) + "push %%rbx\n" + "cpuid\n" + "xchgl %%ebx, %1\n" + "pop %%rbx\n" +#else + "xchgl %%ebx, %1\n" + "cpuid\n" + "xchgl %%ebx, %1\n" +#endif + : "=a" (CPUInfo[0]), "=r" (CPUInfo[1]), "=c" (CPUInfo[2]), "=d" (CPUInfo[3]) + : "a" (InfoType)); +#else + __asm__ __volatile__( + "cpuid" + : "=a" (CPUInfo[0]), "=b" (CPUInfo[1]), "=c" (CPUInfo[2]), "=d" (CPUInfo[3]) + : "a" (InfoType)); +#endif +} +#endif +static int drmp3_have_simd(void) +{ +#ifdef DR_MP3_ONLY_SIMD + return 1; +#else + static int g_have_simd; + int CPUInfo[4]; +#ifdef MINIMP3_TEST + static int g_counter; + if (g_counter++ > 100) + return 0; +#endif + if (g_have_simd) + goto end; + drmp3_cpuid(CPUInfo, 0); + if (CPUInfo[0] > 0) + { + drmp3_cpuid(CPUInfo, 1); + g_have_simd = (CPUInfo[3] & (1 << 26)) + 1; /* SSE2 */ + return g_have_simd - 1; + } + +end: + return g_have_simd - 1; +#endif +} +#elif defined(__ARM_NEON) || defined(__aarch64__) || defined(_M_ARM64) +#include +#define DRMP3_HAVE_SSE 0 +#define DRMP3_HAVE_SIMD 1 +#define DRMP3_VSTORE vst1q_f32 +#define DRMP3_VLD vld1q_f32 +#define DRMP3_VSET vmovq_n_f32 +#define DRMP3_VADD vaddq_f32 +#define DRMP3_VSUB vsubq_f32 +#define DRMP3_VMUL vmulq_f32 +#define DRMP3_VMAC(a, x, y) vmlaq_f32(a, x, y) +#define DRMP3_VMSB(a, x, y) vmlsq_f32(a, x, y) +#define DRMP3_VMUL_S(x, s) vmulq_f32(x, vmovq_n_f32(s)) +#define DRMP3_VREV(x) vcombine_f32(vget_high_f32(vrev64q_f32(x)), vget_low_f32(vrev64q_f32(x))) +typedef float32x4_t drmp3_f4; +static int drmp3_have_simd(void) +{ /* TODO: detect neon for !DR_MP3_ONLY_SIMD */ + return 1; +} +#else +#define DRMP3_HAVE_SSE 0 +#define DRMP3_HAVE_SIMD 0 +#ifdef DR_MP3_ONLY_SIMD +#error DR_MP3_ONLY_SIMD used, but SSE/NEON not enabled +#endif +#endif + +#else + +#define DRMP3_HAVE_SIMD 0 + +#endif + +#if defined(__ARM_ARCH) && (__ARM_ARCH >= 6) && !defined(__aarch64__) && !defined(_M_ARM64) && !defined(__ARM_ARCH_6M__) +#define DRMP3_HAVE_ARMV6 1 +static __inline__ __attribute__((always_inline)) drmp3_int32 drmp3_clip_int16_arm(drmp3_int32 a) +{ + drmp3_int32 x = 0; + __asm__ ("ssat %0, #16, %1" : "=r"(x) : "r"(a)); + return x; +} +#else +#define DRMP3_HAVE_ARMV6 0 +#endif + + +/* Standard library stuff. */ +#ifndef DRMP3_ASSERT +#include +#define DRMP3_ASSERT(expression) assert(expression) +#endif +#ifndef DRMP3_COPY_MEMORY +#define DRMP3_COPY_MEMORY(dst, src, sz) memcpy((dst), (src), (sz)) +#endif +#ifndef DRMP3_MOVE_MEMORY +#define DRMP3_MOVE_MEMORY(dst, src, sz) memmove((dst), (src), (sz)) +#endif +#ifndef DRMP3_ZERO_MEMORY +#define DRMP3_ZERO_MEMORY(p, sz) memset((p), 0, (sz)) +#endif +#define DRMP3_ZERO_OBJECT(p) DRMP3_ZERO_MEMORY((p), sizeof(*(p))) +#ifndef DRMP3_MALLOC +#define DRMP3_MALLOC(sz) malloc((sz)) +#endif +#ifndef DRMP3_REALLOC +#define DRMP3_REALLOC(p, sz) realloc((p), (sz)) +#endif +#ifndef DRMP3_FREE +#define DRMP3_FREE(p) free((p)) +#endif + +typedef struct +{ + const drmp3_uint8 *buf; + int pos, limit; +} drmp3_bs; + +typedef struct +{ + float scf[3*64]; + drmp3_uint8 total_bands, stereo_bands, bitalloc[64], scfcod[64]; +} drmp3_L12_scale_info; + +typedef struct +{ + drmp3_uint8 tab_offset, code_tab_width, band_count; +} drmp3_L12_subband_alloc; + +typedef struct +{ + const drmp3_uint8 *sfbtab; + drmp3_uint16 part_23_length, big_values, scalefac_compress; + drmp3_uint8 global_gain, block_type, mixed_block_flag, n_long_sfb, n_short_sfb; + drmp3_uint8 table_select[3], region_count[3], subblock_gain[3]; + drmp3_uint8 preflag, scalefac_scale, count1_table, scfsi; +} drmp3_L3_gr_info; + +typedef struct +{ + drmp3_bs bs; + drmp3_uint8 maindata[DRMP3_MAX_BITRESERVOIR_BYTES + DRMP3_MAX_L3_FRAME_PAYLOAD_BYTES]; + drmp3_L3_gr_info gr_info[4]; + float grbuf[2][576], scf[40], syn[18 + 15][2*32]; + drmp3_uint8 ist_pos[2][39]; +} drmp3dec_scratch; + +static void drmp3_bs_init(drmp3_bs *bs, const drmp3_uint8 *data, int bytes) +{ + bs->buf = data; + bs->pos = 0; + bs->limit = bytes*8; +} + +static drmp3_uint32 drmp3_bs_get_bits(drmp3_bs *bs, int n) +{ + drmp3_uint32 next, cache = 0, s = bs->pos & 7; + int shl = n + s; + const drmp3_uint8 *p = bs->buf + (bs->pos >> 3); + if ((bs->pos += n) > bs->limit) + return 0; + next = *p++ & (255 >> s); + while ((shl -= 8) > 0) + { + cache |= next << shl; + next = *p++; + } + return cache | (next >> -shl); +} + +static int drmp3_hdr_valid(const drmp3_uint8 *h) +{ + return h[0] == 0xff && + ((h[1] & 0xF0) == 0xf0 || (h[1] & 0xFE) == 0xe2) && + (DRMP3_HDR_GET_LAYER(h) != 0) && + (DRMP3_HDR_GET_BITRATE(h) != 15) && + (DRMP3_HDR_GET_SAMPLE_RATE(h) != 3); +} + +static int drmp3_hdr_compare(const drmp3_uint8 *h1, const drmp3_uint8 *h2) +{ + return drmp3_hdr_valid(h2) && + ((h1[1] ^ h2[1]) & 0xFE) == 0 && + ((h1[2] ^ h2[2]) & 0x0C) == 0 && + !(DRMP3_HDR_IS_FREE_FORMAT(h1) ^ DRMP3_HDR_IS_FREE_FORMAT(h2)); +} + +static unsigned drmp3_hdr_bitrate_kbps(const drmp3_uint8 *h) +{ + static const drmp3_uint8 halfrate[2][3][15] = { + { { 0,4,8,12,16,20,24,28,32,40,48,56,64,72,80 }, { 0,4,8,12,16,20,24,28,32,40,48,56,64,72,80 }, { 0,16,24,28,32,40,48,56,64,72,80,88,96,112,128 } }, + { { 0,16,20,24,28,32,40,48,56,64,80,96,112,128,160 }, { 0,16,24,28,32,40,48,56,64,80,96,112,128,160,192 }, { 0,16,32,48,64,80,96,112,128,144,160,176,192,208,224 } }, + }; + return 2*halfrate[!!DRMP3_HDR_TEST_MPEG1(h)][DRMP3_HDR_GET_LAYER(h) - 1][DRMP3_HDR_GET_BITRATE(h)]; +} + +static unsigned drmp3_hdr_sample_rate_hz(const drmp3_uint8 *h) +{ + static const unsigned g_hz[3] = { 44100, 48000, 32000 }; + return g_hz[DRMP3_HDR_GET_SAMPLE_RATE(h)] >> (int)!DRMP3_HDR_TEST_MPEG1(h) >> (int)!DRMP3_HDR_TEST_NOT_MPEG25(h); +} + +static unsigned drmp3_hdr_frame_samples(const drmp3_uint8 *h) +{ + return DRMP3_HDR_IS_LAYER_1(h) ? 384 : (1152 >> (int)DRMP3_HDR_IS_FRAME_576(h)); +} + +static int drmp3_hdr_frame_bytes(const drmp3_uint8 *h, int free_format_size) +{ + int frame_bytes = drmp3_hdr_frame_samples(h)*drmp3_hdr_bitrate_kbps(h)*125/drmp3_hdr_sample_rate_hz(h); + if (DRMP3_HDR_IS_LAYER_1(h)) + { + frame_bytes &= ~3; /* slot align */ + } + return frame_bytes ? frame_bytes : free_format_size; +} + +static int drmp3_hdr_padding(const drmp3_uint8 *h) +{ + return DRMP3_HDR_TEST_PADDING(h) ? (DRMP3_HDR_IS_LAYER_1(h) ? 4 : 1) : 0; +} + +#ifndef DR_MP3_ONLY_MP3 +static const drmp3_L12_subband_alloc *drmp3_L12_subband_alloc_table(const drmp3_uint8 *hdr, drmp3_L12_scale_info *sci) +{ + const drmp3_L12_subband_alloc *alloc; + int mode = DRMP3_HDR_GET_STEREO_MODE(hdr); + int nbands, stereo_bands = (mode == DRMP3_MODE_MONO) ? 0 : (mode == DRMP3_MODE_JOINT_STEREO) ? (DRMP3_HDR_GET_STEREO_MODE_EXT(hdr) << 2) + 4 : 32; + + if (DRMP3_HDR_IS_LAYER_1(hdr)) + { + static const drmp3_L12_subband_alloc g_alloc_L1[] = { { 76, 4, 32 } }; + alloc = g_alloc_L1; + nbands = 32; + } else if (!DRMP3_HDR_TEST_MPEG1(hdr)) + { + static const drmp3_L12_subband_alloc g_alloc_L2M2[] = { { 60, 4, 4 }, { 44, 3, 7 }, { 44, 2, 19 } }; + alloc = g_alloc_L2M2; + nbands = 30; + } else + { + static const drmp3_L12_subband_alloc g_alloc_L2M1[] = { { 0, 4, 3 }, { 16, 4, 8 }, { 32, 3, 12 }, { 40, 2, 7 } }; + int sample_rate_idx = DRMP3_HDR_GET_SAMPLE_RATE(hdr); + unsigned kbps = drmp3_hdr_bitrate_kbps(hdr) >> (int)(mode != DRMP3_MODE_MONO); + if (!kbps) /* free-format */ + { + kbps = 192; + } + + alloc = g_alloc_L2M1; + nbands = 27; + if (kbps < 56) + { + static const drmp3_L12_subband_alloc g_alloc_L2M1_lowrate[] = { { 44, 4, 2 }, { 44, 3, 10 } }; + alloc = g_alloc_L2M1_lowrate; + nbands = sample_rate_idx == 2 ? 12 : 8; + } else if (kbps >= 96 && sample_rate_idx != 1) + { + nbands = 30; + } + } + + sci->total_bands = (drmp3_uint8)nbands; + sci->stereo_bands = (drmp3_uint8)DRMP3_MIN(stereo_bands, nbands); + + return alloc; +} + +static void drmp3_L12_read_scalefactors(drmp3_bs *bs, drmp3_uint8 *pba, drmp3_uint8 *scfcod, int bands, float *scf) +{ + static const float g_deq_L12[18*3] = { +#define DRMP3_DQ(x) 9.53674316e-07f/x, 7.56931807e-07f/x, 6.00777173e-07f/x + DRMP3_DQ(3),DRMP3_DQ(7),DRMP3_DQ(15),DRMP3_DQ(31),DRMP3_DQ(63),DRMP3_DQ(127),DRMP3_DQ(255),DRMP3_DQ(511),DRMP3_DQ(1023),DRMP3_DQ(2047),DRMP3_DQ(4095),DRMP3_DQ(8191),DRMP3_DQ(16383),DRMP3_DQ(32767),DRMP3_DQ(65535),DRMP3_DQ(3),DRMP3_DQ(5),DRMP3_DQ(9) + }; + int i, m; + for (i = 0; i < bands; i++) + { + float s = 0; + int ba = *pba++; + int mask = ba ? 4 + ((19 >> scfcod[i]) & 3) : 0; + for (m = 4; m; m >>= 1) + { + if (mask & m) + { + int b = drmp3_bs_get_bits(bs, 6); + s = g_deq_L12[ba*3 - 6 + b % 3]*(int)(1 << 21 >> b/3); + } + *scf++ = s; + } + } +} + +static void drmp3_L12_read_scale_info(const drmp3_uint8 *hdr, drmp3_bs *bs, drmp3_L12_scale_info *sci) +{ + static const drmp3_uint8 g_bitalloc_code_tab[] = { + 0,17, 3, 4, 5,6,7, 8,9,10,11,12,13,14,15,16, + 0,17,18, 3,19,4,5, 6,7, 8, 9,10,11,12,13,16, + 0,17,18, 3,19,4,5,16, + 0,17,18,16, + 0,17,18,19, 4,5,6, 7,8, 9,10,11,12,13,14,15, + 0,17,18, 3,19,4,5, 6,7, 8, 9,10,11,12,13,14, + 0, 2, 3, 4, 5,6,7, 8,9,10,11,12,13,14,15,16 + }; + const drmp3_L12_subband_alloc *subband_alloc = drmp3_L12_subband_alloc_table(hdr, sci); + + int i, k = 0, ba_bits = 0; + const drmp3_uint8 *ba_code_tab = g_bitalloc_code_tab; + + for (i = 0; i < sci->total_bands; i++) + { + drmp3_uint8 ba; + if (i == k) + { + k += subband_alloc->band_count; + ba_bits = subband_alloc->code_tab_width; + ba_code_tab = g_bitalloc_code_tab + subband_alloc->tab_offset; + subband_alloc++; + } + ba = ba_code_tab[drmp3_bs_get_bits(bs, ba_bits)]; + sci->bitalloc[2*i] = ba; + if (i < sci->stereo_bands) + { + ba = ba_code_tab[drmp3_bs_get_bits(bs, ba_bits)]; + } + sci->bitalloc[2*i + 1] = sci->stereo_bands ? ba : 0; + } + + for (i = 0; i < 2*sci->total_bands; i++) + { + sci->scfcod[i] = (drmp3_uint8)(sci->bitalloc[i] ? DRMP3_HDR_IS_LAYER_1(hdr) ? 2 : drmp3_bs_get_bits(bs, 2) : 6); + } + + drmp3_L12_read_scalefactors(bs, sci->bitalloc, sci->scfcod, sci->total_bands*2, sci->scf); + + for (i = sci->stereo_bands; i < sci->total_bands; i++) + { + sci->bitalloc[2*i + 1] = 0; + } +} + +static int drmp3_L12_dequantize_granule(float *grbuf, drmp3_bs *bs, drmp3_L12_scale_info *sci, int group_size) +{ + int i, j, k, choff = 576; + for (j = 0; j < 4; j++) + { + float *dst = grbuf + group_size*j; + for (i = 0; i < 2*sci->total_bands; i++) + { + int ba = sci->bitalloc[i]; + if (ba != 0) + { + if (ba < 17) + { + int half = (1 << (ba - 1)) - 1; + for (k = 0; k < group_size; k++) + { + dst[k] = (float)((int)drmp3_bs_get_bits(bs, ba) - half); + } + } else + { + unsigned mod = (2 << (ba - 17)) + 1; /* 3, 5, 9 */ + unsigned code = drmp3_bs_get_bits(bs, mod + 2 - (mod >> 3)); /* 5, 7, 10 */ + for (k = 0; k < group_size; k++, code /= mod) + { + dst[k] = (float)((int)(code % mod - mod/2)); + } + } + } + dst += choff; + choff = 18 - choff; + } + } + return group_size*4; +} + +static void drmp3_L12_apply_scf_384(drmp3_L12_scale_info *sci, const float *scf, float *dst) +{ + int i, k; + DRMP3_COPY_MEMORY(dst + 576 + sci->stereo_bands*18, dst + sci->stereo_bands*18, (sci->total_bands - sci->stereo_bands)*18*sizeof(float)); + for (i = 0; i < sci->total_bands; i++, dst += 18, scf += 6) + { + for (k = 0; k < 12; k++) + { + dst[k + 0] *= scf[0]; + dst[k + 576] *= scf[3]; + } + } +} +#endif + +static int drmp3_L3_read_side_info(drmp3_bs *bs, drmp3_L3_gr_info *gr, const drmp3_uint8 *hdr) +{ + static const drmp3_uint8 g_scf_long[8][23] = { + { 6,6,6,6,6,6,8,10,12,14,16,20,24,28,32,38,46,52,60,68,58,54,0 }, + { 12,12,12,12,12,12,16,20,24,28,32,40,48,56,64,76,90,2,2,2,2,2,0 }, + { 6,6,6,6,6,6,8,10,12,14,16,20,24,28,32,38,46,52,60,68,58,54,0 }, + { 6,6,6,6,6,6,8,10,12,14,16,18,22,26,32,38,46,54,62,70,76,36,0 }, + { 6,6,6,6,6,6,8,10,12,14,16,20,24,28,32,38,46,52,60,68,58,54,0 }, + { 4,4,4,4,4,4,6,6,8,8,10,12,16,20,24,28,34,42,50,54,76,158,0 }, + { 4,4,4,4,4,4,6,6,6,8,10,12,16,18,22,28,34,40,46,54,54,192,0 }, + { 4,4,4,4,4,4,6,6,8,10,12,16,20,24,30,38,46,56,68,84,102,26,0 } + }; + static const drmp3_uint8 g_scf_short[8][40] = { + { 4,4,4,4,4,4,4,4,4,6,6,6,8,8,8,10,10,10,12,12,12,14,14,14,18,18,18,24,24,24,30,30,30,40,40,40,18,18,18,0 }, + { 8,8,8,8,8,8,8,8,8,12,12,12,16,16,16,20,20,20,24,24,24,28,28,28,36,36,36,2,2,2,2,2,2,2,2,2,26,26,26,0 }, + { 4,4,4,4,4,4,4,4,4,6,6,6,6,6,6,8,8,8,10,10,10,14,14,14,18,18,18,26,26,26,32,32,32,42,42,42,18,18,18,0 }, + { 4,4,4,4,4,4,4,4,4,6,6,6,8,8,8,10,10,10,12,12,12,14,14,14,18,18,18,24,24,24,32,32,32,44,44,44,12,12,12,0 }, + { 4,4,4,4,4,4,4,4,4,6,6,6,8,8,8,10,10,10,12,12,12,14,14,14,18,18,18,24,24,24,30,30,30,40,40,40,18,18,18,0 }, + { 4,4,4,4,4,4,4,4,4,4,4,4,6,6,6,8,8,8,10,10,10,12,12,12,14,14,14,18,18,18,22,22,22,30,30,30,56,56,56,0 }, + { 4,4,4,4,4,4,4,4,4,4,4,4,6,6,6,6,6,6,10,10,10,12,12,12,14,14,14,16,16,16,20,20,20,26,26,26,66,66,66,0 }, + { 4,4,4,4,4,4,4,4,4,4,4,4,6,6,6,8,8,8,12,12,12,16,16,16,20,20,20,26,26,26,34,34,34,42,42,42,12,12,12,0 } + }; + static const drmp3_uint8 g_scf_mixed[8][40] = { + { 6,6,6,6,6,6,6,6,6,8,8,8,10,10,10,12,12,12,14,14,14,18,18,18,24,24,24,30,30,30,40,40,40,18,18,18,0 }, + { 12,12,12,4,4,4,8,8,8,12,12,12,16,16,16,20,20,20,24,24,24,28,28,28,36,36,36,2,2,2,2,2,2,2,2,2,26,26,26,0 }, + { 6,6,6,6,6,6,6,6,6,6,6,6,8,8,8,10,10,10,14,14,14,18,18,18,26,26,26,32,32,32,42,42,42,18,18,18,0 }, + { 6,6,6,6,6,6,6,6,6,8,8,8,10,10,10,12,12,12,14,14,14,18,18,18,24,24,24,32,32,32,44,44,44,12,12,12,0 }, + { 6,6,6,6,6,6,6,6,6,8,8,8,10,10,10,12,12,12,14,14,14,18,18,18,24,24,24,30,30,30,40,40,40,18,18,18,0 }, + { 4,4,4,4,4,4,6,6,4,4,4,6,6,6,8,8,8,10,10,10,12,12,12,14,14,14,18,18,18,22,22,22,30,30,30,56,56,56,0 }, + { 4,4,4,4,4,4,6,6,4,4,4,6,6,6,6,6,6,10,10,10,12,12,12,14,14,14,16,16,16,20,20,20,26,26,26,66,66,66,0 }, + { 4,4,4,4,4,4,6,6,4,4,4,6,6,6,8,8,8,12,12,12,16,16,16,20,20,20,26,26,26,34,34,34,42,42,42,12,12,12,0 } + }; + + unsigned tables, scfsi = 0; + int main_data_begin, part_23_sum = 0; + int gr_count = DRMP3_HDR_IS_MONO(hdr) ? 1 : 2; + int sr_idx = DRMP3_HDR_GET_MY_SAMPLE_RATE(hdr); sr_idx -= (sr_idx != 0); + + if (DRMP3_HDR_TEST_MPEG1(hdr)) + { + gr_count *= 2; + main_data_begin = drmp3_bs_get_bits(bs, 9); + scfsi = drmp3_bs_get_bits(bs, 7 + gr_count); + } else + { + main_data_begin = drmp3_bs_get_bits(bs, 8 + gr_count) >> gr_count; + } + + do + { + if (DRMP3_HDR_IS_MONO(hdr)) + { + scfsi <<= 4; + } + gr->part_23_length = (drmp3_uint16)drmp3_bs_get_bits(bs, 12); + part_23_sum += gr->part_23_length; + gr->big_values = (drmp3_uint16)drmp3_bs_get_bits(bs, 9); + if (gr->big_values > 288) + { + return -1; + } + gr->global_gain = (drmp3_uint8)drmp3_bs_get_bits(bs, 8); + gr->scalefac_compress = (drmp3_uint16)drmp3_bs_get_bits(bs, DRMP3_HDR_TEST_MPEG1(hdr) ? 4 : 9); + gr->sfbtab = g_scf_long[sr_idx]; + gr->n_long_sfb = 22; + gr->n_short_sfb = 0; + if (drmp3_bs_get_bits(bs, 1)) + { + gr->block_type = (drmp3_uint8)drmp3_bs_get_bits(bs, 2); + if (!gr->block_type) + { + return -1; + } + gr->mixed_block_flag = (drmp3_uint8)drmp3_bs_get_bits(bs, 1); + gr->region_count[0] = 7; + gr->region_count[1] = 255; + if (gr->block_type == DRMP3_SHORT_BLOCK_TYPE) + { + scfsi &= 0x0F0F; + if (!gr->mixed_block_flag) + { + gr->region_count[0] = 8; + gr->sfbtab = g_scf_short[sr_idx]; + gr->n_long_sfb = 0; + gr->n_short_sfb = 39; + } else + { + gr->sfbtab = g_scf_mixed[sr_idx]; + gr->n_long_sfb = DRMP3_HDR_TEST_MPEG1(hdr) ? 8 : 6; + gr->n_short_sfb = 30; + } + } + tables = drmp3_bs_get_bits(bs, 10); + tables <<= 5; + gr->subblock_gain[0] = (drmp3_uint8)drmp3_bs_get_bits(bs, 3); + gr->subblock_gain[1] = (drmp3_uint8)drmp3_bs_get_bits(bs, 3); + gr->subblock_gain[2] = (drmp3_uint8)drmp3_bs_get_bits(bs, 3); + } else + { + gr->block_type = 0; + gr->mixed_block_flag = 0; + tables = drmp3_bs_get_bits(bs, 15); + gr->region_count[0] = (drmp3_uint8)drmp3_bs_get_bits(bs, 4); + gr->region_count[1] = (drmp3_uint8)drmp3_bs_get_bits(bs, 3); + gr->region_count[2] = 255; + } + gr->table_select[0] = (drmp3_uint8)(tables >> 10); + gr->table_select[1] = (drmp3_uint8)((tables >> 5) & 31); + gr->table_select[2] = (drmp3_uint8)((tables) & 31); + gr->preflag = (drmp3_uint8)(DRMP3_HDR_TEST_MPEG1(hdr) ? drmp3_bs_get_bits(bs, 1) : (gr->scalefac_compress >= 500)); + gr->scalefac_scale = (drmp3_uint8)drmp3_bs_get_bits(bs, 1); + gr->count1_table = (drmp3_uint8)drmp3_bs_get_bits(bs, 1); + gr->scfsi = (drmp3_uint8)((scfsi >> 12) & 15); + scfsi <<= 4; + gr++; + } while(--gr_count); + + if (part_23_sum + bs->pos > bs->limit + main_data_begin*8) + { + return -1; + } + + return main_data_begin; +} + +static void drmp3_L3_read_scalefactors(drmp3_uint8 *scf, drmp3_uint8 *ist_pos, const drmp3_uint8 *scf_size, const drmp3_uint8 *scf_count, drmp3_bs *bitbuf, int scfsi) +{ + int i, k; + for (i = 0; i < 4 && scf_count[i]; i++, scfsi *= 2) + { + int cnt = scf_count[i]; + if (scfsi & 8) + { + DRMP3_COPY_MEMORY(scf, ist_pos, cnt); + } else + { + int bits = scf_size[i]; + if (!bits) + { + DRMP3_ZERO_MEMORY(scf, cnt); + DRMP3_ZERO_MEMORY(ist_pos, cnt); + } else + { + int max_scf = (scfsi < 0) ? (1 << bits) - 1 : -1; + for (k = 0; k < cnt; k++) + { + int s = drmp3_bs_get_bits(bitbuf, bits); + ist_pos[k] = (drmp3_uint8)(s == max_scf ? -1 : s); + scf[k] = (drmp3_uint8)s; + } + } + } + ist_pos += cnt; + scf += cnt; + } + scf[0] = scf[1] = scf[2] = 0; +} + +static float drmp3_L3_ldexp_q2(float y, int exp_q2) +{ + static const float g_expfrac[4] = { 9.31322575e-10f,7.83145814e-10f,6.58544508e-10f,5.53767716e-10f }; + int e; + do + { + e = DRMP3_MIN(30*4, exp_q2); + y *= g_expfrac[e & 3]*(1 << 30 >> (e >> 2)); + } while ((exp_q2 -= e) > 0); + return y; +} + +static void drmp3_L3_decode_scalefactors(const drmp3_uint8 *hdr, drmp3_uint8 *ist_pos, drmp3_bs *bs, const drmp3_L3_gr_info *gr, float *scf, int ch) +{ + static const drmp3_uint8 g_scf_partitions[3][28] = { + { 6,5,5, 5,6,5,5,5,6,5, 7,3,11,10,0,0, 7, 7, 7,0, 6, 6,6,3, 8, 8,5,0 }, + { 8,9,6,12,6,9,9,9,6,9,12,6,15,18,0,0, 6,15,12,0, 6,12,9,6, 6,18,9,0 }, + { 9,9,6,12,9,9,9,9,9,9,12,6,18,18,0,0,12,12,12,0,12, 9,9,6,15,12,9,0 } + }; + const drmp3_uint8 *scf_partition = g_scf_partitions[!!gr->n_short_sfb + !gr->n_long_sfb]; + drmp3_uint8 scf_size[4], iscf[40]; + int i, scf_shift = gr->scalefac_scale + 1, gain_exp, scfsi = gr->scfsi; + float gain; + + if (DRMP3_HDR_TEST_MPEG1(hdr)) + { + static const drmp3_uint8 g_scfc_decode[16] = { 0,1,2,3, 12,5,6,7, 9,10,11,13, 14,15,18,19 }; + int part = g_scfc_decode[gr->scalefac_compress]; + scf_size[1] = scf_size[0] = (drmp3_uint8)(part >> 2); + scf_size[3] = scf_size[2] = (drmp3_uint8)(part & 3); + } else + { + static const drmp3_uint8 g_mod[6*4] = { 5,5,4,4,5,5,4,1,4,3,1,1,5,6,6,1,4,4,4,1,4,3,1,1 }; + int k, modprod, sfc, ist = DRMP3_HDR_TEST_I_STEREO(hdr) && ch; + sfc = gr->scalefac_compress >> ist; + for (k = ist*3*4; sfc >= 0; sfc -= modprod, k += 4) + { + for (modprod = 1, i = 3; i >= 0; i--) + { + scf_size[i] = (drmp3_uint8)(sfc / modprod % g_mod[k + i]); + modprod *= g_mod[k + i]; + } + } + scf_partition += k; + scfsi = -16; + } + drmp3_L3_read_scalefactors(iscf, ist_pos, scf_size, scf_partition, bs, scfsi); + + if (gr->n_short_sfb) + { + int sh = 3 - scf_shift; + for (i = 0; i < gr->n_short_sfb; i += 3) + { + iscf[gr->n_long_sfb + i + 0] = (drmp3_uint8)(iscf[gr->n_long_sfb + i + 0] + (gr->subblock_gain[0] << sh)); + iscf[gr->n_long_sfb + i + 1] = (drmp3_uint8)(iscf[gr->n_long_sfb + i + 1] + (gr->subblock_gain[1] << sh)); + iscf[gr->n_long_sfb + i + 2] = (drmp3_uint8)(iscf[gr->n_long_sfb + i + 2] + (gr->subblock_gain[2] << sh)); + } + } else if (gr->preflag) + { + static const drmp3_uint8 g_preamp[10] = { 1,1,1,1,2,2,3,3,3,2 }; + for (i = 0; i < 10; i++) + { + iscf[11 + i] = (drmp3_uint8)(iscf[11 + i] + g_preamp[i]); + } + } + + gain_exp = gr->global_gain + DRMP3_BITS_DEQUANTIZER_OUT*4 - 210 - (DRMP3_HDR_IS_MS_STEREO(hdr) ? 2 : 0); + gain = drmp3_L3_ldexp_q2(1 << (DRMP3_MAX_SCFI/4), DRMP3_MAX_SCFI - gain_exp); + for (i = 0; i < (int)(gr->n_long_sfb + gr->n_short_sfb); i++) + { + scf[i] = drmp3_L3_ldexp_q2(gain, iscf[i] << scf_shift); + } +} + +static const float g_drmp3_pow43[129 + 16] = { + 0,-1,-2.519842f,-4.326749f,-6.349604f,-8.549880f,-10.902724f,-13.390518f,-16.000000f,-18.720754f,-21.544347f,-24.463781f,-27.473142f,-30.567351f,-33.741992f,-36.993181f, + 0,1,2.519842f,4.326749f,6.349604f,8.549880f,10.902724f,13.390518f,16.000000f,18.720754f,21.544347f,24.463781f,27.473142f,30.567351f,33.741992f,36.993181f,40.317474f,43.711787f,47.173345f,50.699631f,54.288352f,57.937408f,61.644865f,65.408941f,69.227979f,73.100443f,77.024898f,81.000000f,85.024491f,89.097188f,93.216975f,97.382800f,101.593667f,105.848633f,110.146801f,114.487321f,118.869381f,123.292209f,127.755065f,132.257246f,136.798076f,141.376907f,145.993119f,150.646117f,155.335327f,160.060199f,164.820202f,169.614826f,174.443577f,179.305980f,184.201575f,189.129918f,194.090580f,199.083145f,204.107210f,209.162385f,214.248292f,219.364564f,224.510845f,229.686789f,234.892058f,240.126328f,245.389280f,250.680604f,256.000000f,261.347174f,266.721841f,272.123723f,277.552547f,283.008049f,288.489971f,293.998060f,299.532071f,305.091761f,310.676898f,316.287249f,321.922592f,327.582707f,333.267377f,338.976394f,344.709550f,350.466646f,356.247482f,362.051866f,367.879608f,373.730522f,379.604427f,385.501143f,391.420496f,397.362314f,403.326427f,409.312672f,415.320884f,421.350905f,427.402579f,433.475750f,439.570269f,445.685987f,451.822757f,457.980436f,464.158883f,470.357960f,476.577530f,482.817459f,489.077615f,495.357868f,501.658090f,507.978156f,514.317941f,520.677324f,527.056184f,533.454404f,539.871867f,546.308458f,552.764065f,559.238575f,565.731879f,572.243870f,578.774440f,585.323483f,591.890898f,598.476581f,605.080431f,611.702349f,618.342238f,625.000000f,631.675540f,638.368763f,645.079578f +}; + +static float drmp3_L3_pow_43(int x) +{ + float frac; + int sign, mult = 256; + + if (x < 129) + { + return g_drmp3_pow43[16 + x]; + } + + if (x < 1024) + { + mult = 16; + x <<= 3; + } + + sign = 2*x & 64; + frac = (float)((x & 63) - sign) / ((x & ~63) + sign); + return g_drmp3_pow43[16 + ((x + sign) >> 6)]*(1.f + frac*((4.f/3) + frac*(2.f/9)))*mult; +} + +static void drmp3_L3_huffman(float *dst, drmp3_bs *bs, const drmp3_L3_gr_info *gr_info, const float *scf, int layer3gr_limit) +{ + static const drmp3_int16 tabs[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 785,785,785,785,784,784,784,784,513,513,513,513,513,513,513,513,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256, + -255,1313,1298,1282,785,785,785,785,784,784,784,784,769,769,769,769,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,290,288, + -255,1313,1298,1282,769,769,769,769,529,529,529,529,529,529,529,529,528,528,528,528,528,528,528,528,512,512,512,512,512,512,512,512,290,288, + -253,-318,-351,-367,785,785,785,785,784,784,784,784,769,769,769,769,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,819,818,547,547,275,275,275,275,561,560,515,546,289,274,288,258, + -254,-287,1329,1299,1314,1312,1057,1057,1042,1042,1026,1026,784,784,784,784,529,529,529,529,529,529,529,529,769,769,769,769,768,768,768,768,563,560,306,306,291,259, + -252,-413,-477,-542,1298,-575,1041,1041,784,784,784,784,769,769,769,769,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,-383,-399,1107,1092,1106,1061,849,849,789,789,1104,1091,773,773,1076,1075,341,340,325,309,834,804,577,577,532,532,516,516,832,818,803,816,561,561,531,531,515,546,289,289,288,258, + -252,-429,-493,-559,1057,1057,1042,1042,529,529,529,529,529,529,529,529,784,784,784,784,769,769,769,769,512,512,512,512,512,512,512,512,-382,1077,-415,1106,1061,1104,849,849,789,789,1091,1076,1029,1075,834,834,597,581,340,340,339,324,804,833,532,532,832,772,818,803,817,787,816,771,290,290,290,290,288,258, + -253,-349,-414,-447,-463,1329,1299,-479,1314,1312,1057,1057,1042,1042,1026,1026,785,785,785,785,784,784,784,784,769,769,769,769,768,768,768,768,-319,851,821,-335,836,850,805,849,341,340,325,336,533,533,579,579,564,564,773,832,578,548,563,516,321,276,306,291,304,259, + -251,-572,-733,-830,-863,-879,1041,1041,784,784,784,784,769,769,769,769,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,-511,-527,-543,1396,1351,1381,1366,1395,1335,1380,-559,1334,1138,1138,1063,1063,1350,1392,1031,1031,1062,1062,1364,1363,1120,1120,1333,1348,881,881,881,881,375,374,359,373,343,358,341,325,791,791,1123,1122,-703,1105,1045,-719,865,865,790,790,774,774,1104,1029,338,293,323,308,-799,-815,833,788,772,818,803,816,322,292,307,320,561,531,515,546,289,274,288,258, + -251,-525,-605,-685,-765,-831,-846,1298,1057,1057,1312,1282,785,785,785,785,784,784,784,784,769,769,769,769,512,512,512,512,512,512,512,512,1399,1398,1383,1367,1382,1396,1351,-511,1381,1366,1139,1139,1079,1079,1124,1124,1364,1349,1363,1333,882,882,882,882,807,807,807,807,1094,1094,1136,1136,373,341,535,535,881,775,867,822,774,-591,324,338,-671,849,550,550,866,864,609,609,293,336,534,534,789,835,773,-751,834,804,308,307,833,788,832,772,562,562,547,547,305,275,560,515,290,290, + -252,-397,-477,-557,-622,-653,-719,-735,-750,1329,1299,1314,1057,1057,1042,1042,1312,1282,1024,1024,785,785,785,785,784,784,784,784,769,769,769,769,-383,1127,1141,1111,1126,1140,1095,1110,869,869,883,883,1079,1109,882,882,375,374,807,868,838,881,791,-463,867,822,368,263,852,837,836,-543,610,610,550,550,352,336,534,534,865,774,851,821,850,805,593,533,579,564,773,832,578,578,548,548,577,577,307,276,306,291,516,560,259,259, + -250,-2107,-2507,-2764,-2909,-2974,-3007,-3023,1041,1041,1040,1040,769,769,769,769,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,-767,-1052,-1213,-1277,-1358,-1405,-1469,-1535,-1550,-1582,-1614,-1647,-1662,-1694,-1726,-1759,-1774,-1807,-1822,-1854,-1886,1565,-1919,-1935,-1951,-1967,1731,1730,1580,1717,-1983,1729,1564,-1999,1548,-2015,-2031,1715,1595,-2047,1714,-2063,1610,-2079,1609,-2095,1323,1323,1457,1457,1307,1307,1712,1547,1641,1700,1699,1594,1685,1625,1442,1442,1322,1322,-780,-973,-910,1279,1278,1277,1262,1276,1261,1275,1215,1260,1229,-959,974,974,989,989,-943,735,478,478,495,463,506,414,-1039,1003,958,1017,927,942,987,957,431,476,1272,1167,1228,-1183,1256,-1199,895,895,941,941,1242,1227,1212,1135,1014,1014,490,489,503,487,910,1013,985,925,863,894,970,955,1012,847,-1343,831,755,755,984,909,428,366,754,559,-1391,752,486,457,924,997,698,698,983,893,740,740,908,877,739,739,667,667,953,938,497,287,271,271,683,606,590,712,726,574,302,302,738,736,481,286,526,725,605,711,636,724,696,651,589,681,666,710,364,467,573,695,466,466,301,465,379,379,709,604,665,679,316,316,634,633,436,436,464,269,424,394,452,332,438,363,347,408,393,448,331,422,362,407,392,421,346,406,391,376,375,359,1441,1306,-2367,1290,-2383,1337,-2399,-2415,1426,1321,-2431,1411,1336,-2447,-2463,-2479,1169,1169,1049,1049,1424,1289,1412,1352,1319,-2495,1154,1154,1064,1064,1153,1153,416,390,360,404,403,389,344,374,373,343,358,372,327,357,342,311,356,326,1395,1394,1137,1137,1047,1047,1365,1392,1287,1379,1334,1364,1349,1378,1318,1363,792,792,792,792,1152,1152,1032,1032,1121,1121,1046,1046,1120,1120,1030,1030,-2895,1106,1061,1104,849,849,789,789,1091,1076,1029,1090,1060,1075,833,833,309,324,532,532,832,772,818,803,561,561,531,560,515,546,289,274,288,258, + -250,-1179,-1579,-1836,-1996,-2124,-2253,-2333,-2413,-2477,-2542,-2574,-2607,-2622,-2655,1314,1313,1298,1312,1282,785,785,785,785,1040,1040,1025,1025,768,768,768,768,-766,-798,-830,-862,-895,-911,-927,-943,-959,-975,-991,-1007,-1023,-1039,-1055,-1070,1724,1647,-1103,-1119,1631,1767,1662,1738,1708,1723,-1135,1780,1615,1779,1599,1677,1646,1778,1583,-1151,1777,1567,1737,1692,1765,1722,1707,1630,1751,1661,1764,1614,1736,1676,1763,1750,1645,1598,1721,1691,1762,1706,1582,1761,1566,-1167,1749,1629,767,766,751,765,494,494,735,764,719,749,734,763,447,447,748,718,477,506,431,491,446,476,461,505,415,430,475,445,504,399,460,489,414,503,383,474,429,459,502,502,746,752,488,398,501,473,413,472,486,271,480,270,-1439,-1455,1357,-1471,-1487,-1503,1341,1325,-1519,1489,1463,1403,1309,-1535,1372,1448,1418,1476,1356,1462,1387,-1551,1475,1340,1447,1402,1386,-1567,1068,1068,1474,1461,455,380,468,440,395,425,410,454,364,467,466,464,453,269,409,448,268,432,1371,1473,1432,1417,1308,1460,1355,1446,1459,1431,1083,1083,1401,1416,1458,1445,1067,1067,1370,1457,1051,1051,1291,1430,1385,1444,1354,1415,1400,1443,1082,1082,1173,1113,1186,1066,1185,1050,-1967,1158,1128,1172,1097,1171,1081,-1983,1157,1112,416,266,375,400,1170,1142,1127,1065,793,793,1169,1033,1156,1096,1141,1111,1155,1080,1126,1140,898,898,808,808,897,897,792,792,1095,1152,1032,1125,1110,1139,1079,1124,882,807,838,881,853,791,-2319,867,368,263,822,852,837,866,806,865,-2399,851,352,262,534,534,821,836,594,594,549,549,593,593,533,533,848,773,579,579,564,578,548,563,276,276,577,576,306,291,516,560,305,305,275,259, + -251,-892,-2058,-2620,-2828,-2957,-3023,-3039,1041,1041,1040,1040,769,769,769,769,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,-511,-527,-543,-559,1530,-575,-591,1528,1527,1407,1526,1391,1023,1023,1023,1023,1525,1375,1268,1268,1103,1103,1087,1087,1039,1039,1523,-604,815,815,815,815,510,495,509,479,508,463,507,447,431,505,415,399,-734,-782,1262,-815,1259,1244,-831,1258,1228,-847,-863,1196,-879,1253,987,987,748,-767,493,493,462,477,414,414,686,669,478,446,461,445,474,429,487,458,412,471,1266,1264,1009,1009,799,799,-1019,-1276,-1452,-1581,-1677,-1757,-1821,-1886,-1933,-1997,1257,1257,1483,1468,1512,1422,1497,1406,1467,1496,1421,1510,1134,1134,1225,1225,1466,1451,1374,1405,1252,1252,1358,1480,1164,1164,1251,1251,1238,1238,1389,1465,-1407,1054,1101,-1423,1207,-1439,830,830,1248,1038,1237,1117,1223,1148,1236,1208,411,426,395,410,379,269,1193,1222,1132,1235,1221,1116,976,976,1192,1162,1177,1220,1131,1191,963,963,-1647,961,780,-1663,558,558,994,993,437,408,393,407,829,978,813,797,947,-1743,721,721,377,392,844,950,828,890,706,706,812,859,796,960,948,843,934,874,571,571,-1919,690,555,689,421,346,539,539,944,779,918,873,932,842,903,888,570,570,931,917,674,674,-2575,1562,-2591,1609,-2607,1654,1322,1322,1441,1441,1696,1546,1683,1593,1669,1624,1426,1426,1321,1321,1639,1680,1425,1425,1305,1305,1545,1668,1608,1623,1667,1592,1638,1666,1320,1320,1652,1607,1409,1409,1304,1304,1288,1288,1664,1637,1395,1395,1335,1335,1622,1636,1394,1394,1319,1319,1606,1621,1392,1392,1137,1137,1137,1137,345,390,360,375,404,373,1047,-2751,-2767,-2783,1062,1121,1046,-2799,1077,-2815,1106,1061,789,789,1105,1104,263,355,310,340,325,354,352,262,339,324,1091,1076,1029,1090,1060,1075,833,833,788,788,1088,1028,818,818,803,803,561,561,531,531,816,771,546,546,289,274,288,258, + -253,-317,-381,-446,-478,-509,1279,1279,-811,-1179,-1451,-1756,-1900,-2028,-2189,-2253,-2333,-2414,-2445,-2511,-2526,1313,1298,-2559,1041,1041,1040,1040,1025,1025,1024,1024,1022,1007,1021,991,1020,975,1019,959,687,687,1018,1017,671,671,655,655,1016,1015,639,639,758,758,623,623,757,607,756,591,755,575,754,559,543,543,1009,783,-575,-621,-685,-749,496,-590,750,749,734,748,974,989,1003,958,988,973,1002,942,987,957,972,1001,926,986,941,971,956,1000,910,985,925,999,894,970,-1071,-1087,-1102,1390,-1135,1436,1509,1451,1374,-1151,1405,1358,1480,1420,-1167,1507,1494,1389,1342,1465,1435,1450,1326,1505,1310,1493,1373,1479,1404,1492,1464,1419,428,443,472,397,736,526,464,464,486,457,442,471,484,482,1357,1449,1434,1478,1388,1491,1341,1490,1325,1489,1463,1403,1309,1477,1372,1448,1418,1433,1476,1356,1462,1387,-1439,1475,1340,1447,1402,1474,1324,1461,1371,1473,269,448,1432,1417,1308,1460,-1711,1459,-1727,1441,1099,1099,1446,1386,1431,1401,-1743,1289,1083,1083,1160,1160,1458,1445,1067,1067,1370,1457,1307,1430,1129,1129,1098,1098,268,432,267,416,266,400,-1887,1144,1187,1082,1173,1113,1186,1066,1050,1158,1128,1143,1172,1097,1171,1081,420,391,1157,1112,1170,1142,1127,1065,1169,1049,1156,1096,1141,1111,1155,1080,1126,1154,1064,1153,1140,1095,1048,-2159,1125,1110,1137,-2175,823,823,1139,1138,807,807,384,264,368,263,868,838,853,791,867,822,852,837,866,806,865,790,-2319,851,821,836,352,262,850,805,849,-2399,533,533,835,820,336,261,578,548,563,577,532,532,832,772,562,562,547,547,305,275,560,515,290,290,288,258 }; + static const drmp3_uint8 tab32[] = { 130,162,193,209,44,28,76,140,9,9,9,9,9,9,9,9,190,254,222,238,126,94,157,157,109,61,173,205}; + static const drmp3_uint8 tab33[] = { 252,236,220,204,188,172,156,140,124,108,92,76,60,44,28,12 }; + static const drmp3_int16 tabindex[2*16] = { 0,32,64,98,0,132,180,218,292,364,426,538,648,746,0,1126,1460,1460,1460,1460,1460,1460,1460,1460,1842,1842,1842,1842,1842,1842,1842,1842 }; + static const drmp3_uint8 g_linbits[] = { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,3,4,6,8,10,13,4,5,6,7,8,9,11,13 }; + +#define DRMP3_PEEK_BITS(n) (bs_cache >> (32 - (n))) +#define DRMP3_FLUSH_BITS(n) { bs_cache <<= (n); bs_sh += (n); } +#define DRMP3_CHECK_BITS while (bs_sh >= 0) { bs_cache |= (drmp3_uint32)*bs_next_ptr++ << bs_sh; bs_sh -= 8; } +#define DRMP3_BSPOS ((bs_next_ptr - bs->buf)*8 - 24 + bs_sh) + + float one = 0.0f; + int ireg = 0, big_val_cnt = gr_info->big_values; + const drmp3_uint8 *sfb = gr_info->sfbtab; + const drmp3_uint8 *bs_next_ptr = bs->buf + bs->pos/8; + drmp3_uint32 bs_cache = (((bs_next_ptr[0]*256u + bs_next_ptr[1])*256u + bs_next_ptr[2])*256u + bs_next_ptr[3]) << (bs->pos & 7); + int pairs_to_decode, np, bs_sh = (bs->pos & 7) - 8; + bs_next_ptr += 4; + + while (big_val_cnt > 0) + { + int tab_num = gr_info->table_select[ireg]; + int sfb_cnt = gr_info->region_count[ireg++]; + const drmp3_int16 *codebook = tabs + tabindex[tab_num]; + int linbits = g_linbits[tab_num]; + if (linbits) + { + do + { + np = *sfb++ / 2; + pairs_to_decode = DRMP3_MIN(big_val_cnt, np); + one = *scf++; + do + { + int j, w = 5; + int leaf = codebook[DRMP3_PEEK_BITS(w)]; + while (leaf < 0) + { + DRMP3_FLUSH_BITS(w); + w = leaf & 7; + leaf = codebook[DRMP3_PEEK_BITS(w) - (leaf >> 3)]; + } + DRMP3_FLUSH_BITS(leaf >> 8); + + for (j = 0; j < 2; j++, dst++, leaf >>= 4) + { + int lsb = leaf & 0x0F; + if (lsb == 15) + { + lsb += DRMP3_PEEK_BITS(linbits); + DRMP3_FLUSH_BITS(linbits); + DRMP3_CHECK_BITS; + *dst = one*drmp3_L3_pow_43(lsb)*((drmp3_int32)bs_cache < 0 ? -1: 1); + } else + { + *dst = g_drmp3_pow43[16 + lsb - 16*(bs_cache >> 31)]*one; + } + DRMP3_FLUSH_BITS(lsb ? 1 : 0); + } + DRMP3_CHECK_BITS; + } while (--pairs_to_decode); + } while ((big_val_cnt -= np) > 0 && --sfb_cnt >= 0); + } else + { + do + { + np = *sfb++ / 2; + pairs_to_decode = DRMP3_MIN(big_val_cnt, np); + one = *scf++; + do + { + int j, w = 5; + int leaf = codebook[DRMP3_PEEK_BITS(w)]; + while (leaf < 0) + { + DRMP3_FLUSH_BITS(w); + w = leaf & 7; + leaf = codebook[DRMP3_PEEK_BITS(w) - (leaf >> 3)]; + } + DRMP3_FLUSH_BITS(leaf >> 8); + + for (j = 0; j < 2; j++, dst++, leaf >>= 4) + { + int lsb = leaf & 0x0F; + *dst = g_drmp3_pow43[16 + lsb - 16*(bs_cache >> 31)]*one; + DRMP3_FLUSH_BITS(lsb ? 1 : 0); + } + DRMP3_CHECK_BITS; + } while (--pairs_to_decode); + } while ((big_val_cnt -= np) > 0 && --sfb_cnt >= 0); + } + } + + for (np = 1 - big_val_cnt;; dst += 4) + { + const drmp3_uint8 *codebook_count1 = (gr_info->count1_table) ? tab33 : tab32; + int leaf = codebook_count1[DRMP3_PEEK_BITS(4)]; + if (!(leaf & 8)) + { + leaf = codebook_count1[(leaf >> 3) + (bs_cache << 4 >> (32 - (leaf & 3)))]; + } + DRMP3_FLUSH_BITS(leaf & 7); + if (DRMP3_BSPOS > layer3gr_limit) + { + break; + } +#define DRMP3_RELOAD_SCALEFACTOR if (!--np) { np = *sfb++/2; if (!np) break; one = *scf++; } +#define DRMP3_DEQ_COUNT1(s) if (leaf & (128 >> s)) { dst[s] = ((drmp3_int32)bs_cache < 0) ? -one : one; DRMP3_FLUSH_BITS(1) } + DRMP3_RELOAD_SCALEFACTOR; + DRMP3_DEQ_COUNT1(0); + DRMP3_DEQ_COUNT1(1); + DRMP3_RELOAD_SCALEFACTOR; + DRMP3_DEQ_COUNT1(2); + DRMP3_DEQ_COUNT1(3); + DRMP3_CHECK_BITS; + } + + bs->pos = layer3gr_limit; +} + +static void drmp3_L3_midside_stereo(float *left, int n) +{ + int i = 0; + float *right = left + 576; +#if DRMP3_HAVE_SIMD + if (drmp3_have_simd()) + { + for (; i < n - 3; i += 4) + { + drmp3_f4 vl = DRMP3_VLD(left + i); + drmp3_f4 vr = DRMP3_VLD(right + i); + DRMP3_VSTORE(left + i, DRMP3_VADD(vl, vr)); + DRMP3_VSTORE(right + i, DRMP3_VSUB(vl, vr)); + } +#ifdef __GNUC__ + /* Workaround for spurious -Waggressive-loop-optimizations warning from gcc. + * For more info see: https://github.com/lieff/minimp3/issues/88 + */ + if (__builtin_constant_p(n % 4 == 0) && n % 4 == 0) + return; +#endif + } +#endif + for (; i < n; i++) + { + float a = left[i]; + float b = right[i]; + left[i] = a + b; + right[i] = a - b; + } +} + +static void drmp3_L3_intensity_stereo_band(float *left, int n, float kl, float kr) +{ + int i; + for (i = 0; i < n; i++) + { + left[i + 576] = left[i]*kr; + left[i] = left[i]*kl; + } +} + +static void drmp3_L3_stereo_top_band(const float *right, const drmp3_uint8 *sfb, int nbands, int max_band[3]) +{ + int i, k; + + max_band[0] = max_band[1] = max_band[2] = -1; + + for (i = 0; i < nbands; i++) + { + for (k = 0; k < sfb[i]; k += 2) + { + if (right[k] != 0 || right[k + 1] != 0) + { + max_band[i % 3] = i; + break; + } + } + right += sfb[i]; + } +} + +static void drmp3_L3_stereo_process(float *left, const drmp3_uint8 *ist_pos, const drmp3_uint8 *sfb, const drmp3_uint8 *hdr, int max_band[3], int mpeg2_sh) +{ + static const float g_pan[7*2] = { 0,1,0.21132487f,0.78867513f,0.36602540f,0.63397460f,0.5f,0.5f,0.63397460f,0.36602540f,0.78867513f,0.21132487f,1,0 }; + unsigned i, max_pos = DRMP3_HDR_TEST_MPEG1(hdr) ? 7 : 64; + + for (i = 0; sfb[i]; i++) + { + unsigned ipos = ist_pos[i]; + if ((int)i > max_band[i % 3] && ipos < max_pos) + { + float kl, kr, s = DRMP3_HDR_TEST_MS_STEREO(hdr) ? 1.41421356f : 1; + if (DRMP3_HDR_TEST_MPEG1(hdr)) + { + kl = g_pan[2*ipos]; + kr = g_pan[2*ipos + 1]; + } else + { + kl = 1; + kr = drmp3_L3_ldexp_q2(1, (ipos + 1) >> 1 << mpeg2_sh); + if (ipos & 1) + { + kl = kr; + kr = 1; + } + } + drmp3_L3_intensity_stereo_band(left, sfb[i], kl*s, kr*s); + } else if (DRMP3_HDR_TEST_MS_STEREO(hdr)) + { + drmp3_L3_midside_stereo(left, sfb[i]); + } + left += sfb[i]; + } +} + +static void drmp3_L3_intensity_stereo(float *left, drmp3_uint8 *ist_pos, const drmp3_L3_gr_info *gr, const drmp3_uint8 *hdr) +{ + int max_band[3], n_sfb = gr->n_long_sfb + gr->n_short_sfb; + int i, max_blocks = gr->n_short_sfb ? 3 : 1; + + drmp3_L3_stereo_top_band(left + 576, gr->sfbtab, n_sfb, max_band); + if (gr->n_long_sfb) + { + max_band[0] = max_band[1] = max_band[2] = DRMP3_MAX(DRMP3_MAX(max_band[0], max_band[1]), max_band[2]); + } + for (i = 0; i < max_blocks; i++) + { + int default_pos = DRMP3_HDR_TEST_MPEG1(hdr) ? 3 : 0; + int itop = n_sfb - max_blocks + i; + int prev = itop - max_blocks; + ist_pos[itop] = (drmp3_uint8)(max_band[i] >= prev ? default_pos : ist_pos[prev]); + } + drmp3_L3_stereo_process(left, ist_pos, gr->sfbtab, hdr, max_band, gr[1].scalefac_compress & 1); +} + +static void drmp3_L3_reorder(float *grbuf, float *scratch, const drmp3_uint8 *sfb) +{ + int i, len; + float *src = grbuf, *dst = scratch; + + for (;0 != (len = *sfb); sfb += 3, src += 2*len) + { + for (i = 0; i < len; i++, src++) + { + *dst++ = src[0*len]; + *dst++ = src[1*len]; + *dst++ = src[2*len]; + } + } + DRMP3_COPY_MEMORY(grbuf, scratch, (dst - scratch)*sizeof(float)); +} + +static void drmp3_L3_antialias(float *grbuf, int nbands) +{ + static const float g_aa[2][8] = { + {0.85749293f,0.88174200f,0.94962865f,0.98331459f,0.99551782f,0.99916056f,0.99989920f,0.99999316f}, + {0.51449576f,0.47173197f,0.31337745f,0.18191320f,0.09457419f,0.04096558f,0.01419856f,0.00369997f} + }; + + for (; nbands > 0; nbands--, grbuf += 18) + { + int i = 0; +#if DRMP3_HAVE_SIMD + if (drmp3_have_simd()) for (; i < 8; i += 4) + { + drmp3_f4 vu = DRMP3_VLD(grbuf + 18 + i); + drmp3_f4 vd = DRMP3_VLD(grbuf + 14 - i); + drmp3_f4 vc0 = DRMP3_VLD(g_aa[0] + i); + drmp3_f4 vc1 = DRMP3_VLD(g_aa[1] + i); + vd = DRMP3_VREV(vd); + DRMP3_VSTORE(grbuf + 18 + i, DRMP3_VSUB(DRMP3_VMUL(vu, vc0), DRMP3_VMUL(vd, vc1))); + vd = DRMP3_VADD(DRMP3_VMUL(vu, vc1), DRMP3_VMUL(vd, vc0)); + DRMP3_VSTORE(grbuf + 14 - i, DRMP3_VREV(vd)); + } +#endif +#ifndef DR_MP3_ONLY_SIMD + for(; i < 8; i++) + { + float u = grbuf[18 + i]; + float d = grbuf[17 - i]; + grbuf[18 + i] = u*g_aa[0][i] - d*g_aa[1][i]; + grbuf[17 - i] = u*g_aa[1][i] + d*g_aa[0][i]; + } +#endif + } +} + +static void drmp3_L3_dct3_9(float *y) +{ + float s0, s1, s2, s3, s4, s5, s6, s7, s8, t0, t2, t4; + + s0 = y[0]; s2 = y[2]; s4 = y[4]; s6 = y[6]; s8 = y[8]; + t0 = s0 + s6*0.5f; + s0 -= s6; + t4 = (s4 + s2)*0.93969262f; + t2 = (s8 + s2)*0.76604444f; + s6 = (s4 - s8)*0.17364818f; + s4 += s8 - s2; + + s2 = s0 - s4*0.5f; + y[4] = s4 + s0; + s8 = t0 - t2 + s6; + s0 = t0 - t4 + t2; + s4 = t0 + t4 - s6; + + s1 = y[1]; s3 = y[3]; s5 = y[5]; s7 = y[7]; + + s3 *= 0.86602540f; + t0 = (s5 + s1)*0.98480775f; + t4 = (s5 - s7)*0.34202014f; + t2 = (s1 + s7)*0.64278761f; + s1 = (s1 - s5 - s7)*0.86602540f; + + s5 = t0 - s3 - t2; + s7 = t4 - s3 - t0; + s3 = t4 + s3 - t2; + + y[0] = s4 - s7; + y[1] = s2 + s1; + y[2] = s0 - s3; + y[3] = s8 + s5; + y[5] = s8 - s5; + y[6] = s0 + s3; + y[7] = s2 - s1; + y[8] = s4 + s7; +} + +static void drmp3_L3_imdct36(float *grbuf, float *overlap, const float *window, int nbands) +{ + int i, j; + static const float g_twid9[18] = { + 0.73727734f,0.79335334f,0.84339145f,0.88701083f,0.92387953f,0.95371695f,0.97629601f,0.99144486f,0.99904822f,0.67559021f,0.60876143f,0.53729961f,0.46174861f,0.38268343f,0.30070580f,0.21643961f,0.13052619f,0.04361938f + }; + + for (j = 0; j < nbands; j++, grbuf += 18, overlap += 9) + { + float co[9], si[9]; + co[0] = -grbuf[0]; + si[0] = grbuf[17]; + for (i = 0; i < 4; i++) + { + si[8 - 2*i] = grbuf[4*i + 1] - grbuf[4*i + 2]; + co[1 + 2*i] = grbuf[4*i + 1] + grbuf[4*i + 2]; + si[7 - 2*i] = grbuf[4*i + 4] - grbuf[4*i + 3]; + co[2 + 2*i] = -(grbuf[4*i + 3] + grbuf[4*i + 4]); + } + drmp3_L3_dct3_9(co); + drmp3_L3_dct3_9(si); + + si[1] = -si[1]; + si[3] = -si[3]; + si[5] = -si[5]; + si[7] = -si[7]; + + i = 0; + +#if DRMP3_HAVE_SIMD + if (drmp3_have_simd()) for (; i < 8; i += 4) + { + drmp3_f4 vovl = DRMP3_VLD(overlap + i); + drmp3_f4 vc = DRMP3_VLD(co + i); + drmp3_f4 vs = DRMP3_VLD(si + i); + drmp3_f4 vr0 = DRMP3_VLD(g_twid9 + i); + drmp3_f4 vr1 = DRMP3_VLD(g_twid9 + 9 + i); + drmp3_f4 vw0 = DRMP3_VLD(window + i); + drmp3_f4 vw1 = DRMP3_VLD(window + 9 + i); + drmp3_f4 vsum = DRMP3_VADD(DRMP3_VMUL(vc, vr1), DRMP3_VMUL(vs, vr0)); + DRMP3_VSTORE(overlap + i, DRMP3_VSUB(DRMP3_VMUL(vc, vr0), DRMP3_VMUL(vs, vr1))); + DRMP3_VSTORE(grbuf + i, DRMP3_VSUB(DRMP3_VMUL(vovl, vw0), DRMP3_VMUL(vsum, vw1))); + vsum = DRMP3_VADD(DRMP3_VMUL(vovl, vw1), DRMP3_VMUL(vsum, vw0)); + DRMP3_VSTORE(grbuf + 14 - i, DRMP3_VREV(vsum)); + } +#endif + for (; i < 9; i++) + { + float ovl = overlap[i]; + float sum = co[i]*g_twid9[9 + i] + si[i]*g_twid9[0 + i]; + overlap[i] = co[i]*g_twid9[0 + i] - si[i]*g_twid9[9 + i]; + grbuf[i] = ovl*window[0 + i] - sum*window[9 + i]; + grbuf[17 - i] = ovl*window[9 + i] + sum*window[0 + i]; + } + } +} + +static void drmp3_L3_idct3(float x0, float x1, float x2, float *dst) +{ + float m1 = x1*0.86602540f; + float a1 = x0 - x2*0.5f; + dst[1] = x0 + x2; + dst[0] = a1 + m1; + dst[2] = a1 - m1; +} + +static void drmp3_L3_imdct12(float *x, float *dst, float *overlap) +{ + static const float g_twid3[6] = { 0.79335334f,0.92387953f,0.99144486f, 0.60876143f,0.38268343f,0.13052619f }; + float co[3], si[3]; + int i; + + drmp3_L3_idct3(-x[0], x[6] + x[3], x[12] + x[9], co); + drmp3_L3_idct3(x[15], x[12] - x[9], x[6] - x[3], si); + si[1] = -si[1]; + + for (i = 0; i < 3; i++) + { + float ovl = overlap[i]; + float sum = co[i]*g_twid3[3 + i] + si[i]*g_twid3[0 + i]; + overlap[i] = co[i]*g_twid3[0 + i] - si[i]*g_twid3[3 + i]; + dst[i] = ovl*g_twid3[2 - i] - sum*g_twid3[5 - i]; + dst[5 - i] = ovl*g_twid3[5 - i] + sum*g_twid3[2 - i]; + } +} + +static void drmp3_L3_imdct_short(float *grbuf, float *overlap, int nbands) +{ + for (;nbands > 0; nbands--, overlap += 9, grbuf += 18) + { + float tmp[18]; + DRMP3_COPY_MEMORY(tmp, grbuf, sizeof(tmp)); + DRMP3_COPY_MEMORY(grbuf, overlap, 6*sizeof(float)); + drmp3_L3_imdct12(tmp, grbuf + 6, overlap + 6); + drmp3_L3_imdct12(tmp + 1, grbuf + 12, overlap + 6); + drmp3_L3_imdct12(tmp + 2, overlap, overlap + 6); + } +} + +static void drmp3_L3_change_sign(float *grbuf) +{ + int b, i; + for (b = 0, grbuf += 18; b < 32; b += 2, grbuf += 36) + for (i = 1; i < 18; i += 2) + grbuf[i] = -grbuf[i]; +} + +static void drmp3_L3_imdct_gr(float *grbuf, float *overlap, unsigned block_type, unsigned n_long_bands) +{ + static const float g_mdct_window[2][18] = { + { 0.99904822f,0.99144486f,0.97629601f,0.95371695f,0.92387953f,0.88701083f,0.84339145f,0.79335334f,0.73727734f,0.04361938f,0.13052619f,0.21643961f,0.30070580f,0.38268343f,0.46174861f,0.53729961f,0.60876143f,0.67559021f }, + { 1,1,1,1,1,1,0.99144486f,0.92387953f,0.79335334f,0,0,0,0,0,0,0.13052619f,0.38268343f,0.60876143f } + }; + if (n_long_bands) + { + drmp3_L3_imdct36(grbuf, overlap, g_mdct_window[0], n_long_bands); + grbuf += 18*n_long_bands; + overlap += 9*n_long_bands; + } + if (block_type == DRMP3_SHORT_BLOCK_TYPE) + drmp3_L3_imdct_short(grbuf, overlap, 32 - n_long_bands); + else + drmp3_L3_imdct36(grbuf, overlap, g_mdct_window[block_type == DRMP3_STOP_BLOCK_TYPE], 32 - n_long_bands); +} + +static void drmp3_L3_save_reservoir(drmp3dec *h, drmp3dec_scratch *s) +{ + int pos = (s->bs.pos + 7)/8u; + int remains = s->bs.limit/8u - pos; + if (remains > DRMP3_MAX_BITRESERVOIR_BYTES) + { + pos += remains - DRMP3_MAX_BITRESERVOIR_BYTES; + remains = DRMP3_MAX_BITRESERVOIR_BYTES; + } + if (remains > 0) + { + DRMP3_MOVE_MEMORY(h->reserv_buf, s->maindata + pos, remains); + } + h->reserv = remains; +} + +static int drmp3_L3_restore_reservoir(drmp3dec *h, drmp3_bs *bs, drmp3dec_scratch *s, int main_data_begin) +{ + int frame_bytes = (bs->limit - bs->pos)/8; + int bytes_have = DRMP3_MIN(h->reserv, main_data_begin); + DRMP3_COPY_MEMORY(s->maindata, h->reserv_buf + DRMP3_MAX(0, h->reserv - main_data_begin), DRMP3_MIN(h->reserv, main_data_begin)); + DRMP3_COPY_MEMORY(s->maindata + bytes_have, bs->buf + bs->pos/8, frame_bytes); + drmp3_bs_init(&s->bs, s->maindata, bytes_have + frame_bytes); + return h->reserv >= main_data_begin; +} + +static void drmp3_L3_decode(drmp3dec *h, drmp3dec_scratch *s, drmp3_L3_gr_info *gr_info, int nch) +{ + int ch; + + for (ch = 0; ch < nch; ch++) + { + int layer3gr_limit = s->bs.pos + gr_info[ch].part_23_length; + drmp3_L3_decode_scalefactors(h->header, s->ist_pos[ch], &s->bs, gr_info + ch, s->scf, ch); + drmp3_L3_huffman(s->grbuf[ch], &s->bs, gr_info + ch, s->scf, layer3gr_limit); + } + + if (DRMP3_HDR_TEST_I_STEREO(h->header)) + { + drmp3_L3_intensity_stereo(s->grbuf[0], s->ist_pos[1], gr_info, h->header); + } else if (DRMP3_HDR_IS_MS_STEREO(h->header)) + { + drmp3_L3_midside_stereo(s->grbuf[0], 576); + } + + for (ch = 0; ch < nch; ch++, gr_info++) + { + int aa_bands = 31; + int n_long_bands = (gr_info->mixed_block_flag ? 2 : 0) << (int)(DRMP3_HDR_GET_MY_SAMPLE_RATE(h->header) == 2); + + if (gr_info->n_short_sfb) + { + aa_bands = n_long_bands - 1; + drmp3_L3_reorder(s->grbuf[ch] + n_long_bands*18, s->syn[0], gr_info->sfbtab + gr_info->n_long_sfb); + } + + drmp3_L3_antialias(s->grbuf[ch], aa_bands); + drmp3_L3_imdct_gr(s->grbuf[ch], h->mdct_overlap[ch], gr_info->block_type, n_long_bands); + drmp3_L3_change_sign(s->grbuf[ch]); + } +} + +static void drmp3d_DCT_II(float *grbuf, int n) +{ + static const float g_sec[24] = { + 10.19000816f,0.50060302f,0.50241929f,3.40760851f,0.50547093f,0.52249861f,2.05778098f,0.51544732f,0.56694406f,1.48416460f,0.53104258f,0.64682180f,1.16943991f,0.55310392f,0.78815460f,0.97256821f,0.58293498f,1.06067765f,0.83934963f,0.62250412f,1.72244716f,0.74453628f,0.67480832f,5.10114861f + }; + int i, k = 0; +#if DRMP3_HAVE_SIMD + if (drmp3_have_simd()) for (; k < n; k += 4) + { + drmp3_f4 t[4][8], *x; + float *y = grbuf + k; + + for (x = t[0], i = 0; i < 8; i++, x++) + { + drmp3_f4 x0 = DRMP3_VLD(&y[i*18]); + drmp3_f4 x1 = DRMP3_VLD(&y[(15 - i)*18]); + drmp3_f4 x2 = DRMP3_VLD(&y[(16 + i)*18]); + drmp3_f4 x3 = DRMP3_VLD(&y[(31 - i)*18]); + drmp3_f4 t0 = DRMP3_VADD(x0, x3); + drmp3_f4 t1 = DRMP3_VADD(x1, x2); + drmp3_f4 t2 = DRMP3_VMUL_S(DRMP3_VSUB(x1, x2), g_sec[3*i + 0]); + drmp3_f4 t3 = DRMP3_VMUL_S(DRMP3_VSUB(x0, x3), g_sec[3*i + 1]); + x[0] = DRMP3_VADD(t0, t1); + x[8] = DRMP3_VMUL_S(DRMP3_VSUB(t0, t1), g_sec[3*i + 2]); + x[16] = DRMP3_VADD(t3, t2); + x[24] = DRMP3_VMUL_S(DRMP3_VSUB(t3, t2), g_sec[3*i + 2]); + } + for (x = t[0], i = 0; i < 4; i++, x += 8) + { + drmp3_f4 x0 = x[0], x1 = x[1], x2 = x[2], x3 = x[3], x4 = x[4], x5 = x[5], x6 = x[6], x7 = x[7], xt; + xt = DRMP3_VSUB(x0, x7); x0 = DRMP3_VADD(x0, x7); + x7 = DRMP3_VSUB(x1, x6); x1 = DRMP3_VADD(x1, x6); + x6 = DRMP3_VSUB(x2, x5); x2 = DRMP3_VADD(x2, x5); + x5 = DRMP3_VSUB(x3, x4); x3 = DRMP3_VADD(x3, x4); + x4 = DRMP3_VSUB(x0, x3); x0 = DRMP3_VADD(x0, x3); + x3 = DRMP3_VSUB(x1, x2); x1 = DRMP3_VADD(x1, x2); + x[0] = DRMP3_VADD(x0, x1); + x[4] = DRMP3_VMUL_S(DRMP3_VSUB(x0, x1), 0.70710677f); + x5 = DRMP3_VADD(x5, x6); + x6 = DRMP3_VMUL_S(DRMP3_VADD(x6, x7), 0.70710677f); + x7 = DRMP3_VADD(x7, xt); + x3 = DRMP3_VMUL_S(DRMP3_VADD(x3, x4), 0.70710677f); + x5 = DRMP3_VSUB(x5, DRMP3_VMUL_S(x7, 0.198912367f)); /* rotate by PI/8 */ + x7 = DRMP3_VADD(x7, DRMP3_VMUL_S(x5, 0.382683432f)); + x5 = DRMP3_VSUB(x5, DRMP3_VMUL_S(x7, 0.198912367f)); + x0 = DRMP3_VSUB(xt, x6); xt = DRMP3_VADD(xt, x6); + x[1] = DRMP3_VMUL_S(DRMP3_VADD(xt, x7), 0.50979561f); + x[2] = DRMP3_VMUL_S(DRMP3_VADD(x4, x3), 0.54119611f); + x[3] = DRMP3_VMUL_S(DRMP3_VSUB(x0, x5), 0.60134488f); + x[5] = DRMP3_VMUL_S(DRMP3_VADD(x0, x5), 0.89997619f); + x[6] = DRMP3_VMUL_S(DRMP3_VSUB(x4, x3), 1.30656302f); + x[7] = DRMP3_VMUL_S(DRMP3_VSUB(xt, x7), 2.56291556f); + } + + if (k > n - 3) + { +#if DRMP3_HAVE_SSE +#define DRMP3_VSAVE2(i, v) _mm_storel_pi((__m64 *)(void*)&y[i*18], v) +#else +#define DRMP3_VSAVE2(i, v) vst1_f32((float32_t *)&y[(i)*18], vget_low_f32(v)) +#endif + for (i = 0; i < 7; i++, y += 4*18) + { + drmp3_f4 s = DRMP3_VADD(t[3][i], t[3][i + 1]); + DRMP3_VSAVE2(0, t[0][i]); + DRMP3_VSAVE2(1, DRMP3_VADD(t[2][i], s)); + DRMP3_VSAVE2(2, DRMP3_VADD(t[1][i], t[1][i + 1])); + DRMP3_VSAVE2(3, DRMP3_VADD(t[2][1 + i], s)); + } + DRMP3_VSAVE2(0, t[0][7]); + DRMP3_VSAVE2(1, DRMP3_VADD(t[2][7], t[3][7])); + DRMP3_VSAVE2(2, t[1][7]); + DRMP3_VSAVE2(3, t[3][7]); + } else + { +#define DRMP3_VSAVE4(i, v) DRMP3_VSTORE(&y[(i)*18], v) + for (i = 0; i < 7; i++, y += 4*18) + { + drmp3_f4 s = DRMP3_VADD(t[3][i], t[3][i + 1]); + DRMP3_VSAVE4(0, t[0][i]); + DRMP3_VSAVE4(1, DRMP3_VADD(t[2][i], s)); + DRMP3_VSAVE4(2, DRMP3_VADD(t[1][i], t[1][i + 1])); + DRMP3_VSAVE4(3, DRMP3_VADD(t[2][1 + i], s)); + } + DRMP3_VSAVE4(0, t[0][7]); + DRMP3_VSAVE4(1, DRMP3_VADD(t[2][7], t[3][7])); + DRMP3_VSAVE4(2, t[1][7]); + DRMP3_VSAVE4(3, t[3][7]); + } + } else +#endif +#ifdef DR_MP3_ONLY_SIMD + {} /* for HAVE_SIMD=1, MINIMP3_ONLY_SIMD=1 case we do not need non-intrinsic "else" branch */ +#else + for (; k < n; k++) + { + float t[4][8], *x, *y = grbuf + k; + + for (x = t[0], i = 0; i < 8; i++, x++) + { + float x0 = y[i*18]; + float x1 = y[(15 - i)*18]; + float x2 = y[(16 + i)*18]; + float x3 = y[(31 - i)*18]; + float t0 = x0 + x3; + float t1 = x1 + x2; + float t2 = (x1 - x2)*g_sec[3*i + 0]; + float t3 = (x0 - x3)*g_sec[3*i + 1]; + x[0] = t0 + t1; + x[8] = (t0 - t1)*g_sec[3*i + 2]; + x[16] = t3 + t2; + x[24] = (t3 - t2)*g_sec[3*i + 2]; + } + for (x = t[0], i = 0; i < 4; i++, x += 8) + { + float x0 = x[0], x1 = x[1], x2 = x[2], x3 = x[3], x4 = x[4], x5 = x[5], x6 = x[6], x7 = x[7], xt; + xt = x0 - x7; x0 += x7; + x7 = x1 - x6; x1 += x6; + x6 = x2 - x5; x2 += x5; + x5 = x3 - x4; x3 += x4; + x4 = x0 - x3; x0 += x3; + x3 = x1 - x2; x1 += x2; + x[0] = x0 + x1; + x[4] = (x0 - x1)*0.70710677f; + x5 = x5 + x6; + x6 = (x6 + x7)*0.70710677f; + x7 = x7 + xt; + x3 = (x3 + x4)*0.70710677f; + x5 -= x7*0.198912367f; /* rotate by PI/8 */ + x7 += x5*0.382683432f; + x5 -= x7*0.198912367f; + x0 = xt - x6; xt += x6; + x[1] = (xt + x7)*0.50979561f; + x[2] = (x4 + x3)*0.54119611f; + x[3] = (x0 - x5)*0.60134488f; + x[5] = (x0 + x5)*0.89997619f; + x[6] = (x4 - x3)*1.30656302f; + x[7] = (xt - x7)*2.56291556f; + + } + for (i = 0; i < 7; i++, y += 4*18) + { + y[0*18] = t[0][i]; + y[1*18] = t[2][i] + t[3][i] + t[3][i + 1]; + y[2*18] = t[1][i] + t[1][i + 1]; + y[3*18] = t[2][i + 1] + t[3][i] + t[3][i + 1]; + } + y[0*18] = t[0][7]; + y[1*18] = t[2][7] + t[3][7]; + y[2*18] = t[1][7]; + y[3*18] = t[3][7]; + } +#endif +} + +#ifndef DR_MP3_FLOAT_OUTPUT +typedef drmp3_int16 drmp3d_sample_t; + +static drmp3_int16 drmp3d_scale_pcm(float sample) +{ + drmp3_int16 s; +#if DRMP3_HAVE_ARMV6 + drmp3_int32 s32 = (drmp3_int32)(sample + .5f); + s32 -= (s32 < 0); + s = (drmp3_int16)drmp3_clip_int16_arm(s32); +#else + if (sample >= 32766.5) return (drmp3_int16) 32767; + if (sample <= -32767.5) return (drmp3_int16)-32768; + s = (drmp3_int16)(sample + .5f); + s -= (s < 0); /* away from zero, to be compliant */ +#endif + return s; +} +#else +typedef float drmp3d_sample_t; + +static float drmp3d_scale_pcm(float sample) +{ + return sample*(1.f/32768.f); +} +#endif + +static void drmp3d_synth_pair(drmp3d_sample_t *pcm, int nch, const float *z) +{ + float a; + a = (z[14*64] - z[ 0]) * 29; + a += (z[ 1*64] + z[13*64]) * 213; + a += (z[12*64] - z[ 2*64]) * 459; + a += (z[ 3*64] + z[11*64]) * 2037; + a += (z[10*64] - z[ 4*64]) * 5153; + a += (z[ 5*64] + z[ 9*64]) * 6574; + a += (z[ 8*64] - z[ 6*64]) * 37489; + a += z[ 7*64] * 75038; + pcm[0] = drmp3d_scale_pcm(a); + + z += 2; + a = z[14*64] * 104; + a += z[12*64] * 1567; + a += z[10*64] * 9727; + a += z[ 8*64] * 64019; + a += z[ 6*64] * -9975; + a += z[ 4*64] * -45; + a += z[ 2*64] * 146; + a += z[ 0*64] * -5; + pcm[16*nch] = drmp3d_scale_pcm(a); +} + +static void drmp3d_synth(float *xl, drmp3d_sample_t *dstl, int nch, float *lins) +{ + int i; + float *xr = xl + 576*(nch - 1); + drmp3d_sample_t *dstr = dstl + (nch - 1); + + static const float g_win[] = { + -1,26,-31,208,218,401,-519,2063,2000,4788,-5517,7134,5959,35640,-39336,74992, + -1,24,-35,202,222,347,-581,2080,1952,4425,-5879,7640,5288,33791,-41176,74856, + -1,21,-38,196,225,294,-645,2087,1893,4063,-6237,8092,4561,31947,-43006,74630, + -1,19,-41,190,227,244,-711,2085,1822,3705,-6589,8492,3776,30112,-44821,74313, + -1,17,-45,183,228,197,-779,2075,1739,3351,-6935,8840,2935,28289,-46617,73908, + -1,16,-49,176,228,153,-848,2057,1644,3004,-7271,9139,2037,26482,-48390,73415, + -2,14,-53,169,227,111,-919,2032,1535,2663,-7597,9389,1082,24694,-50137,72835, + -2,13,-58,161,224,72,-991,2001,1414,2330,-7910,9592,70,22929,-51853,72169, + -2,11,-63,154,221,36,-1064,1962,1280,2006,-8209,9750,-998,21189,-53534,71420, + -2,10,-68,147,215,2,-1137,1919,1131,1692,-8491,9863,-2122,19478,-55178,70590, + -3,9,-73,139,208,-29,-1210,1870,970,1388,-8755,9935,-3300,17799,-56778,69679, + -3,8,-79,132,200,-57,-1283,1817,794,1095,-8998,9966,-4533,16155,-58333,68692, + -4,7,-85,125,189,-83,-1356,1759,605,814,-9219,9959,-5818,14548,-59838,67629, + -4,7,-91,117,177,-106,-1428,1698,402,545,-9416,9916,-7154,12980,-61289,66494, + -5,6,-97,111,163,-127,-1498,1634,185,288,-9585,9838,-8540,11455,-62684,65290 + }; + float *zlin = lins + 15*64; + const float *w = g_win; + + zlin[4*15] = xl[18*16]; + zlin[4*15 + 1] = xr[18*16]; + zlin[4*15 + 2] = xl[0]; + zlin[4*15 + 3] = xr[0]; + + zlin[4*31] = xl[1 + 18*16]; + zlin[4*31 + 1] = xr[1 + 18*16]; + zlin[4*31 + 2] = xl[1]; + zlin[4*31 + 3] = xr[1]; + + drmp3d_synth_pair(dstr, nch, lins + 4*15 + 1); + drmp3d_synth_pair(dstr + 32*nch, nch, lins + 4*15 + 64 + 1); + drmp3d_synth_pair(dstl, nch, lins + 4*15); + drmp3d_synth_pair(dstl + 32*nch, nch, lins + 4*15 + 64); + +#if DRMP3_HAVE_SIMD + if (drmp3_have_simd()) for (i = 14; i >= 0; i--) + { +#define DRMP3_VLOAD(k) drmp3_f4 w0 = DRMP3_VSET(*w++); drmp3_f4 w1 = DRMP3_VSET(*w++); drmp3_f4 vz = DRMP3_VLD(&zlin[4*i - 64*k]); drmp3_f4 vy = DRMP3_VLD(&zlin[4*i - 64*(15 - k)]); +#define DRMP3_V0(k) { DRMP3_VLOAD(k) b = DRMP3_VADD(DRMP3_VMUL(vz, w1), DRMP3_VMUL(vy, w0)) ; a = DRMP3_VSUB(DRMP3_VMUL(vz, w0), DRMP3_VMUL(vy, w1)); } +#define DRMP3_V1(k) { DRMP3_VLOAD(k) b = DRMP3_VADD(b, DRMP3_VADD(DRMP3_VMUL(vz, w1), DRMP3_VMUL(vy, w0))); a = DRMP3_VADD(a, DRMP3_VSUB(DRMP3_VMUL(vz, w0), DRMP3_VMUL(vy, w1))); } +#define DRMP3_V2(k) { DRMP3_VLOAD(k) b = DRMP3_VADD(b, DRMP3_VADD(DRMP3_VMUL(vz, w1), DRMP3_VMUL(vy, w0))); a = DRMP3_VADD(a, DRMP3_VSUB(DRMP3_VMUL(vy, w1), DRMP3_VMUL(vz, w0))); } + drmp3_f4 a, b; + zlin[4*i] = xl[18*(31 - i)]; + zlin[4*i + 1] = xr[18*(31 - i)]; + zlin[4*i + 2] = xl[1 + 18*(31 - i)]; + zlin[4*i + 3] = xr[1 + 18*(31 - i)]; + zlin[4*i + 64] = xl[1 + 18*(1 + i)]; + zlin[4*i + 64 + 1] = xr[1 + 18*(1 + i)]; + zlin[4*i - 64 + 2] = xl[18*(1 + i)]; + zlin[4*i - 64 + 3] = xr[18*(1 + i)]; + + DRMP3_V0(0) DRMP3_V2(1) DRMP3_V1(2) DRMP3_V2(3) DRMP3_V1(4) DRMP3_V2(5) DRMP3_V1(6) DRMP3_V2(7) + + { +#ifndef DR_MP3_FLOAT_OUTPUT +#if DRMP3_HAVE_SSE + static const drmp3_f4 g_max = { 32767.0f, 32767.0f, 32767.0f, 32767.0f }; + static const drmp3_f4 g_min = { -32768.0f, -32768.0f, -32768.0f, -32768.0f }; + __m128i pcm8 = _mm_packs_epi32(_mm_cvtps_epi32(_mm_max_ps(_mm_min_ps(a, g_max), g_min)), + _mm_cvtps_epi32(_mm_max_ps(_mm_min_ps(b, g_max), g_min))); + dstr[(15 - i)*nch] = (drmp3_int16)_mm_extract_epi16(pcm8, 1); + dstr[(17 + i)*nch] = (drmp3_int16)_mm_extract_epi16(pcm8, 5); + dstl[(15 - i)*nch] = (drmp3_int16)_mm_extract_epi16(pcm8, 0); + dstl[(17 + i)*nch] = (drmp3_int16)_mm_extract_epi16(pcm8, 4); + dstr[(47 - i)*nch] = (drmp3_int16)_mm_extract_epi16(pcm8, 3); + dstr[(49 + i)*nch] = (drmp3_int16)_mm_extract_epi16(pcm8, 7); + dstl[(47 - i)*nch] = (drmp3_int16)_mm_extract_epi16(pcm8, 2); + dstl[(49 + i)*nch] = (drmp3_int16)_mm_extract_epi16(pcm8, 6); +#else + int16x4_t pcma, pcmb; + a = DRMP3_VADD(a, DRMP3_VSET(0.5f)); + b = DRMP3_VADD(b, DRMP3_VSET(0.5f)); + pcma = vqmovn_s32(vqaddq_s32(vcvtq_s32_f32(a), vreinterpretq_s32_u32(vcltq_f32(a, DRMP3_VSET(0))))); + pcmb = vqmovn_s32(vqaddq_s32(vcvtq_s32_f32(b), vreinterpretq_s32_u32(vcltq_f32(b, DRMP3_VSET(0))))); + vst1_lane_s16(dstr + (15 - i)*nch, pcma, 1); + vst1_lane_s16(dstr + (17 + i)*nch, pcmb, 1); + vst1_lane_s16(dstl + (15 - i)*nch, pcma, 0); + vst1_lane_s16(dstl + (17 + i)*nch, pcmb, 0); + vst1_lane_s16(dstr + (47 - i)*nch, pcma, 3); + vst1_lane_s16(dstr + (49 + i)*nch, pcmb, 3); + vst1_lane_s16(dstl + (47 - i)*nch, pcma, 2); + vst1_lane_s16(dstl + (49 + i)*nch, pcmb, 2); +#endif +#else + #if DRMP3_HAVE_SSE + static const drmp3_f4 g_scale = { 1.0f/32768.0f, 1.0f/32768.0f, 1.0f/32768.0f, 1.0f/32768.0f }; + #else + const drmp3_f4 g_scale = vdupq_n_f32(1.0f/32768.0f); + #endif + a = DRMP3_VMUL(a, g_scale); + b = DRMP3_VMUL(b, g_scale); +#if DRMP3_HAVE_SSE + _mm_store_ss(dstr + (15 - i)*nch, _mm_shuffle_ps(a, a, _MM_SHUFFLE(1, 1, 1, 1))); + _mm_store_ss(dstr + (17 + i)*nch, _mm_shuffle_ps(b, b, _MM_SHUFFLE(1, 1, 1, 1))); + _mm_store_ss(dstl + (15 - i)*nch, _mm_shuffle_ps(a, a, _MM_SHUFFLE(0, 0, 0, 0))); + _mm_store_ss(dstl + (17 + i)*nch, _mm_shuffle_ps(b, b, _MM_SHUFFLE(0, 0, 0, 0))); + _mm_store_ss(dstr + (47 - i)*nch, _mm_shuffle_ps(a, a, _MM_SHUFFLE(3, 3, 3, 3))); + _mm_store_ss(dstr + (49 + i)*nch, _mm_shuffle_ps(b, b, _MM_SHUFFLE(3, 3, 3, 3))); + _mm_store_ss(dstl + (47 - i)*nch, _mm_shuffle_ps(a, a, _MM_SHUFFLE(2, 2, 2, 2))); + _mm_store_ss(dstl + (49 + i)*nch, _mm_shuffle_ps(b, b, _MM_SHUFFLE(2, 2, 2, 2))); +#else + vst1q_lane_f32(dstr + (15 - i)*nch, a, 1); + vst1q_lane_f32(dstr + (17 + i)*nch, b, 1); + vst1q_lane_f32(dstl + (15 - i)*nch, a, 0); + vst1q_lane_f32(dstl + (17 + i)*nch, b, 0); + vst1q_lane_f32(dstr + (47 - i)*nch, a, 3); + vst1q_lane_f32(dstr + (49 + i)*nch, b, 3); + vst1q_lane_f32(dstl + (47 - i)*nch, a, 2); + vst1q_lane_f32(dstl + (49 + i)*nch, b, 2); +#endif +#endif /* DR_MP3_FLOAT_OUTPUT */ + } + } else +#endif +#ifdef DR_MP3_ONLY_SIMD + {} /* for HAVE_SIMD=1, MINIMP3_ONLY_SIMD=1 case we do not need non-intrinsic "else" branch */ +#else + for (i = 14; i >= 0; i--) + { +#define DRMP3_LOAD(k) float w0 = *w++; float w1 = *w++; float *vz = &zlin[4*i - k*64]; float *vy = &zlin[4*i - (15 - k)*64]; +#define DRMP3_S0(k) { int j; DRMP3_LOAD(k); for (j = 0; j < 4; j++) b[j] = vz[j]*w1 + vy[j]*w0, a[j] = vz[j]*w0 - vy[j]*w1; } +#define DRMP3_S1(k) { int j; DRMP3_LOAD(k); for (j = 0; j < 4; j++) b[j] += vz[j]*w1 + vy[j]*w0, a[j] += vz[j]*w0 - vy[j]*w1; } +#define DRMP3_S2(k) { int j; DRMP3_LOAD(k); for (j = 0; j < 4; j++) b[j] += vz[j]*w1 + vy[j]*w0, a[j] += vy[j]*w1 - vz[j]*w0; } + float a[4], b[4]; + + zlin[4*i] = xl[18*(31 - i)]; + zlin[4*i + 1] = xr[18*(31 - i)]; + zlin[4*i + 2] = xl[1 + 18*(31 - i)]; + zlin[4*i + 3] = xr[1 + 18*(31 - i)]; + zlin[4*(i + 16)] = xl[1 + 18*(1 + i)]; + zlin[4*(i + 16) + 1] = xr[1 + 18*(1 + i)]; + zlin[4*(i - 16) + 2] = xl[18*(1 + i)]; + zlin[4*(i - 16) + 3] = xr[18*(1 + i)]; + + DRMP3_S0(0) DRMP3_S2(1) DRMP3_S1(2) DRMP3_S2(3) DRMP3_S1(4) DRMP3_S2(5) DRMP3_S1(6) DRMP3_S2(7) + + dstr[(15 - i)*nch] = drmp3d_scale_pcm(a[1]); + dstr[(17 + i)*nch] = drmp3d_scale_pcm(b[1]); + dstl[(15 - i)*nch] = drmp3d_scale_pcm(a[0]); + dstl[(17 + i)*nch] = drmp3d_scale_pcm(b[0]); + dstr[(47 - i)*nch] = drmp3d_scale_pcm(a[3]); + dstr[(49 + i)*nch] = drmp3d_scale_pcm(b[3]); + dstl[(47 - i)*nch] = drmp3d_scale_pcm(a[2]); + dstl[(49 + i)*nch] = drmp3d_scale_pcm(b[2]); + } +#endif +} + +static void drmp3d_synth_granule(float *qmf_state, float *grbuf, int nbands, int nch, drmp3d_sample_t *pcm, float *lins) +{ + int i; + for (i = 0; i < nch; i++) + { + drmp3d_DCT_II(grbuf + 576*i, nbands); + } + + DRMP3_COPY_MEMORY(lins, qmf_state, sizeof(float)*15*64); + + for (i = 0; i < nbands; i += 2) + { + drmp3d_synth(grbuf + i, pcm + 32*nch*i, nch, lins + i*64); + } +#ifndef DR_MP3_NONSTANDARD_BUT_LOGICAL + if (nch == 1) + { + for (i = 0; i < 15*64; i += 2) + { + qmf_state[i] = lins[nbands*64 + i]; + } + } else +#endif + { + DRMP3_COPY_MEMORY(qmf_state, lins + nbands*64, sizeof(float)*15*64); + } +} + +static int drmp3d_match_frame(const drmp3_uint8 *hdr, int mp3_bytes, int frame_bytes) +{ + int i, nmatch; + for (i = 0, nmatch = 0; nmatch < DRMP3_MAX_FRAME_SYNC_MATCHES; nmatch++) + { + i += drmp3_hdr_frame_bytes(hdr + i, frame_bytes) + drmp3_hdr_padding(hdr + i); + if (i + DRMP3_HDR_SIZE > mp3_bytes) + return nmatch > 0; + if (!drmp3_hdr_compare(hdr, hdr + i)) + return 0; + } + return 1; +} + +static int drmp3d_find_frame(const drmp3_uint8 *mp3, int mp3_bytes, int *free_format_bytes, int *ptr_frame_bytes) +{ + int i, k; + for (i = 0; i < mp3_bytes - DRMP3_HDR_SIZE; i++, mp3++) + { + if (drmp3_hdr_valid(mp3)) + { + int frame_bytes = drmp3_hdr_frame_bytes(mp3, *free_format_bytes); + int frame_and_padding = frame_bytes + drmp3_hdr_padding(mp3); + + for (k = DRMP3_HDR_SIZE; !frame_bytes && k < DRMP3_MAX_FREE_FORMAT_FRAME_SIZE && i + 2*k < mp3_bytes - DRMP3_HDR_SIZE; k++) + { + if (drmp3_hdr_compare(mp3, mp3 + k)) + { + int fb = k - drmp3_hdr_padding(mp3); + int nextfb = fb + drmp3_hdr_padding(mp3 + k); + if (i + k + nextfb + DRMP3_HDR_SIZE > mp3_bytes || !drmp3_hdr_compare(mp3, mp3 + k + nextfb)) + continue; + frame_and_padding = k; + frame_bytes = fb; + *free_format_bytes = fb; + } + } + + if ((frame_bytes && i + frame_and_padding <= mp3_bytes && + drmp3d_match_frame(mp3, mp3_bytes - i, frame_bytes)) || + (!i && frame_and_padding == mp3_bytes)) + { + *ptr_frame_bytes = frame_and_padding; + return i; + } + *free_format_bytes = 0; + } + } + *ptr_frame_bytes = 0; + return mp3_bytes; +} + +DRMP3_API void drmp3dec_init(drmp3dec *dec) +{ + dec->header[0] = 0; +} + +DRMP3_API int drmp3dec_decode_frame(drmp3dec *dec, const drmp3_uint8 *mp3, int mp3_bytes, void *pcm, drmp3dec_frame_info *info) +{ + int i = 0, igr, frame_size = 0, success = 1; + const drmp3_uint8 *hdr; + drmp3_bs bs_frame[1]; + drmp3dec_scratch scratch; + + if (mp3_bytes > 4 && dec->header[0] == 0xff && drmp3_hdr_compare(dec->header, mp3)) + { + frame_size = drmp3_hdr_frame_bytes(mp3, dec->free_format_bytes) + drmp3_hdr_padding(mp3); + if (frame_size != mp3_bytes && (frame_size + DRMP3_HDR_SIZE > mp3_bytes || !drmp3_hdr_compare(mp3, mp3 + frame_size))) + { + frame_size = 0; + } + } + if (!frame_size) + { + DRMP3_ZERO_MEMORY(dec, sizeof(drmp3dec)); + i = drmp3d_find_frame(mp3, mp3_bytes, &dec->free_format_bytes, &frame_size); + if (!frame_size || i + frame_size > mp3_bytes) + { + info->frame_bytes = i; + return 0; + } + } + + hdr = mp3 + i; + DRMP3_COPY_MEMORY(dec->header, hdr, DRMP3_HDR_SIZE); + info->frame_bytes = i + frame_size; + info->channels = DRMP3_HDR_IS_MONO(hdr) ? 1 : 2; + info->hz = drmp3_hdr_sample_rate_hz(hdr); + info->layer = 4 - DRMP3_HDR_GET_LAYER(hdr); + info->bitrate_kbps = drmp3_hdr_bitrate_kbps(hdr); + + drmp3_bs_init(bs_frame, hdr + DRMP3_HDR_SIZE, frame_size - DRMP3_HDR_SIZE); + if (DRMP3_HDR_IS_CRC(hdr)) + { + drmp3_bs_get_bits(bs_frame, 16); + } + + if (info->layer == 3) + { + int main_data_begin = drmp3_L3_read_side_info(bs_frame, scratch.gr_info, hdr); + if (main_data_begin < 0 || bs_frame->pos > bs_frame->limit) + { + drmp3dec_init(dec); + return 0; + } + success = drmp3_L3_restore_reservoir(dec, bs_frame, &scratch, main_data_begin); + if (success && pcm != NULL) + { + for (igr = 0; igr < (DRMP3_HDR_TEST_MPEG1(hdr) ? 2 : 1); igr++, pcm = DRMP3_OFFSET_PTR(pcm, sizeof(drmp3d_sample_t)*576*info->channels)) + { + DRMP3_ZERO_MEMORY(scratch.grbuf[0], 576*2*sizeof(float)); + drmp3_L3_decode(dec, &scratch, scratch.gr_info + igr*info->channels, info->channels); + drmp3d_synth_granule(dec->qmf_state, scratch.grbuf[0], 18, info->channels, (drmp3d_sample_t*)pcm, scratch.syn[0]); + } + } + drmp3_L3_save_reservoir(dec, &scratch); + } else + { +#ifdef DR_MP3_ONLY_MP3 + return 0; +#else + drmp3_L12_scale_info sci[1]; + + if (pcm == NULL) { + return drmp3_hdr_frame_samples(hdr); + } + + drmp3_L12_read_scale_info(hdr, bs_frame, sci); + + DRMP3_ZERO_MEMORY(scratch.grbuf[0], 576*2*sizeof(float)); + for (i = 0, igr = 0; igr < 3; igr++) + { + if (12 == (i += drmp3_L12_dequantize_granule(scratch.grbuf[0] + i, bs_frame, sci, info->layer | 1))) + { + i = 0; + drmp3_L12_apply_scf_384(sci, sci->scf + igr, scratch.grbuf[0]); + drmp3d_synth_granule(dec->qmf_state, scratch.grbuf[0], 12, info->channels, (drmp3d_sample_t*)pcm, scratch.syn[0]); + DRMP3_ZERO_MEMORY(scratch.grbuf[0], 576*2*sizeof(float)); + pcm = DRMP3_OFFSET_PTR(pcm, sizeof(drmp3d_sample_t)*384*info->channels); + } + if (bs_frame->pos > bs_frame->limit) + { + drmp3dec_init(dec); + return 0; + } + } +#endif + } + + return success*drmp3_hdr_frame_samples(dec->header); +} + +DRMP3_API void drmp3dec_f32_to_s16(const float *in, drmp3_int16 *out, size_t num_samples) +{ + size_t i = 0; +#if DRMP3_HAVE_SIMD + size_t aligned_count = num_samples & ~7; + for(; i < aligned_count; i+=8) + { + drmp3_f4 scale = DRMP3_VSET(32768.0f); + drmp3_f4 a = DRMP3_VMUL(DRMP3_VLD(&in[i ]), scale); + drmp3_f4 b = DRMP3_VMUL(DRMP3_VLD(&in[i+4]), scale); +#if DRMP3_HAVE_SSE + drmp3_f4 s16max = DRMP3_VSET( 32767.0f); + drmp3_f4 s16min = DRMP3_VSET(-32768.0f); + __m128i pcm8 = _mm_packs_epi32(_mm_cvtps_epi32(_mm_max_ps(_mm_min_ps(a, s16max), s16min)), + _mm_cvtps_epi32(_mm_max_ps(_mm_min_ps(b, s16max), s16min))); + out[i ] = (drmp3_int16)_mm_extract_epi16(pcm8, 0); + out[i+1] = (drmp3_int16)_mm_extract_epi16(pcm8, 1); + out[i+2] = (drmp3_int16)_mm_extract_epi16(pcm8, 2); + out[i+3] = (drmp3_int16)_mm_extract_epi16(pcm8, 3); + out[i+4] = (drmp3_int16)_mm_extract_epi16(pcm8, 4); + out[i+5] = (drmp3_int16)_mm_extract_epi16(pcm8, 5); + out[i+6] = (drmp3_int16)_mm_extract_epi16(pcm8, 6); + out[i+7] = (drmp3_int16)_mm_extract_epi16(pcm8, 7); +#else + int16x4_t pcma, pcmb; + a = DRMP3_VADD(a, DRMP3_VSET(0.5f)); + b = DRMP3_VADD(b, DRMP3_VSET(0.5f)); + pcma = vqmovn_s32(vqaddq_s32(vcvtq_s32_f32(a), vreinterpretq_s32_u32(vcltq_f32(a, DRMP3_VSET(0))))); + pcmb = vqmovn_s32(vqaddq_s32(vcvtq_s32_f32(b), vreinterpretq_s32_u32(vcltq_f32(b, DRMP3_VSET(0))))); + vst1_lane_s16(out+i , pcma, 0); + vst1_lane_s16(out+i+1, pcma, 1); + vst1_lane_s16(out+i+2, pcma, 2); + vst1_lane_s16(out+i+3, pcma, 3); + vst1_lane_s16(out+i+4, pcmb, 0); + vst1_lane_s16(out+i+5, pcmb, 1); + vst1_lane_s16(out+i+6, pcmb, 2); + vst1_lane_s16(out+i+7, pcmb, 3); +#endif + } +#endif + for(; i < num_samples; i++) + { + float sample = in[i] * 32768.0f; + if (sample >= 32766.5) + out[i] = (drmp3_int16) 32767; + else if (sample <= -32767.5) + out[i] = (drmp3_int16)-32768; + else + { + short s = (drmp3_int16)(sample + .5f); + s -= (s < 0); /* away from zero, to be compliant */ + out[i] = s; + } + } +} + + + +/************************************************************************************************************************************************************ + + Main Public API + + ************************************************************************************************************************************************************/ +/* SIZE_MAX */ +#if defined(SIZE_MAX) + #define DRMP3_SIZE_MAX SIZE_MAX +#else + #if defined(_WIN64) || defined(_LP64) || defined(__LP64__) + #define DRMP3_SIZE_MAX ((drmp3_uint64)0xFFFFFFFFFFFFFFFF) + #else + #define DRMP3_SIZE_MAX 0xFFFFFFFF + #endif +#endif +/* End SIZE_MAX */ + +/* Options. */ +#ifndef DRMP3_SEEK_LEADING_MP3_FRAMES +#define DRMP3_SEEK_LEADING_MP3_FRAMES 2 +#endif + +#define DRMP3_MIN_DATA_CHUNK_SIZE 16384 + +/* The size in bytes of each chunk of data to read from the MP3 stream. minimp3 recommends at least 16K, but in an attempt to reduce data movement I'm making this slightly larger. */ +#ifndef DRMP3_DATA_CHUNK_SIZE +#define DRMP3_DATA_CHUNK_SIZE (DRMP3_MIN_DATA_CHUNK_SIZE*4) +#endif + + +#define DRMP3_COUNTOF(x) (sizeof(x) / sizeof(x[0])) +#define DRMP3_CLAMP(x, lo, hi) (DRMP3_MAX(lo, DRMP3_MIN(x, hi))) + +#ifndef DRMP3_PI_D +#define DRMP3_PI_D 3.14159265358979323846264 +#endif + +#define DRMP3_DEFAULT_RESAMPLER_LPF_ORDER 2 + +static DRMP3_INLINE float drmp3_mix_f32(float x, float y, float a) +{ + return x*(1-a) + y*a; +} +static DRMP3_INLINE float drmp3_mix_f32_fast(float x, float y, float a) +{ + float r0 = (y - x); + float r1 = r0*a; + return x + r1; + /*return x + (y - x)*a;*/ +} + + +/* +Greatest common factor using Euclid's algorithm iteratively. +*/ +static DRMP3_INLINE drmp3_uint32 drmp3_gcf_u32(drmp3_uint32 a, drmp3_uint32 b) +{ + for (;;) { + if (b == 0) { + break; + } else { + drmp3_uint32 t = a; + a = b; + b = t % a; + } + } + + return a; +} + + +static void* drmp3__malloc_default(size_t sz, void* pUserData) +{ + (void)pUserData; + return DRMP3_MALLOC(sz); +} + +static void* drmp3__realloc_default(void* p, size_t sz, void* pUserData) +{ + (void)pUserData; + return DRMP3_REALLOC(p, sz); +} + +static void drmp3__free_default(void* p, void* pUserData) +{ + (void)pUserData; + DRMP3_FREE(p); +} + + +static void* drmp3__malloc_from_callbacks(size_t sz, const drmp3_allocation_callbacks* pAllocationCallbacks) +{ + if (pAllocationCallbacks == NULL) { + return NULL; + } + + if (pAllocationCallbacks->onMalloc != NULL) { + return pAllocationCallbacks->onMalloc(sz, pAllocationCallbacks->pUserData); + } + + /* Try using realloc(). */ + if (pAllocationCallbacks->onRealloc != NULL) { + return pAllocationCallbacks->onRealloc(NULL, sz, pAllocationCallbacks->pUserData); + } + + return NULL; +} + +static void* drmp3__realloc_from_callbacks(void* p, size_t szNew, size_t szOld, const drmp3_allocation_callbacks* pAllocationCallbacks) +{ + if (pAllocationCallbacks == NULL) { + return NULL; + } + + if (pAllocationCallbacks->onRealloc != NULL) { + return pAllocationCallbacks->onRealloc(p, szNew, pAllocationCallbacks->pUserData); + } + + /* Try emulating realloc() in terms of malloc()/free(). */ + if (pAllocationCallbacks->onMalloc != NULL && pAllocationCallbacks->onFree != NULL) { + void* p2; + + p2 = pAllocationCallbacks->onMalloc(szNew, pAllocationCallbacks->pUserData); + if (p2 == NULL) { + return NULL; + } + + if (p != NULL) { + DRMP3_COPY_MEMORY(p2, p, szOld); + pAllocationCallbacks->onFree(p, pAllocationCallbacks->pUserData); + } + + return p2; + } + + return NULL; +} + +static void drmp3__free_from_callbacks(void* p, const drmp3_allocation_callbacks* pAllocationCallbacks) +{ + if (p == NULL || pAllocationCallbacks == NULL) { + return; + } + + if (pAllocationCallbacks->onFree != NULL) { + pAllocationCallbacks->onFree(p, pAllocationCallbacks->pUserData); + } +} + + +static drmp3_allocation_callbacks drmp3_copy_allocation_callbacks_or_defaults(const drmp3_allocation_callbacks* pAllocationCallbacks) +{ + if (pAllocationCallbacks != NULL) { + /* Copy. */ + return *pAllocationCallbacks; + } else { + /* Defaults. */ + drmp3_allocation_callbacks allocationCallbacks; + allocationCallbacks.pUserData = NULL; + allocationCallbacks.onMalloc = drmp3__malloc_default; + allocationCallbacks.onRealloc = drmp3__realloc_default; + allocationCallbacks.onFree = drmp3__free_default; + return allocationCallbacks; + } +} + + + +static size_t drmp3__on_read(drmp3* pMP3, void* pBufferOut, size_t bytesToRead) +{ + size_t bytesRead = pMP3->onRead(pMP3->pUserData, pBufferOut, bytesToRead); + pMP3->streamCursor += bytesRead; + return bytesRead; +} + +static drmp3_bool32 drmp3__on_seek(drmp3* pMP3, int offset, drmp3_seek_origin origin) +{ + DRMP3_ASSERT(offset >= 0); + + if (!pMP3->onSeek(pMP3->pUserData, offset, origin)) { + return DRMP3_FALSE; + } + + if (origin == drmp3_seek_origin_start) { + pMP3->streamCursor = (drmp3_uint64)offset; + } else { + pMP3->streamCursor += offset; + } + + return DRMP3_TRUE; +} + +static drmp3_bool32 drmp3__on_seek_64(drmp3* pMP3, drmp3_uint64 offset, drmp3_seek_origin origin) +{ + if (offset <= 0x7FFFFFFF) { + return drmp3__on_seek(pMP3, (int)offset, origin); + } + + + /* Getting here "offset" is too large for a 32-bit integer. We just keep seeking forward until we hit the offset. */ + if (!drmp3__on_seek(pMP3, 0x7FFFFFFF, drmp3_seek_origin_start)) { + return DRMP3_FALSE; + } + + offset -= 0x7FFFFFFF; + while (offset > 0) { + if (offset <= 0x7FFFFFFF) { + if (!drmp3__on_seek(pMP3, (int)offset, drmp3_seek_origin_current)) { + return DRMP3_FALSE; + } + offset = 0; + } else { + if (!drmp3__on_seek(pMP3, 0x7FFFFFFF, drmp3_seek_origin_current)) { + return DRMP3_FALSE; + } + offset -= 0x7FFFFFFF; + } + } + + return DRMP3_TRUE; +} + + +static drmp3_uint32 drmp3_decode_next_frame_ex__callbacks(drmp3* pMP3, drmp3d_sample_t* pPCMFrames) +{ + drmp3_uint32 pcmFramesRead = 0; + + DRMP3_ASSERT(pMP3 != NULL); + DRMP3_ASSERT(pMP3->onRead != NULL); + + if (pMP3->atEnd) { + return 0; + } + + for (;;) { + drmp3dec_frame_info info; + + /* minimp3 recommends doing data submission in chunks of at least 16K. If we don't have at least 16K bytes available, get more. */ + if (pMP3->dataSize < DRMP3_MIN_DATA_CHUNK_SIZE) { + size_t bytesRead; + + /* First we need to move the data down. */ + if (pMP3->pData != NULL) { + DRMP3_MOVE_MEMORY(pMP3->pData, pMP3->pData + pMP3->dataConsumed, pMP3->dataSize); + } + + pMP3->dataConsumed = 0; + + if (pMP3->dataCapacity < DRMP3_DATA_CHUNK_SIZE) { + drmp3_uint8* pNewData; + size_t newDataCap; + + newDataCap = DRMP3_DATA_CHUNK_SIZE; + + pNewData = (drmp3_uint8*)drmp3__realloc_from_callbacks(pMP3->pData, newDataCap, pMP3->dataCapacity, &pMP3->allocationCallbacks); + if (pNewData == NULL) { + return 0; /* Out of memory. */ + } + + pMP3->pData = pNewData; + pMP3->dataCapacity = newDataCap; + } + + bytesRead = drmp3__on_read(pMP3, pMP3->pData + pMP3->dataSize, (pMP3->dataCapacity - pMP3->dataSize)); + if (bytesRead == 0) { + if (pMP3->dataSize == 0) { + pMP3->atEnd = DRMP3_TRUE; + return 0; /* No data. */ + } + } + + pMP3->dataSize += bytesRead; + } + + if (pMP3->dataSize > INT_MAX) { + pMP3->atEnd = DRMP3_TRUE; + return 0; /* File too big. */ + } + + DRMP3_ASSERT(pMP3->pData != NULL); + DRMP3_ASSERT(pMP3->dataCapacity > 0); + + /* Do a runtime check here to try silencing a false-positive from clang-analyzer. */ + if (pMP3->pData == NULL) { + return 0; + } + + pcmFramesRead = drmp3dec_decode_frame(&pMP3->decoder, pMP3->pData + pMP3->dataConsumed, (int)pMP3->dataSize, pPCMFrames, &info); /* <-- Safe size_t -> int conversion thanks to the check above. */ + + /* Consume the data. */ + if (info.frame_bytes > 0) { + pMP3->dataConsumed += (size_t)info.frame_bytes; + pMP3->dataSize -= (size_t)info.frame_bytes; + } + + /* pcmFramesRead will be equal to 0 if decoding failed. If it is zero and info.frame_bytes > 0 then we have successfully decoded the frame. */ + if (pcmFramesRead > 0) { + pcmFramesRead = drmp3_hdr_frame_samples(pMP3->decoder.header); + pMP3->pcmFramesConsumedInMP3Frame = 0; + pMP3->pcmFramesRemainingInMP3Frame = pcmFramesRead; + pMP3->mp3FrameChannels = info.channels; + pMP3->mp3FrameSampleRate = info.hz; + break; + } else if (info.frame_bytes == 0) { + /* Need more data. minimp3 recommends doing data submission in 16K chunks. */ + size_t bytesRead; + + /* First we need to move the data down. */ + DRMP3_MOVE_MEMORY(pMP3->pData, pMP3->pData + pMP3->dataConsumed, pMP3->dataSize); + pMP3->dataConsumed = 0; + + if (pMP3->dataCapacity == pMP3->dataSize) { + /* No room. Expand. */ + drmp3_uint8* pNewData; + size_t newDataCap; + + newDataCap = pMP3->dataCapacity + DRMP3_DATA_CHUNK_SIZE; + + pNewData = (drmp3_uint8*)drmp3__realloc_from_callbacks(pMP3->pData, newDataCap, pMP3->dataCapacity, &pMP3->allocationCallbacks); + if (pNewData == NULL) { + return 0; /* Out of memory. */ + } + + pMP3->pData = pNewData; + pMP3->dataCapacity = newDataCap; + } + + /* Fill in a chunk. */ + bytesRead = drmp3__on_read(pMP3, pMP3->pData + pMP3->dataSize, (pMP3->dataCapacity - pMP3->dataSize)); + if (bytesRead == 0) { + pMP3->atEnd = DRMP3_TRUE; + return 0; /* Error reading more data. */ + } + + pMP3->dataSize += bytesRead; + } + }; + + return pcmFramesRead; +} + +static drmp3_uint32 drmp3_decode_next_frame_ex__memory(drmp3* pMP3, drmp3d_sample_t* pPCMFrames) +{ + drmp3_uint32 pcmFramesRead = 0; + drmp3dec_frame_info info; + + DRMP3_ASSERT(pMP3 != NULL); + DRMP3_ASSERT(pMP3->memory.pData != NULL); + + if (pMP3->atEnd) { + return 0; + } + + for (;;) { + pcmFramesRead = drmp3dec_decode_frame(&pMP3->decoder, pMP3->memory.pData + pMP3->memory.currentReadPos, (int)(pMP3->memory.dataSize - pMP3->memory.currentReadPos), pPCMFrames, &info); + if (pcmFramesRead > 0) { + pcmFramesRead = drmp3_hdr_frame_samples(pMP3->decoder.header); + pMP3->pcmFramesConsumedInMP3Frame = 0; + pMP3->pcmFramesRemainingInMP3Frame = pcmFramesRead; + pMP3->mp3FrameChannels = info.channels; + pMP3->mp3FrameSampleRate = info.hz; + break; + } else if (info.frame_bytes > 0) { + /* No frames were read, but it looks like we skipped past one. Read the next MP3 frame. */ + pMP3->memory.currentReadPos += (size_t)info.frame_bytes; + } else { + /* Nothing at all was read. Abort. */ + break; + } + } + + /* Consume the data. */ + pMP3->memory.currentReadPos += (size_t)info.frame_bytes; + + return pcmFramesRead; +} + +static drmp3_uint32 drmp3_decode_next_frame_ex(drmp3* pMP3, drmp3d_sample_t* pPCMFrames) +{ + if (pMP3->memory.pData != NULL && pMP3->memory.dataSize > 0) { + return drmp3_decode_next_frame_ex__memory(pMP3, pPCMFrames); + } else { + return drmp3_decode_next_frame_ex__callbacks(pMP3, pPCMFrames); + } +} + +static drmp3_uint32 drmp3_decode_next_frame(drmp3* pMP3) +{ + DRMP3_ASSERT(pMP3 != NULL); + return drmp3_decode_next_frame_ex(pMP3, (drmp3d_sample_t*)pMP3->pcmFrames); +} + +#if 0 +static drmp3_uint32 drmp3_seek_next_frame(drmp3* pMP3) +{ + drmp3_uint32 pcmFrameCount; + + DRMP3_ASSERT(pMP3 != NULL); + + pcmFrameCount = drmp3_decode_next_frame_ex(pMP3, NULL); + if (pcmFrameCount == 0) { + return 0; + } + + /* We have essentially just skipped past the frame, so just set the remaining samples to 0. */ + pMP3->currentPCMFrame += pcmFrameCount; + pMP3->pcmFramesConsumedInMP3Frame = pcmFrameCount; + pMP3->pcmFramesRemainingInMP3Frame = 0; + + return pcmFrameCount; +} +#endif + +static drmp3_bool32 drmp3_init_internal(drmp3* pMP3, drmp3_read_proc onRead, drmp3_seek_proc onSeek, void* pUserData, const drmp3_allocation_callbacks* pAllocationCallbacks) +{ + DRMP3_ASSERT(pMP3 != NULL); + DRMP3_ASSERT(onRead != NULL); + + /* This function assumes the output object has already been reset to 0. Do not do that here, otherwise things will break. */ + drmp3dec_init(&pMP3->decoder); + + pMP3->onRead = onRead; + pMP3->onSeek = onSeek; + pMP3->pUserData = pUserData; + pMP3->allocationCallbacks = drmp3_copy_allocation_callbacks_or_defaults(pAllocationCallbacks); + + if (pMP3->allocationCallbacks.onFree == NULL || (pMP3->allocationCallbacks.onMalloc == NULL && pMP3->allocationCallbacks.onRealloc == NULL)) { + return DRMP3_FALSE; /* Invalid allocation callbacks. */ + } + + /* Decode the first frame to confirm that it is indeed a valid MP3 stream. */ + if (drmp3_decode_next_frame(pMP3) == 0) { + drmp3__free_from_callbacks(pMP3->pData, &pMP3->allocationCallbacks); /* The call above may have allocated memory. Need to make sure it's freed before aborting. */ + return DRMP3_FALSE; /* Not a valid MP3 stream. */ + } + + pMP3->channels = pMP3->mp3FrameChannels; + pMP3->sampleRate = pMP3->mp3FrameSampleRate; + + return DRMP3_TRUE; +} + +DRMP3_API drmp3_bool32 drmp3_init(drmp3* pMP3, drmp3_read_proc onRead, drmp3_seek_proc onSeek, void* pUserData, const drmp3_allocation_callbacks* pAllocationCallbacks) +{ + if (pMP3 == NULL || onRead == NULL) { + return DRMP3_FALSE; + } + + DRMP3_ZERO_OBJECT(pMP3); + return drmp3_init_internal(pMP3, onRead, onSeek, pUserData, pAllocationCallbacks); +} + + +static size_t drmp3__on_read_memory(void* pUserData, void* pBufferOut, size_t bytesToRead) +{ + drmp3* pMP3 = (drmp3*)pUserData; + size_t bytesRemaining; + + DRMP3_ASSERT(pMP3 != NULL); + DRMP3_ASSERT(pMP3->memory.dataSize >= pMP3->memory.currentReadPos); + + bytesRemaining = pMP3->memory.dataSize - pMP3->memory.currentReadPos; + if (bytesToRead > bytesRemaining) { + bytesToRead = bytesRemaining; + } + + if (bytesToRead > 0) { + DRMP3_COPY_MEMORY(pBufferOut, pMP3->memory.pData + pMP3->memory.currentReadPos, bytesToRead); + pMP3->memory.currentReadPos += bytesToRead; + } + + return bytesToRead; +} + +static drmp3_bool32 drmp3__on_seek_memory(void* pUserData, int byteOffset, drmp3_seek_origin origin) +{ + drmp3* pMP3 = (drmp3*)pUserData; + + DRMP3_ASSERT(pMP3 != NULL); + + if (origin == drmp3_seek_origin_current) { + if (byteOffset > 0) { + if (pMP3->memory.currentReadPos + byteOffset > pMP3->memory.dataSize) { + byteOffset = (int)(pMP3->memory.dataSize - pMP3->memory.currentReadPos); /* Trying to seek too far forward. */ + } + } else { + if (pMP3->memory.currentReadPos < (size_t)-byteOffset) { + byteOffset = -(int)pMP3->memory.currentReadPos; /* Trying to seek too far backwards. */ + } + } + + /* This will never underflow thanks to the clamps above. */ + pMP3->memory.currentReadPos += byteOffset; + } else { + if ((drmp3_uint32)byteOffset <= pMP3->memory.dataSize) { + pMP3->memory.currentReadPos = byteOffset; + } else { + pMP3->memory.currentReadPos = pMP3->memory.dataSize; /* Trying to seek too far forward. */ + } + } + + return DRMP3_TRUE; +} + +DRMP3_API drmp3_bool32 drmp3_init_memory(drmp3* pMP3, const void* pData, size_t dataSize, const drmp3_allocation_callbacks* pAllocationCallbacks) +{ + if (pMP3 == NULL) { + return DRMP3_FALSE; + } + + DRMP3_ZERO_OBJECT(pMP3); + + if (pData == NULL || dataSize == 0) { + return DRMP3_FALSE; + } + + pMP3->memory.pData = (const drmp3_uint8*)pData; + pMP3->memory.dataSize = dataSize; + pMP3->memory.currentReadPos = 0; + + return drmp3_init_internal(pMP3, drmp3__on_read_memory, drmp3__on_seek_memory, pMP3, pAllocationCallbacks); +} + + +#ifndef DR_MP3_NO_STDIO +#include +#include /* For wcslen(), wcsrtombs() */ + +/* Errno */ +/* drmp3_result_from_errno() is only used inside DR_MP3_NO_STDIO for now. Move this out if it's ever used elsewhere. */ +#include +static drmp3_result drmp3_result_from_errno(int e) +{ + switch (e) + { + case 0: return DRMP3_SUCCESS; + #ifdef EPERM + case EPERM: return DRMP3_INVALID_OPERATION; + #endif + #ifdef ENOENT + case ENOENT: return DRMP3_DOES_NOT_EXIST; + #endif + #ifdef ESRCH + case ESRCH: return DRMP3_DOES_NOT_EXIST; + #endif + #ifdef EINTR + case EINTR: return DRMP3_INTERRUPT; + #endif + #ifdef EIO + case EIO: return DRMP3_IO_ERROR; + #endif + #ifdef ENXIO + case ENXIO: return DRMP3_DOES_NOT_EXIST; + #endif + #ifdef E2BIG + case E2BIG: return DRMP3_INVALID_ARGS; + #endif + #ifdef ENOEXEC + case ENOEXEC: return DRMP3_INVALID_FILE; + #endif + #ifdef EBADF + case EBADF: return DRMP3_INVALID_FILE; + #endif + #ifdef ECHILD + case ECHILD: return DRMP3_ERROR; + #endif + #ifdef EAGAIN + case EAGAIN: return DRMP3_UNAVAILABLE; + #endif + #ifdef ENOMEM + case ENOMEM: return DRMP3_OUT_OF_MEMORY; + #endif + #ifdef EACCES + case EACCES: return DRMP3_ACCESS_DENIED; + #endif + #ifdef EFAULT + case EFAULT: return DRMP3_BAD_ADDRESS; + #endif + #ifdef ENOTBLK + case ENOTBLK: return DRMP3_ERROR; + #endif + #ifdef EBUSY + case EBUSY: return DRMP3_BUSY; + #endif + #ifdef EEXIST + case EEXIST: return DRMP3_ALREADY_EXISTS; + #endif + #ifdef EXDEV + case EXDEV: return DRMP3_ERROR; + #endif + #ifdef ENODEV + case ENODEV: return DRMP3_DOES_NOT_EXIST; + #endif + #ifdef ENOTDIR + case ENOTDIR: return DRMP3_NOT_DIRECTORY; + #endif + #ifdef EISDIR + case EISDIR: return DRMP3_IS_DIRECTORY; + #endif + #ifdef EINVAL + case EINVAL: return DRMP3_INVALID_ARGS; + #endif + #ifdef ENFILE + case ENFILE: return DRMP3_TOO_MANY_OPEN_FILES; + #endif + #ifdef EMFILE + case EMFILE: return DRMP3_TOO_MANY_OPEN_FILES; + #endif + #ifdef ENOTTY + case ENOTTY: return DRMP3_INVALID_OPERATION; + #endif + #ifdef ETXTBSY + case ETXTBSY: return DRMP3_BUSY; + #endif + #ifdef EFBIG + case EFBIG: return DRMP3_TOO_BIG; + #endif + #ifdef ENOSPC + case ENOSPC: return DRMP3_NO_SPACE; + #endif + #ifdef ESPIPE + case ESPIPE: return DRMP3_BAD_SEEK; + #endif + #ifdef EROFS + case EROFS: return DRMP3_ACCESS_DENIED; + #endif + #ifdef EMLINK + case EMLINK: return DRMP3_TOO_MANY_LINKS; + #endif + #ifdef EPIPE + case EPIPE: return DRMP3_BAD_PIPE; + #endif + #ifdef EDOM + case EDOM: return DRMP3_OUT_OF_RANGE; + #endif + #ifdef ERANGE + case ERANGE: return DRMP3_OUT_OF_RANGE; + #endif + #ifdef EDEADLK + case EDEADLK: return DRMP3_DEADLOCK; + #endif + #ifdef ENAMETOOLONG + case ENAMETOOLONG: return DRMP3_PATH_TOO_LONG; + #endif + #ifdef ENOLCK + case ENOLCK: return DRMP3_ERROR; + #endif + #ifdef ENOSYS + case ENOSYS: return DRMP3_NOT_IMPLEMENTED; + #endif + #ifdef ENOTEMPTY + case ENOTEMPTY: return DRMP3_DIRECTORY_NOT_EMPTY; + #endif + #ifdef ELOOP + case ELOOP: return DRMP3_TOO_MANY_LINKS; + #endif + #ifdef ENOMSG + case ENOMSG: return DRMP3_NO_MESSAGE; + #endif + #ifdef EIDRM + case EIDRM: return DRMP3_ERROR; + #endif + #ifdef ECHRNG + case ECHRNG: return DRMP3_ERROR; + #endif + #ifdef EL2NSYNC + case EL2NSYNC: return DRMP3_ERROR; + #endif + #ifdef EL3HLT + case EL3HLT: return DRMP3_ERROR; + #endif + #ifdef EL3RST + case EL3RST: return DRMP3_ERROR; + #endif + #ifdef ELNRNG + case ELNRNG: return DRMP3_OUT_OF_RANGE; + #endif + #ifdef EUNATCH + case EUNATCH: return DRMP3_ERROR; + #endif + #ifdef ENOCSI + case ENOCSI: return DRMP3_ERROR; + #endif + #ifdef EL2HLT + case EL2HLT: return DRMP3_ERROR; + #endif + #ifdef EBADE + case EBADE: return DRMP3_ERROR; + #endif + #ifdef EBADR + case EBADR: return DRMP3_ERROR; + #endif + #ifdef EXFULL + case EXFULL: return DRMP3_ERROR; + #endif + #ifdef ENOANO + case ENOANO: return DRMP3_ERROR; + #endif + #ifdef EBADRQC + case EBADRQC: return DRMP3_ERROR; + #endif + #ifdef EBADSLT + case EBADSLT: return DRMP3_ERROR; + #endif + #ifdef EBFONT + case EBFONT: return DRMP3_INVALID_FILE; + #endif + #ifdef ENOSTR + case ENOSTR: return DRMP3_ERROR; + #endif + #ifdef ENODATA + case ENODATA: return DRMP3_NO_DATA_AVAILABLE; + #endif + #ifdef ETIME + case ETIME: return DRMP3_TIMEOUT; + #endif + #ifdef ENOSR + case ENOSR: return DRMP3_NO_DATA_AVAILABLE; + #endif + #ifdef ENONET + case ENONET: return DRMP3_NO_NETWORK; + #endif + #ifdef ENOPKG + case ENOPKG: return DRMP3_ERROR; + #endif + #ifdef EREMOTE + case EREMOTE: return DRMP3_ERROR; + #endif + #ifdef ENOLINK + case ENOLINK: return DRMP3_ERROR; + #endif + #ifdef EADV + case EADV: return DRMP3_ERROR; + #endif + #ifdef ESRMNT + case ESRMNT: return DRMP3_ERROR; + #endif + #ifdef ECOMM + case ECOMM: return DRMP3_ERROR; + #endif + #ifdef EPROTO + case EPROTO: return DRMP3_ERROR; + #endif + #ifdef EMULTIHOP + case EMULTIHOP: return DRMP3_ERROR; + #endif + #ifdef EDOTDOT + case EDOTDOT: return DRMP3_ERROR; + #endif + #ifdef EBADMSG + case EBADMSG: return DRMP3_BAD_MESSAGE; + #endif + #ifdef EOVERFLOW + case EOVERFLOW: return DRMP3_TOO_BIG; + #endif + #ifdef ENOTUNIQ + case ENOTUNIQ: return DRMP3_NOT_UNIQUE; + #endif + #ifdef EBADFD + case EBADFD: return DRMP3_ERROR; + #endif + #ifdef EREMCHG + case EREMCHG: return DRMP3_ERROR; + #endif + #ifdef ELIBACC + case ELIBACC: return DRMP3_ACCESS_DENIED; + #endif + #ifdef ELIBBAD + case ELIBBAD: return DRMP3_INVALID_FILE; + #endif + #ifdef ELIBSCN + case ELIBSCN: return DRMP3_INVALID_FILE; + #endif + #ifdef ELIBMAX + case ELIBMAX: return DRMP3_ERROR; + #endif + #ifdef ELIBEXEC + case ELIBEXEC: return DRMP3_ERROR; + #endif + #ifdef EILSEQ + case EILSEQ: return DRMP3_INVALID_DATA; + #endif + #ifdef ERESTART + case ERESTART: return DRMP3_ERROR; + #endif + #ifdef ESTRPIPE + case ESTRPIPE: return DRMP3_ERROR; + #endif + #ifdef EUSERS + case EUSERS: return DRMP3_ERROR; + #endif + #ifdef ENOTSOCK + case ENOTSOCK: return DRMP3_NOT_SOCKET; + #endif + #ifdef EDESTADDRREQ + case EDESTADDRREQ: return DRMP3_NO_ADDRESS; + #endif + #ifdef EMSGSIZE + case EMSGSIZE: return DRMP3_TOO_BIG; + #endif + #ifdef EPROTOTYPE + case EPROTOTYPE: return DRMP3_BAD_PROTOCOL; + #endif + #ifdef ENOPROTOOPT + case ENOPROTOOPT: return DRMP3_PROTOCOL_UNAVAILABLE; + #endif + #ifdef EPROTONOSUPPORT + case EPROTONOSUPPORT: return DRMP3_PROTOCOL_NOT_SUPPORTED; + #endif + #ifdef ESOCKTNOSUPPORT + case ESOCKTNOSUPPORT: return DRMP3_SOCKET_NOT_SUPPORTED; + #endif + #ifdef EOPNOTSUPP + case EOPNOTSUPP: return DRMP3_INVALID_OPERATION; + #endif + #ifdef EPFNOSUPPORT + case EPFNOSUPPORT: return DRMP3_PROTOCOL_FAMILY_NOT_SUPPORTED; + #endif + #ifdef EAFNOSUPPORT + case EAFNOSUPPORT: return DRMP3_ADDRESS_FAMILY_NOT_SUPPORTED; + #endif + #ifdef EADDRINUSE + case EADDRINUSE: return DRMP3_ALREADY_IN_USE; + #endif + #ifdef EADDRNOTAVAIL + case EADDRNOTAVAIL: return DRMP3_ERROR; + #endif + #ifdef ENETDOWN + case ENETDOWN: return DRMP3_NO_NETWORK; + #endif + #ifdef ENETUNREACH + case ENETUNREACH: return DRMP3_NO_NETWORK; + #endif + #ifdef ENETRESET + case ENETRESET: return DRMP3_NO_NETWORK; + #endif + #ifdef ECONNABORTED + case ECONNABORTED: return DRMP3_NO_NETWORK; + #endif + #ifdef ECONNRESET + case ECONNRESET: return DRMP3_CONNECTION_RESET; + #endif + #ifdef ENOBUFS + case ENOBUFS: return DRMP3_NO_SPACE; + #endif + #ifdef EISCONN + case EISCONN: return DRMP3_ALREADY_CONNECTED; + #endif + #ifdef ENOTCONN + case ENOTCONN: return DRMP3_NOT_CONNECTED; + #endif + #ifdef ESHUTDOWN + case ESHUTDOWN: return DRMP3_ERROR; + #endif + #ifdef ETOOMANYREFS + case ETOOMANYREFS: return DRMP3_ERROR; + #endif + #ifdef ETIMEDOUT + case ETIMEDOUT: return DRMP3_TIMEOUT; + #endif + #ifdef ECONNREFUSED + case ECONNREFUSED: return DRMP3_CONNECTION_REFUSED; + #endif + #ifdef EHOSTDOWN + case EHOSTDOWN: return DRMP3_NO_HOST; + #endif + #ifdef EHOSTUNREACH + case EHOSTUNREACH: return DRMP3_NO_HOST; + #endif + #ifdef EALREADY + case EALREADY: return DRMP3_IN_PROGRESS; + #endif + #ifdef EINPROGRESS + case EINPROGRESS: return DRMP3_IN_PROGRESS; + #endif + #ifdef ESTALE + case ESTALE: return DRMP3_INVALID_FILE; + #endif + #ifdef EUCLEAN + case EUCLEAN: return DRMP3_ERROR; + #endif + #ifdef ENOTNAM + case ENOTNAM: return DRMP3_ERROR; + #endif + #ifdef ENAVAIL + case ENAVAIL: return DRMP3_ERROR; + #endif + #ifdef EISNAM + case EISNAM: return DRMP3_ERROR; + #endif + #ifdef EREMOTEIO + case EREMOTEIO: return DRMP3_IO_ERROR; + #endif + #ifdef EDQUOT + case EDQUOT: return DRMP3_NO_SPACE; + #endif + #ifdef ENOMEDIUM + case ENOMEDIUM: return DRMP3_DOES_NOT_EXIST; + #endif + #ifdef EMEDIUMTYPE + case EMEDIUMTYPE: return DRMP3_ERROR; + #endif + #ifdef ECANCELED + case ECANCELED: return DRMP3_CANCELLED; + #endif + #ifdef ENOKEY + case ENOKEY: return DRMP3_ERROR; + #endif + #ifdef EKEYEXPIRED + case EKEYEXPIRED: return DRMP3_ERROR; + #endif + #ifdef EKEYREVOKED + case EKEYREVOKED: return DRMP3_ERROR; + #endif + #ifdef EKEYREJECTED + case EKEYREJECTED: return DRMP3_ERROR; + #endif + #ifdef EOWNERDEAD + case EOWNERDEAD: return DRMP3_ERROR; + #endif + #ifdef ENOTRECOVERABLE + case ENOTRECOVERABLE: return DRMP3_ERROR; + #endif + #ifdef ERFKILL + case ERFKILL: return DRMP3_ERROR; + #endif + #ifdef EHWPOISON + case EHWPOISON: return DRMP3_ERROR; + #endif + default: return DRMP3_ERROR; + } +} +/* End Errno */ + +/* fopen */ +static drmp3_result drmp3_fopen(FILE** ppFile, const char* pFilePath, const char* pOpenMode) +{ +#if defined(_MSC_VER) && _MSC_VER >= 1400 + errno_t err; +#endif + + if (ppFile != NULL) { + *ppFile = NULL; /* Safety. */ + } + + if (pFilePath == NULL || pOpenMode == NULL || ppFile == NULL) { + return DRMP3_INVALID_ARGS; + } + +#if defined(_MSC_VER) && _MSC_VER >= 1400 + err = fopen_s(ppFile, pFilePath, pOpenMode); + if (err != 0) { + return drmp3_result_from_errno(err); + } +#else +#if defined(_WIN32) || defined(__APPLE__) + *ppFile = fopen(pFilePath, pOpenMode); +#else + #if defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64 && defined(_LARGEFILE64_SOURCE) + *ppFile = fopen64(pFilePath, pOpenMode); + #else + *ppFile = fopen(pFilePath, pOpenMode); + #endif +#endif + if (*ppFile == NULL) { + drmp3_result result = drmp3_result_from_errno(errno); + if (result == DRMP3_SUCCESS) { + result = DRMP3_ERROR; /* Just a safety check to make sure we never ever return success when pFile == NULL. */ + } + + return result; + } +#endif + + return DRMP3_SUCCESS; +} + +/* +_wfopen() isn't always available in all compilation environments. + + * Windows only. + * MSVC seems to support it universally as far back as VC6 from what I can tell (haven't checked further back). + * MinGW-64 (both 32- and 64-bit) seems to support it. + * MinGW wraps it in !defined(__STRICT_ANSI__). + * OpenWatcom wraps it in !defined(_NO_EXT_KEYS). + +This can be reviewed as compatibility issues arise. The preference is to use _wfopen_s() and _wfopen() as opposed to the wcsrtombs() +fallback, so if you notice your compiler not detecting this properly I'm happy to look at adding support. +*/ +#if defined(_WIN32) + #if defined(_MSC_VER) || defined(__MINGW64__) || (!defined(__STRICT_ANSI__) && !defined(_NO_EXT_KEYS)) + #define DRMP3_HAS_WFOPEN + #endif +#endif + +static drmp3_result drmp3_wfopen(FILE** ppFile, const wchar_t* pFilePath, const wchar_t* pOpenMode, const drmp3_allocation_callbacks* pAllocationCallbacks) +{ + if (ppFile != NULL) { + *ppFile = NULL; /* Safety. */ + } + + if (pFilePath == NULL || pOpenMode == NULL || ppFile == NULL) { + return DRMP3_INVALID_ARGS; + } + +#if defined(DRMP3_HAS_WFOPEN) + { + /* Use _wfopen() on Windows. */ + #if defined(_MSC_VER) && _MSC_VER >= 1400 + errno_t err = _wfopen_s(ppFile, pFilePath, pOpenMode); + if (err != 0) { + return drmp3_result_from_errno(err); + } + #else + *ppFile = _wfopen(pFilePath, pOpenMode); + if (*ppFile == NULL) { + return drmp3_result_from_errno(errno); + } + #endif + (void)pAllocationCallbacks; + } +#else + /* + Use fopen() on anything other than Windows. Requires a conversion. This is annoying because + fopen() is locale specific. The only real way I can think of to do this is with wcsrtombs(). Note + that wcstombs() is apparently not thread-safe because it uses a static global mbstate_t object for + maintaining state. I've checked this with -std=c89 and it works, but if somebody get's a compiler + error I'll look into improving compatibility. + */ + + /* + Some compilers don't support wchar_t or wcsrtombs() which we're using below. In this case we just + need to abort with an error. If you encounter a compiler lacking such support, add it to this list + and submit a bug report and it'll be added to the library upstream. + */ + #if defined(__DJGPP__) + { + /* Nothing to do here. This will fall through to the error check below. */ + } + #else + { + mbstate_t mbs; + size_t lenMB; + const wchar_t* pFilePathTemp = pFilePath; + char* pFilePathMB = NULL; + char pOpenModeMB[32] = {0}; + + /* Get the length first. */ + DRMP3_ZERO_OBJECT(&mbs); + lenMB = wcsrtombs(NULL, &pFilePathTemp, 0, &mbs); + if (lenMB == (size_t)-1) { + return drmp3_result_from_errno(errno); + } + + pFilePathMB = (char*)drmp3__malloc_from_callbacks(lenMB + 1, pAllocationCallbacks); + if (pFilePathMB == NULL) { + return DRMP3_OUT_OF_MEMORY; + } + + pFilePathTemp = pFilePath; + DRMP3_ZERO_OBJECT(&mbs); + wcsrtombs(pFilePathMB, &pFilePathTemp, lenMB + 1, &mbs); + + /* The open mode should always consist of ASCII characters so we should be able to do a trivial conversion. */ + { + size_t i = 0; + for (;;) { + if (pOpenMode[i] == 0) { + pOpenModeMB[i] = '\0'; + break; + } + + pOpenModeMB[i] = (char)pOpenMode[i]; + i += 1; + } + } + + *ppFile = fopen(pFilePathMB, pOpenModeMB); + + drmp3__free_from_callbacks(pFilePathMB, pAllocationCallbacks); + } + #endif + + if (*ppFile == NULL) { + return DRMP3_ERROR; + } +#endif + + return DRMP3_SUCCESS; +} +/* End fopen */ + + +static size_t drmp3__on_read_stdio(void* pUserData, void* pBufferOut, size_t bytesToRead) +{ + return fread(pBufferOut, 1, bytesToRead, (FILE*)pUserData); +} + +static drmp3_bool32 drmp3__on_seek_stdio(void* pUserData, int offset, drmp3_seek_origin origin) +{ + return fseek((FILE*)pUserData, offset, (origin == drmp3_seek_origin_current) ? SEEK_CUR : SEEK_SET) == 0; +} + +DRMP3_API drmp3_bool32 drmp3_init_file(drmp3* pMP3, const char* pFilePath, const drmp3_allocation_callbacks* pAllocationCallbacks) +{ + drmp3_bool32 result; + FILE* pFile; + + if (drmp3_fopen(&pFile, pFilePath, "rb") != DRMP3_SUCCESS) { + return DRMP3_FALSE; + } + + result = drmp3_init(pMP3, drmp3__on_read_stdio, drmp3__on_seek_stdio, (void*)pFile, pAllocationCallbacks); + if (result != DRMP3_TRUE) { + fclose(pFile); + return result; + } + + return DRMP3_TRUE; +} + +DRMP3_API drmp3_bool32 drmp3_init_file_w(drmp3* pMP3, const wchar_t* pFilePath, const drmp3_allocation_callbacks* pAllocationCallbacks) +{ + drmp3_bool32 result; + FILE* pFile; + + if (drmp3_wfopen(&pFile, pFilePath, L"rb", pAllocationCallbacks) != DRMP3_SUCCESS) { + return DRMP3_FALSE; + } + + result = drmp3_init(pMP3, drmp3__on_read_stdio, drmp3__on_seek_stdio, (void*)pFile, pAllocationCallbacks); + if (result != DRMP3_TRUE) { + fclose(pFile); + return result; + } + + return DRMP3_TRUE; +} +#endif + +DRMP3_API void drmp3_uninit(drmp3* pMP3) +{ + if (pMP3 == NULL) { + return; + } + +#ifndef DR_MP3_NO_STDIO + if (pMP3->onRead == drmp3__on_read_stdio) { + FILE* pFile = (FILE*)pMP3->pUserData; + if (pFile != NULL) { + fclose(pFile); + pMP3->pUserData = NULL; /* Make sure the file handle is cleared to NULL to we don't attempt to close it a second time. */ + } + } +#endif + + drmp3__free_from_callbacks(pMP3->pData, &pMP3->allocationCallbacks); +} + +#if defined(DR_MP3_FLOAT_OUTPUT) +static void drmp3_f32_to_s16(drmp3_int16* dst, const float* src, drmp3_uint64 sampleCount) +{ + drmp3_uint64 i; + drmp3_uint64 i4; + drmp3_uint64 sampleCount4; + + /* Unrolled. */ + i = 0; + sampleCount4 = sampleCount >> 2; + for (i4 = 0; i4 < sampleCount4; i4 += 1) { + float x0 = src[i+0]; + float x1 = src[i+1]; + float x2 = src[i+2]; + float x3 = src[i+3]; + + x0 = ((x0 < -1) ? -1 : ((x0 > 1) ? 1 : x0)); + x1 = ((x1 < -1) ? -1 : ((x1 > 1) ? 1 : x1)); + x2 = ((x2 < -1) ? -1 : ((x2 > 1) ? 1 : x2)); + x3 = ((x3 < -1) ? -1 : ((x3 > 1) ? 1 : x3)); + + x0 = x0 * 32767.0f; + x1 = x1 * 32767.0f; + x2 = x2 * 32767.0f; + x3 = x3 * 32767.0f; + + dst[i+0] = (drmp3_int16)x0; + dst[i+1] = (drmp3_int16)x1; + dst[i+2] = (drmp3_int16)x2; + dst[i+3] = (drmp3_int16)x3; + + i += 4; + } + + /* Leftover. */ + for (; i < sampleCount; i += 1) { + float x = src[i]; + x = ((x < -1) ? -1 : ((x > 1) ? 1 : x)); /* clip */ + x = x * 32767.0f; /* -1..1 to -32767..32767 */ + + dst[i] = (drmp3_int16)x; + } +} +#endif + +#if !defined(DR_MP3_FLOAT_OUTPUT) +static void drmp3_s16_to_f32(float* dst, const drmp3_int16* src, drmp3_uint64 sampleCount) +{ + drmp3_uint64 i; + for (i = 0; i < sampleCount; i += 1) { + float x = (float)src[i]; + x = x * 0.000030517578125f; /* -32768..32767 to -1..0.999969482421875 */ + dst[i] = x; + } +} +#endif + + +static drmp3_uint64 drmp3_read_pcm_frames_raw(drmp3* pMP3, drmp3_uint64 framesToRead, void* pBufferOut) +{ + drmp3_uint64 totalFramesRead = 0; + + DRMP3_ASSERT(pMP3 != NULL); + DRMP3_ASSERT(pMP3->onRead != NULL); + + while (framesToRead > 0) { + drmp3_uint32 framesToConsume = (drmp3_uint32)DRMP3_MIN(pMP3->pcmFramesRemainingInMP3Frame, framesToRead); + if (pBufferOut != NULL) { + #if defined(DR_MP3_FLOAT_OUTPUT) + /* f32 */ + float* pFramesOutF32 = (float*)DRMP3_OFFSET_PTR(pBufferOut, sizeof(float) * totalFramesRead * pMP3->channels); + float* pFramesInF32 = (float*)DRMP3_OFFSET_PTR(&pMP3->pcmFrames[0], sizeof(float) * pMP3->pcmFramesConsumedInMP3Frame * pMP3->mp3FrameChannels); + DRMP3_COPY_MEMORY(pFramesOutF32, pFramesInF32, sizeof(float) * framesToConsume * pMP3->channels); + #else + /* s16 */ + drmp3_int16* pFramesOutS16 = (drmp3_int16*)DRMP3_OFFSET_PTR(pBufferOut, sizeof(drmp3_int16) * totalFramesRead * pMP3->channels); + drmp3_int16* pFramesInS16 = (drmp3_int16*)DRMP3_OFFSET_PTR(&pMP3->pcmFrames[0], sizeof(drmp3_int16) * pMP3->pcmFramesConsumedInMP3Frame * pMP3->mp3FrameChannels); + DRMP3_COPY_MEMORY(pFramesOutS16, pFramesInS16, sizeof(drmp3_int16) * framesToConsume * pMP3->channels); + #endif + } + + pMP3->currentPCMFrame += framesToConsume; + pMP3->pcmFramesConsumedInMP3Frame += framesToConsume; + pMP3->pcmFramesRemainingInMP3Frame -= framesToConsume; + totalFramesRead += framesToConsume; + framesToRead -= framesToConsume; + + if (framesToRead == 0) { + break; + } + + DRMP3_ASSERT(pMP3->pcmFramesRemainingInMP3Frame == 0); + + /* + At this point we have exhausted our in-memory buffer so we need to re-fill. Note that the sample rate may have changed + at this point which means we'll also need to update our sample rate conversion pipeline. + */ + if (drmp3_decode_next_frame(pMP3) == 0) { + break; + } + } + + return totalFramesRead; +} + + +DRMP3_API drmp3_uint64 drmp3_read_pcm_frames_f32(drmp3* pMP3, drmp3_uint64 framesToRead, float* pBufferOut) +{ + if (pMP3 == NULL || pMP3->onRead == NULL) { + return 0; + } + +#if defined(DR_MP3_FLOAT_OUTPUT) + /* Fast path. No conversion required. */ + return drmp3_read_pcm_frames_raw(pMP3, framesToRead, pBufferOut); +#else + /* Slow path. Convert from s16 to f32. */ + { + drmp3_int16 pTempS16[8192]; + drmp3_uint64 totalPCMFramesRead = 0; + + while (totalPCMFramesRead < framesToRead) { + drmp3_uint64 framesJustRead; + drmp3_uint64 framesRemaining = framesToRead - totalPCMFramesRead; + drmp3_uint64 framesToReadNow = DRMP3_COUNTOF(pTempS16) / pMP3->channels; + if (framesToReadNow > framesRemaining) { + framesToReadNow = framesRemaining; + } + + framesJustRead = drmp3_read_pcm_frames_raw(pMP3, framesToReadNow, pTempS16); + if (framesJustRead == 0) { + break; + } + + drmp3_s16_to_f32((float*)DRMP3_OFFSET_PTR(pBufferOut, sizeof(float) * totalPCMFramesRead * pMP3->channels), pTempS16, framesJustRead * pMP3->channels); + totalPCMFramesRead += framesJustRead; + } + + return totalPCMFramesRead; + } +#endif +} + +DRMP3_API drmp3_uint64 drmp3_read_pcm_frames_s16(drmp3* pMP3, drmp3_uint64 framesToRead, drmp3_int16* pBufferOut) +{ + if (pMP3 == NULL || pMP3->onRead == NULL) { + return 0; + } + +#if !defined(DR_MP3_FLOAT_OUTPUT) + /* Fast path. No conversion required. */ + return drmp3_read_pcm_frames_raw(pMP3, framesToRead, pBufferOut); +#else + /* Slow path. Convert from f32 to s16. */ + { + float pTempF32[4096]; + drmp3_uint64 totalPCMFramesRead = 0; + + while (totalPCMFramesRead < framesToRead) { + drmp3_uint64 framesJustRead; + drmp3_uint64 framesRemaining = framesToRead - totalPCMFramesRead; + drmp3_uint64 framesToReadNow = DRMP3_COUNTOF(pTempF32) / pMP3->channels; + if (framesToReadNow > framesRemaining) { + framesToReadNow = framesRemaining; + } + + framesJustRead = drmp3_read_pcm_frames_raw(pMP3, framesToReadNow, pTempF32); + if (framesJustRead == 0) { + break; + } + + drmp3_f32_to_s16((drmp3_int16*)DRMP3_OFFSET_PTR(pBufferOut, sizeof(drmp3_int16) * totalPCMFramesRead * pMP3->channels), pTempF32, framesJustRead * pMP3->channels); + totalPCMFramesRead += framesJustRead; + } + + return totalPCMFramesRead; + } +#endif +} + +static void drmp3_reset(drmp3* pMP3) +{ + DRMP3_ASSERT(pMP3 != NULL); + + pMP3->pcmFramesConsumedInMP3Frame = 0; + pMP3->pcmFramesRemainingInMP3Frame = 0; + pMP3->currentPCMFrame = 0; + pMP3->dataSize = 0; + pMP3->atEnd = DRMP3_FALSE; + drmp3dec_init(&pMP3->decoder); +} + +static drmp3_bool32 drmp3_seek_to_start_of_stream(drmp3* pMP3) +{ + DRMP3_ASSERT(pMP3 != NULL); + DRMP3_ASSERT(pMP3->onSeek != NULL); + + /* Seek to the start of the stream to begin with. */ + if (!drmp3__on_seek(pMP3, 0, drmp3_seek_origin_start)) { + return DRMP3_FALSE; + } + + /* Clear any cached data. */ + drmp3_reset(pMP3); + return DRMP3_TRUE; +} + + +static drmp3_bool32 drmp3_seek_forward_by_pcm_frames__brute_force(drmp3* pMP3, drmp3_uint64 frameOffset) +{ + drmp3_uint64 framesRead; + + /* + Just using a dumb read-and-discard for now. What would be nice is to parse only the header of the MP3 frame, and then skip over leading + frames without spending the time doing a full decode. I cannot see an easy way to do this in minimp3, however, so it may involve some + kind of manual processing. + */ +#if defined(DR_MP3_FLOAT_OUTPUT) + framesRead = drmp3_read_pcm_frames_f32(pMP3, frameOffset, NULL); +#else + framesRead = drmp3_read_pcm_frames_s16(pMP3, frameOffset, NULL); +#endif + if (framesRead != frameOffset) { + return DRMP3_FALSE; + } + + return DRMP3_TRUE; +} + +static drmp3_bool32 drmp3_seek_to_pcm_frame__brute_force(drmp3* pMP3, drmp3_uint64 frameIndex) +{ + DRMP3_ASSERT(pMP3 != NULL); + + if (frameIndex == pMP3->currentPCMFrame) { + return DRMP3_TRUE; + } + + /* + If we're moving foward we just read from where we're at. Otherwise we need to move back to the start of + the stream and read from the beginning. + */ + if (frameIndex < pMP3->currentPCMFrame) { + /* Moving backward. Move to the start of the stream and then move forward. */ + if (!drmp3_seek_to_start_of_stream(pMP3)) { + return DRMP3_FALSE; + } + } + + DRMP3_ASSERT(frameIndex >= pMP3->currentPCMFrame); + return drmp3_seek_forward_by_pcm_frames__brute_force(pMP3, (frameIndex - pMP3->currentPCMFrame)); +} + +static drmp3_bool32 drmp3_find_closest_seek_point(drmp3* pMP3, drmp3_uint64 frameIndex, drmp3_uint32* pSeekPointIndex) +{ + drmp3_uint32 iSeekPoint; + + DRMP3_ASSERT(pSeekPointIndex != NULL); + + *pSeekPointIndex = 0; + + if (frameIndex < pMP3->pSeekPoints[0].pcmFrameIndex) { + return DRMP3_FALSE; + } + + /* Linear search for simplicity to begin with while I'm getting this thing working. Once it's all working change this to a binary search. */ + for (iSeekPoint = 0; iSeekPoint < pMP3->seekPointCount; ++iSeekPoint) { + if (pMP3->pSeekPoints[iSeekPoint].pcmFrameIndex > frameIndex) { + break; /* Found it. */ + } + + *pSeekPointIndex = iSeekPoint; + } + + return DRMP3_TRUE; +} + +static drmp3_bool32 drmp3_seek_to_pcm_frame__seek_table(drmp3* pMP3, drmp3_uint64 frameIndex) +{ + drmp3_seek_point seekPoint; + drmp3_uint32 priorSeekPointIndex; + drmp3_uint16 iMP3Frame; + drmp3_uint64 leftoverFrames; + + DRMP3_ASSERT(pMP3 != NULL); + DRMP3_ASSERT(pMP3->pSeekPoints != NULL); + DRMP3_ASSERT(pMP3->seekPointCount > 0); + + /* If there is no prior seekpoint it means the target PCM frame comes before the first seek point. Just assume a seekpoint at the start of the file in this case. */ + if (drmp3_find_closest_seek_point(pMP3, frameIndex, &priorSeekPointIndex)) { + seekPoint = pMP3->pSeekPoints[priorSeekPointIndex]; + } else { + seekPoint.seekPosInBytes = 0; + seekPoint.pcmFrameIndex = 0; + seekPoint.mp3FramesToDiscard = 0; + seekPoint.pcmFramesToDiscard = 0; + } + + /* First thing to do is seek to the first byte of the relevant MP3 frame. */ + if (!drmp3__on_seek_64(pMP3, seekPoint.seekPosInBytes, drmp3_seek_origin_start)) { + return DRMP3_FALSE; /* Failed to seek. */ + } + + /* Clear any cached data. */ + drmp3_reset(pMP3); + + /* Whole MP3 frames need to be discarded first. */ + for (iMP3Frame = 0; iMP3Frame < seekPoint.mp3FramesToDiscard; ++iMP3Frame) { + drmp3_uint32 pcmFramesRead; + drmp3d_sample_t* pPCMFrames; + + /* Pass in non-null for the last frame because we want to ensure the sample rate converter is preloaded correctly. */ + pPCMFrames = NULL; + if (iMP3Frame == seekPoint.mp3FramesToDiscard-1) { + pPCMFrames = (drmp3d_sample_t*)pMP3->pcmFrames; + } + + /* We first need to decode the next frame. */ + pcmFramesRead = drmp3_decode_next_frame_ex(pMP3, pPCMFrames); + if (pcmFramesRead == 0) { + return DRMP3_FALSE; + } + } + + /* We seeked to an MP3 frame in the raw stream so we need to make sure the current PCM frame is set correctly. */ + pMP3->currentPCMFrame = seekPoint.pcmFrameIndex - seekPoint.pcmFramesToDiscard; + + /* + Now at this point we can follow the same process as the brute force technique where we just skip over unnecessary MP3 frames and then + read-and-discard at least 2 whole MP3 frames. + */ + leftoverFrames = frameIndex - pMP3->currentPCMFrame; + return drmp3_seek_forward_by_pcm_frames__brute_force(pMP3, leftoverFrames); +} + +DRMP3_API drmp3_bool32 drmp3_seek_to_pcm_frame(drmp3* pMP3, drmp3_uint64 frameIndex) +{ + if (pMP3 == NULL || pMP3->onSeek == NULL) { + return DRMP3_FALSE; + } + + if (frameIndex == 0) { + return drmp3_seek_to_start_of_stream(pMP3); + } + + /* Use the seek table if we have one. */ + if (pMP3->pSeekPoints != NULL && pMP3->seekPointCount > 0) { + return drmp3_seek_to_pcm_frame__seek_table(pMP3, frameIndex); + } else { + return drmp3_seek_to_pcm_frame__brute_force(pMP3, frameIndex); + } +} + +DRMP3_API drmp3_bool32 drmp3_get_mp3_and_pcm_frame_count(drmp3* pMP3, drmp3_uint64* pMP3FrameCount, drmp3_uint64* pPCMFrameCount) +{ + drmp3_uint64 currentPCMFrame; + drmp3_uint64 totalPCMFrameCount; + drmp3_uint64 totalMP3FrameCount; + + if (pMP3 == NULL) { + return DRMP3_FALSE; + } + + /* + The way this works is we move back to the start of the stream, iterate over each MP3 frame and calculate the frame count based + on our output sample rate, the seek back to the PCM frame we were sitting on before calling this function. + */ + + /* The stream must support seeking for this to work. */ + if (pMP3->onSeek == NULL) { + return DRMP3_FALSE; + } + + /* We'll need to seek back to where we were, so grab the PCM frame we're currently sitting on so we can restore later. */ + currentPCMFrame = pMP3->currentPCMFrame; + + if (!drmp3_seek_to_start_of_stream(pMP3)) { + return DRMP3_FALSE; + } + + totalPCMFrameCount = 0; + totalMP3FrameCount = 0; + + for (;;) { + drmp3_uint32 pcmFramesInCurrentMP3Frame; + + pcmFramesInCurrentMP3Frame = drmp3_decode_next_frame_ex(pMP3, NULL); + if (pcmFramesInCurrentMP3Frame == 0) { + break; + } + + totalPCMFrameCount += pcmFramesInCurrentMP3Frame; + totalMP3FrameCount += 1; + } + + /* Finally, we need to seek back to where we were. */ + if (!drmp3_seek_to_start_of_stream(pMP3)) { + return DRMP3_FALSE; + } + + if (!drmp3_seek_to_pcm_frame(pMP3, currentPCMFrame)) { + return DRMP3_FALSE; + } + + if (pMP3FrameCount != NULL) { + *pMP3FrameCount = totalMP3FrameCount; + } + if (pPCMFrameCount != NULL) { + *pPCMFrameCount = totalPCMFrameCount; + } + + return DRMP3_TRUE; +} + +DRMP3_API drmp3_uint64 drmp3_get_pcm_frame_count(drmp3* pMP3) +{ + drmp3_uint64 totalPCMFrameCount; + if (!drmp3_get_mp3_and_pcm_frame_count(pMP3, NULL, &totalPCMFrameCount)) { + return 0; + } + + return totalPCMFrameCount; +} + +DRMP3_API drmp3_uint64 drmp3_get_mp3_frame_count(drmp3* pMP3) +{ + drmp3_uint64 totalMP3FrameCount; + if (!drmp3_get_mp3_and_pcm_frame_count(pMP3, &totalMP3FrameCount, NULL)) { + return 0; + } + + return totalMP3FrameCount; +} + +static void drmp3__accumulate_running_pcm_frame_count(drmp3* pMP3, drmp3_uint32 pcmFrameCountIn, drmp3_uint64* pRunningPCMFrameCount, float* pRunningPCMFrameCountFractionalPart) +{ + float srcRatio; + float pcmFrameCountOutF; + drmp3_uint32 pcmFrameCountOut; + + srcRatio = (float)pMP3->mp3FrameSampleRate / (float)pMP3->sampleRate; + DRMP3_ASSERT(srcRatio > 0); + + pcmFrameCountOutF = *pRunningPCMFrameCountFractionalPart + (pcmFrameCountIn / srcRatio); + pcmFrameCountOut = (drmp3_uint32)pcmFrameCountOutF; + *pRunningPCMFrameCountFractionalPart = pcmFrameCountOutF - pcmFrameCountOut; + *pRunningPCMFrameCount += pcmFrameCountOut; +} + +typedef struct +{ + drmp3_uint64 bytePos; + drmp3_uint64 pcmFrameIndex; /* <-- After sample rate conversion. */ +} drmp3__seeking_mp3_frame_info; + +DRMP3_API drmp3_bool32 drmp3_calculate_seek_points(drmp3* pMP3, drmp3_uint32* pSeekPointCount, drmp3_seek_point* pSeekPoints) +{ + drmp3_uint32 seekPointCount; + drmp3_uint64 currentPCMFrame; + drmp3_uint64 totalMP3FrameCount; + drmp3_uint64 totalPCMFrameCount; + + if (pMP3 == NULL || pSeekPointCount == NULL || pSeekPoints == NULL) { + return DRMP3_FALSE; /* Invalid args. */ + } + + seekPointCount = *pSeekPointCount; + if (seekPointCount == 0) { + return DRMP3_FALSE; /* The client has requested no seek points. Consider this to be invalid arguments since the client has probably not intended this. */ + } + + /* We'll need to seek back to the current sample after calculating the seekpoints so we need to go ahead and grab the current location at the top. */ + currentPCMFrame = pMP3->currentPCMFrame; + + /* We never do more than the total number of MP3 frames and we limit it to 32-bits. */ + if (!drmp3_get_mp3_and_pcm_frame_count(pMP3, &totalMP3FrameCount, &totalPCMFrameCount)) { + return DRMP3_FALSE; + } + + /* If there's less than DRMP3_SEEK_LEADING_MP3_FRAMES+1 frames we just report 1 seek point which will be the very start of the stream. */ + if (totalMP3FrameCount < DRMP3_SEEK_LEADING_MP3_FRAMES+1) { + seekPointCount = 1; + pSeekPoints[0].seekPosInBytes = 0; + pSeekPoints[0].pcmFrameIndex = 0; + pSeekPoints[0].mp3FramesToDiscard = 0; + pSeekPoints[0].pcmFramesToDiscard = 0; + } else { + drmp3_uint64 pcmFramesBetweenSeekPoints; + drmp3__seeking_mp3_frame_info mp3FrameInfo[DRMP3_SEEK_LEADING_MP3_FRAMES+1]; + drmp3_uint64 runningPCMFrameCount = 0; + float runningPCMFrameCountFractionalPart = 0; + drmp3_uint64 nextTargetPCMFrame; + drmp3_uint32 iMP3Frame; + drmp3_uint32 iSeekPoint; + + if (seekPointCount > totalMP3FrameCount-1) { + seekPointCount = (drmp3_uint32)totalMP3FrameCount-1; + } + + pcmFramesBetweenSeekPoints = totalPCMFrameCount / (seekPointCount+1); + + /* + Here is where we actually calculate the seek points. We need to start by moving the start of the stream. We then enumerate over each + MP3 frame. + */ + if (!drmp3_seek_to_start_of_stream(pMP3)) { + return DRMP3_FALSE; + } + + /* + We need to cache the byte positions of the previous MP3 frames. As a new MP3 frame is iterated, we cycle the byte positions in this + array. The value in the first item in this array is the byte position that will be reported in the next seek point. + */ + + /* We need to initialize the array of MP3 byte positions for the leading MP3 frames. */ + for (iMP3Frame = 0; iMP3Frame < DRMP3_SEEK_LEADING_MP3_FRAMES+1; ++iMP3Frame) { + drmp3_uint32 pcmFramesInCurrentMP3FrameIn; + + /* The byte position of the next frame will be the stream's cursor position, minus whatever is sitting in the buffer. */ + DRMP3_ASSERT(pMP3->streamCursor >= pMP3->dataSize); + mp3FrameInfo[iMP3Frame].bytePos = pMP3->streamCursor - pMP3->dataSize; + mp3FrameInfo[iMP3Frame].pcmFrameIndex = runningPCMFrameCount; + + /* We need to get information about this frame so we can know how many samples it contained. */ + pcmFramesInCurrentMP3FrameIn = drmp3_decode_next_frame_ex(pMP3, NULL); + if (pcmFramesInCurrentMP3FrameIn == 0) { + return DRMP3_FALSE; /* This should never happen. */ + } + + drmp3__accumulate_running_pcm_frame_count(pMP3, pcmFramesInCurrentMP3FrameIn, &runningPCMFrameCount, &runningPCMFrameCountFractionalPart); + } + + /* + At this point we will have extracted the byte positions of the leading MP3 frames. We can now start iterating over each seek point and + calculate them. + */ + nextTargetPCMFrame = 0; + for (iSeekPoint = 0; iSeekPoint < seekPointCount; ++iSeekPoint) { + nextTargetPCMFrame += pcmFramesBetweenSeekPoints; + + for (;;) { + if (nextTargetPCMFrame < runningPCMFrameCount) { + /* The next seek point is in the current MP3 frame. */ + pSeekPoints[iSeekPoint].seekPosInBytes = mp3FrameInfo[0].bytePos; + pSeekPoints[iSeekPoint].pcmFrameIndex = nextTargetPCMFrame; + pSeekPoints[iSeekPoint].mp3FramesToDiscard = DRMP3_SEEK_LEADING_MP3_FRAMES; + pSeekPoints[iSeekPoint].pcmFramesToDiscard = (drmp3_uint16)(nextTargetPCMFrame - mp3FrameInfo[DRMP3_SEEK_LEADING_MP3_FRAMES-1].pcmFrameIndex); + break; + } else { + size_t i; + drmp3_uint32 pcmFramesInCurrentMP3FrameIn; + + /* + The next seek point is not in the current MP3 frame, so continue on to the next one. The first thing to do is cycle the cached + MP3 frame info. + */ + for (i = 0; i < DRMP3_COUNTOF(mp3FrameInfo)-1; ++i) { + mp3FrameInfo[i] = mp3FrameInfo[i+1]; + } + + /* Cache previous MP3 frame info. */ + mp3FrameInfo[DRMP3_COUNTOF(mp3FrameInfo)-1].bytePos = pMP3->streamCursor - pMP3->dataSize; + mp3FrameInfo[DRMP3_COUNTOF(mp3FrameInfo)-1].pcmFrameIndex = runningPCMFrameCount; + + /* + Go to the next MP3 frame. This shouldn't ever fail, but just in case it does we just set the seek point and break. If it happens, it + should only ever do it for the last seek point. + */ + pcmFramesInCurrentMP3FrameIn = drmp3_decode_next_frame_ex(pMP3, NULL); + if (pcmFramesInCurrentMP3FrameIn == 0) { + pSeekPoints[iSeekPoint].seekPosInBytes = mp3FrameInfo[0].bytePos; + pSeekPoints[iSeekPoint].pcmFrameIndex = nextTargetPCMFrame; + pSeekPoints[iSeekPoint].mp3FramesToDiscard = DRMP3_SEEK_LEADING_MP3_FRAMES; + pSeekPoints[iSeekPoint].pcmFramesToDiscard = (drmp3_uint16)(nextTargetPCMFrame - mp3FrameInfo[DRMP3_SEEK_LEADING_MP3_FRAMES-1].pcmFrameIndex); + break; + } + + drmp3__accumulate_running_pcm_frame_count(pMP3, pcmFramesInCurrentMP3FrameIn, &runningPCMFrameCount, &runningPCMFrameCountFractionalPart); + } + } + } + + /* Finally, we need to seek back to where we were. */ + if (!drmp3_seek_to_start_of_stream(pMP3)) { + return DRMP3_FALSE; + } + if (!drmp3_seek_to_pcm_frame(pMP3, currentPCMFrame)) { + return DRMP3_FALSE; + } + } + + *pSeekPointCount = seekPointCount; + return DRMP3_TRUE; +} + +DRMP3_API drmp3_bool32 drmp3_bind_seek_table(drmp3* pMP3, drmp3_uint32 seekPointCount, drmp3_seek_point* pSeekPoints) +{ + if (pMP3 == NULL) { + return DRMP3_FALSE; + } + + if (seekPointCount == 0 || pSeekPoints == NULL) { + /* Unbinding. */ + pMP3->seekPointCount = 0; + pMP3->pSeekPoints = NULL; + } else { + /* Binding. */ + pMP3->seekPointCount = seekPointCount; + pMP3->pSeekPoints = pSeekPoints; + } + + return DRMP3_TRUE; +} + + +static float* drmp3__full_read_and_close_f32(drmp3* pMP3, drmp3_config* pConfig, drmp3_uint64* pTotalFrameCount) +{ + drmp3_uint64 totalFramesRead = 0; + drmp3_uint64 framesCapacity = 0; + float* pFrames = NULL; + float temp[4096]; + + DRMP3_ASSERT(pMP3 != NULL); + + for (;;) { + drmp3_uint64 framesToReadRightNow = DRMP3_COUNTOF(temp) / pMP3->channels; + drmp3_uint64 framesJustRead = drmp3_read_pcm_frames_f32(pMP3, framesToReadRightNow, temp); + if (framesJustRead == 0) { + break; + } + + /* Reallocate the output buffer if there's not enough room. */ + if (framesCapacity < totalFramesRead + framesJustRead) { + drmp3_uint64 oldFramesBufferSize; + drmp3_uint64 newFramesBufferSize; + drmp3_uint64 newFramesCap; + float* pNewFrames; + + newFramesCap = framesCapacity * 2; + if (newFramesCap < totalFramesRead + framesJustRead) { + newFramesCap = totalFramesRead + framesJustRead; + } + + oldFramesBufferSize = framesCapacity * pMP3->channels * sizeof(float); + newFramesBufferSize = newFramesCap * pMP3->channels * sizeof(float); + if (newFramesBufferSize > (drmp3_uint64)DRMP3_SIZE_MAX) { + break; + } + + pNewFrames = (float*)drmp3__realloc_from_callbacks(pFrames, (size_t)newFramesBufferSize, (size_t)oldFramesBufferSize, &pMP3->allocationCallbacks); + if (pNewFrames == NULL) { + drmp3__free_from_callbacks(pFrames, &pMP3->allocationCallbacks); + break; + } + + pFrames = pNewFrames; + framesCapacity = newFramesCap; + } + + DRMP3_COPY_MEMORY(pFrames + totalFramesRead*pMP3->channels, temp, (size_t)(framesJustRead*pMP3->channels*sizeof(float))); + totalFramesRead += framesJustRead; + + /* If the number of frames we asked for is less that what we actually read it means we've reached the end. */ + if (framesJustRead != framesToReadRightNow) { + break; + } + } + + if (pConfig != NULL) { + pConfig->channels = pMP3->channels; + pConfig->sampleRate = pMP3->sampleRate; + } + + drmp3_uninit(pMP3); + + if (pTotalFrameCount) { + *pTotalFrameCount = totalFramesRead; + } + + return pFrames; +} + +static drmp3_int16* drmp3__full_read_and_close_s16(drmp3* pMP3, drmp3_config* pConfig, drmp3_uint64* pTotalFrameCount) +{ + drmp3_uint64 totalFramesRead = 0; + drmp3_uint64 framesCapacity = 0; + drmp3_int16* pFrames = NULL; + drmp3_int16 temp[4096]; + + DRMP3_ASSERT(pMP3 != NULL); + + for (;;) { + drmp3_uint64 framesToReadRightNow = DRMP3_COUNTOF(temp) / pMP3->channels; + drmp3_uint64 framesJustRead = drmp3_read_pcm_frames_s16(pMP3, framesToReadRightNow, temp); + if (framesJustRead == 0) { + break; + } + + /* Reallocate the output buffer if there's not enough room. */ + if (framesCapacity < totalFramesRead + framesJustRead) { + drmp3_uint64 newFramesBufferSize; + drmp3_uint64 oldFramesBufferSize; + drmp3_uint64 newFramesCap; + drmp3_int16* pNewFrames; + + newFramesCap = framesCapacity * 2; + if (newFramesCap < totalFramesRead + framesJustRead) { + newFramesCap = totalFramesRead + framesJustRead; + } + + oldFramesBufferSize = framesCapacity * pMP3->channels * sizeof(drmp3_int16); + newFramesBufferSize = newFramesCap * pMP3->channels * sizeof(drmp3_int16); + if (newFramesBufferSize > (drmp3_uint64)DRMP3_SIZE_MAX) { + break; + } + + pNewFrames = (drmp3_int16*)drmp3__realloc_from_callbacks(pFrames, (size_t)newFramesBufferSize, (size_t)oldFramesBufferSize, &pMP3->allocationCallbacks); + if (pNewFrames == NULL) { + drmp3__free_from_callbacks(pFrames, &pMP3->allocationCallbacks); + break; + } + + pFrames = pNewFrames; + framesCapacity = newFramesCap; + } + + DRMP3_COPY_MEMORY(pFrames + totalFramesRead*pMP3->channels, temp, (size_t)(framesJustRead*pMP3->channels*sizeof(drmp3_int16))); + totalFramesRead += framesJustRead; + + /* If the number of frames we asked for is less that what we actually read it means we've reached the end. */ + if (framesJustRead != framesToReadRightNow) { + break; + } + } + + if (pConfig != NULL) { + pConfig->channels = pMP3->channels; + pConfig->sampleRate = pMP3->sampleRate; + } + + drmp3_uninit(pMP3); + + if (pTotalFrameCount) { + *pTotalFrameCount = totalFramesRead; + } + + return pFrames; +} + + +DRMP3_API float* drmp3_open_and_read_pcm_frames_f32(drmp3_read_proc onRead, drmp3_seek_proc onSeek, void* pUserData, drmp3_config* pConfig, drmp3_uint64* pTotalFrameCount, const drmp3_allocation_callbacks* pAllocationCallbacks) +{ + drmp3 mp3; + if (!drmp3_init(&mp3, onRead, onSeek, pUserData, pAllocationCallbacks)) { + return NULL; + } + + return drmp3__full_read_and_close_f32(&mp3, pConfig, pTotalFrameCount); +} + +DRMP3_API drmp3_int16* drmp3_open_and_read_pcm_frames_s16(drmp3_read_proc onRead, drmp3_seek_proc onSeek, void* pUserData, drmp3_config* pConfig, drmp3_uint64* pTotalFrameCount, const drmp3_allocation_callbacks* pAllocationCallbacks) +{ + drmp3 mp3; + if (!drmp3_init(&mp3, onRead, onSeek, pUserData, pAllocationCallbacks)) { + return NULL; + } + + return drmp3__full_read_and_close_s16(&mp3, pConfig, pTotalFrameCount); +} + + +DRMP3_API float* drmp3_open_memory_and_read_pcm_frames_f32(const void* pData, size_t dataSize, drmp3_config* pConfig, drmp3_uint64* pTotalFrameCount, const drmp3_allocation_callbacks* pAllocationCallbacks) +{ + drmp3 mp3; + if (!drmp3_init_memory(&mp3, pData, dataSize, pAllocationCallbacks)) { + return NULL; + } + + return drmp3__full_read_and_close_f32(&mp3, pConfig, pTotalFrameCount); +} + +DRMP3_API drmp3_int16* drmp3_open_memory_and_read_pcm_frames_s16(const void* pData, size_t dataSize, drmp3_config* pConfig, drmp3_uint64* pTotalFrameCount, const drmp3_allocation_callbacks* pAllocationCallbacks) +{ + drmp3 mp3; + if (!drmp3_init_memory(&mp3, pData, dataSize, pAllocationCallbacks)) { + return NULL; + } + + return drmp3__full_read_and_close_s16(&mp3, pConfig, pTotalFrameCount); +} + + +#ifndef DR_MP3_NO_STDIO +DRMP3_API float* drmp3_open_file_and_read_pcm_frames_f32(const char* filePath, drmp3_config* pConfig, drmp3_uint64* pTotalFrameCount, const drmp3_allocation_callbacks* pAllocationCallbacks) +{ + drmp3 mp3; + if (!drmp3_init_file(&mp3, filePath, pAllocationCallbacks)) { + return NULL; + } + + return drmp3__full_read_and_close_f32(&mp3, pConfig, pTotalFrameCount); +} + +DRMP3_API drmp3_int16* drmp3_open_file_and_read_pcm_frames_s16(const char* filePath, drmp3_config* pConfig, drmp3_uint64* pTotalFrameCount, const drmp3_allocation_callbacks* pAllocationCallbacks) +{ + drmp3 mp3; + if (!drmp3_init_file(&mp3, filePath, pAllocationCallbacks)) { + return NULL; + } + + return drmp3__full_read_and_close_s16(&mp3, pConfig, pTotalFrameCount); +} +#endif + +DRMP3_API void* drmp3_malloc(size_t sz, const drmp3_allocation_callbacks* pAllocationCallbacks) +{ + if (pAllocationCallbacks != NULL) { + return drmp3__malloc_from_callbacks(sz, pAllocationCallbacks); + } else { + return drmp3__malloc_default(sz, NULL); + } +} + +DRMP3_API void drmp3_free(void* p, const drmp3_allocation_callbacks* pAllocationCallbacks) +{ + if (pAllocationCallbacks != NULL) { + drmp3__free_from_callbacks(p, pAllocationCallbacks); + } else { + drmp3__free_default(p, NULL); + } +} + +#endif /* dr_mp3_c */ +#endif /*DR_MP3_IMPLEMENTATION*/ + +/* +DIFFERENCES BETWEEN minimp3 AND dr_mp3 +====================================== +- First, keep in mind that minimp3 (https://github.com/lieff/minimp3) is where all the real work was done. All of the + code relating to the actual decoding remains mostly unmodified, apart from some namespacing changes. +- dr_mp3 adds a pulling style API which allows you to deliver raw data via callbacks. So, rather than pushing data + to the decoder, the decoder _pulls_ data from your callbacks. +- In addition to callbacks, a decoder can be initialized from a block of memory and a file. +- The dr_mp3 pull API reads PCM frames rather than whole MP3 frames. +- dr_mp3 adds convenience APIs for opening and decoding entire files in one go. +- dr_mp3 is fully namespaced, including the implementation section, which is more suitable when compiling projects + as a single translation unit (aka unity builds). At the time of writing this, a unity build is not possible when + using minimp3 in conjunction with stb_vorbis. dr_mp3 addresses this. +*/ + +/* +RELEASE NOTES - v0.5.0 +======================= +Version 0.5.0 has breaking API changes. + +Improved Client-Defined Memory Allocation +----------------------------------------- +The main change with this release is the addition of a more flexible way of implementing custom memory allocation routines. The +existing system of DRMP3_MALLOC, DRMP3_REALLOC and DRMP3_FREE are still in place and will be used by default when no custom +allocation callbacks are specified. + +To use the new system, you pass in a pointer to a drmp3_allocation_callbacks object to drmp3_init() and family, like this: + + void* my_malloc(size_t sz, void* pUserData) + { + return malloc(sz); + } + void* my_realloc(void* p, size_t sz, void* pUserData) + { + return realloc(p, sz); + } + void my_free(void* p, void* pUserData) + { + free(p); + } + + ... + + drmp3_allocation_callbacks allocationCallbacks; + allocationCallbacks.pUserData = &myData; + allocationCallbacks.onMalloc = my_malloc; + allocationCallbacks.onRealloc = my_realloc; + allocationCallbacks.onFree = my_free; + drmp3_init_file(&mp3, "my_file.mp3", NULL, &allocationCallbacks); + +The advantage of this new system is that it allows you to specify user data which will be passed in to the allocation routines. + +Passing in null for the allocation callbacks object will cause dr_mp3 to use defaults which is the same as DRMP3_MALLOC, +DRMP3_REALLOC and DRMP3_FREE and the equivalent of how it worked in previous versions. + +Every API that opens a drmp3 object now takes this extra parameter. These include the following: + + drmp3_init() + drmp3_init_file() + drmp3_init_memory() + drmp3_open_and_read_pcm_frames_f32() + drmp3_open_and_read_pcm_frames_s16() + drmp3_open_memory_and_read_pcm_frames_f32() + drmp3_open_memory_and_read_pcm_frames_s16() + drmp3_open_file_and_read_pcm_frames_f32() + drmp3_open_file_and_read_pcm_frames_s16() + +Renamed APIs +------------ +The following APIs have been renamed for consistency with other dr_* libraries and to make it clear that they return PCM frame +counts rather than sample counts. + + drmp3_open_and_read_f32() -> drmp3_open_and_read_pcm_frames_f32() + drmp3_open_and_read_s16() -> drmp3_open_and_read_pcm_frames_s16() + drmp3_open_memory_and_read_f32() -> drmp3_open_memory_and_read_pcm_frames_f32() + drmp3_open_memory_and_read_s16() -> drmp3_open_memory_and_read_pcm_frames_s16() + drmp3_open_file_and_read_f32() -> drmp3_open_file_and_read_pcm_frames_f32() + drmp3_open_file_and_read_s16() -> drmp3_open_file_and_read_pcm_frames_s16() +*/ + +/* +REVISION HISTORY +================ +v0.6.38 - 2023-11-02 + - Fix build for ARMv6-M. + +v0.6.37 - 2023-07-07 + - Silence a static analysis warning. + +v0.6.36 - 2023-06-17 + - Fix an incorrect date in revision history. No functional change. + +v0.6.35 - 2023-05-22 + - Minor code restructure. No functional change. + +v0.6.34 - 2022-09-17 + - Fix compilation with DJGPP. + - Fix compilation when compiling with x86 with no SSE2. + - Remove an unnecessary variable from the drmp3 structure. + +v0.6.33 - 2022-04-10 + - Fix compilation error with the MSVC ARM64 build. + - Fix compilation error on older versions of GCC. + - Remove some unused functions. + +v0.6.32 - 2021-12-11 + - Fix a warning with Clang. + +v0.6.31 - 2021-08-22 + - Fix a bug when loading from memory. + +v0.6.30 - 2021-08-16 + - Silence some warnings. + - Replace memory operations with DRMP3_* macros. + +v0.6.29 - 2021-08-08 + - Bring up to date with minimp3. + +v0.6.28 - 2021-07-31 + - Fix platform detection for ARM64. + - Fix a compilation error with C89. + +v0.6.27 - 2021-02-21 + - Fix a warning due to referencing _MSC_VER when it is undefined. + +v0.6.26 - 2021-01-31 + - Bring up to date with minimp3. + +v0.6.25 - 2020-12-26 + - Remove DRMP3_DEFAULT_CHANNELS and DRMP3_DEFAULT_SAMPLE_RATE which are leftovers from some removed APIs. + +v0.6.24 - 2020-12-07 + - Fix a typo in version date for 0.6.23. + +v0.6.23 - 2020-12-03 + - Fix an error where a file can be closed twice when initialization of the decoder fails. + +v0.6.22 - 2020-12-02 + - Fix an error where it's possible for a file handle to be left open when initialization of the decoder fails. + +v0.6.21 - 2020-11-28 + - Bring up to date with minimp3. + +v0.6.20 - 2020-11-21 + - Fix compilation with OpenWatcom. + +v0.6.19 - 2020-11-13 + - Minor code clean up. + +v0.6.18 - 2020-11-01 + - Improve compiler support for older versions of GCC. + +v0.6.17 - 2020-09-28 + - Bring up to date with minimp3. + +v0.6.16 - 2020-08-02 + - Simplify sized types. + +v0.6.15 - 2020-07-25 + - Fix a compilation warning. + +v0.6.14 - 2020-07-23 + - Fix undefined behaviour with memmove(). + +v0.6.13 - 2020-07-06 + - Fix a bug when converting from s16 to f32 in drmp3_read_pcm_frames_f32(). + +v0.6.12 - 2020-06-23 + - Add include guard for the implementation section. + +v0.6.11 - 2020-05-26 + - Fix use of uninitialized variable error. + +v0.6.10 - 2020-05-16 + - Add compile-time and run-time version querying. + - DRMP3_VERSION_MINOR + - DRMP3_VERSION_MAJOR + - DRMP3_VERSION_REVISION + - DRMP3_VERSION_STRING + - drmp3_version() + - drmp3_version_string() + +v0.6.9 - 2020-04-30 + - Change the `pcm` parameter of drmp3dec_decode_frame() to a `const drmp3_uint8*` for consistency with internal APIs. + +v0.6.8 - 2020-04-26 + - Optimizations to decoding when initializing from memory. + +v0.6.7 - 2020-04-25 + - Fix a compilation error with DR_MP3_NO_STDIO + - Optimization to decoding by reducing some data movement. + +v0.6.6 - 2020-04-23 + - Fix a minor bug with the running PCM frame counter. + +v0.6.5 - 2020-04-19 + - Fix compilation error on ARM builds. + +v0.6.4 - 2020-04-19 + - Bring up to date with changes to minimp3. + +v0.6.3 - 2020-04-13 + - Fix some pedantic warnings. + +v0.6.2 - 2020-04-10 + - Fix a crash in drmp3_open_*_and_read_pcm_frames_*() if the output config object is NULL. + +v0.6.1 - 2020-04-05 + - Fix warnings. + +v0.6.0 - 2020-04-04 + - API CHANGE: Remove the pConfig parameter from the following APIs: + - drmp3_init() + - drmp3_init_memory() + - drmp3_init_file() + - Add drmp3_init_file_w() for opening a file from a wchar_t encoded path. + +v0.5.6 - 2020-02-12 + - Bring up to date with minimp3. + +v0.5.5 - 2020-01-29 + - Fix a memory allocation bug in high level s16 decoding APIs. + +v0.5.4 - 2019-12-02 + - Fix a possible null pointer dereference when using custom memory allocators for realloc(). + +v0.5.3 - 2019-11-14 + - Fix typos in documentation. + +v0.5.2 - 2019-11-02 + - Bring up to date with minimp3. + +v0.5.1 - 2019-10-08 + - Fix a warning with GCC. + +v0.5.0 - 2019-10-07 + - API CHANGE: Add support for user defined memory allocation routines. This system allows the program to specify their own memory allocation + routines with a user data pointer for client-specific contextual data. This adds an extra parameter to the end of the following APIs: + - drmp3_init() + - drmp3_init_file() + - drmp3_init_memory() + - drmp3_open_and_read_pcm_frames_f32() + - drmp3_open_and_read_pcm_frames_s16() + - drmp3_open_memory_and_read_pcm_frames_f32() + - drmp3_open_memory_and_read_pcm_frames_s16() + - drmp3_open_file_and_read_pcm_frames_f32() + - drmp3_open_file_and_read_pcm_frames_s16() + - API CHANGE: Renamed the following APIs: + - drmp3_open_and_read_f32() -> drmp3_open_and_read_pcm_frames_f32() + - drmp3_open_and_read_s16() -> drmp3_open_and_read_pcm_frames_s16() + - drmp3_open_memory_and_read_f32() -> drmp3_open_memory_and_read_pcm_frames_f32() + - drmp3_open_memory_and_read_s16() -> drmp3_open_memory_and_read_pcm_frames_s16() + - drmp3_open_file_and_read_f32() -> drmp3_open_file_and_read_pcm_frames_f32() + - drmp3_open_file_and_read_s16() -> drmp3_open_file_and_read_pcm_frames_s16() + +v0.4.7 - 2019-07-28 + - Fix a compiler error. + +v0.4.6 - 2019-06-14 + - Fix a compiler error. + +v0.4.5 - 2019-06-06 + - Bring up to date with minimp3. + +v0.4.4 - 2019-05-06 + - Fixes to the VC6 build. + +v0.4.3 - 2019-05-05 + - Use the channel count and/or sample rate of the first MP3 frame instead of DRMP3_DEFAULT_CHANNELS and + DRMP3_DEFAULT_SAMPLE_RATE when they are set to 0. To use the old behaviour, just set the relevant property to + DRMP3_DEFAULT_CHANNELS or DRMP3_DEFAULT_SAMPLE_RATE. + - Add s16 reading APIs + - drmp3_read_pcm_frames_s16 + - drmp3_open_memory_and_read_pcm_frames_s16 + - drmp3_open_and_read_pcm_frames_s16 + - drmp3_open_file_and_read_pcm_frames_s16 + - Add drmp3_get_mp3_and_pcm_frame_count() to the public header section. + - Add support for C89. + - Change license to choice of public domain or MIT-0. + +v0.4.2 - 2019-02-21 + - Fix a warning. + +v0.4.1 - 2018-12-30 + - Fix a warning. + +v0.4.0 - 2018-12-16 + - API CHANGE: Rename some APIs: + - drmp3_read_f32 -> to drmp3_read_pcm_frames_f32 + - drmp3_seek_to_frame -> drmp3_seek_to_pcm_frame + - drmp3_open_and_decode_f32 -> drmp3_open_and_read_pcm_frames_f32 + - drmp3_open_and_decode_memory_f32 -> drmp3_open_memory_and_read_pcm_frames_f32 + - drmp3_open_and_decode_file_f32 -> drmp3_open_file_and_read_pcm_frames_f32 + - Add drmp3_get_pcm_frame_count(). + - Add drmp3_get_mp3_frame_count(). + - Improve seeking performance. + +v0.3.2 - 2018-09-11 + - Fix a couple of memory leaks. + - Bring up to date with minimp3. + +v0.3.1 - 2018-08-25 + - Fix C++ build. + +v0.3.0 - 2018-08-25 + - Bring up to date with minimp3. This has a minor API change: the "pcm" parameter of drmp3dec_decode_frame() has + been changed from short* to void* because it can now output both s16 and f32 samples, depending on whether or + not the DR_MP3_FLOAT_OUTPUT option is set. + +v0.2.11 - 2018-08-08 + - Fix a bug where the last part of a file is not read. + +v0.2.10 - 2018-08-07 + - Improve 64-bit detection. + +v0.2.9 - 2018-08-05 + - Fix C++ build on older versions of GCC. + - Bring up to date with minimp3. + +v0.2.8 - 2018-08-02 + - Fix compilation errors with older versions of GCC. + +v0.2.7 - 2018-07-13 + - Bring up to date with minimp3. + +v0.2.6 - 2018-07-12 + - Bring up to date with minimp3. + +v0.2.5 - 2018-06-22 + - Bring up to date with minimp3. + +v0.2.4 - 2018-05-12 + - Bring up to date with minimp3. + +v0.2.3 - 2018-04-29 + - Fix TCC build. + +v0.2.2 - 2018-04-28 + - Fix bug when opening a decoder from memory. + +v0.2.1 - 2018-04-27 + - Efficiency improvements when the decoder reaches the end of the stream. + +v0.2 - 2018-04-21 + - Bring up to date with minimp3. + - Start using major.minor.revision versioning. + +v0.1d - 2018-03-30 + - Bring up to date with minimp3. + +v0.1c - 2018-03-11 + - Fix C++ build error. + +v0.1b - 2018-03-07 + - Bring up to date with minimp3. + +v0.1a - 2018-02-28 + - Fix compilation error on GCC/Clang. + - Fix some warnings. + +v0.1 - 2018-02-xx + - Initial versioned release. +*/ + +/* +This software is available as a choice of the following licenses. Choose +whichever you prefer. + +=============================================================================== +ALTERNATIVE 1 - Public Domain (www.unlicense.org) +=============================================================================== +This is free and unencumbered software released into the public domain. + +Anyone is free to copy, modify, publish, use, compile, sell, or distribute this +software, either in source code form or as a compiled binary, for any purpose, +commercial or non-commercial, and by any means. + +In jurisdictions that recognize copyright laws, the author or authors of this +software dedicate any and all copyright interest in the software to the public +domain. We make this dedication for the benefit of the public at large and to +the detriment of our heirs and successors. We intend this dedication to be an +overt act of relinquishment in perpetuity of all present and future rights to +this software under copyright law. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN +ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +For more information, please refer to + +=============================================================================== +ALTERNATIVE 2 - MIT No Attribution +=============================================================================== +Copyright 2023 David Reid + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +*/ + +/* + https://github.com/lieff/minimp3 + To the extent possible under law, the author(s) have dedicated all copyright and related and neighboring rights to this software to the public domain worldwide. + This software is distributed without any warranty. + See . +*/ diff --git a/modules/stb_image/android/arm64/stb_image.a b/modules/stb_image/android/arm64/stb_image.a new file mode 100644 index 0000000000000000000000000000000000000000..45b38a5f62c897fbf7b652988d6bc3893f8ea6f2 GIT binary patch literal 160804 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�zkl*)7sf5%_$aL| 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%0D`CLP9})c+vtNyZ+<81otU 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 literal 0 HcmV?d00001 diff --git a/modules/stb_image/android/x64/stb_image.a b/modules/stb_image/android/x64/stb_image.a new file mode 100644 index 0000000000000000000000000000000000000000..17c8b88c06d8775404cbb2f19fa662ae7e43790a GIT binary patch literal 175444 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�+y^D@DZx*Bu+r?Mkt6j>n=O!8kX^47qcQ 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 literal 0 HcmV?d00001 diff --git a/modules/stb_image/android/x64/stb_image.so b/modules/stb_image/android/x64/stb_image.so new file mode 100644 index 0000000000000000000000000000000000000000..8a9422747854b4b59f9e71cc184e24ceeb9c1c9f GIT binary patch literal 143520 zcmdqK4SZC^^*4U+?glmxau)!Upc@Mk548K_TRYL_-pjjbM2T z?nZN67O2t|TeP&&*0%bCR*KY8-SCnGU&D)t?-5aUUD1FD2_pOdp1Jq#-VGbk{%Zfv z^DLj6xpQXb%$YN1&YU?jb6J|}oMhm6PWu_T@mw^`e;wTBt8aw65Y5 zf>v2$!!0VETG+i@zER1LKPon~sLYzFhFUqwMfLgB`uu8rT3D^-*FudiQ$BGO6JO3n zXSIM#_-WPVtK}+2DDduKrpjzB)Odd@$`PGE^hf3CsaE;cJzS$A)Iv2INA2|BA-cuN z;+m@RV(t>W*IaY$90dRNFC#rWJv-x?(f>Ar9tskj1LCBSIL3ot)C0V%2e`incykZ% zS9^dT?g9Qq5Ad&hfd3W^j@PcIdw{n9t`1FLjQ-Nl;qmYcgV4l-Z|MR4Vh`{gJ-}b- z0p8XF{H-3~AM^nKv#cOZB9^lp<;G=thJ9>cM(gS=>5Ab>Dx&d4g*QV;z z-fCBdRd`3C0yq!-O}~p+|0Z$P#Y()73QuKxNaCu0p}?&w{8EI3pPQ?|)qtC>!t-f> z;HSZlsrb`ZD)1Fbz)d$Qc-E~_05_`eH7cC@nF7%0AFSfvSfb`v>3Kzk=hP|i4^=#$ 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 literal 0 HcmV?d00001 diff --git a/modules/stb_image/bindings.jai b/modules/stb_image/bindings.jai new file mode 100644 index 0000000..fb4fe14 --- /dev/null +++ b/modules/stb_image/bindings.jai @@ -0,0 +1,145 @@ +// +// This file was auto-generated using the following command: +// +// jai generate.jai +// + + + +STBI_VERSION :: 1; + +STBI :: enum u32 { + default :: 0; + + grey :: 1; + grey_alpha :: 2; + rgb :: 3; + rgb_alpha :: 4; + + STBI_default :: default; + + STBI_grey :: grey; + STBI_grey_alpha :: grey_alpha; + STBI_rgb :: rgb; + STBI_rgb_alpha :: rgb_alpha; +} + +// +// load image by filename, open file, or memory buffer +// +stbi_io_callbacks :: struct { + read: #type (user: *void, data: *u8, size: s32) -> s32 #c_call; // fill 'data' with 'size' bytes. return number of bytes actually read + skip: #type (user: *void, n: s32) -> void #c_call; // skip the next 'n' bytes, or 'unget' the last -n bytes if negative + eof: #type (user: *void) -> s32 #c_call; // returns nonzero if we are at end of file/data +} + +//////////////////////////////////// +// +// 8-bits-per-channel interface +// +stbi_load_from_memory :: (buffer: *u8, len: s32, x: *s32, y: *s32, channels_in_file: *s32, desired_channels: s32) -> *u8 #foreign stb_image; +stbi_load_from_callbacks :: (clbk: *stbi_io_callbacks, user: *void, x: *s32, y: *s32, channels_in_file: *s32, desired_channels: s32) -> *u8 #foreign stb_image; + +stbi_load :: (filename: *u8, x: *s32, y: *s32, channels_in_file: *s32, desired_channels: s32) -> *u8 #foreign stb_image; +stbi_load_from_file :: (f: *FILE, x: *s32, y: *s32, channels_in_file: *s32, desired_channels: s32) -> *u8 #foreign stb_image; + +stbi_load_gif_from_memory :: (buffer: *u8, len: s32, delays: **s32, x: *s32, y: *s32, z: *s32, comp: *s32, req_comp: s32) -> *u8 #foreign stb_image; + +//////////////////////////////////// +// +// 16-bits-per-channel interface +// +stbi_load_16_from_memory :: (buffer: *u8, len: s32, x: *s32, y: *s32, channels_in_file: *s32, desired_channels: s32) -> *u16 #foreign stb_image; +stbi_load_16_from_callbacks :: (clbk: *stbi_io_callbacks, user: *void, x: *s32, y: *s32, channels_in_file: *s32, desired_channels: s32) -> *u16 #foreign stb_image; + +stbi_load_16 :: (filename: *u8, x: *s32, y: *s32, channels_in_file: *s32, desired_channels: s32) -> *u16 #foreign stb_image; +stbi_load_from_file_16 :: (f: *FILE, x: *s32, y: *s32, channels_in_file: *s32, desired_channels: s32) -> *u16 #foreign stb_image; + +stbi_loadf_from_memory :: (buffer: *u8, len: s32, x: *s32, y: *s32, channels_in_file: *s32, desired_channels: s32) -> *float #foreign stb_image; +stbi_loadf_from_callbacks :: (clbk: *stbi_io_callbacks, user: *void, x: *s32, y: *s32, channels_in_file: *s32, desired_channels: s32) -> *float #foreign stb_image; + +stbi_loadf :: (filename: *u8, x: *s32, y: *s32, channels_in_file: *s32, desired_channels: s32) -> *float #foreign stb_image; +stbi_loadf_from_file :: (f: *FILE, x: *s32, y: *s32, channels_in_file: *s32, desired_channels: s32) -> *float #foreign stb_image; + +stbi_hdr_to_ldr_gamma :: (gamma: float) -> void #foreign stb_image; +stbi_hdr_to_ldr_scale :: (scale: float) -> void #foreign stb_image; + +stbi_ldr_to_hdr_gamma :: (gamma: float) -> void #foreign stb_image; +stbi_ldr_to_hdr_scale :: (scale: float) -> void #foreign stb_image; + +// stbi_is_hdr is always defined, but always returns false if STBI_NO_HDR +stbi_is_hdr_from_callbacks :: (clbk: *stbi_io_callbacks, user: *void) -> s32 #foreign stb_image; +stbi_is_hdr_from_memory :: (buffer: *u8, len: s32) -> s32 #foreign stb_image; + +stbi_is_hdr :: (filename: *u8) -> s32 #foreign stb_image; +stbi_is_hdr_from_file :: (f: *FILE) -> s32 #foreign stb_image; + +// get a VERY brief reason for failure +// on most compilers (and ALL modern mainstream compilers) this is threadsafe +stbi_failure_reason :: () -> *u8 #foreign stb_image; + +// free the loaded image -- this is just free() +stbi_image_free :: (retval_from_stbi_load: *void) -> void #foreign stb_image; + +// get image dimensions & components without fully decoding +stbi_info_from_memory :: (buffer: *u8, len: s32, x: *s32, y: *s32, comp: *s32) -> s32 #foreign stb_image; +stbi_info_from_callbacks :: (clbk: *stbi_io_callbacks, user: *void, x: *s32, y: *s32, comp: *s32) -> s32 #foreign stb_image; +stbi_is_16_bit_from_memory :: (buffer: *u8, len: s32) -> s32 #foreign stb_image; +stbi_is_16_bit_from_callbacks :: (clbk: *stbi_io_callbacks, user: *void) -> s32 #foreign stb_image; + +stbi_info :: (filename: *u8, x: *s32, y: *s32, comp: *s32) -> s32 #foreign stb_image; +stbi_info_from_file :: (f: *FILE, x: *s32, y: *s32, comp: *s32) -> s32 #foreign stb_image; +stbi_is_16_bit :: (filename: *u8) -> s32 #foreign stb_image; +stbi_is_16_bit_from_file :: (f: *FILE) -> s32 #foreign stb_image; + +// for image formats that explicitly notate that they have premultiplied alpha, +// we just return the colors as stored in the file. set this flag to force +// unpremultiplication. results are undefined if the unpremultiply overflow. +stbi_set_unpremultiply_on_load :: (flag_true_if_should_unpremultiply: s32) -> void #foreign stb_image; + +// indicate whether we should process iphone images back to canonical format, +// or just pass them through "as-is" +stbi_convert_iphone_png_to_rgb :: (flag_true_if_should_convert: s32) -> void #foreign stb_image; + +// flip the image vertically, so the first pixel in the output array is the bottom left +stbi_set_flip_vertically_on_load :: (flag_true_if_should_flip: s32) -> void #foreign stb_image; + +// as above, but only applies to images loaded on the thread that calls the function +// this function is only available if your compiler supports thread-local variables; +// calling it will fail to link if your compiler doesn't +stbi_set_unpremultiply_on_load_thread :: (flag_true_if_should_unpremultiply: s32) -> void #foreign stb_image; +stbi_convert_iphone_png_to_rgb_thread :: (flag_true_if_should_convert: s32) -> void #foreign stb_image; +stbi_set_flip_vertically_on_load_thread :: (flag_true_if_should_flip: s32) -> void #foreign stb_image; + +// ZLIB client - used by PNG, available for other purposes +stbi_zlib_decode_malloc_guesssize :: (buffer: *u8, len: s32, initial_size: s32, outlen: *s32) -> *u8 #foreign stb_image; +stbi_zlib_decode_malloc_guesssize_headerflag :: (buffer: *u8, len: s32, initial_size: s32, outlen: *s32, parse_header: s32) -> *u8 #foreign stb_image; +stbi_zlib_decode_malloc :: (buffer: *u8, len: s32, outlen: *s32) -> *u8 #foreign stb_image; +stbi_zlib_decode_buffer :: (obuffer: *u8, olen: s32, ibuffer: *u8, ilen: s32) -> s32 #foreign stb_image; + +stbi_zlib_decode_noheader_malloc :: (buffer: *u8, len: s32, outlen: *s32) -> *u8 #foreign stb_image; +stbi_zlib_decode_noheader_buffer :: (obuffer: *u8, olen: s32, ibuffer: *u8, ilen: s32) -> s32 #foreign stb_image; + +#scope_file + + +#if OS == .WINDOWS { + stb_image :: #library "windows/stb_image"; +} else #if OS == .LINUX { + stb_image :: #library "linux/stb_image"; +} else #if OS == .MACOS { + stb_image :: #library "macos/stb_image"; +} else #if OS == .ANDROID { + #if CPU == .X64 { + stb_image :: #library "android/x64/stb_image"; + } else #if CPU == .ARM64 { + stb_image :: #library "android/arm64/stb_image"; + } +} else #if OS == .PS5 { + stb_image :: #library "ps5/stb_image"; +} else #if OS == .WASM { + stb_image :: #library "wasm/stb_image"; +} else { + #assert false; +} + diff --git a/modules/stb_image/generate.jai b/modules/stb_image/generate.jai new file mode 100644 index 0000000..8f9e3bf --- /dev/null +++ b/modules/stb_image/generate.jai @@ -0,0 +1,151 @@ +AT_COMPILE_TIME :: true; + +SOURCE_PATH :: "source"; +LIB_BASE_NAME :: "stb_image"; + +#if AT_COMPILE_TIME { + #run,stallable { + set_build_options_dc(.{do_output=false}); + options := get_build_options(); + args := options.compile_time_command_line; + if !generate_bindings(args, options.minimum_os_version) { + compiler_set_workspace_status(.FAILED); + } + } +} else { + #import "System"; + + main :: () { + set_working_directory(path_strip_filename(get_path_of_running_executable())); + if !generate_bindings(get_command_line_arguments(), #run get_build_options().minimum_os_version) { + exit(1); + } + } +} + +generate_bindings :: (args: [] string, minimum_os_version: type_of(Build_Options.minimum_os_version)) -> bool { + target_android := array_find(args, "-android"); + target_x64 := array_find(args, "-x64"); + target_arm := array_find(args, "-arm64"); + compile := array_find(args, "-compile"); + compile_debug := array_find(args, "-debug"); + + os_target := OS; + cpu_target := CPU; + if target_android os_target = .ANDROID; + if target_x64 cpu_target = .X64; + if target_arm cpu_target = .ARM64; + + lib_directory: string; + if os_target == { + case .WINDOWS; + lib_directory = "windows"; + case .LINUX; + lib_directory = "linux"; + case .MACOS; + lib_directory = "macos"; + case .ANDROID; + lib_directory = ifx cpu_target == .X64 then "android/x64" else "android/arm64"; + case .PS5; + lib_directory = "ps5"; + case; + assert(false); + } + + if compile { + source_file := tprint("%/stb_image.c", SOURCE_PATH); + + make_directory_if_it_does_not_exist(lib_directory, recursive = true); + lib_path := tprint("%/%", lib_directory, LIB_BASE_NAME); + success := true; + if os_target == .MACOS { + lib_path_x64 := tprint("%_x64", lib_path); + lib_path_arm64 := tprint("%_arm64", lib_path); + macos_x64_version_arg := "-mmacos-version-min=10.13"; // Our current x64 min version + macos_arm64_version_arg := "-mmacos-version-min=11.0"; // Earliest version that supports arm64 + // x64 variant + success &&= build_cpp_dynamic_lib(lib_path_x64, source_file, extra = .["-arch", "x86_64", macos_x64_version_arg], debug=compile_debug); + success &&= build_cpp_static_lib( lib_path_x64, source_file, extra = .["-arch", "x86_64", macos_x64_version_arg], debug=compile_debug); + // arm64 variant + success &&= build_cpp_dynamic_lib(lib_path_arm64, source_file, extra = .["-arch", "arm64", macos_arm64_version_arg], debug=compile_debug); + success &&= build_cpp_static_lib( lib_path_arm64, source_file, extra = .["-arch", "arm64", macos_arm64_version_arg], debug=compile_debug); + // create universal binaries + run_result := run_command("lipo", "-create", tprint("%.dylib", lib_path_x64), tprint("%.dylib", lib_path_arm64), "-output", tprint("%.dylib", lib_path)); + success &&= (run_result.exit_code == 0); + run_result = run_command("lipo", "-create", tprint("%.a", lib_path_x64), tprint("%.a", lib_path_arm64), "-output", tprint("%.a", lib_path)); + success &&= (run_result.exit_code == 0); + } else { + extra: [..] string; + if os_target == .ANDROID { + _, target_triple_with_sdk := get_android_target_triple(cpu_target); + array_add(*extra, "-target", target_triple_with_sdk); + } + if os_target != .WINDOWS { + array_add(*extra, "-fPIC"); + } + + if os_target != .PS5 && os_target != .WASM { + success &&= build_cpp_dynamic_lib(lib_path, source_file, target = os_target, debug = compile_debug, extra = extra); + } + success &&= build_cpp_static_lib(lib_path, source_file, target = os_target, debug = compile_debug, extra = extra); + } + + if !success return false; + } + + options: Generate_Bindings_Options; + options.os = os_target; + options.cpu = cpu_target; + { + using options; + + array_add(*libpaths, lib_directory); + array_add(*libnames, LIB_BASE_NAME); + array_add(*source_files, tprint("%/stb_image.h", SOURCE_PATH)); + array_add(*typedef_prefixes_to_unwrap, "stbi_"); + + + generate_library_declarations = false; + footer = tprint(FOOTER_TEMPLATE, LIB_BASE_NAME); + + auto_detect_enum_prefixes = true; + log_stripped_declarations = false; + generate_compile_time_struct_checks = false; + } + + output_filename := "bindings.jai"; + return generate_bindings(options, output_filename); +} + +FOOTER_TEMPLATE :: #string END + +#if OS == .WINDOWS { + %1 :: #library "windows/%1"; +} else #if OS == .LINUX { + %1 :: #library "linux/%1"; +} else #if OS == .MACOS { + %1 :: #library "macos/%1"; +} else #if OS == .ANDROID { + #if CPU == .X64 { + %1 :: #library "android/x64/%1"; + } else #if CPU == .ARM64 { + %1 :: #library "android/arm64/%1"; + } +} else #if OS == .PS5 { + %1 :: #library "ps5/%1"; +} else #if OS == .WASM { + // Wasm will be linked with emcc. +} else { + #assert false; +} + +END + +#import "Basic"; +#import "Bindings_Generator"; +#import "BuildCpp"; +#import "Compiler"; +#import "File"; +#import "Process"; +#import "Toolchains/Android"; + diff --git a/modules/stb_image/linux/stb_image.a b/modules/stb_image/linux/stb_image.a new file mode 100644 index 0000000000000000000000000000000000000000..fa8f92520d62eb751108a6b55f021f73eae83184 GIT binary patch literal 166596 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 literal 0 HcmV?d00001 diff --git a/modules/stb_image/linux/stb_image.so b/modules/stb_image/linux/stb_image.so new file mode 100755 index 0000000000000000000000000000000000000000..e12cea9bc6caa093ef9000b3a399c0d7664c3800 GIT binary patch literal 146568 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É?0TsWDa-Im+xx#^^Dl$BoV$oiU!qyT+R8%Ec^b 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

    U&AM?`YIQVOa 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 literal 0 HcmV?d00001 diff --git a/modules/stb_image/macos/stb_image.dylib b/modules/stb_image/macos/stb_image.dylib new file mode 100644 index 0000000000000000000000000000000000000000..19972f7ffe409472f6d1a5478f4afdc26dfd5e65 GIT binary patch literal 306120 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 literal 0 HcmV?d00001 diff --git a/modules/stb_image/module.jai b/modules/stb_image/module.jai new file mode 100644 index 0000000..a35c6bc --- /dev/null +++ b/modules/stb_image/module.jai @@ -0,0 +1,12 @@ +#load "bindings.jai"; + +#if OS == .WINDOWS || OS == .PS5 || OS == .WASM { + #scope_module + FILE :: void; +} else #if OS_IS_UNIX { + #import "POSIX"; + #library,system,link_always "libm"; +} else { + #assert false; +} + diff --git a/modules/stb_image/source/stb_image.c b/modules/stb_image/source/stb_image.c new file mode 100644 index 0000000..da81036 --- /dev/null +++ b/modules/stb_image/source/stb_image.c @@ -0,0 +1,11 @@ +#ifdef WIN32 +#define __EXPORT __declspec(dllexport) +#else +#define __EXPORT +#endif + +#define STBIDEF extern __EXPORT + +#define STBI_NO_STDIO +#define STB_IMAGE_IMPLEMENTATION +#include "stb_image.h" diff --git a/modules/stb_image/source/stb_image.h b/modules/stb_image/source/stb_image.h new file mode 100644 index 0000000..a632d54 --- /dev/null +++ b/modules/stb_image/source/stb_image.h @@ -0,0 +1,7985 @@ +/* stb_image - v2.29 - public domain image loader - http://nothings.org/stb + no warranty implied; use at your own risk + + Do this: + #define STB_IMAGE_IMPLEMENTATION + before you include this file in *one* C or C++ file to create the implementation. + + // i.e. it should look like this: + #include ... + #include ... + #include ... + #define STB_IMAGE_IMPLEMENTATION + #include "stb_image.h" + + You can #define STBI_ASSERT(x) before the #include to avoid using assert.h. + And #define STBI_MALLOC, STBI_REALLOC, and STBI_FREE to avoid using malloc,realloc,free + + + QUICK NOTES: + Primarily of interest to game developers and other people who can + avoid problematic images and only need the trivial interface + + JPEG baseline & progressive (12 bpc/arithmetic not supported, same as stock IJG lib) + PNG 1/2/4/8/16-bit-per-channel + + TGA (not sure what subset, if a subset) + BMP non-1bpp, non-RLE + PSD (composited view only, no extra channels, 8/16 bit-per-channel) + + GIF (*comp always reports as 4-channel) + HDR (radiance rgbE format) + PIC (Softimage PIC) + PNM (PPM and PGM binary only) + + Animated GIF still needs a proper API, but here's one way to do it: + http://gist.github.com/urraka/685d9a6340b26b830d49 + + - decode from memory or through FILE (define STBI_NO_STDIO to remove code) + - decode from arbitrary I/O callbacks + - SIMD acceleration on x86/x64 (SSE2) and ARM (NEON) + + Full documentation under "DOCUMENTATION" below. + + +LICENSE + + See end of file for license information. + +RECENT REVISION HISTORY: + + 2.29 (2023-05-xx) optimizations + 2.28 (2023-01-29) many error fixes, security errors, just tons of stuff + 2.27 (2021-07-11) document stbi_info better, 16-bit PNM support, bug fixes + 2.26 (2020-07-13) many minor fixes + 2.25 (2020-02-02) fix warnings + 2.24 (2020-02-02) fix warnings; thread-local failure_reason and flip_vertically + 2.23 (2019-08-11) fix clang static analysis warning + 2.22 (2019-03-04) gif fixes, fix warnings + 2.21 (2019-02-25) fix typo in comment + 2.20 (2019-02-07) support utf8 filenames in Windows; fix warnings and platform ifdefs + 2.19 (2018-02-11) fix warning + 2.18 (2018-01-30) fix warnings + 2.17 (2018-01-29) bugfix, 1-bit BMP, 16-bitness query, fix warnings + 2.16 (2017-07-23) all functions have 16-bit variants; optimizations; bugfixes + 2.15 (2017-03-18) fix png-1,2,4; all Imagenet JPGs; no runtime SSE detection on GCC + 2.14 (2017-03-03) remove deprecated STBI_JPEG_OLD; fixes for Imagenet JPGs + 2.13 (2016-12-04) experimental 16-bit API, only for PNG so far; fixes + 2.12 (2016-04-02) fix typo in 2.11 PSD fix that caused crashes + 2.11 (2016-04-02) 16-bit PNGS; enable SSE2 in non-gcc x64 + RGB-format JPEG; remove white matting in PSD; + allocate large structures on the stack; + correct channel count for PNG & BMP + 2.10 (2016-01-22) avoid warning introduced in 2.09 + 2.09 (2016-01-16) 16-bit TGA; comments in PNM files; STBI_REALLOC_SIZED + + See end of file for full revision history. + + + ============================ Contributors ========================= + + Image formats Extensions, features + Sean Barrett (jpeg, png, bmp) Jetro Lauha (stbi_info) + Nicolas Schulz (hdr, psd) Martin "SpartanJ" Golini (stbi_info) + Jonathan Dummer (tga) James "moose2000" Brown (iPhone PNG) + Jean-Marc Lienher (gif) Ben "Disch" Wenger (io callbacks) + Tom Seddon (pic) Omar Cornut (1/2/4-bit PNG) + Thatcher Ulrich (psd) Nicolas Guillemot (vertical flip) + Ken Miller (pgm, ppm) Richard Mitton (16-bit PSD) + github:urraka (animated gif) Junggon Kim (PNM comments) + Christopher Forseth (animated gif) Daniel Gibson (16-bit TGA) + socks-the-fox (16-bit PNG) + Jeremy Sawicki (handle all ImageNet JPGs) + Optimizations & bugfixes Mikhail Morozov (1-bit BMP) + Fabian "ryg" Giesen Anael Seghezzi (is-16-bit query) + Arseny Kapoulkine Simon Breuss (16-bit PNM) + John-Mark Allen + Carmelo J Fdez-Aguera + + Bug & warning fixes + Marc LeBlanc David Woo Guillaume George Martins Mozeiko + Christpher Lloyd Jerry Jansson Joseph Thomson Blazej Dariusz Roszkowski + Phil Jordan Dave Moore Roy Eltham + Hayaki Saito Nathan Reed Won Chun + Luke Graham Johan Duparc Nick Verigakis the Horde3D community + Thomas Ruf Ronny Chevalier github:rlyeh + Janez Zemva John Bartholomew Michal Cichon github:romigrou + Jonathan Blow Ken Hamada Tero Hanninen github:svdijk + Eugene Golushkov Laurent Gomila Cort Stratton github:snagar + Aruelien Pocheville Sergio Gonzalez Thibault Reuille github:Zelex + Cass Everitt Ryamond Barbiero github:grim210 + Paul Du Bois Engin Manap Aldo Culquicondor github:sammyhw + Philipp Wiesemann Dale Weiler Oriol Ferrer Mesia github:phprus + Josh Tobin Neil Bickford Matthew Gregan github:poppolopoppo + Julian Raschke Gregory Mullen Christian Floisand github:darealshinji + Baldur Karlsson Kevin Schmidt JR Smith github:Michaelangel007 + Brad Weinberger Matvey Cherevko github:mosra + Luca Sas Alexander Veselov Zack Middleton [reserved] + Ryan C. Gordon [reserved] [reserved] + DO NOT ADD YOUR NAME HERE + + Jacko Dirks + + To add your name to the credits, pick a random blank space in the middle and fill it. + 80% of merge conflicts on stb PRs are due to people adding their name at the end + of the credits. +*/ + +#ifndef STBI_INCLUDE_STB_IMAGE_H +#define STBI_INCLUDE_STB_IMAGE_H + +// DOCUMENTATION +// +// Limitations: +// - no 12-bit-per-channel JPEG +// - no JPEGs with arithmetic coding +// - GIF always returns *comp=4 +// +// Basic usage (see HDR discussion below for HDR usage): +// int x,y,n; +// unsigned char *data = stbi_load(filename, &x, &y, &n, 0); +// // ... process data if not NULL ... +// // ... x = width, y = height, n = # 8-bit components per pixel ... +// // ... replace '0' with '1'..'4' to force that many components per pixel +// // ... but 'n' will always be the number that it would have been if you said 0 +// stbi_image_free(data); +// +// Standard parameters: +// int *x -- outputs image width in pixels +// int *y -- outputs image height in pixels +// int *channels_in_file -- outputs # of image components in image file +// int desired_channels -- if non-zero, # of image components requested in result +// +// The return value from an image loader is an 'unsigned char *' which points +// to the pixel data, or NULL on an allocation failure or if the image is +// corrupt or invalid. The pixel data consists of *y scanlines of *x pixels, +// with each pixel consisting of N interleaved 8-bit components; the first +// pixel pointed to is top-left-most in the image. There is no padding between +// image scanlines or between pixels, regardless of format. The number of +// components N is 'desired_channels' if desired_channels is non-zero, or +// *channels_in_file otherwise. If desired_channels is non-zero, +// *channels_in_file has the number of components that _would_ have been +// output otherwise. E.g. if you set desired_channels to 4, you will always +// get RGBA output, but you can check *channels_in_file to see if it's trivially +// opaque because e.g. there were only 3 channels in the source image. +// +// An output image with N components has the following components interleaved +// in this order in each pixel: +// +// N=#comp components +// 1 grey +// 2 grey, alpha +// 3 red, green, blue +// 4 red, green, blue, alpha +// +// If image loading fails for any reason, the return value will be NULL, +// and *x, *y, *channels_in_file will be unchanged. The function +// stbi_failure_reason() can be queried for an extremely brief, end-user +// unfriendly explanation of why the load failed. Define STBI_NO_FAILURE_STRINGS +// to avoid compiling these strings at all, and STBI_FAILURE_USERMSG to get slightly +// more user-friendly ones. +// +// Paletted PNG, BMP, GIF, and PIC images are automatically depalettized. +// +// To query the width, height and component count of an image without having to +// decode the full file, you can use the stbi_info family of functions: +// +// int x,y,n,ok; +// ok = stbi_info(filename, &x, &y, &n); +// // returns ok=1 and sets x, y, n if image is a supported format, +// // 0 otherwise. +// +// Note that stb_image pervasively uses ints in its public API for sizes, +// including sizes of memory buffers. This is now part of the API and thus +// hard to change without causing breakage. As a result, the various image +// loaders all have certain limits on image size; these differ somewhat +// by format but generally boil down to either just under 2GB or just under +// 1GB. When the decoded image would be larger than this, stb_image decoding +// will fail. +// +// Additionally, stb_image will reject image files that have any of their +// dimensions set to a larger value than the configurable STBI_MAX_DIMENSIONS, +// which defaults to 2**24 = 16777216 pixels. Due to the above memory limit, +// the only way to have an image with such dimensions load correctly +// is for it to have a rather extreme aspect ratio. Either way, the +// assumption here is that such larger images are likely to be malformed +// or malicious. If you do need to load an image with individual dimensions +// larger than that, and it still fits in the overall size limit, you can +// #define STBI_MAX_DIMENSIONS on your own to be something larger. +// +// =========================================================================== +// +// UNICODE: +// +// If compiling for Windows and you wish to use Unicode filenames, compile +// with +// #define STBI_WINDOWS_UTF8 +// and pass utf8-encoded filenames. Call stbi_convert_wchar_to_utf8 to convert +// Windows wchar_t filenames to utf8. +// +// =========================================================================== +// +// Philosophy +// +// stb libraries are designed with the following priorities: +// +// 1. easy to use +// 2. easy to maintain +// 3. good performance +// +// Sometimes I let "good performance" creep up in priority over "easy to maintain", +// and for best performance I may provide less-easy-to-use APIs that give higher +// performance, in addition to the easy-to-use ones. Nevertheless, it's important +// to keep in mind that from the standpoint of you, a client of this library, +// all you care about is #1 and #3, and stb libraries DO NOT emphasize #3 above all. +// +// Some secondary priorities arise directly from the first two, some of which +// provide more explicit reasons why performance can't be emphasized. +// +// - Portable ("ease of use") +// - Small source code footprint ("easy to maintain") +// - No dependencies ("ease of use") +// +// =========================================================================== +// +// I/O callbacks +// +// I/O callbacks allow you to read from arbitrary sources, like packaged +// files or some other source. Data read from callbacks are processed +// through a small internal buffer (currently 128 bytes) to try to reduce +// overhead. +// +// The three functions you must define are "read" (reads some bytes of data), +// "skip" (skips some bytes of data), "eof" (reports if the stream is at the end). +// +// =========================================================================== +// +// SIMD support +// +// The JPEG decoder will try to automatically use SIMD kernels on x86 when +// supported by the compiler. For ARM Neon support, you must explicitly +// request it. +// +// (The old do-it-yourself SIMD API is no longer supported in the current +// code.) +// +// On x86, SSE2 will automatically be used when available based on a run-time +// test; if not, the generic C versions are used as a fall-back. On ARM targets, +// the typical path is to have separate builds for NEON and non-NEON devices +// (at least this is true for iOS and Android). Therefore, the NEON support is +// toggled by a build flag: define STBI_NEON to get NEON loops. +// +// If for some reason you do not want to use any of SIMD code, or if +// you have issues compiling it, you can disable it entirely by +// defining STBI_NO_SIMD. +// +// =========================================================================== +// +// HDR image support (disable by defining STBI_NO_HDR) +// +// stb_image supports loading HDR images in general, and currently the Radiance +// .HDR file format specifically. You can still load any file through the existing +// interface; if you attempt to load an HDR file, it will be automatically remapped +// to LDR, assuming gamma 2.2 and an arbitrary scale factor defaulting to 1; +// both of these constants can be reconfigured through this interface: +// +// stbi_hdr_to_ldr_gamma(2.2f); +// stbi_hdr_to_ldr_scale(1.0f); +// +// (note, do not use _inverse_ constants; stbi_image will invert them +// appropriately). +// +// Additionally, there is a new, parallel interface for loading files as +// (linear) floats to preserve the full dynamic range: +// +// float *data = stbi_loadf(filename, &x, &y, &n, 0); +// +// If you load LDR images through this interface, those images will +// be promoted to floating point values, run through the inverse of +// constants corresponding to the above: +// +// stbi_ldr_to_hdr_scale(1.0f); +// stbi_ldr_to_hdr_gamma(2.2f); +// +// Finally, given a filename (or an open file or memory block--see header +// file for details) containing image data, you can query for the "most +// appropriate" interface to use (that is, whether the image is HDR or +// not), using: +// +// stbi_is_hdr(char *filename); +// +// =========================================================================== +// +// iPhone PNG support: +// +// We optionally support converting iPhone-formatted PNGs (which store +// premultiplied BGRA) back to RGB, even though they're internally encoded +// differently. To enable this conversion, call +// stbi_convert_iphone_png_to_rgb(1). +// +// Call stbi_set_unpremultiply_on_load(1) as well to force a divide per +// pixel to remove any premultiplied alpha *only* if the image file explicitly +// says there's premultiplied data (currently only happens in iPhone images, +// and only if iPhone convert-to-rgb processing is on). +// +// =========================================================================== +// +// ADDITIONAL CONFIGURATION +// +// - You can suppress implementation of any of the decoders to reduce +// your code footprint by #defining one or more of the following +// symbols before creating the implementation. +// +// STBI_NO_JPEG +// STBI_NO_PNG +// STBI_NO_BMP +// STBI_NO_PSD +// STBI_NO_TGA +// STBI_NO_GIF +// STBI_NO_HDR +// STBI_NO_PIC +// STBI_NO_PNM (.ppm and .pgm) +// +// - You can request *only* certain decoders and suppress all other ones +// (this will be more forward-compatible, as addition of new decoders +// doesn't require you to disable them explicitly): +// +// STBI_ONLY_JPEG +// STBI_ONLY_PNG +// STBI_ONLY_BMP +// STBI_ONLY_PSD +// STBI_ONLY_TGA +// STBI_ONLY_GIF +// STBI_ONLY_HDR +// STBI_ONLY_PIC +// STBI_ONLY_PNM (.ppm and .pgm) +// +// - If you use STBI_NO_PNG (or _ONLY_ without PNG), and you still +// want the zlib decoder to be available, #define STBI_SUPPORT_ZLIB +// +// - If you define STBI_MAX_DIMENSIONS, stb_image will reject images greater +// than that size (in either width or height) without further processing. +// This is to let programs in the wild set an upper bound to prevent +// denial-of-service attacks on untrusted data, as one could generate a +// valid image of gigantic dimensions and force stb_image to allocate a +// huge block of memory and spend disproportionate time decoding it. By +// default this is set to (1 << 24), which is 16777216, but that's still +// very big. + +#ifndef STBI_NO_STDIO +#include +#endif // STBI_NO_STDIO + +#define STBI_VERSION 1 + +enum +{ + STBI_default = 0, // only used for desired_channels + + STBI_grey = 1, + STBI_grey_alpha = 2, + STBI_rgb = 3, + STBI_rgb_alpha = 4 +}; + +#include +typedef unsigned char stbi_uc; +typedef unsigned short stbi_us; + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef STBIDEF +#ifdef STB_IMAGE_STATIC +#define STBIDEF static +#else +#define STBIDEF extern +#endif +#endif + +////////////////////////////////////////////////////////////////////////////// +// +// PRIMARY API - works on images of any type +// + +// +// load image by filename, open file, or memory buffer +// + +typedef struct +{ + int (*read) (void *user,char *data,int size); // fill 'data' with 'size' bytes. return number of bytes actually read + void (*skip) (void *user,int n); // skip the next 'n' bytes, or 'unget' the last -n bytes if negative + int (*eof) (void *user); // returns nonzero if we are at end of file/data +} stbi_io_callbacks; + +//////////////////////////////////// +// +// 8-bits-per-channel interface +// + +STBIDEF stbi_uc *stbi_load_from_memory (stbi_uc const *buffer, int len , int *x, int *y, int *channels_in_file, int desired_channels); +STBIDEF stbi_uc *stbi_load_from_callbacks(stbi_io_callbacks const *clbk , void *user, int *x, int *y, int *channels_in_file, int desired_channels); + +#ifndef STBI_NO_STDIO +STBIDEF stbi_uc *stbi_load (char const *filename, int *x, int *y, int *channels_in_file, int desired_channels); +STBIDEF stbi_uc *stbi_load_from_file (FILE *f, int *x, int *y, int *channels_in_file, int desired_channels); +// for stbi_load_from_file, file pointer is left pointing immediately after image +#endif + +#ifndef STBI_NO_GIF +STBIDEF stbi_uc *stbi_load_gif_from_memory(stbi_uc const *buffer, int len, int **delays, int *x, int *y, int *z, int *comp, int req_comp); +#endif + +#ifdef STBI_WINDOWS_UTF8 +STBIDEF int stbi_convert_wchar_to_utf8(char *buffer, size_t bufferlen, const wchar_t* input); +#endif + +//////////////////////////////////// +// +// 16-bits-per-channel interface +// + +STBIDEF stbi_us *stbi_load_16_from_memory (stbi_uc const *buffer, int len, int *x, int *y, int *channels_in_file, int desired_channels); +STBIDEF stbi_us *stbi_load_16_from_callbacks(stbi_io_callbacks const *clbk, void *user, int *x, int *y, int *channels_in_file, int desired_channels); + +#ifndef STBI_NO_STDIO +STBIDEF stbi_us *stbi_load_16 (char const *filename, int *x, int *y, int *channels_in_file, int desired_channels); +STBIDEF stbi_us *stbi_load_from_file_16(FILE *f, int *x, int *y, int *channels_in_file, int desired_channels); +#endif + +//////////////////////////////////// +// +// float-per-channel interface +// +#ifndef STBI_NO_LINEAR + STBIDEF float *stbi_loadf_from_memory (stbi_uc const *buffer, int len, int *x, int *y, int *channels_in_file, int desired_channels); + STBIDEF float *stbi_loadf_from_callbacks (stbi_io_callbacks const *clbk, void *user, int *x, int *y, int *channels_in_file, int desired_channels); + + #ifndef STBI_NO_STDIO + STBIDEF float *stbi_loadf (char const *filename, int *x, int *y, int *channels_in_file, int desired_channels); + STBIDEF float *stbi_loadf_from_file (FILE *f, int *x, int *y, int *channels_in_file, int desired_channels); + #endif +#endif + +#ifndef STBI_NO_HDR + STBIDEF void stbi_hdr_to_ldr_gamma(float gamma); + STBIDEF void stbi_hdr_to_ldr_scale(float scale); +#endif // STBI_NO_HDR + +#ifndef STBI_NO_LINEAR + STBIDEF void stbi_ldr_to_hdr_gamma(float gamma); + STBIDEF void stbi_ldr_to_hdr_scale(float scale); +#endif // STBI_NO_LINEAR + +// stbi_is_hdr is always defined, but always returns false if STBI_NO_HDR +STBIDEF int stbi_is_hdr_from_callbacks(stbi_io_callbacks const *clbk, void *user); +STBIDEF int stbi_is_hdr_from_memory(stbi_uc const *buffer, int len); +#ifndef STBI_NO_STDIO +STBIDEF int stbi_is_hdr (char const *filename); +STBIDEF int stbi_is_hdr_from_file(FILE *f); +#endif // STBI_NO_STDIO + + +// get a VERY brief reason for failure +// on most compilers (and ALL modern mainstream compilers) this is threadsafe +STBIDEF const char *stbi_failure_reason (void); + +// free the loaded image -- this is just free() +STBIDEF void stbi_image_free (void *retval_from_stbi_load); + +// get image dimensions & components without fully decoding +STBIDEF int stbi_info_from_memory(stbi_uc const *buffer, int len, int *x, int *y, int *comp); +STBIDEF int stbi_info_from_callbacks(stbi_io_callbacks const *clbk, void *user, int *x, int *y, int *comp); +STBIDEF int stbi_is_16_bit_from_memory(stbi_uc const *buffer, int len); +STBIDEF int stbi_is_16_bit_from_callbacks(stbi_io_callbacks const *clbk, void *user); + +#ifndef STBI_NO_STDIO +STBIDEF int stbi_info (char const *filename, int *x, int *y, int *comp); +STBIDEF int stbi_info_from_file (FILE *f, int *x, int *y, int *comp); +STBIDEF int stbi_is_16_bit (char const *filename); +STBIDEF int stbi_is_16_bit_from_file(FILE *f); +#endif + + + +// for image formats that explicitly notate that they have premultiplied alpha, +// we just return the colors as stored in the file. set this flag to force +// unpremultiplication. results are undefined if the unpremultiply overflow. +STBIDEF void stbi_set_unpremultiply_on_load(int flag_true_if_should_unpremultiply); + +// indicate whether we should process iphone images back to canonical format, +// or just pass them through "as-is" +STBIDEF void stbi_convert_iphone_png_to_rgb(int flag_true_if_should_convert); + +// flip the image vertically, so the first pixel in the output array is the bottom left +STBIDEF void stbi_set_flip_vertically_on_load(int flag_true_if_should_flip); + +// as above, but only applies to images loaded on the thread that calls the function +// this function is only available if your compiler supports thread-local variables; +// calling it will fail to link if your compiler doesn't +STBIDEF void stbi_set_unpremultiply_on_load_thread(int flag_true_if_should_unpremultiply); +STBIDEF void stbi_convert_iphone_png_to_rgb_thread(int flag_true_if_should_convert); +STBIDEF void stbi_set_flip_vertically_on_load_thread(int flag_true_if_should_flip); + +// ZLIB client - used by PNG, available for other purposes + +STBIDEF char *stbi_zlib_decode_malloc_guesssize(const char *buffer, int len, int initial_size, int *outlen); +STBIDEF char *stbi_zlib_decode_malloc_guesssize_headerflag(const char *buffer, int len, int initial_size, int *outlen, int parse_header); +STBIDEF char *stbi_zlib_decode_malloc(const char *buffer, int len, int *outlen); +STBIDEF int stbi_zlib_decode_buffer(char *obuffer, int olen, const char *ibuffer, int ilen); + +STBIDEF char *stbi_zlib_decode_noheader_malloc(const char *buffer, int len, int *outlen); +STBIDEF int stbi_zlib_decode_noheader_buffer(char *obuffer, int olen, const char *ibuffer, int ilen); + + +#ifdef __cplusplus +} +#endif + +// +// +//// end header file ///////////////////////////////////////////////////// +#endif // STBI_INCLUDE_STB_IMAGE_H + +#ifdef STB_IMAGE_IMPLEMENTATION + +#if defined(STBI_ONLY_JPEG) || defined(STBI_ONLY_PNG) || defined(STBI_ONLY_BMP) \ + || defined(STBI_ONLY_TGA) || defined(STBI_ONLY_GIF) || defined(STBI_ONLY_PSD) \ + || defined(STBI_ONLY_HDR) || defined(STBI_ONLY_PIC) || defined(STBI_ONLY_PNM) \ + || defined(STBI_ONLY_ZLIB) + #ifndef STBI_ONLY_JPEG + #define STBI_NO_JPEG + #endif + #ifndef STBI_ONLY_PNG + #define STBI_NO_PNG + #endif + #ifndef STBI_ONLY_BMP + #define STBI_NO_BMP + #endif + #ifndef STBI_ONLY_PSD + #define STBI_NO_PSD + #endif + #ifndef STBI_ONLY_TGA + #define STBI_NO_TGA + #endif + #ifndef STBI_ONLY_GIF + #define STBI_NO_GIF + #endif + #ifndef STBI_ONLY_HDR + #define STBI_NO_HDR + #endif + #ifndef STBI_ONLY_PIC + #define STBI_NO_PIC + #endif + #ifndef STBI_ONLY_PNM + #define STBI_NO_PNM + #endif +#endif + +#if defined(STBI_NO_PNG) && !defined(STBI_SUPPORT_ZLIB) && !defined(STBI_NO_ZLIB) +#define STBI_NO_ZLIB +#endif + + +#include +#include // ptrdiff_t on osx +#include +#include +#include + +#if !defined(STBI_NO_LINEAR) || !defined(STBI_NO_HDR) +#include // ldexp, pow +#endif + +#ifndef STBI_NO_STDIO +#include +#endif + +#ifndef STBI_ASSERT +#include +#define STBI_ASSERT(x) assert(x) +#endif + +#ifdef __cplusplus +#define STBI_EXTERN extern "C" +#else +#define STBI_EXTERN extern +#endif + + +#ifndef _MSC_VER + #ifdef __cplusplus + #define stbi_inline inline + #else + #define stbi_inline + #endif +#else + #define stbi_inline __forceinline +#endif + +#ifndef STBI_NO_THREAD_LOCALS + #if defined(__cplusplus) && __cplusplus >= 201103L + #define STBI_THREAD_LOCAL thread_local + #elif defined(__GNUC__) && __GNUC__ < 5 + #define STBI_THREAD_LOCAL __thread + #elif defined(_MSC_VER) + #define STBI_THREAD_LOCAL __declspec(thread) + #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 201112L && !defined(__STDC_NO_THREADS__) + #define STBI_THREAD_LOCAL _Thread_local + #endif + + #ifndef STBI_THREAD_LOCAL + #if defined(__GNUC__) + #define STBI_THREAD_LOCAL __thread + #endif + #endif +#endif + +#if defined(_MSC_VER) || defined(__SYMBIAN32__) +typedef unsigned short stbi__uint16; +typedef signed short stbi__int16; +typedef unsigned int stbi__uint32; +typedef signed int stbi__int32; +#else +#include +typedef uint16_t stbi__uint16; +typedef int16_t stbi__int16; +typedef uint32_t stbi__uint32; +typedef int32_t stbi__int32; +#endif + +// should produce compiler error if size is wrong +typedef unsigned char validate_uint32[sizeof(stbi__uint32)==4 ? 1 : -1]; + +#ifdef _MSC_VER +#define STBI_NOTUSED(v) (void)(v) +#else +#define STBI_NOTUSED(v) (void)sizeof(v) +#endif + +#ifdef _MSC_VER +#define STBI_HAS_LROTL +#endif + +#ifdef STBI_HAS_LROTL + #define stbi_lrot(x,y) _lrotl(x,y) +#else + #define stbi_lrot(x,y) (((x) << (y)) | ((x) >> (-(y) & 31))) +#endif + +#if defined(STBI_MALLOC) && defined(STBI_FREE) && (defined(STBI_REALLOC) || defined(STBI_REALLOC_SIZED)) +// ok +#elif !defined(STBI_MALLOC) && !defined(STBI_FREE) && !defined(STBI_REALLOC) && !defined(STBI_REALLOC_SIZED) +// ok +#else +#error "Must define all or none of STBI_MALLOC, STBI_FREE, and STBI_REALLOC (or STBI_REALLOC_SIZED)." +#endif + +#ifndef STBI_MALLOC +#define STBI_MALLOC(sz) malloc(sz) +#define STBI_REALLOC(p,newsz) realloc(p,newsz) +#define STBI_FREE(p) free(p) +#endif + +#ifndef STBI_REALLOC_SIZED +#define STBI_REALLOC_SIZED(p,oldsz,newsz) STBI_REALLOC(p,newsz) +#endif + +// x86/x64 detection +#if defined(__x86_64__) || defined(_M_X64) +#define STBI__X64_TARGET +#elif defined(__i386) || defined(_M_IX86) +#define STBI__X86_TARGET +#endif + +#if defined(__GNUC__) && defined(STBI__X86_TARGET) && !defined(__SSE2__) && !defined(STBI_NO_SIMD) +// gcc doesn't support sse2 intrinsics unless you compile with -msse2, +// which in turn means it gets to use SSE2 everywhere. This is unfortunate, +// but previous attempts to provide the SSE2 functions with runtime +// detection caused numerous issues. The way architecture extensions are +// exposed in GCC/Clang is, sadly, not really suited for one-file libs. +// New behavior: if compiled with -msse2, we use SSE2 without any +// detection; if not, we don't use it at all. +#define STBI_NO_SIMD +#endif + +#if defined(__MINGW32__) && defined(STBI__X86_TARGET) && !defined(STBI_MINGW_ENABLE_SSE2) && !defined(STBI_NO_SIMD) +// Note that __MINGW32__ doesn't actually mean 32-bit, so we have to avoid STBI__X64_TARGET +// +// 32-bit MinGW wants ESP to be 16-byte aligned, but this is not in the +// Windows ABI and VC++ as well as Windows DLLs don't maintain that invariant. +// As a result, enabling SSE2 on 32-bit MinGW is dangerous when not +// simultaneously enabling "-mstackrealign". +// +// See https://github.com/nothings/stb/issues/81 for more information. +// +// So default to no SSE2 on 32-bit MinGW. If you've read this far and added +// -mstackrealign to your build settings, feel free to #define STBI_MINGW_ENABLE_SSE2. +#define STBI_NO_SIMD +#endif + +#if !defined(STBI_NO_SIMD) && (defined(STBI__X86_TARGET) || defined(STBI__X64_TARGET)) +#define STBI_SSE2 +#include + +#ifdef _MSC_VER + +#if _MSC_VER >= 1400 // not VC6 +#include // __cpuid +static int stbi__cpuid3(void) +{ + int info[4]; + __cpuid(info,1); + return info[3]; +} +#else +static int stbi__cpuid3(void) +{ + int res; + __asm { + mov eax,1 + cpuid + mov res,edx + } + return res; +} +#endif + +#define STBI_SIMD_ALIGN(type, name) __declspec(align(16)) type name + +#if !defined(STBI_NO_JPEG) && defined(STBI_SSE2) +static int stbi__sse2_available(void) +{ + int info3 = stbi__cpuid3(); + return ((info3 >> 26) & 1) != 0; +} +#endif + +#else // assume GCC-style if not VC++ +#define STBI_SIMD_ALIGN(type, name) type name __attribute__((aligned(16))) + +#if !defined(STBI_NO_JPEG) && defined(STBI_SSE2) +static int stbi__sse2_available(void) +{ + // If we're even attempting to compile this on GCC/Clang, that means + // -msse2 is on, which means the compiler is allowed to use SSE2 + // instructions at will, and so are we. + return 1; +} +#endif + +#endif +#endif + +// ARM NEON +#if defined(STBI_NO_SIMD) && defined(STBI_NEON) +#undef STBI_NEON +#endif + +#ifdef STBI_NEON +#include +#ifdef _MSC_VER +#define STBI_SIMD_ALIGN(type, name) __declspec(align(16)) type name +#else +#define STBI_SIMD_ALIGN(type, name) type name __attribute__((aligned(16))) +#endif +#endif + +#ifndef STBI_SIMD_ALIGN +#define STBI_SIMD_ALIGN(type, name) type name +#endif + +#ifndef STBI_MAX_DIMENSIONS +#define STBI_MAX_DIMENSIONS (1 << 24) +#endif + +/////////////////////////////////////////////// +// +// stbi__context struct and start_xxx functions + +// stbi__context structure is our basic context used by all images, so it +// contains all the IO context, plus some basic image information +typedef struct +{ + stbi__uint32 img_x, img_y; + int img_n, img_out_n; + + stbi_io_callbacks io; + void *io_user_data; + + int read_from_callbacks; + int buflen; + stbi_uc buffer_start[128]; + int callback_already_read; + + stbi_uc *img_buffer, *img_buffer_end; + stbi_uc *img_buffer_original, *img_buffer_original_end; +} stbi__context; + + +static void stbi__refill_buffer(stbi__context *s); + +// initialize a memory-decode context +static void stbi__start_mem(stbi__context *s, stbi_uc const *buffer, int len) +{ + s->io.read = NULL; + s->read_from_callbacks = 0; + s->callback_already_read = 0; + s->img_buffer = s->img_buffer_original = (stbi_uc *) buffer; + s->img_buffer_end = s->img_buffer_original_end = (stbi_uc *) buffer+len; +} + +// initialize a callback-based context +static void stbi__start_callbacks(stbi__context *s, stbi_io_callbacks *c, void *user) +{ + s->io = *c; + s->io_user_data = user; + s->buflen = sizeof(s->buffer_start); + s->read_from_callbacks = 1; + s->callback_already_read = 0; + s->img_buffer = s->img_buffer_original = s->buffer_start; + stbi__refill_buffer(s); + s->img_buffer_original_end = s->img_buffer_end; +} + +#ifndef STBI_NO_STDIO + +static int stbi__stdio_read(void *user, char *data, int size) +{ + return (int) fread(data,1,size,(FILE*) user); +} + +static void stbi__stdio_skip(void *user, int n) +{ + int ch; + fseek((FILE*) user, n, SEEK_CUR); + ch = fgetc((FILE*) user); /* have to read a byte to reset feof()'s flag */ + if (ch != EOF) { + ungetc(ch, (FILE *) user); /* push byte back onto stream if valid. */ + } +} + +static int stbi__stdio_eof(void *user) +{ + return feof((FILE*) user) || ferror((FILE *) user); +} + +static stbi_io_callbacks stbi__stdio_callbacks = +{ + stbi__stdio_read, + stbi__stdio_skip, + stbi__stdio_eof, +}; + +static void stbi__start_file(stbi__context *s, FILE *f) +{ + stbi__start_callbacks(s, &stbi__stdio_callbacks, (void *) f); +} + +//static void stop_file(stbi__context *s) { } + +#endif // !STBI_NO_STDIO + +static void stbi__rewind(stbi__context *s) +{ + // conceptually rewind SHOULD rewind to the beginning of the stream, + // but we just rewind to the beginning of the initial buffer, because + // we only use it after doing 'test', which only ever looks at at most 92 bytes + s->img_buffer = s->img_buffer_original; + s->img_buffer_end = s->img_buffer_original_end; +} + +enum +{ + STBI_ORDER_RGB, + STBI_ORDER_BGR +}; + +typedef struct +{ + int bits_per_channel; + int num_channels; + int channel_order; +} stbi__result_info; + +#ifndef STBI_NO_JPEG +static int stbi__jpeg_test(stbi__context *s); +static void *stbi__jpeg_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri); +static int stbi__jpeg_info(stbi__context *s, int *x, int *y, int *comp); +#endif + +#ifndef STBI_NO_PNG +static int stbi__png_test(stbi__context *s); +static void *stbi__png_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri); +static int stbi__png_info(stbi__context *s, int *x, int *y, int *comp); +static int stbi__png_is16(stbi__context *s); +#endif + +#ifndef STBI_NO_BMP +static int stbi__bmp_test(stbi__context *s); +static void *stbi__bmp_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri); +static int stbi__bmp_info(stbi__context *s, int *x, int *y, int *comp); +#endif + +#ifndef STBI_NO_TGA +static int stbi__tga_test(stbi__context *s); +static void *stbi__tga_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri); +static int stbi__tga_info(stbi__context *s, int *x, int *y, int *comp); +#endif + +#ifndef STBI_NO_PSD +static int stbi__psd_test(stbi__context *s); +static void *stbi__psd_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri, int bpc); +static int stbi__psd_info(stbi__context *s, int *x, int *y, int *comp); +static int stbi__psd_is16(stbi__context *s); +#endif + +#ifndef STBI_NO_HDR +static int stbi__hdr_test(stbi__context *s); +static float *stbi__hdr_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri); +static int stbi__hdr_info(stbi__context *s, int *x, int *y, int *comp); +#endif + +#ifndef STBI_NO_PIC +static int stbi__pic_test(stbi__context *s); +static void *stbi__pic_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri); +static int stbi__pic_info(stbi__context *s, int *x, int *y, int *comp); +#endif + +#ifndef STBI_NO_GIF +static int stbi__gif_test(stbi__context *s); +static void *stbi__gif_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri); +static void *stbi__load_gif_main(stbi__context *s, int **delays, int *x, int *y, int *z, int *comp, int req_comp); +static int stbi__gif_info(stbi__context *s, int *x, int *y, int *comp); +#endif + +#ifndef STBI_NO_PNM +static int stbi__pnm_test(stbi__context *s); +static void *stbi__pnm_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri); +static int stbi__pnm_info(stbi__context *s, int *x, int *y, int *comp); +static int stbi__pnm_is16(stbi__context *s); +#endif + +static +#ifdef STBI_THREAD_LOCAL +STBI_THREAD_LOCAL +#endif +const char *stbi__g_failure_reason; + +STBIDEF const char *stbi_failure_reason(void) +{ + return stbi__g_failure_reason; +} + +#ifndef STBI_NO_FAILURE_STRINGS +static int stbi__err(const char *str) +{ + stbi__g_failure_reason = str; + return 0; +} +#endif + +static void *stbi__malloc(size_t size) +{ + return STBI_MALLOC(size); +} + +// stb_image uses ints pervasively, including for offset calculations. +// therefore the largest decoded image size we can support with the +// current code, even on 64-bit targets, is INT_MAX. this is not a +// significant limitation for the intended use case. +// +// we do, however, need to make sure our size calculations don't +// overflow. hence a few helper functions for size calculations that +// multiply integers together, making sure that they're non-negative +// and no overflow occurs. + +// return 1 if the sum is valid, 0 on overflow. +// negative terms are considered invalid. +static int stbi__addsizes_valid(int a, int b) +{ + if (b < 0) return 0; + // now 0 <= b <= INT_MAX, hence also + // 0 <= INT_MAX - b <= INTMAX. + // And "a + b <= INT_MAX" (which might overflow) is the + // same as a <= INT_MAX - b (no overflow) + return a <= INT_MAX - b; +} + +// returns 1 if the product is valid, 0 on overflow. +// negative factors are considered invalid. +static int stbi__mul2sizes_valid(int a, int b) +{ + if (a < 0 || b < 0) return 0; + if (b == 0) return 1; // mul-by-0 is always safe + // portable way to check for no overflows in a*b + return a <= INT_MAX/b; +} + +#if !defined(STBI_NO_JPEG) || !defined(STBI_NO_PNG) || !defined(STBI_NO_TGA) || !defined(STBI_NO_HDR) +// returns 1 if "a*b + add" has no negative terms/factors and doesn't overflow +static int stbi__mad2sizes_valid(int a, int b, int add) +{ + return stbi__mul2sizes_valid(a, b) && stbi__addsizes_valid(a*b, add); +} +#endif + +// returns 1 if "a*b*c + add" has no negative terms/factors and doesn't overflow +static int stbi__mad3sizes_valid(int a, int b, int c, int add) +{ + return stbi__mul2sizes_valid(a, b) && stbi__mul2sizes_valid(a*b, c) && + stbi__addsizes_valid(a*b*c, add); +} + +// returns 1 if "a*b*c*d + add" has no negative terms/factors and doesn't overflow +#if !defined(STBI_NO_LINEAR) || !defined(STBI_NO_HDR) || !defined(STBI_NO_PNM) +static int stbi__mad4sizes_valid(int a, int b, int c, int d, int add) +{ + return stbi__mul2sizes_valid(a, b) && stbi__mul2sizes_valid(a*b, c) && + stbi__mul2sizes_valid(a*b*c, d) && stbi__addsizes_valid(a*b*c*d, add); +} +#endif + +#if !defined(STBI_NO_JPEG) || !defined(STBI_NO_PNG) || !defined(STBI_NO_TGA) || !defined(STBI_NO_HDR) +// mallocs with size overflow checking +static void *stbi__malloc_mad2(int a, int b, int add) +{ + if (!stbi__mad2sizes_valid(a, b, add)) return NULL; + return stbi__malloc(a*b + add); +} +#endif + +static void *stbi__malloc_mad3(int a, int b, int c, int add) +{ + if (!stbi__mad3sizes_valid(a, b, c, add)) return NULL; + return stbi__malloc(a*b*c + add); +} + +#if !defined(STBI_NO_LINEAR) || !defined(STBI_NO_HDR) || !defined(STBI_NO_PNM) +static void *stbi__malloc_mad4(int a, int b, int c, int d, int add) +{ + if (!stbi__mad4sizes_valid(a, b, c, d, add)) return NULL; + return stbi__malloc(a*b*c*d + add); +} +#endif + +// returns 1 if the sum of two signed ints is valid (between -2^31 and 2^31-1 inclusive), 0 on overflow. +static int stbi__addints_valid(int a, int b) +{ + if ((a >= 0) != (b >= 0)) return 1; // a and b have different signs, so no overflow + if (a < 0 && b < 0) return a >= INT_MIN - b; // same as a + b >= INT_MIN; INT_MIN - b cannot overflow since b < 0. + return a <= INT_MAX - b; +} + +// returns 1 if the product of two ints fits in a signed short, 0 on overflow. +static int stbi__mul2shorts_valid(int a, int b) +{ + if (b == 0 || b == -1) return 1; // multiplication by 0 is always 0; check for -1 so SHRT_MIN/b doesn't overflow + if ((a >= 0) == (b >= 0)) return a <= SHRT_MAX/b; // product is positive, so similar to mul2sizes_valid + if (b < 0) return a <= SHRT_MIN / b; // same as a * b >= SHRT_MIN + return a >= SHRT_MIN / b; +} + +// stbi__err - error +// stbi__errpf - error returning pointer to float +// stbi__errpuc - error returning pointer to unsigned char + +#ifdef STBI_NO_FAILURE_STRINGS + #define stbi__err(x,y) 0 +#elif defined(STBI_FAILURE_USERMSG) + #define stbi__err(x,y) stbi__err(y) +#else + #define stbi__err(x,y) stbi__err(x) +#endif + +#define stbi__errpf(x,y) ((float *)(size_t) (stbi__err(x,y)?NULL:NULL)) +#define stbi__errpuc(x,y) ((unsigned char *)(size_t) (stbi__err(x,y)?NULL:NULL)) + +STBIDEF void stbi_image_free(void *retval_from_stbi_load) +{ + STBI_FREE(retval_from_stbi_load); +} + +#ifndef STBI_NO_LINEAR +static float *stbi__ldr_to_hdr(stbi_uc *data, int x, int y, int comp); +#endif + +#ifndef STBI_NO_HDR +static stbi_uc *stbi__hdr_to_ldr(float *data, int x, int y, int comp); +#endif + +static int stbi__vertically_flip_on_load_global = 0; + +STBIDEF void stbi_set_flip_vertically_on_load(int flag_true_if_should_flip) +{ + stbi__vertically_flip_on_load_global = flag_true_if_should_flip; +} + +#ifndef STBI_THREAD_LOCAL +#define stbi__vertically_flip_on_load stbi__vertically_flip_on_load_global +#else +static STBI_THREAD_LOCAL int stbi__vertically_flip_on_load_local, stbi__vertically_flip_on_load_set; + +STBIDEF void stbi_set_flip_vertically_on_load_thread(int flag_true_if_should_flip) +{ + stbi__vertically_flip_on_load_local = flag_true_if_should_flip; + stbi__vertically_flip_on_load_set = 1; +} + +#define stbi__vertically_flip_on_load (stbi__vertically_flip_on_load_set \ + ? stbi__vertically_flip_on_load_local \ + : stbi__vertically_flip_on_load_global) +#endif // STBI_THREAD_LOCAL + +static void *stbi__load_main(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri, int bpc) +{ + memset(ri, 0, sizeof(*ri)); // make sure it's initialized if we add new fields + ri->bits_per_channel = 8; // default is 8 so most paths don't have to be changed + ri->channel_order = STBI_ORDER_RGB; // all current input & output are this, but this is here so we can add BGR order + ri->num_channels = 0; + + // test the formats with a very explicit header first (at least a FOURCC + // or distinctive magic number first) + #ifndef STBI_NO_PNG + if (stbi__png_test(s)) return stbi__png_load(s,x,y,comp,req_comp, ri); + #endif + #ifndef STBI_NO_BMP + if (stbi__bmp_test(s)) return stbi__bmp_load(s,x,y,comp,req_comp, ri); + #endif + #ifndef STBI_NO_GIF + if (stbi__gif_test(s)) return stbi__gif_load(s,x,y,comp,req_comp, ri); + #endif + #ifndef STBI_NO_PSD + if (stbi__psd_test(s)) return stbi__psd_load(s,x,y,comp,req_comp, ri, bpc); + #else + STBI_NOTUSED(bpc); + #endif + #ifndef STBI_NO_PIC + if (stbi__pic_test(s)) return stbi__pic_load(s,x,y,comp,req_comp, ri); + #endif + + // then the formats that can end up attempting to load with just 1 or 2 + // bytes matching expectations; these are prone to false positives, so + // try them later + #ifndef STBI_NO_JPEG + if (stbi__jpeg_test(s)) return stbi__jpeg_load(s,x,y,comp,req_comp, ri); + #endif + #ifndef STBI_NO_PNM + if (stbi__pnm_test(s)) return stbi__pnm_load(s,x,y,comp,req_comp, ri); + #endif + + #ifndef STBI_NO_HDR + if (stbi__hdr_test(s)) { + float *hdr = stbi__hdr_load(s, x,y,comp,req_comp, ri); + return stbi__hdr_to_ldr(hdr, *x, *y, req_comp ? req_comp : *comp); + } + #endif + + #ifndef STBI_NO_TGA + // test tga last because it's a crappy test! + if (stbi__tga_test(s)) + return stbi__tga_load(s,x,y,comp,req_comp, ri); + #endif + + return stbi__errpuc("unknown image type", "Image not of any known type, or corrupt"); +} + +static stbi_uc *stbi__convert_16_to_8(stbi__uint16 *orig, int w, int h, int channels) +{ + int i; + int img_len = w * h * channels; + stbi_uc *reduced; + + reduced = (stbi_uc *) stbi__malloc(img_len); + if (reduced == NULL) return stbi__errpuc("outofmem", "Out of memory"); + + for (i = 0; i < img_len; ++i) + reduced[i] = (stbi_uc)((orig[i] >> 8) & 0xFF); // top half of each byte is sufficient approx of 16->8 bit scaling + + STBI_FREE(orig); + return reduced; +} + +static stbi__uint16 *stbi__convert_8_to_16(stbi_uc *orig, int w, int h, int channels) +{ + int i; + int img_len = w * h * channels; + stbi__uint16 *enlarged; + + enlarged = (stbi__uint16 *) stbi__malloc(img_len*2); + if (enlarged == NULL) return (stbi__uint16 *) stbi__errpuc("outofmem", "Out of memory"); + + for (i = 0; i < img_len; ++i) + enlarged[i] = (stbi__uint16)((orig[i] << 8) + orig[i]); // replicate to high and low byte, maps 0->0, 255->0xffff + + STBI_FREE(orig); + return enlarged; +} + +static void stbi__vertical_flip(void *image, int w, int h, int bytes_per_pixel) +{ + int row; + size_t bytes_per_row = (size_t)w * bytes_per_pixel; + stbi_uc temp[2048]; + stbi_uc *bytes = (stbi_uc *)image; + + for (row = 0; row < (h>>1); row++) { + stbi_uc *row0 = bytes + row*bytes_per_row; + stbi_uc *row1 = bytes + (h - row - 1)*bytes_per_row; + // swap row0 with row1 + size_t bytes_left = bytes_per_row; + while (bytes_left) { + size_t bytes_copy = (bytes_left < sizeof(temp)) ? bytes_left : sizeof(temp); + memcpy(temp, row0, bytes_copy); + memcpy(row0, row1, bytes_copy); + memcpy(row1, temp, bytes_copy); + row0 += bytes_copy; + row1 += bytes_copy; + bytes_left -= bytes_copy; + } + } +} + +#ifndef STBI_NO_GIF +static void stbi__vertical_flip_slices(void *image, int w, int h, int z, int bytes_per_pixel) +{ + int slice; + int slice_size = w * h * bytes_per_pixel; + + stbi_uc *bytes = (stbi_uc *)image; + for (slice = 0; slice < z; ++slice) { + stbi__vertical_flip(bytes, w, h, bytes_per_pixel); + bytes += slice_size; + } +} +#endif + +static unsigned char *stbi__load_and_postprocess_8bit(stbi__context *s, int *x, int *y, int *comp, int req_comp) +{ + stbi__result_info ri; + void *result = stbi__load_main(s, x, y, comp, req_comp, &ri, 8); + + if (result == NULL) + return NULL; + + // it is the responsibility of the loaders to make sure we get either 8 or 16 bit. + STBI_ASSERT(ri.bits_per_channel == 8 || ri.bits_per_channel == 16); + + if (ri.bits_per_channel != 8) { + result = stbi__convert_16_to_8((stbi__uint16 *) result, *x, *y, req_comp == 0 ? *comp : req_comp); + ri.bits_per_channel = 8; + } + + // @TODO: move stbi__convert_format to here + + if (stbi__vertically_flip_on_load) { + int channels = req_comp ? req_comp : *comp; + stbi__vertical_flip(result, *x, *y, channels * sizeof(stbi_uc)); + } + + return (unsigned char *) result; +} + +static stbi__uint16 *stbi__load_and_postprocess_16bit(stbi__context *s, int *x, int *y, int *comp, int req_comp) +{ + stbi__result_info ri; + void *result = stbi__load_main(s, x, y, comp, req_comp, &ri, 16); + + if (result == NULL) + return NULL; + + // it is the responsibility of the loaders to make sure we get either 8 or 16 bit. + STBI_ASSERT(ri.bits_per_channel == 8 || ri.bits_per_channel == 16); + + if (ri.bits_per_channel != 16) { + result = stbi__convert_8_to_16((stbi_uc *) result, *x, *y, req_comp == 0 ? *comp : req_comp); + ri.bits_per_channel = 16; + } + + // @TODO: move stbi__convert_format16 to here + // @TODO: special case RGB-to-Y (and RGBA-to-YA) for 8-bit-to-16-bit case to keep more precision + + if (stbi__vertically_flip_on_load) { + int channels = req_comp ? req_comp : *comp; + stbi__vertical_flip(result, *x, *y, channels * sizeof(stbi__uint16)); + } + + return (stbi__uint16 *) result; +} + +#if !defined(STBI_NO_HDR) && !defined(STBI_NO_LINEAR) +static void stbi__float_postprocess(float *result, int *x, int *y, int *comp, int req_comp) +{ + if (stbi__vertically_flip_on_load && result != NULL) { + int channels = req_comp ? req_comp : *comp; + stbi__vertical_flip(result, *x, *y, channels * sizeof(float)); + } +} +#endif + +#ifndef STBI_NO_STDIO + +#if defined(_WIN32) && defined(STBI_WINDOWS_UTF8) +STBI_EXTERN __declspec(dllimport) int __stdcall MultiByteToWideChar(unsigned int cp, unsigned long flags, const char *str, int cbmb, wchar_t *widestr, int cchwide); +STBI_EXTERN __declspec(dllimport) int __stdcall WideCharToMultiByte(unsigned int cp, unsigned long flags, const wchar_t *widestr, int cchwide, char *str, int cbmb, const char *defchar, int *used_default); +#endif + +#if defined(_WIN32) && defined(STBI_WINDOWS_UTF8) +STBIDEF int stbi_convert_wchar_to_utf8(char *buffer, size_t bufferlen, const wchar_t* input) +{ + return WideCharToMultiByte(65001 /* UTF8 */, 0, input, -1, buffer, (int) bufferlen, NULL, NULL); +} +#endif + +static FILE *stbi__fopen(char const *filename, char const *mode) +{ + FILE *f; +#if defined(_WIN32) && defined(STBI_WINDOWS_UTF8) + wchar_t wMode[64]; + wchar_t wFilename[1024]; + if (0 == MultiByteToWideChar(65001 /* UTF8 */, 0, filename, -1, wFilename, sizeof(wFilename)/sizeof(*wFilename))) + return 0; + + if (0 == MultiByteToWideChar(65001 /* UTF8 */, 0, mode, -1, wMode, sizeof(wMode)/sizeof(*wMode))) + return 0; + +#if defined(_MSC_VER) && _MSC_VER >= 1400 + if (0 != _wfopen_s(&f, wFilename, wMode)) + f = 0; +#else + f = _wfopen(wFilename, wMode); +#endif + +#elif defined(_MSC_VER) && _MSC_VER >= 1400 + if (0 != fopen_s(&f, filename, mode)) + f=0; +#else + f = fopen(filename, mode); +#endif + return f; +} + + +STBIDEF stbi_uc *stbi_load(char const *filename, int *x, int *y, int *comp, int req_comp) +{ + FILE *f = stbi__fopen(filename, "rb"); + unsigned char *result; + if (!f) return stbi__errpuc("can't fopen", "Unable to open file"); + result = stbi_load_from_file(f,x,y,comp,req_comp); + fclose(f); + return result; +} + +STBIDEF stbi_uc *stbi_load_from_file(FILE *f, int *x, int *y, int *comp, int req_comp) +{ + unsigned char *result; + stbi__context s; + stbi__start_file(&s,f); + result = stbi__load_and_postprocess_8bit(&s,x,y,comp,req_comp); + if (result) { + // need to 'unget' all the characters in the IO buffer + fseek(f, - (int) (s.img_buffer_end - s.img_buffer), SEEK_CUR); + } + return result; +} + +STBIDEF stbi__uint16 *stbi_load_from_file_16(FILE *f, int *x, int *y, int *comp, int req_comp) +{ + stbi__uint16 *result; + stbi__context s; + stbi__start_file(&s,f); + result = stbi__load_and_postprocess_16bit(&s,x,y,comp,req_comp); + if (result) { + // need to 'unget' all the characters in the IO buffer + fseek(f, - (int) (s.img_buffer_end - s.img_buffer), SEEK_CUR); + } + return result; +} + +STBIDEF stbi_us *stbi_load_16(char const *filename, int *x, int *y, int *comp, int req_comp) +{ + FILE *f = stbi__fopen(filename, "rb"); + stbi__uint16 *result; + if (!f) return (stbi_us *) stbi__errpuc("can't fopen", "Unable to open file"); + result = stbi_load_from_file_16(f,x,y,comp,req_comp); + fclose(f); + return result; +} + + +#endif //!STBI_NO_STDIO + +STBIDEF stbi_us *stbi_load_16_from_memory(stbi_uc const *buffer, int len, int *x, int *y, int *channels_in_file, int desired_channels) +{ + stbi__context s; + stbi__start_mem(&s,buffer,len); + return stbi__load_and_postprocess_16bit(&s,x,y,channels_in_file,desired_channels); +} + +STBIDEF stbi_us *stbi_load_16_from_callbacks(stbi_io_callbacks const *clbk, void *user, int *x, int *y, int *channels_in_file, int desired_channels) +{ + stbi__context s; + stbi__start_callbacks(&s, (stbi_io_callbacks *)clbk, user); + return stbi__load_and_postprocess_16bit(&s,x,y,channels_in_file,desired_channels); +} + +STBIDEF stbi_uc *stbi_load_from_memory(stbi_uc const *buffer, int len, int *x, int *y, int *comp, int req_comp) +{ + stbi__context s; + stbi__start_mem(&s,buffer,len); + return stbi__load_and_postprocess_8bit(&s,x,y,comp,req_comp); +} + +STBIDEF stbi_uc *stbi_load_from_callbacks(stbi_io_callbacks const *clbk, void *user, int *x, int *y, int *comp, int req_comp) +{ + stbi__context s; + stbi__start_callbacks(&s, (stbi_io_callbacks *) clbk, user); + return stbi__load_and_postprocess_8bit(&s,x,y,comp,req_comp); +} + +#ifndef STBI_NO_GIF +STBIDEF stbi_uc *stbi_load_gif_from_memory(stbi_uc const *buffer, int len, int **delays, int *x, int *y, int *z, int *comp, int req_comp) +{ + unsigned char *result; + stbi__context s; + stbi__start_mem(&s,buffer,len); + + result = (unsigned char*) stbi__load_gif_main(&s, delays, x, y, z, comp, req_comp); + if (stbi__vertically_flip_on_load) { + stbi__vertical_flip_slices( result, *x, *y, *z, *comp ); + } + + return result; +} +#endif + +#ifndef STBI_NO_LINEAR +static float *stbi__loadf_main(stbi__context *s, int *x, int *y, int *comp, int req_comp) +{ + unsigned char *data; + #ifndef STBI_NO_HDR + if (stbi__hdr_test(s)) { + stbi__result_info ri; + float *hdr_data = stbi__hdr_load(s,x,y,comp,req_comp, &ri); + if (hdr_data) + stbi__float_postprocess(hdr_data,x,y,comp,req_comp); + return hdr_data; + } + #endif + data = stbi__load_and_postprocess_8bit(s, x, y, comp, req_comp); + if (data) + return stbi__ldr_to_hdr(data, *x, *y, req_comp ? req_comp : *comp); + return stbi__errpf("unknown image type", "Image not of any known type, or corrupt"); +} + +STBIDEF float *stbi_loadf_from_memory(stbi_uc const *buffer, int len, int *x, int *y, int *comp, int req_comp) +{ + stbi__context s; + stbi__start_mem(&s,buffer,len); + return stbi__loadf_main(&s,x,y,comp,req_comp); +} + +STBIDEF float *stbi_loadf_from_callbacks(stbi_io_callbacks const *clbk, void *user, int *x, int *y, int *comp, int req_comp) +{ + stbi__context s; + stbi__start_callbacks(&s, (stbi_io_callbacks *) clbk, user); + return stbi__loadf_main(&s,x,y,comp,req_comp); +} + +#ifndef STBI_NO_STDIO +STBIDEF float *stbi_loadf(char const *filename, int *x, int *y, int *comp, int req_comp) +{ + float *result; + FILE *f = stbi__fopen(filename, "rb"); + if (!f) return stbi__errpf("can't fopen", "Unable to open file"); + result = stbi_loadf_from_file(f,x,y,comp,req_comp); + fclose(f); + return result; +} + +STBIDEF float *stbi_loadf_from_file(FILE *f, int *x, int *y, int *comp, int req_comp) +{ + stbi__context s; + stbi__start_file(&s,f); + return stbi__loadf_main(&s,x,y,comp,req_comp); +} +#endif // !STBI_NO_STDIO + +#endif // !STBI_NO_LINEAR + +// these is-hdr-or-not is defined independent of whether STBI_NO_LINEAR is +// defined, for API simplicity; if STBI_NO_LINEAR is defined, it always +// reports false! + +STBIDEF int stbi_is_hdr_from_memory(stbi_uc const *buffer, int len) +{ + #ifndef STBI_NO_HDR + stbi__context s; + stbi__start_mem(&s,buffer,len); + return stbi__hdr_test(&s); + #else + STBI_NOTUSED(buffer); + STBI_NOTUSED(len); + return 0; + #endif +} + +#ifndef STBI_NO_STDIO +STBIDEF int stbi_is_hdr (char const *filename) +{ + FILE *f = stbi__fopen(filename, "rb"); + int result=0; + if (f) { + result = stbi_is_hdr_from_file(f); + fclose(f); + } + return result; +} + +STBIDEF int stbi_is_hdr_from_file(FILE *f) +{ + #ifndef STBI_NO_HDR + long pos = ftell(f); + int res; + stbi__context s; + stbi__start_file(&s,f); + res = stbi__hdr_test(&s); + fseek(f, pos, SEEK_SET); + return res; + #else + STBI_NOTUSED(f); + return 0; + #endif +} +#endif // !STBI_NO_STDIO + +STBIDEF int stbi_is_hdr_from_callbacks(stbi_io_callbacks const *clbk, void *user) +{ + #ifndef STBI_NO_HDR + stbi__context s; + stbi__start_callbacks(&s, (stbi_io_callbacks *) clbk, user); + return stbi__hdr_test(&s); + #else + STBI_NOTUSED(clbk); + STBI_NOTUSED(user); + return 0; + #endif +} + +#ifndef STBI_NO_LINEAR +static float stbi__l2h_gamma=2.2f, stbi__l2h_scale=1.0f; + +STBIDEF void stbi_ldr_to_hdr_gamma(float gamma) { stbi__l2h_gamma = gamma; } +STBIDEF void stbi_ldr_to_hdr_scale(float scale) { stbi__l2h_scale = scale; } +#endif + +static float stbi__h2l_gamma_i=1.0f/2.2f, stbi__h2l_scale_i=1.0f; + +STBIDEF void stbi_hdr_to_ldr_gamma(float gamma) { stbi__h2l_gamma_i = 1/gamma; } +STBIDEF void stbi_hdr_to_ldr_scale(float scale) { stbi__h2l_scale_i = 1/scale; } + + +////////////////////////////////////////////////////////////////////////////// +// +// Common code used by all image loaders +// + +enum +{ + STBI__SCAN_load=0, + STBI__SCAN_type, + STBI__SCAN_header +}; + +static void stbi__refill_buffer(stbi__context *s) +{ + int n = (s->io.read)(s->io_user_data,(char*)s->buffer_start,s->buflen); + s->callback_already_read += (int) (s->img_buffer - s->img_buffer_original); + if (n == 0) { + // at end of file, treat same as if from memory, but need to handle case + // where s->img_buffer isn't pointing to safe memory, e.g. 0-byte file + s->read_from_callbacks = 0; + s->img_buffer = s->buffer_start; + s->img_buffer_end = s->buffer_start+1; + *s->img_buffer = 0; + } else { + s->img_buffer = s->buffer_start; + s->img_buffer_end = s->buffer_start + n; + } +} + +stbi_inline static stbi_uc stbi__get8(stbi__context *s) +{ + if (s->img_buffer < s->img_buffer_end) + return *s->img_buffer++; + if (s->read_from_callbacks) { + stbi__refill_buffer(s); + return *s->img_buffer++; + } + return 0; +} + +#if defined(STBI_NO_JPEG) && defined(STBI_NO_HDR) && defined(STBI_NO_PIC) && defined(STBI_NO_PNM) +// nothing +#else +stbi_inline static int stbi__at_eof(stbi__context *s) +{ + if (s->io.read) { + if (!(s->io.eof)(s->io_user_data)) return 0; + // if feof() is true, check if buffer = end + // special case: we've only got the special 0 character at the end + if (s->read_from_callbacks == 0) return 1; + } + + return s->img_buffer >= s->img_buffer_end; +} +#endif + +#if defined(STBI_NO_JPEG) && defined(STBI_NO_PNG) && defined(STBI_NO_BMP) && defined(STBI_NO_PSD) && defined(STBI_NO_TGA) && defined(STBI_NO_GIF) && defined(STBI_NO_PIC) +// nothing +#else +static void stbi__skip(stbi__context *s, int n) +{ + if (n == 0) return; // already there! + if (n < 0) { + s->img_buffer = s->img_buffer_end; + return; + } + if (s->io.read) { + int blen = (int) (s->img_buffer_end - s->img_buffer); + if (blen < n) { + s->img_buffer = s->img_buffer_end; + (s->io.skip)(s->io_user_data, n - blen); + return; + } + } + s->img_buffer += n; +} +#endif + +#if defined(STBI_NO_PNG) && defined(STBI_NO_TGA) && defined(STBI_NO_HDR) && defined(STBI_NO_PNM) +// nothing +#else +static int stbi__getn(stbi__context *s, stbi_uc *buffer, int n) +{ + if (s->io.read) { + int blen = (int) (s->img_buffer_end - s->img_buffer); + if (blen < n) { + int res, count; + + memcpy(buffer, s->img_buffer, blen); + + count = (s->io.read)(s->io_user_data, (char*) buffer + blen, n - blen); + res = (count == (n-blen)); + s->img_buffer = s->img_buffer_end; + return res; + } + } + + if (s->img_buffer+n <= s->img_buffer_end) { + memcpy(buffer, s->img_buffer, n); + s->img_buffer += n; + return 1; + } else + return 0; +} +#endif + +#if defined(STBI_NO_JPEG) && defined(STBI_NO_PNG) && defined(STBI_NO_PSD) && defined(STBI_NO_PIC) +// nothing +#else +static int stbi__get16be(stbi__context *s) +{ + int z = stbi__get8(s); + return (z << 8) + stbi__get8(s); +} +#endif + +#if defined(STBI_NO_PNG) && defined(STBI_NO_PSD) && defined(STBI_NO_PIC) +// nothing +#else +static stbi__uint32 stbi__get32be(stbi__context *s) +{ + stbi__uint32 z = stbi__get16be(s); + return (z << 16) + stbi__get16be(s); +} +#endif + +#if defined(STBI_NO_BMP) && defined(STBI_NO_TGA) && defined(STBI_NO_GIF) +// nothing +#else +static int stbi__get16le(stbi__context *s) +{ + int z = stbi__get8(s); + return z + (stbi__get8(s) << 8); +} +#endif + +#ifndef STBI_NO_BMP +static stbi__uint32 stbi__get32le(stbi__context *s) +{ + stbi__uint32 z = stbi__get16le(s); + z += (stbi__uint32)stbi__get16le(s) << 16; + return z; +} +#endif + +#define STBI__BYTECAST(x) ((stbi_uc) ((x) & 255)) // truncate int to byte without warnings + +#if defined(STBI_NO_JPEG) && defined(STBI_NO_PNG) && defined(STBI_NO_BMP) && defined(STBI_NO_PSD) && defined(STBI_NO_TGA) && defined(STBI_NO_GIF) && defined(STBI_NO_PIC) && defined(STBI_NO_PNM) +// nothing +#else +////////////////////////////////////////////////////////////////////////////// +// +// generic converter from built-in img_n to req_comp +// individual types do this automatically as much as possible (e.g. jpeg +// does all cases internally since it needs to colorspace convert anyway, +// and it never has alpha, so very few cases ). png can automatically +// interleave an alpha=255 channel, but falls back to this for other cases +// +// assume data buffer is malloced, so malloc a new one and free that one +// only failure mode is malloc failing + +static stbi_uc stbi__compute_y(int r, int g, int b) +{ + return (stbi_uc) (((r*77) + (g*150) + (29*b)) >> 8); +} +#endif + +#if defined(STBI_NO_PNG) && defined(STBI_NO_BMP) && defined(STBI_NO_PSD) && defined(STBI_NO_TGA) && defined(STBI_NO_GIF) && defined(STBI_NO_PIC) && defined(STBI_NO_PNM) +// nothing +#else +static unsigned char *stbi__convert_format(unsigned char *data, int img_n, int req_comp, unsigned int x, unsigned int y) +{ + int i,j; + unsigned char *good; + + if (req_comp == img_n) return data; + STBI_ASSERT(req_comp >= 1 && req_comp <= 4); + + good = (unsigned char *) stbi__malloc_mad3(req_comp, x, y, 0); + if (good == NULL) { + STBI_FREE(data); + return stbi__errpuc("outofmem", "Out of memory"); + } + + for (j=0; j < (int) y; ++j) { + unsigned char *src = data + j * x * img_n ; + unsigned char *dest = good + j * x * req_comp; + + #define STBI__COMBO(a,b) ((a)*8+(b)) + #define STBI__CASE(a,b) case STBI__COMBO(a,b): for(i=x-1; i >= 0; --i, src += a, dest += b) + // convert source image with img_n components to one with req_comp components; + // avoid switch per pixel, so use switch per scanline and massive macros + switch (STBI__COMBO(img_n, req_comp)) { + STBI__CASE(1,2) { dest[0]=src[0]; dest[1]=255; } break; + STBI__CASE(1,3) { dest[0]=dest[1]=dest[2]=src[0]; } break; + STBI__CASE(1,4) { dest[0]=dest[1]=dest[2]=src[0]; dest[3]=255; } break; + STBI__CASE(2,1) { dest[0]=src[0]; } break; + STBI__CASE(2,3) { dest[0]=dest[1]=dest[2]=src[0]; } break; + STBI__CASE(2,4) { dest[0]=dest[1]=dest[2]=src[0]; dest[3]=src[1]; } break; + STBI__CASE(3,4) { dest[0]=src[0];dest[1]=src[1];dest[2]=src[2];dest[3]=255; } break; + STBI__CASE(3,1) { dest[0]=stbi__compute_y(src[0],src[1],src[2]); } break; + STBI__CASE(3,2) { dest[0]=stbi__compute_y(src[0],src[1],src[2]); dest[1] = 255; } break; + STBI__CASE(4,1) { dest[0]=stbi__compute_y(src[0],src[1],src[2]); } break; + STBI__CASE(4,2) { dest[0]=stbi__compute_y(src[0],src[1],src[2]); dest[1] = src[3]; } break; + STBI__CASE(4,3) { dest[0]=src[0];dest[1]=src[1];dest[2]=src[2]; } break; + default: STBI_ASSERT(0); STBI_FREE(data); STBI_FREE(good); return stbi__errpuc("unsupported", "Unsupported format conversion"); + } + #undef STBI__CASE + } + + STBI_FREE(data); + return good; +} +#endif + +#if defined(STBI_NO_PNG) && defined(STBI_NO_PSD) +// nothing +#else +static stbi__uint16 stbi__compute_y_16(int r, int g, int b) +{ + return (stbi__uint16) (((r*77) + (g*150) + (29*b)) >> 8); +} +#endif + +#if defined(STBI_NO_PNG) && defined(STBI_NO_PSD) +// nothing +#else +static stbi__uint16 *stbi__convert_format16(stbi__uint16 *data, int img_n, int req_comp, unsigned int x, unsigned int y) +{ + int i,j; + stbi__uint16 *good; + + if (req_comp == img_n) return data; + STBI_ASSERT(req_comp >= 1 && req_comp <= 4); + + good = (stbi__uint16 *) stbi__malloc(req_comp * x * y * 2); + if (good == NULL) { + STBI_FREE(data); + return (stbi__uint16 *) stbi__errpuc("outofmem", "Out of memory"); + } + + for (j=0; j < (int) y; ++j) { + stbi__uint16 *src = data + j * x * img_n ; + stbi__uint16 *dest = good + j * x * req_comp; + + #define STBI__COMBO(a,b) ((a)*8+(b)) + #define STBI__CASE(a,b) case STBI__COMBO(a,b): for(i=x-1; i >= 0; --i, src += a, dest += b) + // convert source image with img_n components to one with req_comp components; + // avoid switch per pixel, so use switch per scanline and massive macros + switch (STBI__COMBO(img_n, req_comp)) { + STBI__CASE(1,2) { dest[0]=src[0]; dest[1]=0xffff; } break; + STBI__CASE(1,3) { dest[0]=dest[1]=dest[2]=src[0]; } break; + STBI__CASE(1,4) { dest[0]=dest[1]=dest[2]=src[0]; dest[3]=0xffff; } break; + STBI__CASE(2,1) { dest[0]=src[0]; } break; + STBI__CASE(2,3) { dest[0]=dest[1]=dest[2]=src[0]; } break; + STBI__CASE(2,4) { dest[0]=dest[1]=dest[2]=src[0]; dest[3]=src[1]; } break; + STBI__CASE(3,4) { dest[0]=src[0];dest[1]=src[1];dest[2]=src[2];dest[3]=0xffff; } break; + STBI__CASE(3,1) { dest[0]=stbi__compute_y_16(src[0],src[1],src[2]); } break; + STBI__CASE(3,2) { dest[0]=stbi__compute_y_16(src[0],src[1],src[2]); dest[1] = 0xffff; } break; + STBI__CASE(4,1) { dest[0]=stbi__compute_y_16(src[0],src[1],src[2]); } break; + STBI__CASE(4,2) { dest[0]=stbi__compute_y_16(src[0],src[1],src[2]); dest[1] = src[3]; } break; + STBI__CASE(4,3) { dest[0]=src[0];dest[1]=src[1];dest[2]=src[2]; } break; + default: STBI_ASSERT(0); STBI_FREE(data); STBI_FREE(good); return (stbi__uint16*) stbi__errpuc("unsupported", "Unsupported format conversion"); + } + #undef STBI__CASE + } + + STBI_FREE(data); + return good; +} +#endif + +#ifndef STBI_NO_LINEAR +static float *stbi__ldr_to_hdr(stbi_uc *data, int x, int y, int comp) +{ + int i,k,n; + float *output; + if (!data) return NULL; + output = (float *) stbi__malloc_mad4(x, y, comp, sizeof(float), 0); + if (output == NULL) { STBI_FREE(data); return stbi__errpf("outofmem", "Out of memory"); } + // compute number of non-alpha components + if (comp & 1) n = comp; else n = comp-1; + for (i=0; i < x*y; ++i) { + for (k=0; k < n; ++k) { + output[i*comp + k] = (float) (pow(data[i*comp+k]/255.0f, stbi__l2h_gamma) * stbi__l2h_scale); + } + } + if (n < comp) { + for (i=0; i < x*y; ++i) { + output[i*comp + n] = data[i*comp + n]/255.0f; + } + } + STBI_FREE(data); + return output; +} +#endif + +#ifndef STBI_NO_HDR +#define stbi__float2int(x) ((int) (x)) +static stbi_uc *stbi__hdr_to_ldr(float *data, int x, int y, int comp) +{ + int i,k,n; + stbi_uc *output; + if (!data) return NULL; + output = (stbi_uc *) stbi__malloc_mad3(x, y, comp, 0); + if (output == NULL) { STBI_FREE(data); return stbi__errpuc("outofmem", "Out of memory"); } + // compute number of non-alpha components + if (comp & 1) n = comp; else n = comp-1; + for (i=0; i < x*y; ++i) { + for (k=0; k < n; ++k) { + float z = (float) pow(data[i*comp+k]*stbi__h2l_scale_i, stbi__h2l_gamma_i) * 255 + 0.5f; + if (z < 0) z = 0; + if (z > 255) z = 255; + output[i*comp + k] = (stbi_uc) stbi__float2int(z); + } + if (k < comp) { + float z = data[i*comp+k] * 255 + 0.5f; + if (z < 0) z = 0; + if (z > 255) z = 255; + output[i*comp + k] = (stbi_uc) stbi__float2int(z); + } + } + STBI_FREE(data); + return output; +} +#endif + +////////////////////////////////////////////////////////////////////////////// +// +// "baseline" JPEG/JFIF decoder +// +// simple implementation +// - doesn't support delayed output of y-dimension +// - simple interface (only one output format: 8-bit interleaved RGB) +// - doesn't try to recover corrupt jpegs +// - doesn't allow partial loading, loading multiple at once +// - still fast on x86 (copying globals into locals doesn't help x86) +// - allocates lots of intermediate memory (full size of all components) +// - non-interleaved case requires this anyway +// - allows good upsampling (see next) +// high-quality +// - upsampled channels are bilinearly interpolated, even across blocks +// - quality integer IDCT derived from IJG's 'slow' +// performance +// - fast huffman; reasonable integer IDCT +// - some SIMD kernels for common paths on targets with SSE2/NEON +// - uses a lot of intermediate memory, could cache poorly + +#ifndef STBI_NO_JPEG + +// huffman decoding acceleration +#define FAST_BITS 9 // larger handles more cases; smaller stomps less cache + +typedef struct +{ + stbi_uc fast[1 << FAST_BITS]; + // weirdly, repacking this into AoS is a 10% speed loss, instead of a win + stbi__uint16 code[256]; + stbi_uc values[256]; + stbi_uc size[257]; + unsigned int maxcode[18]; + int delta[17]; // old 'firstsymbol' - old 'firstcode' +} stbi__huffman; + +typedef struct +{ + stbi__context *s; + stbi__huffman huff_dc[4]; + stbi__huffman huff_ac[4]; + stbi__uint16 dequant[4][64]; + stbi__int16 fast_ac[4][1 << FAST_BITS]; + +// sizes for components, interleaved MCUs + int img_h_max, img_v_max; + int img_mcu_x, img_mcu_y; + int img_mcu_w, img_mcu_h; + +// definition of jpeg image component + struct + { + int id; + int h,v; + int tq; + int hd,ha; + int dc_pred; + + int x,y,w2,h2; + stbi_uc *data; + void *raw_data, *raw_coeff; + stbi_uc *linebuf; + short *coeff; // progressive only + int coeff_w, coeff_h; // number of 8x8 coefficient blocks + } img_comp[4]; + + stbi__uint32 code_buffer; // jpeg entropy-coded buffer + int code_bits; // number of valid bits + unsigned char marker; // marker seen while filling entropy buffer + int nomore; // flag if we saw a marker so must stop + + int progressive; + int spec_start; + int spec_end; + int succ_high; + int succ_low; + int eob_run; + int jfif; + int app14_color_transform; // Adobe APP14 tag + int rgb; + + int scan_n, order[4]; + int restart_interval, todo; + +// kernels + void (*idct_block_kernel)(stbi_uc *out, int out_stride, short data[64]); + void (*YCbCr_to_RGB_kernel)(stbi_uc *out, const stbi_uc *y, const stbi_uc *pcb, const stbi_uc *pcr, int count, int step); + stbi_uc *(*resample_row_hv_2_kernel)(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w, int hs); +} stbi__jpeg; + +static int stbi__build_huffman(stbi__huffman *h, int *count) +{ + int i,j,k=0; + unsigned int code; + // build size list for each symbol (from JPEG spec) + for (i=0; i < 16; ++i) { + for (j=0; j < count[i]; ++j) { + h->size[k++] = (stbi_uc) (i+1); + if(k >= 257) return stbi__err("bad size list","Corrupt JPEG"); + } + } + h->size[k] = 0; + + // compute actual symbols (from jpeg spec) + code = 0; + k = 0; + for(j=1; j <= 16; ++j) { + // compute delta to add to code to compute symbol id + h->delta[j] = k - code; + if (h->size[k] == j) { + while (h->size[k] == j) + h->code[k++] = (stbi__uint16) (code++); + if (code-1 >= (1u << j)) return stbi__err("bad code lengths","Corrupt JPEG"); + } + // compute largest code + 1 for this size, preshifted as needed later + h->maxcode[j] = code << (16-j); + code <<= 1; + } + h->maxcode[j] = 0xffffffff; + + // build non-spec acceleration table; 255 is flag for not-accelerated + memset(h->fast, 255, 1 << FAST_BITS); + for (i=0; i < k; ++i) { + int s = h->size[i]; + if (s <= FAST_BITS) { + int c = h->code[i] << (FAST_BITS-s); + int m = 1 << (FAST_BITS-s); + for (j=0; j < m; ++j) { + h->fast[c+j] = (stbi_uc) i; + } + } + } + return 1; +} + +// build a table that decodes both magnitude and value of small ACs in +// one go. +static void stbi__build_fast_ac(stbi__int16 *fast_ac, stbi__huffman *h) +{ + int i; + for (i=0; i < (1 << FAST_BITS); ++i) { + stbi_uc fast = h->fast[i]; + fast_ac[i] = 0; + if (fast < 255) { + int rs = h->values[fast]; + int run = (rs >> 4) & 15; + int magbits = rs & 15; + int len = h->size[fast]; + + if (magbits && len + magbits <= FAST_BITS) { + // magnitude code followed by receive_extend code + int k = ((i << len) & ((1 << FAST_BITS) - 1)) >> (FAST_BITS - magbits); + int m = 1 << (magbits - 1); + if (k < m) k += (~0U << magbits) + 1; + // if the result is small enough, we can fit it in fast_ac table + if (k >= -128 && k <= 127) + fast_ac[i] = (stbi__int16) ((k * 256) + (run * 16) + (len + magbits)); + } + } + } +} + +static void stbi__grow_buffer_unsafe(stbi__jpeg *j) +{ + do { + unsigned int b = j->nomore ? 0 : stbi__get8(j->s); + if (b == 0xff) { + int c = stbi__get8(j->s); + while (c == 0xff) c = stbi__get8(j->s); // consume fill bytes + if (c != 0) { + j->marker = (unsigned char) c; + j->nomore = 1; + return; + } + } + j->code_buffer |= b << (24 - j->code_bits); + j->code_bits += 8; + } while (j->code_bits <= 24); +} + +// (1 << n) - 1 +static const stbi__uint32 stbi__bmask[17]={0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535}; + +// decode a jpeg huffman value from the bitstream +stbi_inline static int stbi__jpeg_huff_decode(stbi__jpeg *j, stbi__huffman *h) +{ + unsigned int temp; + int c,k; + + if (j->code_bits < 16) stbi__grow_buffer_unsafe(j); + + // look at the top FAST_BITS and determine what symbol ID it is, + // if the code is <= FAST_BITS + c = (j->code_buffer >> (32 - FAST_BITS)) & ((1 << FAST_BITS)-1); + k = h->fast[c]; + if (k < 255) { + int s = h->size[k]; + if (s > j->code_bits) + return -1; + j->code_buffer <<= s; + j->code_bits -= s; + return h->values[k]; + } + + // naive test is to shift the code_buffer down so k bits are + // valid, then test against maxcode. To speed this up, we've + // preshifted maxcode left so that it has (16-k) 0s at the + // end; in other words, regardless of the number of bits, it + // wants to be compared against something shifted to have 16; + // that way we don't need to shift inside the loop. + temp = j->code_buffer >> 16; + for (k=FAST_BITS+1 ; ; ++k) + if (temp < h->maxcode[k]) + break; + if (k == 17) { + // error! code not found + j->code_bits -= 16; + return -1; + } + + if (k > j->code_bits) + return -1; + + // convert the huffman code to the symbol id + c = ((j->code_buffer >> (32 - k)) & stbi__bmask[k]) + h->delta[k]; + if(c < 0 || c >= 256) // symbol id out of bounds! + return -1; + STBI_ASSERT((((j->code_buffer) >> (32 - h->size[c])) & stbi__bmask[h->size[c]]) == h->code[c]); + + // convert the id to a symbol + j->code_bits -= k; + j->code_buffer <<= k; + return h->values[c]; +} + +// bias[n] = (-1<code_bits < n) stbi__grow_buffer_unsafe(j); + if (j->code_bits < n) return 0; // ran out of bits from stream, return 0s intead of continuing + + sgn = j->code_buffer >> 31; // sign bit always in MSB; 0 if MSB clear (positive), 1 if MSB set (negative) + k = stbi_lrot(j->code_buffer, n); + j->code_buffer = k & ~stbi__bmask[n]; + k &= stbi__bmask[n]; + j->code_bits -= n; + return k + (stbi__jbias[n] & (sgn - 1)); +} + +// get some unsigned bits +stbi_inline static int stbi__jpeg_get_bits(stbi__jpeg *j, int n) +{ + unsigned int k; + if (j->code_bits < n) stbi__grow_buffer_unsafe(j); + if (j->code_bits < n) return 0; // ran out of bits from stream, return 0s intead of continuing + k = stbi_lrot(j->code_buffer, n); + j->code_buffer = k & ~stbi__bmask[n]; + k &= stbi__bmask[n]; + j->code_bits -= n; + return k; +} + +stbi_inline static int stbi__jpeg_get_bit(stbi__jpeg *j) +{ + unsigned int k; + if (j->code_bits < 1) stbi__grow_buffer_unsafe(j); + if (j->code_bits < 1) return 0; // ran out of bits from stream, return 0s intead of continuing + k = j->code_buffer; + j->code_buffer <<= 1; + --j->code_bits; + return k & 0x80000000; +} + +// given a value that's at position X in the zigzag stream, +// where does it appear in the 8x8 matrix coded as row-major? +static const stbi_uc stbi__jpeg_dezigzag[64+15] = +{ + 0, 1, 8, 16, 9, 2, 3, 10, + 17, 24, 32, 25, 18, 11, 4, 5, + 12, 19, 26, 33, 40, 48, 41, 34, + 27, 20, 13, 6, 7, 14, 21, 28, + 35, 42, 49, 56, 57, 50, 43, 36, + 29, 22, 15, 23, 30, 37, 44, 51, + 58, 59, 52, 45, 38, 31, 39, 46, + 53, 60, 61, 54, 47, 55, 62, 63, + // let corrupt input sample past end + 63, 63, 63, 63, 63, 63, 63, 63, + 63, 63, 63, 63, 63, 63, 63 +}; + +// decode one 64-entry block-- +static int stbi__jpeg_decode_block(stbi__jpeg *j, short data[64], stbi__huffman *hdc, stbi__huffman *hac, stbi__int16 *fac, int b, stbi__uint16 *dequant) +{ + int diff,dc,k; + int t; + + if (j->code_bits < 16) stbi__grow_buffer_unsafe(j); + t = stbi__jpeg_huff_decode(j, hdc); + if (t < 0 || t > 15) return stbi__err("bad huffman code","Corrupt JPEG"); + + // 0 all the ac values now so we can do it 32-bits at a time + memset(data,0,64*sizeof(data[0])); + + diff = t ? stbi__extend_receive(j, t) : 0; + if (!stbi__addints_valid(j->img_comp[b].dc_pred, diff)) return stbi__err("bad delta","Corrupt JPEG"); + dc = j->img_comp[b].dc_pred + diff; + j->img_comp[b].dc_pred = dc; + if (!stbi__mul2shorts_valid(dc, dequant[0])) return stbi__err("can't merge dc and ac", "Corrupt JPEG"); + data[0] = (short) (dc * dequant[0]); + + // decode AC components, see JPEG spec + k = 1; + do { + unsigned int zig; + int c,r,s; + if (j->code_bits < 16) stbi__grow_buffer_unsafe(j); + c = (j->code_buffer >> (32 - FAST_BITS)) & ((1 << FAST_BITS)-1); + r = fac[c]; + if (r) { // fast-AC path + k += (r >> 4) & 15; // run + s = r & 15; // combined length + if (s > j->code_bits) return stbi__err("bad huffman code", "Combined length longer than code bits available"); + j->code_buffer <<= s; + j->code_bits -= s; + // decode into unzigzag'd location + zig = stbi__jpeg_dezigzag[k++]; + data[zig] = (short) ((r >> 8) * dequant[zig]); + } else { + int rs = stbi__jpeg_huff_decode(j, hac); + if (rs < 0) return stbi__err("bad huffman code","Corrupt JPEG"); + s = rs & 15; + r = rs >> 4; + if (s == 0) { + if (rs != 0xf0) break; // end block + k += 16; + } else { + k += r; + // decode into unzigzag'd location + zig = stbi__jpeg_dezigzag[k++]; + data[zig] = (short) (stbi__extend_receive(j,s) * dequant[zig]); + } + } + } while (k < 64); + return 1; +} + +static int stbi__jpeg_decode_block_prog_dc(stbi__jpeg *j, short data[64], stbi__huffman *hdc, int b) +{ + int diff,dc; + int t; + if (j->spec_end != 0) return stbi__err("can't merge dc and ac", "Corrupt JPEG"); + + if (j->code_bits < 16) stbi__grow_buffer_unsafe(j); + + if (j->succ_high == 0) { + // first scan for DC coefficient, must be first + memset(data,0,64*sizeof(data[0])); // 0 all the ac values now + t = stbi__jpeg_huff_decode(j, hdc); + if (t < 0 || t > 15) return stbi__err("can't merge dc and ac", "Corrupt JPEG"); + diff = t ? stbi__extend_receive(j, t) : 0; + + if (!stbi__addints_valid(j->img_comp[b].dc_pred, diff)) return stbi__err("bad delta", "Corrupt JPEG"); + dc = j->img_comp[b].dc_pred + diff; + j->img_comp[b].dc_pred = dc; + if (!stbi__mul2shorts_valid(dc, 1 << j->succ_low)) return stbi__err("can't merge dc and ac", "Corrupt JPEG"); + data[0] = (short) (dc * (1 << j->succ_low)); + } else { + // refinement scan for DC coefficient + if (stbi__jpeg_get_bit(j)) + data[0] += (short) (1 << j->succ_low); + } + return 1; +} + +// @OPTIMIZE: store non-zigzagged during the decode passes, +// and only de-zigzag when dequantizing +static int stbi__jpeg_decode_block_prog_ac(stbi__jpeg *j, short data[64], stbi__huffman *hac, stbi__int16 *fac) +{ + int k; + if (j->spec_start == 0) return stbi__err("can't merge dc and ac", "Corrupt JPEG"); + + if (j->succ_high == 0) { + int shift = j->succ_low; + + if (j->eob_run) { + --j->eob_run; + return 1; + } + + k = j->spec_start; + do { + unsigned int zig; + int c,r,s; + if (j->code_bits < 16) stbi__grow_buffer_unsafe(j); + c = (j->code_buffer >> (32 - FAST_BITS)) & ((1 << FAST_BITS)-1); + r = fac[c]; + if (r) { // fast-AC path + k += (r >> 4) & 15; // run + s = r & 15; // combined length + if (s > j->code_bits) return stbi__err("bad huffman code", "Combined length longer than code bits available"); + j->code_buffer <<= s; + j->code_bits -= s; + zig = stbi__jpeg_dezigzag[k++]; + data[zig] = (short) ((r >> 8) * (1 << shift)); + } else { + int rs = stbi__jpeg_huff_decode(j, hac); + if (rs < 0) return stbi__err("bad huffman code","Corrupt JPEG"); + s = rs & 15; + r = rs >> 4; + if (s == 0) { + if (r < 15) { + j->eob_run = (1 << r); + if (r) + j->eob_run += stbi__jpeg_get_bits(j, r); + --j->eob_run; + break; + } + k += 16; + } else { + k += r; + zig = stbi__jpeg_dezigzag[k++]; + data[zig] = (short) (stbi__extend_receive(j,s) * (1 << shift)); + } + } + } while (k <= j->spec_end); + } else { + // refinement scan for these AC coefficients + + short bit = (short) (1 << j->succ_low); + + if (j->eob_run) { + --j->eob_run; + for (k = j->spec_start; k <= j->spec_end; ++k) { + short *p = &data[stbi__jpeg_dezigzag[k]]; + if (*p != 0) + if (stbi__jpeg_get_bit(j)) + if ((*p & bit)==0) { + if (*p > 0) + *p += bit; + else + *p -= bit; + } + } + } else { + k = j->spec_start; + do { + int r,s; + int rs = stbi__jpeg_huff_decode(j, hac); // @OPTIMIZE see if we can use the fast path here, advance-by-r is so slow, eh + if (rs < 0) return stbi__err("bad huffman code","Corrupt JPEG"); + s = rs & 15; + r = rs >> 4; + if (s == 0) { + if (r < 15) { + j->eob_run = (1 << r) - 1; + if (r) + j->eob_run += stbi__jpeg_get_bits(j, r); + r = 64; // force end of block + } else { + // r=15 s=0 should write 16 0s, so we just do + // a run of 15 0s and then write s (which is 0), + // so we don't have to do anything special here + } + } else { + if (s != 1) return stbi__err("bad huffman code", "Corrupt JPEG"); + // sign bit + if (stbi__jpeg_get_bit(j)) + s = bit; + else + s = -bit; + } + + // advance by r + while (k <= j->spec_end) { + short *p = &data[stbi__jpeg_dezigzag[k++]]; + if (*p != 0) { + if (stbi__jpeg_get_bit(j)) + if ((*p & bit)==0) { + if (*p > 0) + *p += bit; + else + *p -= bit; + } + } else { + if (r == 0) { + *p = (short) s; + break; + } + --r; + } + } + } while (k <= j->spec_end); + } + } + return 1; +} + +// take a -128..127 value and stbi__clamp it and convert to 0..255 +stbi_inline static stbi_uc stbi__clamp(int x) +{ + // trick to use a single test to catch both cases + if ((unsigned int) x > 255) { + if (x < 0) return 0; + if (x > 255) return 255; + } + return (stbi_uc) x; +} + +#define stbi__f2f(x) ((int) (((x) * 4096 + 0.5))) +#define stbi__fsh(x) ((x) * 4096) + +// derived from jidctint -- DCT_ISLOW +#define STBI__IDCT_1D(s0,s1,s2,s3,s4,s5,s6,s7) \ + int t0,t1,t2,t3,p1,p2,p3,p4,p5,x0,x1,x2,x3; \ + p2 = s2; \ + p3 = s6; \ + p1 = (p2+p3) * stbi__f2f(0.5411961f); \ + t2 = p1 + p3*stbi__f2f(-1.847759065f); \ + t3 = p1 + p2*stbi__f2f( 0.765366865f); \ + p2 = s0; \ + p3 = s4; \ + t0 = stbi__fsh(p2+p3); \ + t1 = stbi__fsh(p2-p3); \ + x0 = t0+t3; \ + x3 = t0-t3; \ + x1 = t1+t2; \ + x2 = t1-t2; \ + t0 = s7; \ + t1 = s5; \ + t2 = s3; \ + t3 = s1; \ + p3 = t0+t2; \ + p4 = t1+t3; \ + p1 = t0+t3; \ + p2 = t1+t2; \ + p5 = (p3+p4)*stbi__f2f( 1.175875602f); \ + t0 = t0*stbi__f2f( 0.298631336f); \ + t1 = t1*stbi__f2f( 2.053119869f); \ + t2 = t2*stbi__f2f( 3.072711026f); \ + t3 = t3*stbi__f2f( 1.501321110f); \ + p1 = p5 + p1*stbi__f2f(-0.899976223f); \ + p2 = p5 + p2*stbi__f2f(-2.562915447f); \ + p3 = p3*stbi__f2f(-1.961570560f); \ + p4 = p4*stbi__f2f(-0.390180644f); \ + t3 += p1+p4; \ + t2 += p2+p3; \ + t1 += p2+p4; \ + t0 += p1+p3; + +static void stbi__idct_block(stbi_uc *out, int out_stride, short data[64]) +{ + int i,val[64],*v=val; + stbi_uc *o; + short *d = data; + + // columns + for (i=0; i < 8; ++i,++d, ++v) { + // if all zeroes, shortcut -- this avoids dequantizing 0s and IDCTing + if (d[ 8]==0 && d[16]==0 && d[24]==0 && d[32]==0 + && d[40]==0 && d[48]==0 && d[56]==0) { + // no shortcut 0 seconds + // (1|2|3|4|5|6|7)==0 0 seconds + // all separate -0.047 seconds + // 1 && 2|3 && 4|5 && 6|7: -0.047 seconds + int dcterm = d[0]*4; + v[0] = v[8] = v[16] = v[24] = v[32] = v[40] = v[48] = v[56] = dcterm; + } else { + STBI__IDCT_1D(d[ 0],d[ 8],d[16],d[24],d[32],d[40],d[48],d[56]) + // constants scaled things up by 1<<12; let's bring them back + // down, but keep 2 extra bits of precision + x0 += 512; x1 += 512; x2 += 512; x3 += 512; + v[ 0] = (x0+t3) >> 10; + v[56] = (x0-t3) >> 10; + v[ 8] = (x1+t2) >> 10; + v[48] = (x1-t2) >> 10; + v[16] = (x2+t1) >> 10; + v[40] = (x2-t1) >> 10; + v[24] = (x3+t0) >> 10; + v[32] = (x3-t0) >> 10; + } + } + + for (i=0, v=val, o=out; i < 8; ++i,v+=8,o+=out_stride) { + // no fast case since the first 1D IDCT spread components out + STBI__IDCT_1D(v[0],v[1],v[2],v[3],v[4],v[5],v[6],v[7]) + // constants scaled things up by 1<<12, plus we had 1<<2 from first + // loop, plus horizontal and vertical each scale by sqrt(8) so together + // we've got an extra 1<<3, so 1<<17 total we need to remove. + // so we want to round that, which means adding 0.5 * 1<<17, + // aka 65536. Also, we'll end up with -128 to 127 that we want + // to encode as 0..255 by adding 128, so we'll add that before the shift + x0 += 65536 + (128<<17); + x1 += 65536 + (128<<17); + x2 += 65536 + (128<<17); + x3 += 65536 + (128<<17); + // tried computing the shifts into temps, or'ing the temps to see + // if any were out of range, but that was slower + o[0] = stbi__clamp((x0+t3) >> 17); + o[7] = stbi__clamp((x0-t3) >> 17); + o[1] = stbi__clamp((x1+t2) >> 17); + o[6] = stbi__clamp((x1-t2) >> 17); + o[2] = stbi__clamp((x2+t1) >> 17); + o[5] = stbi__clamp((x2-t1) >> 17); + o[3] = stbi__clamp((x3+t0) >> 17); + o[4] = stbi__clamp((x3-t0) >> 17); + } +} + +#ifdef STBI_SSE2 +// sse2 integer IDCT. not the fastest possible implementation but it +// produces bit-identical results to the generic C version so it's +// fully "transparent". +static void stbi__idct_simd(stbi_uc *out, int out_stride, short data[64]) +{ + // This is constructed to match our regular (generic) integer IDCT exactly. + __m128i row0, row1, row2, row3, row4, row5, row6, row7; + __m128i tmp; + + // dot product constant: even elems=x, odd elems=y + #define dct_const(x,y) _mm_setr_epi16((x),(y),(x),(y),(x),(y),(x),(y)) + + // out(0) = c0[even]*x + c0[odd]*y (c0, x, y 16-bit, out 32-bit) + // out(1) = c1[even]*x + c1[odd]*y + #define dct_rot(out0,out1, x,y,c0,c1) \ + __m128i c0##lo = _mm_unpacklo_epi16((x),(y)); \ + __m128i c0##hi = _mm_unpackhi_epi16((x),(y)); \ + __m128i out0##_l = _mm_madd_epi16(c0##lo, c0); \ + __m128i out0##_h = _mm_madd_epi16(c0##hi, c0); \ + __m128i out1##_l = _mm_madd_epi16(c0##lo, c1); \ + __m128i out1##_h = _mm_madd_epi16(c0##hi, c1) + + // out = in << 12 (in 16-bit, out 32-bit) + #define dct_widen(out, in) \ + __m128i out##_l = _mm_srai_epi32(_mm_unpacklo_epi16(_mm_setzero_si128(), (in)), 4); \ + __m128i out##_h = _mm_srai_epi32(_mm_unpackhi_epi16(_mm_setzero_si128(), (in)), 4) + + // wide add + #define dct_wadd(out, a, b) \ + __m128i out##_l = _mm_add_epi32(a##_l, b##_l); \ + __m128i out##_h = _mm_add_epi32(a##_h, b##_h) + + // wide sub + #define dct_wsub(out, a, b) \ + __m128i out##_l = _mm_sub_epi32(a##_l, b##_l); \ + __m128i out##_h = _mm_sub_epi32(a##_h, b##_h) + + // butterfly a/b, add bias, then shift by "s" and pack + #define dct_bfly32o(out0, out1, a,b,bias,s) \ + { \ + __m128i abiased_l = _mm_add_epi32(a##_l, bias); \ + __m128i abiased_h = _mm_add_epi32(a##_h, bias); \ + dct_wadd(sum, abiased, b); \ + dct_wsub(dif, abiased, b); \ + out0 = _mm_packs_epi32(_mm_srai_epi32(sum_l, s), _mm_srai_epi32(sum_h, s)); \ + out1 = _mm_packs_epi32(_mm_srai_epi32(dif_l, s), _mm_srai_epi32(dif_h, s)); \ + } + + // 8-bit interleave step (for transposes) + #define dct_interleave8(a, b) \ + tmp = a; \ + a = _mm_unpacklo_epi8(a, b); \ + b = _mm_unpackhi_epi8(tmp, b) + + // 16-bit interleave step (for transposes) + #define dct_interleave16(a, b) \ + tmp = a; \ + a = _mm_unpacklo_epi16(a, b); \ + b = _mm_unpackhi_epi16(tmp, b) + + #define dct_pass(bias,shift) \ + { \ + /* even part */ \ + dct_rot(t2e,t3e, row2,row6, rot0_0,rot0_1); \ + __m128i sum04 = _mm_add_epi16(row0, row4); \ + __m128i dif04 = _mm_sub_epi16(row0, row4); \ + dct_widen(t0e, sum04); \ + dct_widen(t1e, dif04); \ + dct_wadd(x0, t0e, t3e); \ + dct_wsub(x3, t0e, t3e); \ + dct_wadd(x1, t1e, t2e); \ + dct_wsub(x2, t1e, t2e); \ + /* odd part */ \ + dct_rot(y0o,y2o, row7,row3, rot2_0,rot2_1); \ + dct_rot(y1o,y3o, row5,row1, rot3_0,rot3_1); \ + __m128i sum17 = _mm_add_epi16(row1, row7); \ + __m128i sum35 = _mm_add_epi16(row3, row5); \ + dct_rot(y4o,y5o, sum17,sum35, rot1_0,rot1_1); \ + dct_wadd(x4, y0o, y4o); \ + dct_wadd(x5, y1o, y5o); \ + dct_wadd(x6, y2o, y5o); \ + dct_wadd(x7, y3o, y4o); \ + dct_bfly32o(row0,row7, x0,x7,bias,shift); \ + dct_bfly32o(row1,row6, x1,x6,bias,shift); \ + dct_bfly32o(row2,row5, x2,x5,bias,shift); \ + dct_bfly32o(row3,row4, x3,x4,bias,shift); \ + } + + __m128i rot0_0 = dct_const(stbi__f2f(0.5411961f), stbi__f2f(0.5411961f) + stbi__f2f(-1.847759065f)); + __m128i rot0_1 = dct_const(stbi__f2f(0.5411961f) + stbi__f2f( 0.765366865f), stbi__f2f(0.5411961f)); + __m128i rot1_0 = dct_const(stbi__f2f(1.175875602f) + stbi__f2f(-0.899976223f), stbi__f2f(1.175875602f)); + __m128i rot1_1 = dct_const(stbi__f2f(1.175875602f), stbi__f2f(1.175875602f) + stbi__f2f(-2.562915447f)); + __m128i rot2_0 = dct_const(stbi__f2f(-1.961570560f) + stbi__f2f( 0.298631336f), stbi__f2f(-1.961570560f)); + __m128i rot2_1 = dct_const(stbi__f2f(-1.961570560f), stbi__f2f(-1.961570560f) + stbi__f2f( 3.072711026f)); + __m128i rot3_0 = dct_const(stbi__f2f(-0.390180644f) + stbi__f2f( 2.053119869f), stbi__f2f(-0.390180644f)); + __m128i rot3_1 = dct_const(stbi__f2f(-0.390180644f), stbi__f2f(-0.390180644f) + stbi__f2f( 1.501321110f)); + + // rounding biases in column/row passes, see stbi__idct_block for explanation. + __m128i bias_0 = _mm_set1_epi32(512); + __m128i bias_1 = _mm_set1_epi32(65536 + (128<<17)); + + // load + row0 = _mm_load_si128((const __m128i *) (data + 0*8)); + row1 = _mm_load_si128((const __m128i *) (data + 1*8)); + row2 = _mm_load_si128((const __m128i *) (data + 2*8)); + row3 = _mm_load_si128((const __m128i *) (data + 3*8)); + row4 = _mm_load_si128((const __m128i *) (data + 4*8)); + row5 = _mm_load_si128((const __m128i *) (data + 5*8)); + row6 = _mm_load_si128((const __m128i *) (data + 6*8)); + row7 = _mm_load_si128((const __m128i *) (data + 7*8)); + + // column pass + dct_pass(bias_0, 10); + + { + // 16bit 8x8 transpose pass 1 + dct_interleave16(row0, row4); + dct_interleave16(row1, row5); + dct_interleave16(row2, row6); + dct_interleave16(row3, row7); + + // transpose pass 2 + dct_interleave16(row0, row2); + dct_interleave16(row1, row3); + dct_interleave16(row4, row6); + dct_interleave16(row5, row7); + + // transpose pass 3 + dct_interleave16(row0, row1); + dct_interleave16(row2, row3); + dct_interleave16(row4, row5); + dct_interleave16(row6, row7); + } + + // row pass + dct_pass(bias_1, 17); + + { + // pack + __m128i p0 = _mm_packus_epi16(row0, row1); // a0a1a2a3...a7b0b1b2b3...b7 + __m128i p1 = _mm_packus_epi16(row2, row3); + __m128i p2 = _mm_packus_epi16(row4, row5); + __m128i p3 = _mm_packus_epi16(row6, row7); + + // 8bit 8x8 transpose pass 1 + dct_interleave8(p0, p2); // a0e0a1e1... + dct_interleave8(p1, p3); // c0g0c1g1... + + // transpose pass 2 + dct_interleave8(p0, p1); // a0c0e0g0... + dct_interleave8(p2, p3); // b0d0f0h0... + + // transpose pass 3 + dct_interleave8(p0, p2); // a0b0c0d0... + dct_interleave8(p1, p3); // a4b4c4d4... + + // store + _mm_storel_epi64((__m128i *) out, p0); out += out_stride; + _mm_storel_epi64((__m128i *) out, _mm_shuffle_epi32(p0, 0x4e)); out += out_stride; + _mm_storel_epi64((__m128i *) out, p2); out += out_stride; + _mm_storel_epi64((__m128i *) out, _mm_shuffle_epi32(p2, 0x4e)); out += out_stride; + _mm_storel_epi64((__m128i *) out, p1); out += out_stride; + _mm_storel_epi64((__m128i *) out, _mm_shuffle_epi32(p1, 0x4e)); out += out_stride; + _mm_storel_epi64((__m128i *) out, p3); out += out_stride; + _mm_storel_epi64((__m128i *) out, _mm_shuffle_epi32(p3, 0x4e)); + } + +#undef dct_const +#undef dct_rot +#undef dct_widen +#undef dct_wadd +#undef dct_wsub +#undef dct_bfly32o +#undef dct_interleave8 +#undef dct_interleave16 +#undef dct_pass +} + +#endif // STBI_SSE2 + +#ifdef STBI_NEON + +// NEON integer IDCT. should produce bit-identical +// results to the generic C version. +static void stbi__idct_simd(stbi_uc *out, int out_stride, short data[64]) +{ + int16x8_t row0, row1, row2, row3, row4, row5, row6, row7; + + int16x4_t rot0_0 = vdup_n_s16(stbi__f2f(0.5411961f)); + int16x4_t rot0_1 = vdup_n_s16(stbi__f2f(-1.847759065f)); + int16x4_t rot0_2 = vdup_n_s16(stbi__f2f( 0.765366865f)); + int16x4_t rot1_0 = vdup_n_s16(stbi__f2f( 1.175875602f)); + int16x4_t rot1_1 = vdup_n_s16(stbi__f2f(-0.899976223f)); + int16x4_t rot1_2 = vdup_n_s16(stbi__f2f(-2.562915447f)); + int16x4_t rot2_0 = vdup_n_s16(stbi__f2f(-1.961570560f)); + int16x4_t rot2_1 = vdup_n_s16(stbi__f2f(-0.390180644f)); + int16x4_t rot3_0 = vdup_n_s16(stbi__f2f( 0.298631336f)); + int16x4_t rot3_1 = vdup_n_s16(stbi__f2f( 2.053119869f)); + int16x4_t rot3_2 = vdup_n_s16(stbi__f2f( 3.072711026f)); + int16x4_t rot3_3 = vdup_n_s16(stbi__f2f( 1.501321110f)); + +#define dct_long_mul(out, inq, coeff) \ + int32x4_t out##_l = vmull_s16(vget_low_s16(inq), coeff); \ + int32x4_t out##_h = vmull_s16(vget_high_s16(inq), coeff) + +#define dct_long_mac(out, acc, inq, coeff) \ + int32x4_t out##_l = vmlal_s16(acc##_l, vget_low_s16(inq), coeff); \ + int32x4_t out##_h = vmlal_s16(acc##_h, vget_high_s16(inq), coeff) + +#define dct_widen(out, inq) \ + int32x4_t out##_l = vshll_n_s16(vget_low_s16(inq), 12); \ + int32x4_t out##_h = vshll_n_s16(vget_high_s16(inq), 12) + +// wide add +#define dct_wadd(out, a, b) \ + int32x4_t out##_l = vaddq_s32(a##_l, b##_l); \ + int32x4_t out##_h = vaddq_s32(a##_h, b##_h) + +// wide sub +#define dct_wsub(out, a, b) \ + int32x4_t out##_l = vsubq_s32(a##_l, b##_l); \ + int32x4_t out##_h = vsubq_s32(a##_h, b##_h) + +// butterfly a/b, then shift using "shiftop" by "s" and pack +#define dct_bfly32o(out0,out1, a,b,shiftop,s) \ + { \ + dct_wadd(sum, a, b); \ + dct_wsub(dif, a, b); \ + out0 = vcombine_s16(shiftop(sum_l, s), shiftop(sum_h, s)); \ + out1 = vcombine_s16(shiftop(dif_l, s), shiftop(dif_h, s)); \ + } + +#define dct_pass(shiftop, shift) \ + { \ + /* even part */ \ + int16x8_t sum26 = vaddq_s16(row2, row6); \ + dct_long_mul(p1e, sum26, rot0_0); \ + dct_long_mac(t2e, p1e, row6, rot0_1); \ + dct_long_mac(t3e, p1e, row2, rot0_2); \ + int16x8_t sum04 = vaddq_s16(row0, row4); \ + int16x8_t dif04 = vsubq_s16(row0, row4); \ + dct_widen(t0e, sum04); \ + dct_widen(t1e, dif04); \ + dct_wadd(x0, t0e, t3e); \ + dct_wsub(x3, t0e, t3e); \ + dct_wadd(x1, t1e, t2e); \ + dct_wsub(x2, t1e, t2e); \ + /* odd part */ \ + int16x8_t sum15 = vaddq_s16(row1, row5); \ + int16x8_t sum17 = vaddq_s16(row1, row7); \ + int16x8_t sum35 = vaddq_s16(row3, row5); \ + int16x8_t sum37 = vaddq_s16(row3, row7); \ + int16x8_t sumodd = vaddq_s16(sum17, sum35); \ + dct_long_mul(p5o, sumodd, rot1_0); \ + dct_long_mac(p1o, p5o, sum17, rot1_1); \ + dct_long_mac(p2o, p5o, sum35, rot1_2); \ + dct_long_mul(p3o, sum37, rot2_0); \ + dct_long_mul(p4o, sum15, rot2_1); \ + dct_wadd(sump13o, p1o, p3o); \ + dct_wadd(sump24o, p2o, p4o); \ + dct_wadd(sump23o, p2o, p3o); \ + dct_wadd(sump14o, p1o, p4o); \ + dct_long_mac(x4, sump13o, row7, rot3_0); \ + dct_long_mac(x5, sump24o, row5, rot3_1); \ + dct_long_mac(x6, sump23o, row3, rot3_2); \ + dct_long_mac(x7, sump14o, row1, rot3_3); \ + dct_bfly32o(row0,row7, x0,x7,shiftop,shift); \ + dct_bfly32o(row1,row6, x1,x6,shiftop,shift); \ + dct_bfly32o(row2,row5, x2,x5,shiftop,shift); \ + dct_bfly32o(row3,row4, x3,x4,shiftop,shift); \ + } + + // load + row0 = vld1q_s16(data + 0*8); + row1 = vld1q_s16(data + 1*8); + row2 = vld1q_s16(data + 2*8); + row3 = vld1q_s16(data + 3*8); + row4 = vld1q_s16(data + 4*8); + row5 = vld1q_s16(data + 5*8); + row6 = vld1q_s16(data + 6*8); + row7 = vld1q_s16(data + 7*8); + + // add DC bias + row0 = vaddq_s16(row0, vsetq_lane_s16(1024, vdupq_n_s16(0), 0)); + + // column pass + dct_pass(vrshrn_n_s32, 10); + + // 16bit 8x8 transpose + { +// these three map to a single VTRN.16, VTRN.32, and VSWP, respectively. +// whether compilers actually get this is another story, sadly. +#define dct_trn16(x, y) { int16x8x2_t t = vtrnq_s16(x, y); x = t.val[0]; y = t.val[1]; } +#define dct_trn32(x, y) { int32x4x2_t t = vtrnq_s32(vreinterpretq_s32_s16(x), vreinterpretq_s32_s16(y)); x = vreinterpretq_s16_s32(t.val[0]); y = vreinterpretq_s16_s32(t.val[1]); } +#define dct_trn64(x, y) { int16x8_t x0 = x; int16x8_t y0 = y; x = vcombine_s16(vget_low_s16(x0), vget_low_s16(y0)); y = vcombine_s16(vget_high_s16(x0), vget_high_s16(y0)); } + + // pass 1 + dct_trn16(row0, row1); // a0b0a2b2a4b4a6b6 + dct_trn16(row2, row3); + dct_trn16(row4, row5); + dct_trn16(row6, row7); + + // pass 2 + dct_trn32(row0, row2); // a0b0c0d0a4b4c4d4 + dct_trn32(row1, row3); + dct_trn32(row4, row6); + dct_trn32(row5, row7); + + // pass 3 + dct_trn64(row0, row4); // a0b0c0d0e0f0g0h0 + dct_trn64(row1, row5); + dct_trn64(row2, row6); + dct_trn64(row3, row7); + +#undef dct_trn16 +#undef dct_trn32 +#undef dct_trn64 + } + + // row pass + // vrshrn_n_s32 only supports shifts up to 16, we need + // 17. so do a non-rounding shift of 16 first then follow + // up with a rounding shift by 1. + dct_pass(vshrn_n_s32, 16); + + { + // pack and round + uint8x8_t p0 = vqrshrun_n_s16(row0, 1); + uint8x8_t p1 = vqrshrun_n_s16(row1, 1); + uint8x8_t p2 = vqrshrun_n_s16(row2, 1); + uint8x8_t p3 = vqrshrun_n_s16(row3, 1); + uint8x8_t p4 = vqrshrun_n_s16(row4, 1); + uint8x8_t p5 = vqrshrun_n_s16(row5, 1); + uint8x8_t p6 = vqrshrun_n_s16(row6, 1); + uint8x8_t p7 = vqrshrun_n_s16(row7, 1); + + // again, these can translate into one instruction, but often don't. +#define dct_trn8_8(x, y) { uint8x8x2_t t = vtrn_u8(x, y); x = t.val[0]; y = t.val[1]; } +#define dct_trn8_16(x, y) { uint16x4x2_t t = vtrn_u16(vreinterpret_u16_u8(x), vreinterpret_u16_u8(y)); x = vreinterpret_u8_u16(t.val[0]); y = vreinterpret_u8_u16(t.val[1]); } +#define dct_trn8_32(x, y) { uint32x2x2_t t = vtrn_u32(vreinterpret_u32_u8(x), vreinterpret_u32_u8(y)); x = vreinterpret_u8_u32(t.val[0]); y = vreinterpret_u8_u32(t.val[1]); } + + // sadly can't use interleaved stores here since we only write + // 8 bytes to each scan line! + + // 8x8 8-bit transpose pass 1 + dct_trn8_8(p0, p1); + dct_trn8_8(p2, p3); + dct_trn8_8(p4, p5); + dct_trn8_8(p6, p7); + + // pass 2 + dct_trn8_16(p0, p2); + dct_trn8_16(p1, p3); + dct_trn8_16(p4, p6); + dct_trn8_16(p5, p7); + + // pass 3 + dct_trn8_32(p0, p4); + dct_trn8_32(p1, p5); + dct_trn8_32(p2, p6); + dct_trn8_32(p3, p7); + + // store + vst1_u8(out, p0); out += out_stride; + vst1_u8(out, p1); out += out_stride; + vst1_u8(out, p2); out += out_stride; + vst1_u8(out, p3); out += out_stride; + vst1_u8(out, p4); out += out_stride; + vst1_u8(out, p5); out += out_stride; + vst1_u8(out, p6); out += out_stride; + vst1_u8(out, p7); + +#undef dct_trn8_8 +#undef dct_trn8_16 +#undef dct_trn8_32 + } + +#undef dct_long_mul +#undef dct_long_mac +#undef dct_widen +#undef dct_wadd +#undef dct_wsub +#undef dct_bfly32o +#undef dct_pass +} + +#endif // STBI_NEON + +#define STBI__MARKER_none 0xff +// if there's a pending marker from the entropy stream, return that +// otherwise, fetch from the stream and get a marker. if there's no +// marker, return 0xff, which is never a valid marker value +static stbi_uc stbi__get_marker(stbi__jpeg *j) +{ + stbi_uc x; + if (j->marker != STBI__MARKER_none) { x = j->marker; j->marker = STBI__MARKER_none; return x; } + x = stbi__get8(j->s); + if (x != 0xff) return STBI__MARKER_none; + while (x == 0xff) + x = stbi__get8(j->s); // consume repeated 0xff fill bytes + return x; +} + +// in each scan, we'll have scan_n components, and the order +// of the components is specified by order[] +#define STBI__RESTART(x) ((x) >= 0xd0 && (x) <= 0xd7) + +// after a restart interval, stbi__jpeg_reset the entropy decoder and +// the dc prediction +static void stbi__jpeg_reset(stbi__jpeg *j) +{ + j->code_bits = 0; + j->code_buffer = 0; + j->nomore = 0; + j->img_comp[0].dc_pred = j->img_comp[1].dc_pred = j->img_comp[2].dc_pred = j->img_comp[3].dc_pred = 0; + j->marker = STBI__MARKER_none; + j->todo = j->restart_interval ? j->restart_interval : 0x7fffffff; + j->eob_run = 0; + // no more than 1<<31 MCUs if no restart_interal? that's plenty safe, + // since we don't even allow 1<<30 pixels +} + +static int stbi__parse_entropy_coded_data(stbi__jpeg *z) +{ + stbi__jpeg_reset(z); + if (!z->progressive) { + if (z->scan_n == 1) { + int i,j; + STBI_SIMD_ALIGN(short, data[64]); + int n = z->order[0]; + // non-interleaved data, we just need to process one block at a time, + // in trivial scanline order + // number of blocks to do just depends on how many actual "pixels" this + // component has, independent of interleaved MCU blocking and such + int w = (z->img_comp[n].x+7) >> 3; + int h = (z->img_comp[n].y+7) >> 3; + for (j=0; j < h; ++j) { + for (i=0; i < w; ++i) { + int ha = z->img_comp[n].ha; + if (!stbi__jpeg_decode_block(z, data, z->huff_dc+z->img_comp[n].hd, z->huff_ac+ha, z->fast_ac[ha], n, z->dequant[z->img_comp[n].tq])) return 0; + z->idct_block_kernel(z->img_comp[n].data+z->img_comp[n].w2*j*8+i*8, z->img_comp[n].w2, data); + // every data block is an MCU, so countdown the restart interval + if (--z->todo <= 0) { + if (z->code_bits < 24) stbi__grow_buffer_unsafe(z); + // if it's NOT a restart, then just bail, so we get corrupt data + // rather than no data + if (!STBI__RESTART(z->marker)) return 1; + stbi__jpeg_reset(z); + } + } + } + return 1; + } else { // interleaved + int i,j,k,x,y; + STBI_SIMD_ALIGN(short, data[64]); + for (j=0; j < z->img_mcu_y; ++j) { + for (i=0; i < z->img_mcu_x; ++i) { + // scan an interleaved mcu... process scan_n components in order + for (k=0; k < z->scan_n; ++k) { + int n = z->order[k]; + // scan out an mcu's worth of this component; that's just determined + // by the basic H and V specified for the component + for (y=0; y < z->img_comp[n].v; ++y) { + for (x=0; x < z->img_comp[n].h; ++x) { + int x2 = (i*z->img_comp[n].h + x)*8; + int y2 = (j*z->img_comp[n].v + y)*8; + int ha = z->img_comp[n].ha; + if (!stbi__jpeg_decode_block(z, data, z->huff_dc+z->img_comp[n].hd, z->huff_ac+ha, z->fast_ac[ha], n, z->dequant[z->img_comp[n].tq])) return 0; + z->idct_block_kernel(z->img_comp[n].data+z->img_comp[n].w2*y2+x2, z->img_comp[n].w2, data); + } + } + } + // after all interleaved components, that's an interleaved MCU, + // so now count down the restart interval + if (--z->todo <= 0) { + if (z->code_bits < 24) stbi__grow_buffer_unsafe(z); + if (!STBI__RESTART(z->marker)) return 1; + stbi__jpeg_reset(z); + } + } + } + return 1; + } + } else { + if (z->scan_n == 1) { + int i,j; + int n = z->order[0]; + // non-interleaved data, we just need to process one block at a time, + // in trivial scanline order + // number of blocks to do just depends on how many actual "pixels" this + // component has, independent of interleaved MCU blocking and such + int w = (z->img_comp[n].x+7) >> 3; + int h = (z->img_comp[n].y+7) >> 3; + for (j=0; j < h; ++j) { + for (i=0; i < w; ++i) { + short *data = z->img_comp[n].coeff + 64 * (i + j * z->img_comp[n].coeff_w); + if (z->spec_start == 0) { + if (!stbi__jpeg_decode_block_prog_dc(z, data, &z->huff_dc[z->img_comp[n].hd], n)) + return 0; + } else { + int ha = z->img_comp[n].ha; + if (!stbi__jpeg_decode_block_prog_ac(z, data, &z->huff_ac[ha], z->fast_ac[ha])) + return 0; + } + // every data block is an MCU, so countdown the restart interval + if (--z->todo <= 0) { + if (z->code_bits < 24) stbi__grow_buffer_unsafe(z); + if (!STBI__RESTART(z->marker)) return 1; + stbi__jpeg_reset(z); + } + } + } + return 1; + } else { // interleaved + int i,j,k,x,y; + for (j=0; j < z->img_mcu_y; ++j) { + for (i=0; i < z->img_mcu_x; ++i) { + // scan an interleaved mcu... process scan_n components in order + for (k=0; k < z->scan_n; ++k) { + int n = z->order[k]; + // scan out an mcu's worth of this component; that's just determined + // by the basic H and V specified for the component + for (y=0; y < z->img_comp[n].v; ++y) { + for (x=0; x < z->img_comp[n].h; ++x) { + int x2 = (i*z->img_comp[n].h + x); + int y2 = (j*z->img_comp[n].v + y); + short *data = z->img_comp[n].coeff + 64 * (x2 + y2 * z->img_comp[n].coeff_w); + if (!stbi__jpeg_decode_block_prog_dc(z, data, &z->huff_dc[z->img_comp[n].hd], n)) + return 0; + } + } + } + // after all interleaved components, that's an interleaved MCU, + // so now count down the restart interval + if (--z->todo <= 0) { + if (z->code_bits < 24) stbi__grow_buffer_unsafe(z); + if (!STBI__RESTART(z->marker)) return 1; + stbi__jpeg_reset(z); + } + } + } + return 1; + } + } +} + +static void stbi__jpeg_dequantize(short *data, stbi__uint16 *dequant) +{ + int i; + for (i=0; i < 64; ++i) + data[i] *= dequant[i]; +} + +static void stbi__jpeg_finish(stbi__jpeg *z) +{ + if (z->progressive) { + // dequantize and idct the data + int i,j,n; + for (n=0; n < z->s->img_n; ++n) { + int w = (z->img_comp[n].x+7) >> 3; + int h = (z->img_comp[n].y+7) >> 3; + for (j=0; j < h; ++j) { + for (i=0; i < w; ++i) { + short *data = z->img_comp[n].coeff + 64 * (i + j * z->img_comp[n].coeff_w); + stbi__jpeg_dequantize(data, z->dequant[z->img_comp[n].tq]); + z->idct_block_kernel(z->img_comp[n].data+z->img_comp[n].w2*j*8+i*8, z->img_comp[n].w2, data); + } + } + } + } +} + +static int stbi__process_marker(stbi__jpeg *z, int m) +{ + int L; + switch (m) { + case STBI__MARKER_none: // no marker found + return stbi__err("expected marker","Corrupt JPEG"); + + case 0xDD: // DRI - specify restart interval + if (stbi__get16be(z->s) != 4) return stbi__err("bad DRI len","Corrupt JPEG"); + z->restart_interval = stbi__get16be(z->s); + return 1; + + case 0xDB: // DQT - define quantization table + L = stbi__get16be(z->s)-2; + while (L > 0) { + int q = stbi__get8(z->s); + int p = q >> 4, sixteen = (p != 0); + int t = q & 15,i; + if (p != 0 && p != 1) return stbi__err("bad DQT type","Corrupt JPEG"); + if (t > 3) return stbi__err("bad DQT table","Corrupt JPEG"); + + for (i=0; i < 64; ++i) + z->dequant[t][stbi__jpeg_dezigzag[i]] = (stbi__uint16)(sixteen ? stbi__get16be(z->s) : stbi__get8(z->s)); + L -= (sixteen ? 129 : 65); + } + return L==0; + + case 0xC4: // DHT - define huffman table + L = stbi__get16be(z->s)-2; + while (L > 0) { + stbi_uc *v; + int sizes[16],i,n=0; + int q = stbi__get8(z->s); + int tc = q >> 4; + int th = q & 15; + if (tc > 1 || th > 3) return stbi__err("bad DHT header","Corrupt JPEG"); + for (i=0; i < 16; ++i) { + sizes[i] = stbi__get8(z->s); + n += sizes[i]; + } + if(n > 256) return stbi__err("bad DHT header","Corrupt JPEG"); // Loop over i < n would write past end of values! + L -= 17; + if (tc == 0) { + if (!stbi__build_huffman(z->huff_dc+th, sizes)) return 0; + v = z->huff_dc[th].values; + } else { + if (!stbi__build_huffman(z->huff_ac+th, sizes)) return 0; + v = z->huff_ac[th].values; + } + for (i=0; i < n; ++i) + v[i] = stbi__get8(z->s); + if (tc != 0) + stbi__build_fast_ac(z->fast_ac[th], z->huff_ac + th); + L -= n; + } + return L==0; + } + + // check for comment block or APP blocks + if ((m >= 0xE0 && m <= 0xEF) || m == 0xFE) { + L = stbi__get16be(z->s); + if (L < 2) { + if (m == 0xFE) + return stbi__err("bad COM len","Corrupt JPEG"); + else + return stbi__err("bad APP len","Corrupt JPEG"); + } + L -= 2; + + if (m == 0xE0 && L >= 5) { // JFIF APP0 segment + static const unsigned char tag[5] = {'J','F','I','F','\0'}; + int ok = 1; + int i; + for (i=0; i < 5; ++i) + if (stbi__get8(z->s) != tag[i]) + ok = 0; + L -= 5; + if (ok) + z->jfif = 1; + } else if (m == 0xEE && L >= 12) { // Adobe APP14 segment + static const unsigned char tag[6] = {'A','d','o','b','e','\0'}; + int ok = 1; + int i; + for (i=0; i < 6; ++i) + if (stbi__get8(z->s) != tag[i]) + ok = 0; + L -= 6; + if (ok) { + stbi__get8(z->s); // version + stbi__get16be(z->s); // flags0 + stbi__get16be(z->s); // flags1 + z->app14_color_transform = stbi__get8(z->s); // color transform + L -= 6; + } + } + + stbi__skip(z->s, L); + return 1; + } + + return stbi__err("unknown marker","Corrupt JPEG"); +} + +// after we see SOS +static int stbi__process_scan_header(stbi__jpeg *z) +{ + int i; + int Ls = stbi__get16be(z->s); + z->scan_n = stbi__get8(z->s); + if (z->scan_n < 1 || z->scan_n > 4 || z->scan_n > (int) z->s->img_n) return stbi__err("bad SOS component count","Corrupt JPEG"); + if (Ls != 6+2*z->scan_n) return stbi__err("bad SOS len","Corrupt JPEG"); + for (i=0; i < z->scan_n; ++i) { + int id = stbi__get8(z->s), which; + int q = stbi__get8(z->s); + for (which = 0; which < z->s->img_n; ++which) + if (z->img_comp[which].id == id) + break; + if (which == z->s->img_n) return 0; // no match + z->img_comp[which].hd = q >> 4; if (z->img_comp[which].hd > 3) return stbi__err("bad DC huff","Corrupt JPEG"); + z->img_comp[which].ha = q & 15; if (z->img_comp[which].ha > 3) return stbi__err("bad AC huff","Corrupt JPEG"); + z->order[i] = which; + } + + { + int aa; + z->spec_start = stbi__get8(z->s); + z->spec_end = stbi__get8(z->s); // should be 63, but might be 0 + aa = stbi__get8(z->s); + z->succ_high = (aa >> 4); + z->succ_low = (aa & 15); + if (z->progressive) { + if (z->spec_start > 63 || z->spec_end > 63 || z->spec_start > z->spec_end || z->succ_high > 13 || z->succ_low > 13) + return stbi__err("bad SOS", "Corrupt JPEG"); + } else { + if (z->spec_start != 0) return stbi__err("bad SOS","Corrupt JPEG"); + if (z->succ_high != 0 || z->succ_low != 0) return stbi__err("bad SOS","Corrupt JPEG"); + z->spec_end = 63; + } + } + + return 1; +} + +static int stbi__free_jpeg_components(stbi__jpeg *z, int ncomp, int why) +{ + int i; + for (i=0; i < ncomp; ++i) { + if (z->img_comp[i].raw_data) { + STBI_FREE(z->img_comp[i].raw_data); + z->img_comp[i].raw_data = NULL; + z->img_comp[i].data = NULL; + } + if (z->img_comp[i].raw_coeff) { + STBI_FREE(z->img_comp[i].raw_coeff); + z->img_comp[i].raw_coeff = 0; + z->img_comp[i].coeff = 0; + } + if (z->img_comp[i].linebuf) { + STBI_FREE(z->img_comp[i].linebuf); + z->img_comp[i].linebuf = NULL; + } + } + return why; +} + +static int stbi__process_frame_header(stbi__jpeg *z, int scan) +{ + stbi__context *s = z->s; + int Lf,p,i,q, h_max=1,v_max=1,c; + Lf = stbi__get16be(s); if (Lf < 11) return stbi__err("bad SOF len","Corrupt JPEG"); // JPEG + p = stbi__get8(s); if (p != 8) return stbi__err("only 8-bit","JPEG format not supported: 8-bit only"); // JPEG baseline + s->img_y = stbi__get16be(s); if (s->img_y == 0) return stbi__err("no header height", "JPEG format not supported: delayed height"); // Legal, but we don't handle it--but neither does IJG + s->img_x = stbi__get16be(s); if (s->img_x == 0) return stbi__err("0 width","Corrupt JPEG"); // JPEG requires + if (s->img_y > STBI_MAX_DIMENSIONS) return stbi__err("too large","Very large image (corrupt?)"); + if (s->img_x > STBI_MAX_DIMENSIONS) return stbi__err("too large","Very large image (corrupt?)"); + c = stbi__get8(s); + if (c != 3 && c != 1 && c != 4) return stbi__err("bad component count","Corrupt JPEG"); + s->img_n = c; + for (i=0; i < c; ++i) { + z->img_comp[i].data = NULL; + z->img_comp[i].linebuf = NULL; + } + + if (Lf != 8+3*s->img_n) return stbi__err("bad SOF len","Corrupt JPEG"); + + z->rgb = 0; + for (i=0; i < s->img_n; ++i) { + static const unsigned char rgb[3] = { 'R', 'G', 'B' }; + z->img_comp[i].id = stbi__get8(s); + if (s->img_n == 3 && z->img_comp[i].id == rgb[i]) + ++z->rgb; + q = stbi__get8(s); + z->img_comp[i].h = (q >> 4); if (!z->img_comp[i].h || z->img_comp[i].h > 4) return stbi__err("bad H","Corrupt JPEG"); + z->img_comp[i].v = q & 15; if (!z->img_comp[i].v || z->img_comp[i].v > 4) return stbi__err("bad V","Corrupt JPEG"); + z->img_comp[i].tq = stbi__get8(s); if (z->img_comp[i].tq > 3) return stbi__err("bad TQ","Corrupt JPEG"); + } + + if (scan != STBI__SCAN_load) return 1; + + if (!stbi__mad3sizes_valid(s->img_x, s->img_y, s->img_n, 0)) return stbi__err("too large", "Image too large to decode"); + + for (i=0; i < s->img_n; ++i) { + if (z->img_comp[i].h > h_max) h_max = z->img_comp[i].h; + if (z->img_comp[i].v > v_max) v_max = z->img_comp[i].v; + } + + // check that plane subsampling factors are integer ratios; our resamplers can't deal with fractional ratios + // and I've never seen a non-corrupted JPEG file actually use them + for (i=0; i < s->img_n; ++i) { + if (h_max % z->img_comp[i].h != 0) return stbi__err("bad H","Corrupt JPEG"); + if (v_max % z->img_comp[i].v != 0) return stbi__err("bad V","Corrupt JPEG"); + } + + // compute interleaved mcu info + z->img_h_max = h_max; + z->img_v_max = v_max; + z->img_mcu_w = h_max * 8; + z->img_mcu_h = v_max * 8; + // these sizes can't be more than 17 bits + z->img_mcu_x = (s->img_x + z->img_mcu_w-1) / z->img_mcu_w; + z->img_mcu_y = (s->img_y + z->img_mcu_h-1) / z->img_mcu_h; + + for (i=0; i < s->img_n; ++i) { + // number of effective pixels (e.g. for non-interleaved MCU) + z->img_comp[i].x = (s->img_x * z->img_comp[i].h + h_max-1) / h_max; + z->img_comp[i].y = (s->img_y * z->img_comp[i].v + v_max-1) / v_max; + // to simplify generation, we'll allocate enough memory to decode + // the bogus oversized data from using interleaved MCUs and their + // big blocks (e.g. a 16x16 iMCU on an image of width 33); we won't + // discard the extra data until colorspace conversion + // + // img_mcu_x, img_mcu_y: <=17 bits; comp[i].h and .v are <=4 (checked earlier) + // so these muls can't overflow with 32-bit ints (which we require) + z->img_comp[i].w2 = z->img_mcu_x * z->img_comp[i].h * 8; + z->img_comp[i].h2 = z->img_mcu_y * z->img_comp[i].v * 8; + z->img_comp[i].coeff = 0; + z->img_comp[i].raw_coeff = 0; + z->img_comp[i].linebuf = NULL; + z->img_comp[i].raw_data = stbi__malloc_mad2(z->img_comp[i].w2, z->img_comp[i].h2, 15); + if (z->img_comp[i].raw_data == NULL) + return stbi__free_jpeg_components(z, i+1, stbi__err("outofmem", "Out of memory")); + // align blocks for idct using mmx/sse + z->img_comp[i].data = (stbi_uc*) (((size_t) z->img_comp[i].raw_data + 15) & ~15); + if (z->progressive) { + // w2, h2 are multiples of 8 (see above) + z->img_comp[i].coeff_w = z->img_comp[i].w2 / 8; + z->img_comp[i].coeff_h = z->img_comp[i].h2 / 8; + z->img_comp[i].raw_coeff = stbi__malloc_mad3(z->img_comp[i].w2, z->img_comp[i].h2, sizeof(short), 15); + if (z->img_comp[i].raw_coeff == NULL) + return stbi__free_jpeg_components(z, i+1, stbi__err("outofmem", "Out of memory")); + z->img_comp[i].coeff = (short*) (((size_t) z->img_comp[i].raw_coeff + 15) & ~15); + } + } + + return 1; +} + +// use comparisons since in some cases we handle more than one case (e.g. SOF) +#define stbi__DNL(x) ((x) == 0xdc) +#define stbi__SOI(x) ((x) == 0xd8) +#define stbi__EOI(x) ((x) == 0xd9) +#define stbi__SOF(x) ((x) == 0xc0 || (x) == 0xc1 || (x) == 0xc2) +#define stbi__SOS(x) ((x) == 0xda) + +#define stbi__SOF_progressive(x) ((x) == 0xc2) + +static int stbi__decode_jpeg_header(stbi__jpeg *z, int scan) +{ + int m; + z->jfif = 0; + z->app14_color_transform = -1; // valid values are 0,1,2 + z->marker = STBI__MARKER_none; // initialize cached marker to empty + m = stbi__get_marker(z); + if (!stbi__SOI(m)) return stbi__err("no SOI","Corrupt JPEG"); + if (scan == STBI__SCAN_type) return 1; + m = stbi__get_marker(z); + while (!stbi__SOF(m)) { + if (!stbi__process_marker(z,m)) return 0; + m = stbi__get_marker(z); + while (m == STBI__MARKER_none) { + // some files have extra padding after their blocks, so ok, we'll scan + if (stbi__at_eof(z->s)) return stbi__err("no SOF", "Corrupt JPEG"); + m = stbi__get_marker(z); + } + } + z->progressive = stbi__SOF_progressive(m); + if (!stbi__process_frame_header(z, scan)) return 0; + return 1; +} + +static stbi_uc stbi__skip_jpeg_junk_at_end(stbi__jpeg *j) +{ + // some JPEGs have junk at end, skip over it but if we find what looks + // like a valid marker, resume there + while (!stbi__at_eof(j->s)) { + stbi_uc x = stbi__get8(j->s); + while (x == 0xff) { // might be a marker + if (stbi__at_eof(j->s)) return STBI__MARKER_none; + x = stbi__get8(j->s); + if (x != 0x00 && x != 0xff) { + // not a stuffed zero or lead-in to another marker, looks + // like an actual marker, return it + return x; + } + // stuffed zero has x=0 now which ends the loop, meaning we go + // back to regular scan loop. + // repeated 0xff keeps trying to read the next byte of the marker. + } + } + return STBI__MARKER_none; +} + +// decode image to YCbCr format +static int stbi__decode_jpeg_image(stbi__jpeg *j) +{ + int m; + for (m = 0; m < 4; m++) { + j->img_comp[m].raw_data = NULL; + j->img_comp[m].raw_coeff = NULL; + } + j->restart_interval = 0; + if (!stbi__decode_jpeg_header(j, STBI__SCAN_load)) return 0; + m = stbi__get_marker(j); + while (!stbi__EOI(m)) { + if (stbi__SOS(m)) { + if (!stbi__process_scan_header(j)) return 0; + if (!stbi__parse_entropy_coded_data(j)) return 0; + if (j->marker == STBI__MARKER_none ) { + j->marker = stbi__skip_jpeg_junk_at_end(j); + // if we reach eof without hitting a marker, stbi__get_marker() below will fail and we'll eventually return 0 + } + m = stbi__get_marker(j); + if (STBI__RESTART(m)) + m = stbi__get_marker(j); + } else if (stbi__DNL(m)) { + int Ld = stbi__get16be(j->s); + stbi__uint32 NL = stbi__get16be(j->s); + if (Ld != 4) return stbi__err("bad DNL len", "Corrupt JPEG"); + if (NL != j->s->img_y) return stbi__err("bad DNL height", "Corrupt JPEG"); + m = stbi__get_marker(j); + } else { + if (!stbi__process_marker(j, m)) return 1; + m = stbi__get_marker(j); + } + } + if (j->progressive) + stbi__jpeg_finish(j); + return 1; +} + +// static jfif-centered resampling (across block boundaries) + +typedef stbi_uc *(*resample_row_func)(stbi_uc *out, stbi_uc *in0, stbi_uc *in1, + int w, int hs); + +#define stbi__div4(x) ((stbi_uc) ((x) >> 2)) + +static stbi_uc *resample_row_1(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w, int hs) +{ + STBI_NOTUSED(out); + STBI_NOTUSED(in_far); + STBI_NOTUSED(w); + STBI_NOTUSED(hs); + return in_near; +} + +static stbi_uc* stbi__resample_row_v_2(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w, int hs) +{ + // need to generate two samples vertically for every one in input + int i; + STBI_NOTUSED(hs); + for (i=0; i < w; ++i) + out[i] = stbi__div4(3*in_near[i] + in_far[i] + 2); + return out; +} + +static stbi_uc* stbi__resample_row_h_2(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w, int hs) +{ + // need to generate two samples horizontally for every one in input + int i; + stbi_uc *input = in_near; + + if (w == 1) { + // if only one sample, can't do any interpolation + out[0] = out[1] = input[0]; + return out; + } + + out[0] = input[0]; + out[1] = stbi__div4(input[0]*3 + input[1] + 2); + for (i=1; i < w-1; ++i) { + int n = 3*input[i]+2; + out[i*2+0] = stbi__div4(n+input[i-1]); + out[i*2+1] = stbi__div4(n+input[i+1]); + } + out[i*2+0] = stbi__div4(input[w-2]*3 + input[w-1] + 2); + out[i*2+1] = input[w-1]; + + STBI_NOTUSED(in_far); + STBI_NOTUSED(hs); + + return out; +} + +#define stbi__div16(x) ((stbi_uc) ((x) >> 4)) + +static stbi_uc *stbi__resample_row_hv_2(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w, int hs) +{ + // need to generate 2x2 samples for every one in input + int i,t0,t1; + if (w == 1) { + out[0] = out[1] = stbi__div4(3*in_near[0] + in_far[0] + 2); + return out; + } + + t1 = 3*in_near[0] + in_far[0]; + out[0] = stbi__div4(t1+2); + for (i=1; i < w; ++i) { + t0 = t1; + t1 = 3*in_near[i]+in_far[i]; + out[i*2-1] = stbi__div16(3*t0 + t1 + 8); + out[i*2 ] = stbi__div16(3*t1 + t0 + 8); + } + out[w*2-1] = stbi__div4(t1+2); + + STBI_NOTUSED(hs); + + return out; +} + +#if defined(STBI_SSE2) || defined(STBI_NEON) +static stbi_uc *stbi__resample_row_hv_2_simd(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w, int hs) +{ + // need to generate 2x2 samples for every one in input + int i=0,t0,t1; + + if (w == 1) { + out[0] = out[1] = stbi__div4(3*in_near[0] + in_far[0] + 2); + return out; + } + + t1 = 3*in_near[0] + in_far[0]; + // process groups of 8 pixels for as long as we can. + // note we can't handle the last pixel in a row in this loop + // because we need to handle the filter boundary conditions. + for (; i < ((w-1) & ~7); i += 8) { +#if defined(STBI_SSE2) + // load and perform the vertical filtering pass + // this uses 3*x + y = 4*x + (y - x) + __m128i zero = _mm_setzero_si128(); + __m128i farb = _mm_loadl_epi64((__m128i *) (in_far + i)); + __m128i nearb = _mm_loadl_epi64((__m128i *) (in_near + i)); + __m128i farw = _mm_unpacklo_epi8(farb, zero); + __m128i nearw = _mm_unpacklo_epi8(nearb, zero); + __m128i diff = _mm_sub_epi16(farw, nearw); + __m128i nears = _mm_slli_epi16(nearw, 2); + __m128i curr = _mm_add_epi16(nears, diff); // current row + + // horizontal filter works the same based on shifted vers of current + // row. "prev" is current row shifted right by 1 pixel; we need to + // insert the previous pixel value (from t1). + // "next" is current row shifted left by 1 pixel, with first pixel + // of next block of 8 pixels added in. + __m128i prv0 = _mm_slli_si128(curr, 2); + __m128i nxt0 = _mm_srli_si128(curr, 2); + __m128i prev = _mm_insert_epi16(prv0, t1, 0); + __m128i next = _mm_insert_epi16(nxt0, 3*in_near[i+8] + in_far[i+8], 7); + + // horizontal filter, polyphase implementation since it's convenient: + // even pixels = 3*cur + prev = cur*4 + (prev - cur) + // odd pixels = 3*cur + next = cur*4 + (next - cur) + // note the shared term. + __m128i bias = _mm_set1_epi16(8); + __m128i curs = _mm_slli_epi16(curr, 2); + __m128i prvd = _mm_sub_epi16(prev, curr); + __m128i nxtd = _mm_sub_epi16(next, curr); + __m128i curb = _mm_add_epi16(curs, bias); + __m128i even = _mm_add_epi16(prvd, curb); + __m128i odd = _mm_add_epi16(nxtd, curb); + + // interleave even and odd pixels, then undo scaling. + __m128i int0 = _mm_unpacklo_epi16(even, odd); + __m128i int1 = _mm_unpackhi_epi16(even, odd); + __m128i de0 = _mm_srli_epi16(int0, 4); + __m128i de1 = _mm_srli_epi16(int1, 4); + + // pack and write output + __m128i outv = _mm_packus_epi16(de0, de1); + _mm_storeu_si128((__m128i *) (out + i*2), outv); +#elif defined(STBI_NEON) + // load and perform the vertical filtering pass + // this uses 3*x + y = 4*x + (y - x) + uint8x8_t farb = vld1_u8(in_far + i); + uint8x8_t nearb = vld1_u8(in_near + i); + int16x8_t diff = vreinterpretq_s16_u16(vsubl_u8(farb, nearb)); + int16x8_t nears = vreinterpretq_s16_u16(vshll_n_u8(nearb, 2)); + int16x8_t curr = vaddq_s16(nears, diff); // current row + + // horizontal filter works the same based on shifted vers of current + // row. "prev" is current row shifted right by 1 pixel; we need to + // insert the previous pixel value (from t1). + // "next" is current row shifted left by 1 pixel, with first pixel + // of next block of 8 pixels added in. + int16x8_t prv0 = vextq_s16(curr, curr, 7); + int16x8_t nxt0 = vextq_s16(curr, curr, 1); + int16x8_t prev = vsetq_lane_s16(t1, prv0, 0); + int16x8_t next = vsetq_lane_s16(3*in_near[i+8] + in_far[i+8], nxt0, 7); + + // horizontal filter, polyphase implementation since it's convenient: + // even pixels = 3*cur + prev = cur*4 + (prev - cur) + // odd pixels = 3*cur + next = cur*4 + (next - cur) + // note the shared term. + int16x8_t curs = vshlq_n_s16(curr, 2); + int16x8_t prvd = vsubq_s16(prev, curr); + int16x8_t nxtd = vsubq_s16(next, curr); + int16x8_t even = vaddq_s16(curs, prvd); + int16x8_t odd = vaddq_s16(curs, nxtd); + + // undo scaling and round, then store with even/odd phases interleaved + uint8x8x2_t o; + o.val[0] = vqrshrun_n_s16(even, 4); + o.val[1] = vqrshrun_n_s16(odd, 4); + vst2_u8(out + i*2, o); +#endif + + // "previous" value for next iter + t1 = 3*in_near[i+7] + in_far[i+7]; + } + + t0 = t1; + t1 = 3*in_near[i] + in_far[i]; + out[i*2] = stbi__div16(3*t1 + t0 + 8); + + for (++i; i < w; ++i) { + t0 = t1; + t1 = 3*in_near[i]+in_far[i]; + out[i*2-1] = stbi__div16(3*t0 + t1 + 8); + out[i*2 ] = stbi__div16(3*t1 + t0 + 8); + } + out[w*2-1] = stbi__div4(t1+2); + + STBI_NOTUSED(hs); + + return out; +} +#endif + +static stbi_uc *stbi__resample_row_generic(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w, int hs) +{ + // resample with nearest-neighbor + int i,j; + STBI_NOTUSED(in_far); + for (i=0; i < w; ++i) + for (j=0; j < hs; ++j) + out[i*hs+j] = in_near[i]; + return out; +} + +// this is a reduced-precision calculation of YCbCr-to-RGB introduced +// to make sure the code produces the same results in both SIMD and scalar +#define stbi__float2fixed(x) (((int) ((x) * 4096.0f + 0.5f)) << 8) +static void stbi__YCbCr_to_RGB_row(stbi_uc *out, const stbi_uc *y, const stbi_uc *pcb, const stbi_uc *pcr, int count, int step) +{ + int i; + for (i=0; i < count; ++i) { + int y_fixed = (y[i] << 20) + (1<<19); // rounding + int r,g,b; + int cr = pcr[i] - 128; + int cb = pcb[i] - 128; + r = y_fixed + cr* stbi__float2fixed(1.40200f); + g = y_fixed + (cr*-stbi__float2fixed(0.71414f)) + ((cb*-stbi__float2fixed(0.34414f)) & 0xffff0000); + b = y_fixed + cb* stbi__float2fixed(1.77200f); + r >>= 20; + g >>= 20; + b >>= 20; + if ((unsigned) r > 255) { if (r < 0) r = 0; else r = 255; } + if ((unsigned) g > 255) { if (g < 0) g = 0; else g = 255; } + if ((unsigned) b > 255) { if (b < 0) b = 0; else b = 255; } + out[0] = (stbi_uc)r; + out[1] = (stbi_uc)g; + out[2] = (stbi_uc)b; + out[3] = 255; + out += step; + } +} + +#if defined(STBI_SSE2) || defined(STBI_NEON) +static void stbi__YCbCr_to_RGB_simd(stbi_uc *out, stbi_uc const *y, stbi_uc const *pcb, stbi_uc const *pcr, int count, int step) +{ + int i = 0; + +#ifdef STBI_SSE2 + // step == 3 is pretty ugly on the final interleave, and i'm not convinced + // it's useful in practice (you wouldn't use it for textures, for example). + // so just accelerate step == 4 case. + if (step == 4) { + // this is a fairly straightforward implementation and not super-optimized. + __m128i signflip = _mm_set1_epi8(-0x80); + __m128i cr_const0 = _mm_set1_epi16( (short) ( 1.40200f*4096.0f+0.5f)); + __m128i cr_const1 = _mm_set1_epi16( - (short) ( 0.71414f*4096.0f+0.5f)); + __m128i cb_const0 = _mm_set1_epi16( - (short) ( 0.34414f*4096.0f+0.5f)); + __m128i cb_const1 = _mm_set1_epi16( (short) ( 1.77200f*4096.0f+0.5f)); + __m128i y_bias = _mm_set1_epi8((char) (unsigned char) 128); + __m128i xw = _mm_set1_epi16(255); // alpha channel + + for (; i+7 < count; i += 8) { + // load + __m128i y_bytes = _mm_loadl_epi64((__m128i *) (y+i)); + __m128i cr_bytes = _mm_loadl_epi64((__m128i *) (pcr+i)); + __m128i cb_bytes = _mm_loadl_epi64((__m128i *) (pcb+i)); + __m128i cr_biased = _mm_xor_si128(cr_bytes, signflip); // -128 + __m128i cb_biased = _mm_xor_si128(cb_bytes, signflip); // -128 + + // unpack to short (and left-shift cr, cb by 8) + __m128i yw = _mm_unpacklo_epi8(y_bias, y_bytes); + __m128i crw = _mm_unpacklo_epi8(_mm_setzero_si128(), cr_biased); + __m128i cbw = _mm_unpacklo_epi8(_mm_setzero_si128(), cb_biased); + + // color transform + __m128i yws = _mm_srli_epi16(yw, 4); + __m128i cr0 = _mm_mulhi_epi16(cr_const0, crw); + __m128i cb0 = _mm_mulhi_epi16(cb_const0, cbw); + __m128i cb1 = _mm_mulhi_epi16(cbw, cb_const1); + __m128i cr1 = _mm_mulhi_epi16(crw, cr_const1); + __m128i rws = _mm_add_epi16(cr0, yws); + __m128i gwt = _mm_add_epi16(cb0, yws); + __m128i bws = _mm_add_epi16(yws, cb1); + __m128i gws = _mm_add_epi16(gwt, cr1); + + // descale + __m128i rw = _mm_srai_epi16(rws, 4); + __m128i bw = _mm_srai_epi16(bws, 4); + __m128i gw = _mm_srai_epi16(gws, 4); + + // back to byte, set up for transpose + __m128i brb = _mm_packus_epi16(rw, bw); + __m128i gxb = _mm_packus_epi16(gw, xw); + + // transpose to interleave channels + __m128i t0 = _mm_unpacklo_epi8(brb, gxb); + __m128i t1 = _mm_unpackhi_epi8(brb, gxb); + __m128i o0 = _mm_unpacklo_epi16(t0, t1); + __m128i o1 = _mm_unpackhi_epi16(t0, t1); + + // store + _mm_storeu_si128((__m128i *) (out + 0), o0); + _mm_storeu_si128((__m128i *) (out + 16), o1); + out += 32; + } + } +#endif + +#ifdef STBI_NEON + // in this version, step=3 support would be easy to add. but is there demand? + if (step == 4) { + // this is a fairly straightforward implementation and not super-optimized. + uint8x8_t signflip = vdup_n_u8(0x80); + int16x8_t cr_const0 = vdupq_n_s16( (short) ( 1.40200f*4096.0f+0.5f)); + int16x8_t cr_const1 = vdupq_n_s16( - (short) ( 0.71414f*4096.0f+0.5f)); + int16x8_t cb_const0 = vdupq_n_s16( - (short) ( 0.34414f*4096.0f+0.5f)); + int16x8_t cb_const1 = vdupq_n_s16( (short) ( 1.77200f*4096.0f+0.5f)); + + for (; i+7 < count; i += 8) { + // load + uint8x8_t y_bytes = vld1_u8(y + i); + uint8x8_t cr_bytes = vld1_u8(pcr + i); + uint8x8_t cb_bytes = vld1_u8(pcb + i); + int8x8_t cr_biased = vreinterpret_s8_u8(vsub_u8(cr_bytes, signflip)); + int8x8_t cb_biased = vreinterpret_s8_u8(vsub_u8(cb_bytes, signflip)); + + // expand to s16 + int16x8_t yws = vreinterpretq_s16_u16(vshll_n_u8(y_bytes, 4)); + int16x8_t crw = vshll_n_s8(cr_biased, 7); + int16x8_t cbw = vshll_n_s8(cb_biased, 7); + + // color transform + int16x8_t cr0 = vqdmulhq_s16(crw, cr_const0); + int16x8_t cb0 = vqdmulhq_s16(cbw, cb_const0); + int16x8_t cr1 = vqdmulhq_s16(crw, cr_const1); + int16x8_t cb1 = vqdmulhq_s16(cbw, cb_const1); + int16x8_t rws = vaddq_s16(yws, cr0); + int16x8_t gws = vaddq_s16(vaddq_s16(yws, cb0), cr1); + int16x8_t bws = vaddq_s16(yws, cb1); + + // undo scaling, round, convert to byte + uint8x8x4_t o; + o.val[0] = vqrshrun_n_s16(rws, 4); + o.val[1] = vqrshrun_n_s16(gws, 4); + o.val[2] = vqrshrun_n_s16(bws, 4); + o.val[3] = vdup_n_u8(255); + + // store, interleaving r/g/b/a + vst4_u8(out, o); + out += 8*4; + } + } +#endif + + for (; i < count; ++i) { + int y_fixed = (y[i] << 20) + (1<<19); // rounding + int r,g,b; + int cr = pcr[i] - 128; + int cb = pcb[i] - 128; + r = y_fixed + cr* stbi__float2fixed(1.40200f); + g = y_fixed + cr*-stbi__float2fixed(0.71414f) + ((cb*-stbi__float2fixed(0.34414f)) & 0xffff0000); + b = y_fixed + cb* stbi__float2fixed(1.77200f); + r >>= 20; + g >>= 20; + b >>= 20; + if ((unsigned) r > 255) { if (r < 0) r = 0; else r = 255; } + if ((unsigned) g > 255) { if (g < 0) g = 0; else g = 255; } + if ((unsigned) b > 255) { if (b < 0) b = 0; else b = 255; } + out[0] = (stbi_uc)r; + out[1] = (stbi_uc)g; + out[2] = (stbi_uc)b; + out[3] = 255; + out += step; + } +} +#endif + +// set up the kernels +static void stbi__setup_jpeg(stbi__jpeg *j) +{ + j->idct_block_kernel = stbi__idct_block; + j->YCbCr_to_RGB_kernel = stbi__YCbCr_to_RGB_row; + j->resample_row_hv_2_kernel = stbi__resample_row_hv_2; + +#ifdef STBI_SSE2 + if (stbi__sse2_available()) { + j->idct_block_kernel = stbi__idct_simd; + j->YCbCr_to_RGB_kernel = stbi__YCbCr_to_RGB_simd; + j->resample_row_hv_2_kernel = stbi__resample_row_hv_2_simd; + } +#endif + +#ifdef STBI_NEON + j->idct_block_kernel = stbi__idct_simd; + j->YCbCr_to_RGB_kernel = stbi__YCbCr_to_RGB_simd; + j->resample_row_hv_2_kernel = stbi__resample_row_hv_2_simd; +#endif +} + +// clean up the temporary component buffers +static void stbi__cleanup_jpeg(stbi__jpeg *j) +{ + stbi__free_jpeg_components(j, j->s->img_n, 0); +} + +typedef struct +{ + resample_row_func resample; + stbi_uc *line0,*line1; + int hs,vs; // expansion factor in each axis + int w_lores; // horizontal pixels pre-expansion + int ystep; // how far through vertical expansion we are + int ypos; // which pre-expansion row we're on +} stbi__resample; + +// fast 0..255 * 0..255 => 0..255 rounded multiplication +static stbi_uc stbi__blinn_8x8(stbi_uc x, stbi_uc y) +{ + unsigned int t = x*y + 128; + return (stbi_uc) ((t + (t >>8)) >> 8); +} + +static stbi_uc *load_jpeg_image(stbi__jpeg *z, int *out_x, int *out_y, int *comp, int req_comp) +{ + int n, decode_n, is_rgb; + z->s->img_n = 0; // make stbi__cleanup_jpeg safe + + // validate req_comp + if (req_comp < 0 || req_comp > 4) return stbi__errpuc("bad req_comp", "Internal error"); + + // load a jpeg image from whichever source, but leave in YCbCr format + if (!stbi__decode_jpeg_image(z)) { stbi__cleanup_jpeg(z); return NULL; } + + // determine actual number of components to generate + n = req_comp ? req_comp : z->s->img_n >= 3 ? 3 : 1; + + is_rgb = z->s->img_n == 3 && (z->rgb == 3 || (z->app14_color_transform == 0 && !z->jfif)); + + if (z->s->img_n == 3 && n < 3 && !is_rgb) + decode_n = 1; + else + decode_n = z->s->img_n; + + // nothing to do if no components requested; check this now to avoid + // accessing uninitialized coutput[0] later + if (decode_n <= 0) { stbi__cleanup_jpeg(z); return NULL; } + + // resample and color-convert + { + int k; + unsigned int i,j; + stbi_uc *output; + stbi_uc *coutput[4] = { NULL, NULL, NULL, NULL }; + + stbi__resample res_comp[4]; + + for (k=0; k < decode_n; ++k) { + stbi__resample *r = &res_comp[k]; + + // allocate line buffer big enough for upsampling off the edges + // with upsample factor of 4 + z->img_comp[k].linebuf = (stbi_uc *) stbi__malloc(z->s->img_x + 3); + if (!z->img_comp[k].linebuf) { stbi__cleanup_jpeg(z); return stbi__errpuc("outofmem", "Out of memory"); } + + r->hs = z->img_h_max / z->img_comp[k].h; + r->vs = z->img_v_max / z->img_comp[k].v; + r->ystep = r->vs >> 1; + r->w_lores = (z->s->img_x + r->hs-1) / r->hs; + r->ypos = 0; + r->line0 = r->line1 = z->img_comp[k].data; + + if (r->hs == 1 && r->vs == 1) r->resample = resample_row_1; + else if (r->hs == 1 && r->vs == 2) r->resample = stbi__resample_row_v_2; + else if (r->hs == 2 && r->vs == 1) r->resample = stbi__resample_row_h_2; + else if (r->hs == 2 && r->vs == 2) r->resample = z->resample_row_hv_2_kernel; + else r->resample = stbi__resample_row_generic; + } + + // can't error after this so, this is safe + output = (stbi_uc *) stbi__malloc_mad3(n, z->s->img_x, z->s->img_y, 1); + if (!output) { stbi__cleanup_jpeg(z); return stbi__errpuc("outofmem", "Out of memory"); } + + // now go ahead and resample + for (j=0; j < z->s->img_y; ++j) { + stbi_uc *out = output + n * z->s->img_x * j; + for (k=0; k < decode_n; ++k) { + stbi__resample *r = &res_comp[k]; + int y_bot = r->ystep >= (r->vs >> 1); + coutput[k] = r->resample(z->img_comp[k].linebuf, + y_bot ? r->line1 : r->line0, + y_bot ? r->line0 : r->line1, + r->w_lores, r->hs); + if (++r->ystep >= r->vs) { + r->ystep = 0; + r->line0 = r->line1; + if (++r->ypos < z->img_comp[k].y) + r->line1 += z->img_comp[k].w2; + } + } + if (n >= 3) { + stbi_uc *y = coutput[0]; + if (z->s->img_n == 3) { + if (is_rgb) { + for (i=0; i < z->s->img_x; ++i) { + out[0] = y[i]; + out[1] = coutput[1][i]; + out[2] = coutput[2][i]; + out[3] = 255; + out += n; + } + } else { + z->YCbCr_to_RGB_kernel(out, y, coutput[1], coutput[2], z->s->img_x, n); + } + } else if (z->s->img_n == 4) { + if (z->app14_color_transform == 0) { // CMYK + for (i=0; i < z->s->img_x; ++i) { + stbi_uc m = coutput[3][i]; + out[0] = stbi__blinn_8x8(coutput[0][i], m); + out[1] = stbi__blinn_8x8(coutput[1][i], m); + out[2] = stbi__blinn_8x8(coutput[2][i], m); + out[3] = 255; + out += n; + } + } else if (z->app14_color_transform == 2) { // YCCK + z->YCbCr_to_RGB_kernel(out, y, coutput[1], coutput[2], z->s->img_x, n); + for (i=0; i < z->s->img_x; ++i) { + stbi_uc m = coutput[3][i]; + out[0] = stbi__blinn_8x8(255 - out[0], m); + out[1] = stbi__blinn_8x8(255 - out[1], m); + out[2] = stbi__blinn_8x8(255 - out[2], m); + out += n; + } + } else { // YCbCr + alpha? Ignore the fourth channel for now + z->YCbCr_to_RGB_kernel(out, y, coutput[1], coutput[2], z->s->img_x, n); + } + } else + for (i=0; i < z->s->img_x; ++i) { + out[0] = out[1] = out[2] = y[i]; + out[3] = 255; // not used if n==3 + out += n; + } + } else { + if (is_rgb) { + if (n == 1) + for (i=0; i < z->s->img_x; ++i) + *out++ = stbi__compute_y(coutput[0][i], coutput[1][i], coutput[2][i]); + else { + for (i=0; i < z->s->img_x; ++i, out += 2) { + out[0] = stbi__compute_y(coutput[0][i], coutput[1][i], coutput[2][i]); + out[1] = 255; + } + } + } else if (z->s->img_n == 4 && z->app14_color_transform == 0) { + for (i=0; i < z->s->img_x; ++i) { + stbi_uc m = coutput[3][i]; + stbi_uc r = stbi__blinn_8x8(coutput[0][i], m); + stbi_uc g = stbi__blinn_8x8(coutput[1][i], m); + stbi_uc b = stbi__blinn_8x8(coutput[2][i], m); + out[0] = stbi__compute_y(r, g, b); + out[1] = 255; + out += n; + } + } else if (z->s->img_n == 4 && z->app14_color_transform == 2) { + for (i=0; i < z->s->img_x; ++i) { + out[0] = stbi__blinn_8x8(255 - coutput[0][i], coutput[3][i]); + out[1] = 255; + out += n; + } + } else { + stbi_uc *y = coutput[0]; + if (n == 1) + for (i=0; i < z->s->img_x; ++i) out[i] = y[i]; + else + for (i=0; i < z->s->img_x; ++i) { *out++ = y[i]; *out++ = 255; } + } + } + } + stbi__cleanup_jpeg(z); + *out_x = z->s->img_x; + *out_y = z->s->img_y; + if (comp) *comp = z->s->img_n >= 3 ? 3 : 1; // report original components, not output + return output; + } +} + +static void *stbi__jpeg_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri) +{ + unsigned char* result; + stbi__jpeg* j = (stbi__jpeg*) stbi__malloc(sizeof(stbi__jpeg)); + if (!j) return stbi__errpuc("outofmem", "Out of memory"); + memset(j, 0, sizeof(stbi__jpeg)); + STBI_NOTUSED(ri); + j->s = s; + stbi__setup_jpeg(j); + result = load_jpeg_image(j, x,y,comp,req_comp); + STBI_FREE(j); + return result; +} + +static int stbi__jpeg_test(stbi__context *s) +{ + int r; + stbi__jpeg* j = (stbi__jpeg*)stbi__malloc(sizeof(stbi__jpeg)); + if (!j) return stbi__err("outofmem", "Out of memory"); + memset(j, 0, sizeof(stbi__jpeg)); + j->s = s; + stbi__setup_jpeg(j); + r = stbi__decode_jpeg_header(j, STBI__SCAN_type); + stbi__rewind(s); + STBI_FREE(j); + return r; +} + +static int stbi__jpeg_info_raw(stbi__jpeg *j, int *x, int *y, int *comp) +{ + if (!stbi__decode_jpeg_header(j, STBI__SCAN_header)) { + stbi__rewind( j->s ); + return 0; + } + if (x) *x = j->s->img_x; + if (y) *y = j->s->img_y; + if (comp) *comp = j->s->img_n >= 3 ? 3 : 1; + return 1; +} + +static int stbi__jpeg_info(stbi__context *s, int *x, int *y, int *comp) +{ + int result; + stbi__jpeg* j = (stbi__jpeg*) (stbi__malloc(sizeof(stbi__jpeg))); + if (!j) return stbi__err("outofmem", "Out of memory"); + memset(j, 0, sizeof(stbi__jpeg)); + j->s = s; + result = stbi__jpeg_info_raw(j, x, y, comp); + STBI_FREE(j); + return result; +} +#endif + +// public domain zlib decode v0.2 Sean Barrett 2006-11-18 +// simple implementation +// - all input must be provided in an upfront buffer +// - all output is written to a single output buffer (can malloc/realloc) +// performance +// - fast huffman + +#ifndef STBI_NO_ZLIB + +// fast-way is faster to check than jpeg huffman, but slow way is slower +#define STBI__ZFAST_BITS 9 // accelerate all cases in default tables +#define STBI__ZFAST_MASK ((1 << STBI__ZFAST_BITS) - 1) +#define STBI__ZNSYMS 288 // number of symbols in literal/length alphabet + +// zlib-style huffman encoding +// (jpegs packs from left, zlib from right, so can't share code) +typedef struct +{ + stbi__uint16 fast[1 << STBI__ZFAST_BITS]; + stbi__uint16 firstcode[16]; + int maxcode[17]; + stbi__uint16 firstsymbol[16]; + stbi_uc size[STBI__ZNSYMS]; + stbi__uint16 value[STBI__ZNSYMS]; +} stbi__zhuffman; + +stbi_inline static int stbi__bitreverse16(int n) +{ + n = ((n & 0xAAAA) >> 1) | ((n & 0x5555) << 1); + n = ((n & 0xCCCC) >> 2) | ((n & 0x3333) << 2); + n = ((n & 0xF0F0) >> 4) | ((n & 0x0F0F) << 4); + n = ((n & 0xFF00) >> 8) | ((n & 0x00FF) << 8); + return n; +} + +stbi_inline static int stbi__bit_reverse(int v, int bits) +{ + STBI_ASSERT(bits <= 16); + // to bit reverse n bits, reverse 16 and shift + // e.g. 11 bits, bit reverse and shift away 5 + return stbi__bitreverse16(v) >> (16-bits); +} + +static int stbi__zbuild_huffman(stbi__zhuffman *z, const stbi_uc *sizelist, int num) +{ + int i,k=0; + int code, next_code[16], sizes[17]; + + // DEFLATE spec for generating codes + memset(sizes, 0, sizeof(sizes)); + memset(z->fast, 0, sizeof(z->fast)); + for (i=0; i < num; ++i) + ++sizes[sizelist[i]]; + sizes[0] = 0; + for (i=1; i < 16; ++i) + if (sizes[i] > (1 << i)) + return stbi__err("bad sizes", "Corrupt PNG"); + code = 0; + for (i=1; i < 16; ++i) { + next_code[i] = code; + z->firstcode[i] = (stbi__uint16) code; + z->firstsymbol[i] = (stbi__uint16) k; + code = (code + sizes[i]); + if (sizes[i]) + if (code-1 >= (1 << i)) return stbi__err("bad codelengths","Corrupt PNG"); + z->maxcode[i] = code << (16-i); // preshift for inner loop + code <<= 1; + k += sizes[i]; + } + z->maxcode[16] = 0x10000; // sentinel + for (i=0; i < num; ++i) { + int s = sizelist[i]; + if (s) { + int c = next_code[s] - z->firstcode[s] + z->firstsymbol[s]; + stbi__uint16 fastv = (stbi__uint16) ((s << 9) | i); + z->size [c] = (stbi_uc ) s; + z->value[c] = (stbi__uint16) i; + if (s <= STBI__ZFAST_BITS) { + int j = stbi__bit_reverse(next_code[s],s); + while (j < (1 << STBI__ZFAST_BITS)) { + z->fast[j] = fastv; + j += (1 << s); + } + } + ++next_code[s]; + } + } + return 1; +} + +// zlib-from-memory implementation for PNG reading +// because PNG allows splitting the zlib stream arbitrarily, +// and it's annoying structurally to have PNG call ZLIB call PNG, +// we require PNG read all the IDATs and combine them into a single +// memory buffer + +typedef struct +{ + stbi_uc *zbuffer, *zbuffer_end; + int num_bits; + int hit_zeof_once; + stbi__uint32 code_buffer; + + char *zout; + char *zout_start; + char *zout_end; + int z_expandable; + + stbi__zhuffman z_length, z_distance; +} stbi__zbuf; + +stbi_inline static int stbi__zeof(stbi__zbuf *z) +{ + return (z->zbuffer >= z->zbuffer_end); +} + +stbi_inline static stbi_uc stbi__zget8(stbi__zbuf *z) +{ + return stbi__zeof(z) ? 0 : *z->zbuffer++; +} + +static void stbi__fill_bits(stbi__zbuf *z) +{ + do { + if (z->code_buffer >= (1U << z->num_bits)) { + z->zbuffer = z->zbuffer_end; /* treat this as EOF so we fail. */ + return; + } + z->code_buffer |= (unsigned int) stbi__zget8(z) << z->num_bits; + z->num_bits += 8; + } while (z->num_bits <= 24); +} + +stbi_inline static unsigned int stbi__zreceive(stbi__zbuf *z, int n) +{ + unsigned int k; + if (z->num_bits < n) stbi__fill_bits(z); + k = z->code_buffer & ((1 << n) - 1); + z->code_buffer >>= n; + z->num_bits -= n; + return k; +} + +static int stbi__zhuffman_decode_slowpath(stbi__zbuf *a, stbi__zhuffman *z) +{ + int b,s,k; + // not resolved by fast table, so compute it the slow way + // use jpeg approach, which requires MSbits at top + k = stbi__bit_reverse(a->code_buffer, 16); + for (s=STBI__ZFAST_BITS+1; ; ++s) + if (k < z->maxcode[s]) + break; + if (s >= 16) return -1; // invalid code! + // code size is s, so: + b = (k >> (16-s)) - z->firstcode[s] + z->firstsymbol[s]; + if (b >= STBI__ZNSYMS) return -1; // some data was corrupt somewhere! + if (z->size[b] != s) return -1; // was originally an assert, but report failure instead. + a->code_buffer >>= s; + a->num_bits -= s; + return z->value[b]; +} + +stbi_inline static int stbi__zhuffman_decode(stbi__zbuf *a, stbi__zhuffman *z) +{ + int b,s; + if (a->num_bits < 16) { + if (stbi__zeof(a)) { + if (!a->hit_zeof_once) { + // This is the first time we hit eof, insert 16 extra padding btis + // to allow us to keep going; if we actually consume any of them + // though, that is invalid data. This is caught later. + a->hit_zeof_once = 1; + a->num_bits += 16; // add 16 implicit zero bits + } else { + // We already inserted our extra 16 padding bits and are again + // out, this stream is actually prematurely terminated. + return -1; + } + } else { + stbi__fill_bits(a); + } + } + b = z->fast[a->code_buffer & STBI__ZFAST_MASK]; + if (b) { + s = b >> 9; + a->code_buffer >>= s; + a->num_bits -= s; + return b & 511; + } + return stbi__zhuffman_decode_slowpath(a, z); +} + +static int stbi__zexpand(stbi__zbuf *z, char *zout, int n) // need to make room for n bytes +{ + char *q; + unsigned int cur, limit, old_limit; + z->zout = zout; + if (!z->z_expandable) return stbi__err("output buffer limit","Corrupt PNG"); + cur = (unsigned int) (z->zout - z->zout_start); + limit = old_limit = (unsigned) (z->zout_end - z->zout_start); + if (UINT_MAX - cur < (unsigned) n) return stbi__err("outofmem", "Out of memory"); + while (cur + n > limit) { + if(limit > UINT_MAX / 2) return stbi__err("outofmem", "Out of memory"); + limit *= 2; + } + q = (char *) STBI_REALLOC_SIZED(z->zout_start, old_limit, limit); + STBI_NOTUSED(old_limit); + if (q == NULL) return stbi__err("outofmem", "Out of memory"); + z->zout_start = q; + z->zout = q + cur; + z->zout_end = q + limit; + return 1; +} + +static const int stbi__zlength_base[31] = { + 3,4,5,6,7,8,9,10,11,13, + 15,17,19,23,27,31,35,43,51,59, + 67,83,99,115,131,163,195,227,258,0,0 }; + +static const int stbi__zlength_extra[31]= +{ 0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0 }; + +static const int stbi__zdist_base[32] = { 1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193, +257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0}; + +static const int stbi__zdist_extra[32] = +{ 0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13}; + +static int stbi__parse_huffman_block(stbi__zbuf *a) +{ + char *zout = a->zout; + for(;;) { + int z = stbi__zhuffman_decode(a, &a->z_length); + if (z < 256) { + if (z < 0) return stbi__err("bad huffman code","Corrupt PNG"); // error in huffman codes + if (zout >= a->zout_end) { + if (!stbi__zexpand(a, zout, 1)) return 0; + zout = a->zout; + } + *zout++ = (char) z; + } else { + stbi_uc *p; + int len,dist; + if (z == 256) { + a->zout = zout; + if (a->hit_zeof_once && a->num_bits < 16) { + // The first time we hit zeof, we inserted 16 extra zero bits into our bit + // buffer so the decoder can just do its speculative decoding. But if we + // actually consumed any of those bits (which is the case when num_bits < 16), + // the stream actually read past the end so it is malformed. + return stbi__err("unexpected end","Corrupt PNG"); + } + return 1; + } + if (z >= 286) return stbi__err("bad huffman code","Corrupt PNG"); // per DEFLATE, length codes 286 and 287 must not appear in compressed data + z -= 257; + len = stbi__zlength_base[z]; + if (stbi__zlength_extra[z]) len += stbi__zreceive(a, stbi__zlength_extra[z]); + z = stbi__zhuffman_decode(a, &a->z_distance); + if (z < 0 || z >= 30) return stbi__err("bad huffman code","Corrupt PNG"); // per DEFLATE, distance codes 30 and 31 must not appear in compressed data + dist = stbi__zdist_base[z]; + if (stbi__zdist_extra[z]) dist += stbi__zreceive(a, stbi__zdist_extra[z]); + if (zout - a->zout_start < dist) return stbi__err("bad dist","Corrupt PNG"); + if (len > a->zout_end - zout) { + if (!stbi__zexpand(a, zout, len)) return 0; + zout = a->zout; + } + p = (stbi_uc *) (zout - dist); + if (dist == 1) { // run of one byte; common in images. + stbi_uc v = *p; + if (len) { do *zout++ = v; while (--len); } + } else { + if (len) { do *zout++ = *p++; while (--len); } + } + } + } +} + +static int stbi__compute_huffman_codes(stbi__zbuf *a) +{ + static const stbi_uc length_dezigzag[19] = { 16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15 }; + stbi__zhuffman z_codelength; + stbi_uc lencodes[286+32+137];//padding for maximum single op + stbi_uc codelength_sizes[19]; + int i,n; + + int hlit = stbi__zreceive(a,5) + 257; + int hdist = stbi__zreceive(a,5) + 1; + int hclen = stbi__zreceive(a,4) + 4; + int ntot = hlit + hdist; + + memset(codelength_sizes, 0, sizeof(codelength_sizes)); + for (i=0; i < hclen; ++i) { + int s = stbi__zreceive(a,3); + codelength_sizes[length_dezigzag[i]] = (stbi_uc) s; + } + if (!stbi__zbuild_huffman(&z_codelength, codelength_sizes, 19)) return 0; + + n = 0; + while (n < ntot) { + int c = stbi__zhuffman_decode(a, &z_codelength); + if (c < 0 || c >= 19) return stbi__err("bad codelengths", "Corrupt PNG"); + if (c < 16) + lencodes[n++] = (stbi_uc) c; + else { + stbi_uc fill = 0; + if (c == 16) { + c = stbi__zreceive(a,2)+3; + if (n == 0) return stbi__err("bad codelengths", "Corrupt PNG"); + fill = lencodes[n-1]; + } else if (c == 17) { + c = stbi__zreceive(a,3)+3; + } else if (c == 18) { + c = stbi__zreceive(a,7)+11; + } else { + return stbi__err("bad codelengths", "Corrupt PNG"); + } + if (ntot - n < c) return stbi__err("bad codelengths", "Corrupt PNG"); + memset(lencodes+n, fill, c); + n += c; + } + } + if (n != ntot) return stbi__err("bad codelengths","Corrupt PNG"); + if (!stbi__zbuild_huffman(&a->z_length, lencodes, hlit)) return 0; + if (!stbi__zbuild_huffman(&a->z_distance, lencodes+hlit, hdist)) return 0; + return 1; +} + +static int stbi__parse_uncompressed_block(stbi__zbuf *a) +{ + stbi_uc header[4]; + int len,nlen,k; + if (a->num_bits & 7) + stbi__zreceive(a, a->num_bits & 7); // discard + // drain the bit-packed data into header + k = 0; + while (a->num_bits > 0) { + header[k++] = (stbi_uc) (a->code_buffer & 255); // suppress MSVC run-time check + a->code_buffer >>= 8; + a->num_bits -= 8; + } + if (a->num_bits < 0) return stbi__err("zlib corrupt","Corrupt PNG"); + // now fill header the normal way + while (k < 4) + header[k++] = stbi__zget8(a); + len = header[1] * 256 + header[0]; + nlen = header[3] * 256 + header[2]; + if (nlen != (len ^ 0xffff)) return stbi__err("zlib corrupt","Corrupt PNG"); + if (a->zbuffer + len > a->zbuffer_end) return stbi__err("read past buffer","Corrupt PNG"); + if (a->zout + len > a->zout_end) + if (!stbi__zexpand(a, a->zout, len)) return 0; + memcpy(a->zout, a->zbuffer, len); + a->zbuffer += len; + a->zout += len; + return 1; +} + +static int stbi__parse_zlib_header(stbi__zbuf *a) +{ + int cmf = stbi__zget8(a); + int cm = cmf & 15; + /* int cinfo = cmf >> 4; */ + int flg = stbi__zget8(a); + if (stbi__zeof(a)) return stbi__err("bad zlib header","Corrupt PNG"); // zlib spec + if ((cmf*256+flg) % 31 != 0) return stbi__err("bad zlib header","Corrupt PNG"); // zlib spec + if (flg & 32) return stbi__err("no preset dict","Corrupt PNG"); // preset dictionary not allowed in png + if (cm != 8) return stbi__err("bad compression","Corrupt PNG"); // DEFLATE required for png + // window = 1 << (8 + cinfo)... but who cares, we fully buffer output + return 1; +} + +static const stbi_uc stbi__zdefault_length[STBI__ZNSYMS] = +{ + 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, + 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, + 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, + 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, + 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, + 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, + 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, + 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, + 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, 7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8 +}; +static const stbi_uc stbi__zdefault_distance[32] = +{ + 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5 +}; +/* +Init algorithm: +{ + int i; // use <= to match clearly with spec + for (i=0; i <= 143; ++i) stbi__zdefault_length[i] = 8; + for ( ; i <= 255; ++i) stbi__zdefault_length[i] = 9; + for ( ; i <= 279; ++i) stbi__zdefault_length[i] = 7; + for ( ; i <= 287; ++i) stbi__zdefault_length[i] = 8; + + for (i=0; i <= 31; ++i) stbi__zdefault_distance[i] = 5; +} +*/ + +static int stbi__parse_zlib(stbi__zbuf *a, int parse_header) +{ + int final, type; + if (parse_header) + if (!stbi__parse_zlib_header(a)) return 0; + a->num_bits = 0; + a->code_buffer = 0; + a->hit_zeof_once = 0; + do { + final = stbi__zreceive(a,1); + type = stbi__zreceive(a,2); + if (type == 0) { + if (!stbi__parse_uncompressed_block(a)) return 0; + } else if (type == 3) { + return 0; + } else { + if (type == 1) { + // use fixed code lengths + if (!stbi__zbuild_huffman(&a->z_length , stbi__zdefault_length , STBI__ZNSYMS)) return 0; + if (!stbi__zbuild_huffman(&a->z_distance, stbi__zdefault_distance, 32)) return 0; + } else { + if (!stbi__compute_huffman_codes(a)) return 0; + } + if (!stbi__parse_huffman_block(a)) return 0; + } + } while (!final); + return 1; +} + +static int stbi__do_zlib(stbi__zbuf *a, char *obuf, int olen, int exp, int parse_header) +{ + a->zout_start = obuf; + a->zout = obuf; + a->zout_end = obuf + olen; + a->z_expandable = exp; + + return stbi__parse_zlib(a, parse_header); +} + +STBIDEF char *stbi_zlib_decode_malloc_guesssize(const char *buffer, int len, int initial_size, int *outlen) +{ + stbi__zbuf a; + char *p = (char *) stbi__malloc(initial_size); + if (p == NULL) return NULL; + a.zbuffer = (stbi_uc *) buffer; + a.zbuffer_end = (stbi_uc *) buffer + len; + if (stbi__do_zlib(&a, p, initial_size, 1, 1)) { + if (outlen) *outlen = (int) (a.zout - a.zout_start); + return a.zout_start; + } else { + STBI_FREE(a.zout_start); + return NULL; + } +} + +STBIDEF char *stbi_zlib_decode_malloc(char const *buffer, int len, int *outlen) +{ + return stbi_zlib_decode_malloc_guesssize(buffer, len, 16384, outlen); +} + +STBIDEF char *stbi_zlib_decode_malloc_guesssize_headerflag(const char *buffer, int len, int initial_size, int *outlen, int parse_header) +{ + stbi__zbuf a; + char *p = (char *) stbi__malloc(initial_size); + if (p == NULL) return NULL; + a.zbuffer = (stbi_uc *) buffer; + a.zbuffer_end = (stbi_uc *) buffer + len; + if (stbi__do_zlib(&a, p, initial_size, 1, parse_header)) { + if (outlen) *outlen = (int) (a.zout - a.zout_start); + return a.zout_start; + } else { + STBI_FREE(a.zout_start); + return NULL; + } +} + +STBIDEF int stbi_zlib_decode_buffer(char *obuffer, int olen, char const *ibuffer, int ilen) +{ + stbi__zbuf a; + a.zbuffer = (stbi_uc *) ibuffer; + a.zbuffer_end = (stbi_uc *) ibuffer + ilen; + if (stbi__do_zlib(&a, obuffer, olen, 0, 1)) + return (int) (a.zout - a.zout_start); + else + return -1; +} + +STBIDEF char *stbi_zlib_decode_noheader_malloc(char const *buffer, int len, int *outlen) +{ + stbi__zbuf a; + char *p = (char *) stbi__malloc(16384); + if (p == NULL) return NULL; + a.zbuffer = (stbi_uc *) buffer; + a.zbuffer_end = (stbi_uc *) buffer+len; + if (stbi__do_zlib(&a, p, 16384, 1, 0)) { + if (outlen) *outlen = (int) (a.zout - a.zout_start); + return a.zout_start; + } else { + STBI_FREE(a.zout_start); + return NULL; + } +} + +STBIDEF int stbi_zlib_decode_noheader_buffer(char *obuffer, int olen, const char *ibuffer, int ilen) +{ + stbi__zbuf a; + a.zbuffer = (stbi_uc *) ibuffer; + a.zbuffer_end = (stbi_uc *) ibuffer + ilen; + if (stbi__do_zlib(&a, obuffer, olen, 0, 0)) + return (int) (a.zout - a.zout_start); + else + return -1; +} +#endif + +// public domain "baseline" PNG decoder v0.10 Sean Barrett 2006-11-18 +// simple implementation +// - only 8-bit samples +// - no CRC checking +// - allocates lots of intermediate memory +// - avoids problem of streaming data between subsystems +// - avoids explicit window management +// performance +// - uses stb_zlib, a PD zlib implementation with fast huffman decoding + +#ifndef STBI_NO_PNG +typedef struct +{ + stbi__uint32 length; + stbi__uint32 type; +} stbi__pngchunk; + +static stbi__pngchunk stbi__get_chunk_header(stbi__context *s) +{ + stbi__pngchunk c; + c.length = stbi__get32be(s); + c.type = stbi__get32be(s); + return c; +} + +static int stbi__check_png_header(stbi__context *s) +{ + static const stbi_uc png_sig[8] = { 137,80,78,71,13,10,26,10 }; + int i; + for (i=0; i < 8; ++i) + if (stbi__get8(s) != png_sig[i]) return stbi__err("bad png sig","Not a PNG"); + return 1; +} + +typedef struct +{ + stbi__context *s; + stbi_uc *idata, *expanded, *out; + int depth; +} stbi__png; + + +enum { + STBI__F_none=0, + STBI__F_sub=1, + STBI__F_up=2, + STBI__F_avg=3, + STBI__F_paeth=4, + // synthetic filter used for first scanline to avoid needing a dummy row of 0s + STBI__F_avg_first +}; + +static stbi_uc first_row_filter[5] = +{ + STBI__F_none, + STBI__F_sub, + STBI__F_none, + STBI__F_avg_first, + STBI__F_sub // Paeth with b=c=0 turns out to be equivalent to sub +}; + +static int stbi__paeth(int a, int b, int c) +{ + // This formulation looks very different from the reference in the PNG spec, but is + // actually equivalent and has favorable data dependencies and admits straightforward + // generation of branch-free code, which helps performance significantly. + int thresh = c*3 - (a + b); + int lo = a < b ? a : b; + int hi = a < b ? b : a; + int t0 = (hi <= thresh) ? lo : c; + int t1 = (thresh <= lo) ? hi : t0; + return t1; +} + +static const stbi_uc stbi__depth_scale_table[9] = { 0, 0xff, 0x55, 0, 0x11, 0,0,0, 0x01 }; + +// adds an extra all-255 alpha channel +// dest == src is legal +// img_n must be 1 or 3 +static void stbi__create_png_alpha_expand8(stbi_uc *dest, stbi_uc *src, stbi__uint32 x, int img_n) +{ + int i; + // must process data backwards since we allow dest==src + if (img_n == 1) { + for (i=x-1; i >= 0; --i) { + dest[i*2+1] = 255; + dest[i*2+0] = src[i]; + } + } else { + STBI_ASSERT(img_n == 3); + for (i=x-1; i >= 0; --i) { + dest[i*4+3] = 255; + dest[i*4+2] = src[i*3+2]; + dest[i*4+1] = src[i*3+1]; + dest[i*4+0] = src[i*3+0]; + } + } +} + +// create the png data from post-deflated data +static int stbi__create_png_image_raw(stbi__png *a, stbi_uc *raw, stbi__uint32 raw_len, int out_n, stbi__uint32 x, stbi__uint32 y, int depth, int color) +{ + int bytes = (depth == 16 ? 2 : 1); + stbi__context *s = a->s; + stbi__uint32 i,j,stride = x*out_n*bytes; + stbi__uint32 img_len, img_width_bytes; + stbi_uc *filter_buf; + int all_ok = 1; + int k; + int img_n = s->img_n; // copy it into a local for later + + int output_bytes = out_n*bytes; + int filter_bytes = img_n*bytes; + int width = x; + + STBI_ASSERT(out_n == s->img_n || out_n == s->img_n+1); + a->out = (stbi_uc *) stbi__malloc_mad3(x, y, output_bytes, 0); // extra bytes to write off the end into + if (!a->out) return stbi__err("outofmem", "Out of memory"); + + // note: error exits here don't need to clean up a->out individually, + // stbi__do_png always does on error. + if (!stbi__mad3sizes_valid(img_n, x, depth, 7)) return stbi__err("too large", "Corrupt PNG"); + img_width_bytes = (((img_n * x * depth) + 7) >> 3); + if (!stbi__mad2sizes_valid(img_width_bytes, y, img_width_bytes)) return stbi__err("too large", "Corrupt PNG"); + img_len = (img_width_bytes + 1) * y; + + // we used to check for exact match between raw_len and img_len on non-interlaced PNGs, + // but issue #276 reported a PNG in the wild that had extra data at the end (all zeros), + // so just check for raw_len < img_len always. + if (raw_len < img_len) return stbi__err("not enough pixels","Corrupt PNG"); + + // Allocate two scan lines worth of filter workspace buffer. + filter_buf = (stbi_uc *) stbi__malloc_mad2(img_width_bytes, 2, 0); + if (!filter_buf) return stbi__err("outofmem", "Out of memory"); + + // Filtering for low-bit-depth images + if (depth < 8) { + filter_bytes = 1; + width = img_width_bytes; + } + + for (j=0; j < y; ++j) { + // cur/prior filter buffers alternate + stbi_uc *cur = filter_buf + (j & 1)*img_width_bytes; + stbi_uc *prior = filter_buf + (~j & 1)*img_width_bytes; + stbi_uc *dest = a->out + stride*j; + int nk = width * filter_bytes; + int filter = *raw++; + + // check filter type + if (filter > 4) { + all_ok = stbi__err("invalid filter","Corrupt PNG"); + break; + } + + // if first row, use special filter that doesn't sample previous row + if (j == 0) filter = first_row_filter[filter]; + + // perform actual filtering + switch (filter) { + case STBI__F_none: + memcpy(cur, raw, nk); + break; + case STBI__F_sub: + memcpy(cur, raw, filter_bytes); + for (k = filter_bytes; k < nk; ++k) + cur[k] = STBI__BYTECAST(raw[k] + cur[k-filter_bytes]); + break; + case STBI__F_up: + for (k = 0; k < nk; ++k) + cur[k] = STBI__BYTECAST(raw[k] + prior[k]); + break; + case STBI__F_avg: + for (k = 0; k < filter_bytes; ++k) + cur[k] = STBI__BYTECAST(raw[k] + (prior[k]>>1)); + for (k = filter_bytes; k < nk; ++k) + cur[k] = STBI__BYTECAST(raw[k] + ((prior[k] + cur[k-filter_bytes])>>1)); + break; + case STBI__F_paeth: + for (k = 0; k < filter_bytes; ++k) + cur[k] = STBI__BYTECAST(raw[k] + prior[k]); // prior[k] == stbi__paeth(0,prior[k],0) + for (k = filter_bytes; k < nk; ++k) + cur[k] = STBI__BYTECAST(raw[k] + stbi__paeth(cur[k-filter_bytes], prior[k], prior[k-filter_bytes])); + break; + case STBI__F_avg_first: + memcpy(cur, raw, filter_bytes); + for (k = filter_bytes; k < nk; ++k) + cur[k] = STBI__BYTECAST(raw[k] + (cur[k-filter_bytes] >> 1)); + break; + } + + raw += nk; + + // expand decoded bits in cur to dest, also adding an extra alpha channel if desired + if (depth < 8) { + stbi_uc scale = (color == 0) ? stbi__depth_scale_table[depth] : 1; // scale grayscale values to 0..255 range + stbi_uc *in = cur; + stbi_uc *out = dest; + stbi_uc inb = 0; + stbi__uint32 nsmp = x*img_n; + + // expand bits to bytes first + if (depth == 4) { + for (i=0; i < nsmp; ++i) { + if ((i & 1) == 0) inb = *in++; + *out++ = scale * (inb >> 4); + inb <<= 4; + } + } else if (depth == 2) { + for (i=0; i < nsmp; ++i) { + if ((i & 3) == 0) inb = *in++; + *out++ = scale * (inb >> 6); + inb <<= 2; + } + } else { + STBI_ASSERT(depth == 1); + for (i=0; i < nsmp; ++i) { + if ((i & 7) == 0) inb = *in++; + *out++ = scale * (inb >> 7); + inb <<= 1; + } + } + + // insert alpha=255 values if desired + if (img_n != out_n) + stbi__create_png_alpha_expand8(dest, dest, x, img_n); + } else if (depth == 8) { + if (img_n == out_n) + memcpy(dest, cur, x*img_n); + else + stbi__create_png_alpha_expand8(dest, cur, x, img_n); + } else if (depth == 16) { + // convert the image data from big-endian to platform-native + stbi__uint16 *dest16 = (stbi__uint16*)dest; + stbi__uint32 nsmp = x*img_n; + + if (img_n == out_n) { + for (i = 0; i < nsmp; ++i, ++dest16, cur += 2) + *dest16 = (cur[0] << 8) | cur[1]; + } else { + STBI_ASSERT(img_n+1 == out_n); + if (img_n == 1) { + for (i = 0; i < x; ++i, dest16 += 2, cur += 2) { + dest16[0] = (cur[0] << 8) | cur[1]; + dest16[1] = 0xffff; + } + } else { + STBI_ASSERT(img_n == 3); + for (i = 0; i < x; ++i, dest16 += 4, cur += 6) { + dest16[0] = (cur[0] << 8) | cur[1]; + dest16[1] = (cur[2] << 8) | cur[3]; + dest16[2] = (cur[4] << 8) | cur[5]; + dest16[3] = 0xffff; + } + } + } + } + } + + STBI_FREE(filter_buf); + if (!all_ok) return 0; + + return 1; +} + +static int stbi__create_png_image(stbi__png *a, stbi_uc *image_data, stbi__uint32 image_data_len, int out_n, int depth, int color, int interlaced) +{ + int bytes = (depth == 16 ? 2 : 1); + int out_bytes = out_n * bytes; + stbi_uc *final; + int p; + if (!interlaced) + return stbi__create_png_image_raw(a, image_data, image_data_len, out_n, a->s->img_x, a->s->img_y, depth, color); + + // de-interlacing + final = (stbi_uc *) stbi__malloc_mad3(a->s->img_x, a->s->img_y, out_bytes, 0); + if (!final) return stbi__err("outofmem", "Out of memory"); + for (p=0; p < 7; ++p) { + int xorig[] = { 0,4,0,2,0,1,0 }; + int yorig[] = { 0,0,4,0,2,0,1 }; + int xspc[] = { 8,8,4,4,2,2,1 }; + int yspc[] = { 8,8,8,4,4,2,2 }; + int i,j,x,y; + // pass1_x[4] = 0, pass1_x[5] = 1, pass1_x[12] = 1 + x = (a->s->img_x - xorig[p] + xspc[p]-1) / xspc[p]; + y = (a->s->img_y - yorig[p] + yspc[p]-1) / yspc[p]; + if (x && y) { + stbi__uint32 img_len = ((((a->s->img_n * x * depth) + 7) >> 3) + 1) * y; + if (!stbi__create_png_image_raw(a, image_data, image_data_len, out_n, x, y, depth, color)) { + STBI_FREE(final); + return 0; + } + for (j=0; j < y; ++j) { + for (i=0; i < x; ++i) { + int out_y = j*yspc[p]+yorig[p]; + int out_x = i*xspc[p]+xorig[p]; + memcpy(final + out_y*a->s->img_x*out_bytes + out_x*out_bytes, + a->out + (j*x+i)*out_bytes, out_bytes); + } + } + STBI_FREE(a->out); + image_data += img_len; + image_data_len -= img_len; + } + } + a->out = final; + + return 1; +} + +static int stbi__compute_transparency(stbi__png *z, stbi_uc tc[3], int out_n) +{ + stbi__context *s = z->s; + stbi__uint32 i, pixel_count = s->img_x * s->img_y; + stbi_uc *p = z->out; + + // compute color-based transparency, assuming we've + // already got 255 as the alpha value in the output + STBI_ASSERT(out_n == 2 || out_n == 4); + + if (out_n == 2) { + for (i=0; i < pixel_count; ++i) { + p[1] = (p[0] == tc[0] ? 0 : 255); + p += 2; + } + } else { + for (i=0; i < pixel_count; ++i) { + if (p[0] == tc[0] && p[1] == tc[1] && p[2] == tc[2]) + p[3] = 0; + p += 4; + } + } + return 1; +} + +static int stbi__compute_transparency16(stbi__png *z, stbi__uint16 tc[3], int out_n) +{ + stbi__context *s = z->s; + stbi__uint32 i, pixel_count = s->img_x * s->img_y; + stbi__uint16 *p = (stbi__uint16*) z->out; + + // compute color-based transparency, assuming we've + // already got 65535 as the alpha value in the output + STBI_ASSERT(out_n == 2 || out_n == 4); + + if (out_n == 2) { + for (i = 0; i < pixel_count; ++i) { + p[1] = (p[0] == tc[0] ? 0 : 65535); + p += 2; + } + } else { + for (i = 0; i < pixel_count; ++i) { + if (p[0] == tc[0] && p[1] == tc[1] && p[2] == tc[2]) + p[3] = 0; + p += 4; + } + } + return 1; +} + +static int stbi__expand_png_palette(stbi__png *a, stbi_uc *palette, int len, int pal_img_n) +{ + stbi__uint32 i, pixel_count = a->s->img_x * a->s->img_y; + stbi_uc *p, *temp_out, *orig = a->out; + + p = (stbi_uc *) stbi__malloc_mad2(pixel_count, pal_img_n, 0); + if (p == NULL) return stbi__err("outofmem", "Out of memory"); + + // between here and free(out) below, exitting would leak + temp_out = p; + + if (pal_img_n == 3) { + for (i=0; i < pixel_count; ++i) { + int n = orig[i]*4; + p[0] = palette[n ]; + p[1] = palette[n+1]; + p[2] = palette[n+2]; + p += 3; + } + } else { + for (i=0; i < pixel_count; ++i) { + int n = orig[i]*4; + p[0] = palette[n ]; + p[1] = palette[n+1]; + p[2] = palette[n+2]; + p[3] = palette[n+3]; + p += 4; + } + } + STBI_FREE(a->out); + a->out = temp_out; + + STBI_NOTUSED(len); + + return 1; +} + +static int stbi__unpremultiply_on_load_global = 0; +static int stbi__de_iphone_flag_global = 0; + +STBIDEF void stbi_set_unpremultiply_on_load(int flag_true_if_should_unpremultiply) +{ + stbi__unpremultiply_on_load_global = flag_true_if_should_unpremultiply; +} + +STBIDEF void stbi_convert_iphone_png_to_rgb(int flag_true_if_should_convert) +{ + stbi__de_iphone_flag_global = flag_true_if_should_convert; +} + +#ifndef STBI_THREAD_LOCAL +#define stbi__unpremultiply_on_load stbi__unpremultiply_on_load_global +#define stbi__de_iphone_flag stbi__de_iphone_flag_global +#else +static STBI_THREAD_LOCAL int stbi__unpremultiply_on_load_local, stbi__unpremultiply_on_load_set; +static STBI_THREAD_LOCAL int stbi__de_iphone_flag_local, stbi__de_iphone_flag_set; + +STBIDEF void stbi_set_unpremultiply_on_load_thread(int flag_true_if_should_unpremultiply) +{ + stbi__unpremultiply_on_load_local = flag_true_if_should_unpremultiply; + stbi__unpremultiply_on_load_set = 1; +} + +STBIDEF void stbi_convert_iphone_png_to_rgb_thread(int flag_true_if_should_convert) +{ + stbi__de_iphone_flag_local = flag_true_if_should_convert; + stbi__de_iphone_flag_set = 1; +} + +#define stbi__unpremultiply_on_load (stbi__unpremultiply_on_load_set \ + ? stbi__unpremultiply_on_load_local \ + : stbi__unpremultiply_on_load_global) +#define stbi__de_iphone_flag (stbi__de_iphone_flag_set \ + ? stbi__de_iphone_flag_local \ + : stbi__de_iphone_flag_global) +#endif // STBI_THREAD_LOCAL + +static void stbi__de_iphone(stbi__png *z) +{ + stbi__context *s = z->s; + stbi__uint32 i, pixel_count = s->img_x * s->img_y; + stbi_uc *p = z->out; + + if (s->img_out_n == 3) { // convert bgr to rgb + for (i=0; i < pixel_count; ++i) { + stbi_uc t = p[0]; + p[0] = p[2]; + p[2] = t; + p += 3; + } + } else { + STBI_ASSERT(s->img_out_n == 4); + if (stbi__unpremultiply_on_load) { + // convert bgr to rgb and unpremultiply + for (i=0; i < pixel_count; ++i) { + stbi_uc a = p[3]; + stbi_uc t = p[0]; + if (a) { + stbi_uc half = a / 2; + p[0] = (p[2] * 255 + half) / a; + p[1] = (p[1] * 255 + half) / a; + p[2] = ( t * 255 + half) / a; + } else { + p[0] = p[2]; + p[2] = t; + } + p += 4; + } + } else { + // convert bgr to rgb + for (i=0; i < pixel_count; ++i) { + stbi_uc t = p[0]; + p[0] = p[2]; + p[2] = t; + p += 4; + } + } + } +} + +#define STBI__PNG_TYPE(a,b,c,d) (((unsigned) (a) << 24) + ((unsigned) (b) << 16) + ((unsigned) (c) << 8) + (unsigned) (d)) + +static int stbi__parse_png_file(stbi__png *z, int scan, int req_comp) +{ + stbi_uc palette[1024], pal_img_n=0; + stbi_uc has_trans=0, tc[3]={0}; + stbi__uint16 tc16[3]; + stbi__uint32 ioff=0, idata_limit=0, i, pal_len=0; + int first=1,k,interlace=0, color=0, is_iphone=0; + stbi__context *s = z->s; + + z->expanded = NULL; + z->idata = NULL; + z->out = NULL; + + if (!stbi__check_png_header(s)) return 0; + + if (scan == STBI__SCAN_type) return 1; + + for (;;) { + stbi__pngchunk c = stbi__get_chunk_header(s); + switch (c.type) { + case STBI__PNG_TYPE('C','g','B','I'): + is_iphone = 1; + stbi__skip(s, c.length); + break; + case STBI__PNG_TYPE('I','H','D','R'): { + int comp,filter; + if (!first) return stbi__err("multiple IHDR","Corrupt PNG"); + first = 0; + if (c.length != 13) return stbi__err("bad IHDR len","Corrupt PNG"); + s->img_x = stbi__get32be(s); + s->img_y = stbi__get32be(s); + if (s->img_y > STBI_MAX_DIMENSIONS) return stbi__err("too large","Very large image (corrupt?)"); + if (s->img_x > STBI_MAX_DIMENSIONS) return stbi__err("too large","Very large image (corrupt?)"); + z->depth = stbi__get8(s); if (z->depth != 1 && z->depth != 2 && z->depth != 4 && z->depth != 8 && z->depth != 16) return stbi__err("1/2/4/8/16-bit only","PNG not supported: 1/2/4/8/16-bit only"); + color = stbi__get8(s); if (color > 6) return stbi__err("bad ctype","Corrupt PNG"); + if (color == 3 && z->depth == 16) return stbi__err("bad ctype","Corrupt PNG"); + if (color == 3) pal_img_n = 3; else if (color & 1) return stbi__err("bad ctype","Corrupt PNG"); + comp = stbi__get8(s); if (comp) return stbi__err("bad comp method","Corrupt PNG"); + filter= stbi__get8(s); if (filter) return stbi__err("bad filter method","Corrupt PNG"); + interlace = stbi__get8(s); if (interlace>1) return stbi__err("bad interlace method","Corrupt PNG"); + if (!s->img_x || !s->img_y) return stbi__err("0-pixel image","Corrupt PNG"); + if (!pal_img_n) { + s->img_n = (color & 2 ? 3 : 1) + (color & 4 ? 1 : 0); + if ((1 << 30) / s->img_x / s->img_n < s->img_y) return stbi__err("too large", "Image too large to decode"); + } else { + // if paletted, then pal_n is our final components, and + // img_n is # components to decompress/filter. + s->img_n = 1; + if ((1 << 30) / s->img_x / 4 < s->img_y) return stbi__err("too large","Corrupt PNG"); + } + // even with SCAN_header, have to scan to see if we have a tRNS + break; + } + + case STBI__PNG_TYPE('P','L','T','E'): { + if (first) return stbi__err("first not IHDR", "Corrupt PNG"); + if (c.length > 256*3) return stbi__err("invalid PLTE","Corrupt PNG"); + pal_len = c.length / 3; + if (pal_len * 3 != c.length) return stbi__err("invalid PLTE","Corrupt PNG"); + for (i=0; i < pal_len; ++i) { + palette[i*4+0] = stbi__get8(s); + palette[i*4+1] = stbi__get8(s); + palette[i*4+2] = stbi__get8(s); + palette[i*4+3] = 255; + } + break; + } + + case STBI__PNG_TYPE('t','R','N','S'): { + if (first) return stbi__err("first not IHDR", "Corrupt PNG"); + if (z->idata) return stbi__err("tRNS after IDAT","Corrupt PNG"); + if (pal_img_n) { + if (scan == STBI__SCAN_header) { s->img_n = 4; return 1; } + if (pal_len == 0) return stbi__err("tRNS before PLTE","Corrupt PNG"); + if (c.length > pal_len) return stbi__err("bad tRNS len","Corrupt PNG"); + pal_img_n = 4; + for (i=0; i < c.length; ++i) + palette[i*4+3] = stbi__get8(s); + } else { + if (!(s->img_n & 1)) return stbi__err("tRNS with alpha","Corrupt PNG"); + if (c.length != (stbi__uint32) s->img_n*2) return stbi__err("bad tRNS len","Corrupt PNG"); + has_trans = 1; + // non-paletted with tRNS = constant alpha. if header-scanning, we can stop now. + if (scan == STBI__SCAN_header) { ++s->img_n; return 1; } + if (z->depth == 16) { + for (k = 0; k < s->img_n; ++k) tc16[k] = (stbi__uint16)stbi__get16be(s); // copy the values as-is + } else { + for (k = 0; k < s->img_n; ++k) tc[k] = (stbi_uc)(stbi__get16be(s) & 255) * stbi__depth_scale_table[z->depth]; // non 8-bit images will be larger + } + } + break; + } + + case STBI__PNG_TYPE('I','D','A','T'): { + if (first) return stbi__err("first not IHDR", "Corrupt PNG"); + if (pal_img_n && !pal_len) return stbi__err("no PLTE","Corrupt PNG"); + if (scan == STBI__SCAN_header) { + // header scan definitely stops at first IDAT + if (pal_img_n) + s->img_n = pal_img_n; + return 1; + } + if (c.length > (1u << 30)) return stbi__err("IDAT size limit", "IDAT section larger than 2^30 bytes"); + if ((int)(ioff + c.length) < (int)ioff) return 0; + if (ioff + c.length > idata_limit) { + stbi__uint32 idata_limit_old = idata_limit; + stbi_uc *p; + if (idata_limit == 0) idata_limit = c.length > 4096 ? c.length : 4096; + while (ioff + c.length > idata_limit) + idata_limit *= 2; + STBI_NOTUSED(idata_limit_old); + p = (stbi_uc *) STBI_REALLOC_SIZED(z->idata, idata_limit_old, idata_limit); if (p == NULL) return stbi__err("outofmem", "Out of memory"); + z->idata = p; + } + if (!stbi__getn(s, z->idata+ioff,c.length)) return stbi__err("outofdata","Corrupt PNG"); + ioff += c.length; + break; + } + + case STBI__PNG_TYPE('I','E','N','D'): { + stbi__uint32 raw_len, bpl; + if (first) return stbi__err("first not IHDR", "Corrupt PNG"); + if (scan != STBI__SCAN_load) return 1; + if (z->idata == NULL) return stbi__err("no IDAT","Corrupt PNG"); + // initial guess for decoded data size to avoid unnecessary reallocs + bpl = (s->img_x * z->depth + 7) / 8; // bytes per line, per component + raw_len = bpl * s->img_y * s->img_n /* pixels */ + s->img_y /* filter mode per row */; + z->expanded = (stbi_uc *) stbi_zlib_decode_malloc_guesssize_headerflag((char *) z->idata, ioff, raw_len, (int *) &raw_len, !is_iphone); + if (z->expanded == NULL) return 0; // zlib should set error + STBI_FREE(z->idata); z->idata = NULL; + if ((req_comp == s->img_n+1 && req_comp != 3 && !pal_img_n) || has_trans) + s->img_out_n = s->img_n+1; + else + s->img_out_n = s->img_n; + if (!stbi__create_png_image(z, z->expanded, raw_len, s->img_out_n, z->depth, color, interlace)) return 0; + if (has_trans) { + if (z->depth == 16) { + if (!stbi__compute_transparency16(z, tc16, s->img_out_n)) return 0; + } else { + if (!stbi__compute_transparency(z, tc, s->img_out_n)) return 0; + } + } + if (is_iphone && stbi__de_iphone_flag && s->img_out_n > 2) + stbi__de_iphone(z); + if (pal_img_n) { + // pal_img_n == 3 or 4 + s->img_n = pal_img_n; // record the actual colors we had + s->img_out_n = pal_img_n; + if (req_comp >= 3) s->img_out_n = req_comp; + if (!stbi__expand_png_palette(z, palette, pal_len, s->img_out_n)) + return 0; + } else if (has_trans) { + // non-paletted image with tRNS -> source image has (constant) alpha + ++s->img_n; + } + STBI_FREE(z->expanded); z->expanded = NULL; + // end of PNG chunk, read and skip CRC + stbi__get32be(s); + return 1; + } + + default: + // if critical, fail + if (first) return stbi__err("first not IHDR", "Corrupt PNG"); + if ((c.type & (1 << 29)) == 0) { + #ifndef STBI_NO_FAILURE_STRINGS + // not threadsafe + static char invalid_chunk[] = "XXXX PNG chunk not known"; + invalid_chunk[0] = STBI__BYTECAST(c.type >> 24); + invalid_chunk[1] = STBI__BYTECAST(c.type >> 16); + invalid_chunk[2] = STBI__BYTECAST(c.type >> 8); + invalid_chunk[3] = STBI__BYTECAST(c.type >> 0); + #endif + return stbi__err(invalid_chunk, "PNG not supported: unknown PNG chunk type"); + } + stbi__skip(s, c.length); + break; + } + // end of PNG chunk, read and skip CRC + stbi__get32be(s); + } +} + +static void *stbi__do_png(stbi__png *p, int *x, int *y, int *n, int req_comp, stbi__result_info *ri) +{ + void *result=NULL; + if (req_comp < 0 || req_comp > 4) return stbi__errpuc("bad req_comp", "Internal error"); + if (stbi__parse_png_file(p, STBI__SCAN_load, req_comp)) { + if (p->depth <= 8) + ri->bits_per_channel = 8; + else if (p->depth == 16) + ri->bits_per_channel = 16; + else + return stbi__errpuc("bad bits_per_channel", "PNG not supported: unsupported color depth"); + result = p->out; + p->out = NULL; + if (req_comp && req_comp != p->s->img_out_n) { + if (ri->bits_per_channel == 8) + result = stbi__convert_format((unsigned char *) result, p->s->img_out_n, req_comp, p->s->img_x, p->s->img_y); + else + result = stbi__convert_format16((stbi__uint16 *) result, p->s->img_out_n, req_comp, p->s->img_x, p->s->img_y); + p->s->img_out_n = req_comp; + if (result == NULL) return result; + } + *x = p->s->img_x; + *y = p->s->img_y; + if (n) *n = p->s->img_n; + } + STBI_FREE(p->out); p->out = NULL; + STBI_FREE(p->expanded); p->expanded = NULL; + STBI_FREE(p->idata); p->idata = NULL; + + return result; +} + +static void *stbi__png_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri) +{ + stbi__png p; + p.s = s; + return stbi__do_png(&p, x,y,comp,req_comp, ri); +} + +static int stbi__png_test(stbi__context *s) +{ + int r; + r = stbi__check_png_header(s); + stbi__rewind(s); + return r; +} + +static int stbi__png_info_raw(stbi__png *p, int *x, int *y, int *comp) +{ + if (!stbi__parse_png_file(p, STBI__SCAN_header, 0)) { + stbi__rewind( p->s ); + return 0; + } + if (x) *x = p->s->img_x; + if (y) *y = p->s->img_y; + if (comp) *comp = p->s->img_n; + return 1; +} + +static int stbi__png_info(stbi__context *s, int *x, int *y, int *comp) +{ + stbi__png p; + p.s = s; + return stbi__png_info_raw(&p, x, y, comp); +} + +static int stbi__png_is16(stbi__context *s) +{ + stbi__png p; + p.s = s; + if (!stbi__png_info_raw(&p, NULL, NULL, NULL)) + return 0; + if (p.depth != 16) { + stbi__rewind(p.s); + return 0; + } + return 1; +} +#endif + +// Microsoft/Windows BMP image + +#ifndef STBI_NO_BMP +static int stbi__bmp_test_raw(stbi__context *s) +{ + int r; + int sz; + if (stbi__get8(s) != 'B') return 0; + if (stbi__get8(s) != 'M') return 0; + stbi__get32le(s); // discard filesize + stbi__get16le(s); // discard reserved + stbi__get16le(s); // discard reserved + stbi__get32le(s); // discard data offset + sz = stbi__get32le(s); + r = (sz == 12 || sz == 40 || sz == 56 || sz == 108 || sz == 124); + return r; +} + +static int stbi__bmp_test(stbi__context *s) +{ + int r = stbi__bmp_test_raw(s); + stbi__rewind(s); + return r; +} + + +// returns 0..31 for the highest set bit +static int stbi__high_bit(unsigned int z) +{ + int n=0; + if (z == 0) return -1; + if (z >= 0x10000) { n += 16; z >>= 16; } + if (z >= 0x00100) { n += 8; z >>= 8; } + if (z >= 0x00010) { n += 4; z >>= 4; } + if (z >= 0x00004) { n += 2; z >>= 2; } + if (z >= 0x00002) { n += 1;/* >>= 1;*/ } + return n; +} + +static int stbi__bitcount(unsigned int a) +{ + a = (a & 0x55555555) + ((a >> 1) & 0x55555555); // max 2 + a = (a & 0x33333333) + ((a >> 2) & 0x33333333); // max 4 + a = (a + (a >> 4)) & 0x0f0f0f0f; // max 8 per 4, now 8 bits + a = (a + (a >> 8)); // max 16 per 8 bits + a = (a + (a >> 16)); // max 32 per 8 bits + return a & 0xff; +} + +// extract an arbitrarily-aligned N-bit value (N=bits) +// from v, and then make it 8-bits long and fractionally +// extend it to full full range. +static int stbi__shiftsigned(unsigned int v, int shift, int bits) +{ + static unsigned int mul_table[9] = { + 0, + 0xff/*0b11111111*/, 0x55/*0b01010101*/, 0x49/*0b01001001*/, 0x11/*0b00010001*/, + 0x21/*0b00100001*/, 0x41/*0b01000001*/, 0x81/*0b10000001*/, 0x01/*0b00000001*/, + }; + static unsigned int shift_table[9] = { + 0, 0,0,1,0,2,4,6,0, + }; + if (shift < 0) + v <<= -shift; + else + v >>= shift; + STBI_ASSERT(v < 256); + v >>= (8-bits); + STBI_ASSERT(bits >= 0 && bits <= 8); + return (int) ((unsigned) v * mul_table[bits]) >> shift_table[bits]; +} + +typedef struct +{ + int bpp, offset, hsz; + unsigned int mr,mg,mb,ma, all_a; + int extra_read; +} stbi__bmp_data; + +static int stbi__bmp_set_mask_defaults(stbi__bmp_data *info, int compress) +{ + // BI_BITFIELDS specifies masks explicitly, don't override + if (compress == 3) + return 1; + + if (compress == 0) { + if (info->bpp == 16) { + info->mr = 31u << 10; + info->mg = 31u << 5; + info->mb = 31u << 0; + } else if (info->bpp == 32) { + info->mr = 0xffu << 16; + info->mg = 0xffu << 8; + info->mb = 0xffu << 0; + info->ma = 0xffu << 24; + info->all_a = 0; // if all_a is 0 at end, then we loaded alpha channel but it was all 0 + } else { + // otherwise, use defaults, which is all-0 + info->mr = info->mg = info->mb = info->ma = 0; + } + return 1; + } + return 0; // error +} + +static void *stbi__bmp_parse_header(stbi__context *s, stbi__bmp_data *info) +{ + int hsz; + if (stbi__get8(s) != 'B' || stbi__get8(s) != 'M') return stbi__errpuc("not BMP", "Corrupt BMP"); + stbi__get32le(s); // discard filesize + stbi__get16le(s); // discard reserved + stbi__get16le(s); // discard reserved + info->offset = stbi__get32le(s); + info->hsz = hsz = stbi__get32le(s); + info->mr = info->mg = info->mb = info->ma = 0; + info->extra_read = 14; + + if (info->offset < 0) return stbi__errpuc("bad BMP", "bad BMP"); + + if (hsz != 12 && hsz != 40 && hsz != 56 && hsz != 108 && hsz != 124) return stbi__errpuc("unknown BMP", "BMP type not supported: unknown"); + if (hsz == 12) { + s->img_x = stbi__get16le(s); + s->img_y = stbi__get16le(s); + } else { + s->img_x = stbi__get32le(s); + s->img_y = stbi__get32le(s); + } + if (stbi__get16le(s) != 1) return stbi__errpuc("bad BMP", "bad BMP"); + info->bpp = stbi__get16le(s); + if (hsz != 12) { + int compress = stbi__get32le(s); + if (compress == 1 || compress == 2) return stbi__errpuc("BMP RLE", "BMP type not supported: RLE"); + if (compress >= 4) return stbi__errpuc("BMP JPEG/PNG", "BMP type not supported: unsupported compression"); // this includes PNG/JPEG modes + if (compress == 3 && info->bpp != 16 && info->bpp != 32) return stbi__errpuc("bad BMP", "bad BMP"); // bitfields requires 16 or 32 bits/pixel + stbi__get32le(s); // discard sizeof + stbi__get32le(s); // discard hres + stbi__get32le(s); // discard vres + stbi__get32le(s); // discard colorsused + stbi__get32le(s); // discard max important + if (hsz == 40 || hsz == 56) { + if (hsz == 56) { + stbi__get32le(s); + stbi__get32le(s); + stbi__get32le(s); + stbi__get32le(s); + } + if (info->bpp == 16 || info->bpp == 32) { + if (compress == 0) { + stbi__bmp_set_mask_defaults(info, compress); + } else if (compress == 3) { + info->mr = stbi__get32le(s); + info->mg = stbi__get32le(s); + info->mb = stbi__get32le(s); + info->extra_read += 12; + // not documented, but generated by photoshop and handled by mspaint + if (info->mr == info->mg && info->mg == info->mb) { + // ?!?!? + return stbi__errpuc("bad BMP", "bad BMP"); + } + } else + return stbi__errpuc("bad BMP", "bad BMP"); + } + } else { + // V4/V5 header + int i; + if (hsz != 108 && hsz != 124) + return stbi__errpuc("bad BMP", "bad BMP"); + info->mr = stbi__get32le(s); + info->mg = stbi__get32le(s); + info->mb = stbi__get32le(s); + info->ma = stbi__get32le(s); + if (compress != 3) // override mr/mg/mb unless in BI_BITFIELDS mode, as per docs + stbi__bmp_set_mask_defaults(info, compress); + stbi__get32le(s); // discard color space + for (i=0; i < 12; ++i) + stbi__get32le(s); // discard color space parameters + if (hsz == 124) { + stbi__get32le(s); // discard rendering intent + stbi__get32le(s); // discard offset of profile data + stbi__get32le(s); // discard size of profile data + stbi__get32le(s); // discard reserved + } + } + } + return (void *) 1; +} + + +static void *stbi__bmp_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri) +{ + stbi_uc *out; + unsigned int mr=0,mg=0,mb=0,ma=0, all_a; + stbi_uc pal[256][4]; + int psize=0,i,j,width; + int flip_vertically, pad, target; + stbi__bmp_data info; + STBI_NOTUSED(ri); + + info.all_a = 255; + if (stbi__bmp_parse_header(s, &info) == NULL) + return NULL; // error code already set + + flip_vertically = ((int) s->img_y) > 0; + s->img_y = abs((int) s->img_y); + + if (s->img_y > STBI_MAX_DIMENSIONS) return stbi__errpuc("too large","Very large image (corrupt?)"); + if (s->img_x > STBI_MAX_DIMENSIONS) return stbi__errpuc("too large","Very large image (corrupt?)"); + + mr = info.mr; + mg = info.mg; + mb = info.mb; + ma = info.ma; + all_a = info.all_a; + + if (info.hsz == 12) { + if (info.bpp < 24) + psize = (info.offset - info.extra_read - 24) / 3; + } else { + if (info.bpp < 16) + psize = (info.offset - info.extra_read - info.hsz) >> 2; + } + if (psize == 0) { + // accept some number of extra bytes after the header, but if the offset points either to before + // the header ends or implies a large amount of extra data, reject the file as malformed + int bytes_read_so_far = s->callback_already_read + (int)(s->img_buffer - s->img_buffer_original); + int header_limit = 1024; // max we actually read is below 256 bytes currently. + int extra_data_limit = 256*4; // what ordinarily goes here is a palette; 256 entries*4 bytes is its max size. + if (bytes_read_so_far <= 0 || bytes_read_so_far > header_limit) { + return stbi__errpuc("bad header", "Corrupt BMP"); + } + // we established that bytes_read_so_far is positive and sensible. + // the first half of this test rejects offsets that are either too small positives, or + // negative, and guarantees that info.offset >= bytes_read_so_far > 0. this in turn + // ensures the number computed in the second half of the test can't overflow. + if (info.offset < bytes_read_so_far || info.offset - bytes_read_so_far > extra_data_limit) { + return stbi__errpuc("bad offset", "Corrupt BMP"); + } else { + stbi__skip(s, info.offset - bytes_read_so_far); + } + } + + if (info.bpp == 24 && ma == 0xff000000) + s->img_n = 3; + else + s->img_n = ma ? 4 : 3; + if (req_comp && req_comp >= 3) // we can directly decode 3 or 4 + target = req_comp; + else + target = s->img_n; // if they want monochrome, we'll post-convert + + // sanity-check size + if (!stbi__mad3sizes_valid(target, s->img_x, s->img_y, 0)) + return stbi__errpuc("too large", "Corrupt BMP"); + + out = (stbi_uc *) stbi__malloc_mad3(target, s->img_x, s->img_y, 0); + if (!out) return stbi__errpuc("outofmem", "Out of memory"); + if (info.bpp < 16) { + int z=0; + if (psize == 0 || psize > 256) { STBI_FREE(out); return stbi__errpuc("invalid", "Corrupt BMP"); } + for (i=0; i < psize; ++i) { + pal[i][2] = stbi__get8(s); + pal[i][1] = stbi__get8(s); + pal[i][0] = stbi__get8(s); + if (info.hsz != 12) stbi__get8(s); + pal[i][3] = 255; + } + stbi__skip(s, info.offset - info.extra_read - info.hsz - psize * (info.hsz == 12 ? 3 : 4)); + if (info.bpp == 1) width = (s->img_x + 7) >> 3; + else if (info.bpp == 4) width = (s->img_x + 1) >> 1; + else if (info.bpp == 8) width = s->img_x; + else { STBI_FREE(out); return stbi__errpuc("bad bpp", "Corrupt BMP"); } + pad = (-width)&3; + if (info.bpp == 1) { + for (j=0; j < (int) s->img_y; ++j) { + int bit_offset = 7, v = stbi__get8(s); + for (i=0; i < (int) s->img_x; ++i) { + int color = (v>>bit_offset)&0x1; + out[z++] = pal[color][0]; + out[z++] = pal[color][1]; + out[z++] = pal[color][2]; + if (target == 4) out[z++] = 255; + if (i+1 == (int) s->img_x) break; + if((--bit_offset) < 0) { + bit_offset = 7; + v = stbi__get8(s); + } + } + stbi__skip(s, pad); + } + } else { + for (j=0; j < (int) s->img_y; ++j) { + for (i=0; i < (int) s->img_x; i += 2) { + int v=stbi__get8(s),v2=0; + if (info.bpp == 4) { + v2 = v & 15; + v >>= 4; + } + out[z++] = pal[v][0]; + out[z++] = pal[v][1]; + out[z++] = pal[v][2]; + if (target == 4) out[z++] = 255; + if (i+1 == (int) s->img_x) break; + v = (info.bpp == 8) ? stbi__get8(s) : v2; + out[z++] = pal[v][0]; + out[z++] = pal[v][1]; + out[z++] = pal[v][2]; + if (target == 4) out[z++] = 255; + } + stbi__skip(s, pad); + } + } + } else { + int rshift=0,gshift=0,bshift=0,ashift=0,rcount=0,gcount=0,bcount=0,acount=0; + int z = 0; + int easy=0; + stbi__skip(s, info.offset - info.extra_read - info.hsz); + if (info.bpp == 24) width = 3 * s->img_x; + else if (info.bpp == 16) width = 2*s->img_x; + else /* bpp = 32 and pad = 0 */ width=0; + pad = (-width) & 3; + if (info.bpp == 24) { + easy = 1; + } else if (info.bpp == 32) { + if (mb == 0xff && mg == 0xff00 && mr == 0x00ff0000 && ma == 0xff000000) + easy = 2; + } + if (!easy) { + if (!mr || !mg || !mb) { STBI_FREE(out); return stbi__errpuc("bad masks", "Corrupt BMP"); } + // right shift amt to put high bit in position #7 + rshift = stbi__high_bit(mr)-7; rcount = stbi__bitcount(mr); + gshift = stbi__high_bit(mg)-7; gcount = stbi__bitcount(mg); + bshift = stbi__high_bit(mb)-7; bcount = stbi__bitcount(mb); + ashift = stbi__high_bit(ma)-7; acount = stbi__bitcount(ma); + if (rcount > 8 || gcount > 8 || bcount > 8 || acount > 8) { STBI_FREE(out); return stbi__errpuc("bad masks", "Corrupt BMP"); } + } + for (j=0; j < (int) s->img_y; ++j) { + if (easy) { + for (i=0; i < (int) s->img_x; ++i) { + unsigned char a; + out[z+2] = stbi__get8(s); + out[z+1] = stbi__get8(s); + out[z+0] = stbi__get8(s); + z += 3; + a = (easy == 2 ? stbi__get8(s) : 255); + all_a |= a; + if (target == 4) out[z++] = a; + } + } else { + int bpp = info.bpp; + for (i=0; i < (int) s->img_x; ++i) { + stbi__uint32 v = (bpp == 16 ? (stbi__uint32) stbi__get16le(s) : stbi__get32le(s)); + unsigned int a; + out[z++] = STBI__BYTECAST(stbi__shiftsigned(v & mr, rshift, rcount)); + out[z++] = STBI__BYTECAST(stbi__shiftsigned(v & mg, gshift, gcount)); + out[z++] = STBI__BYTECAST(stbi__shiftsigned(v & mb, bshift, bcount)); + a = (ma ? stbi__shiftsigned(v & ma, ashift, acount) : 255); + all_a |= a; + if (target == 4) out[z++] = STBI__BYTECAST(a); + } + } + stbi__skip(s, pad); + } + } + + // if alpha channel is all 0s, replace with all 255s + if (target == 4 && all_a == 0) + for (i=4*s->img_x*s->img_y-1; i >= 0; i -= 4) + out[i] = 255; + + if (flip_vertically) { + stbi_uc t; + for (j=0; j < (int) s->img_y>>1; ++j) { + stbi_uc *p1 = out + j *s->img_x*target; + stbi_uc *p2 = out + (s->img_y-1-j)*s->img_x*target; + for (i=0; i < (int) s->img_x*target; ++i) { + t = p1[i]; p1[i] = p2[i]; p2[i] = t; + } + } + } + + if (req_comp && req_comp != target) { + out = stbi__convert_format(out, target, req_comp, s->img_x, s->img_y); + if (out == NULL) return out; // stbi__convert_format frees input on failure + } + + *x = s->img_x; + *y = s->img_y; + if (comp) *comp = s->img_n; + return out; +} +#endif + +// Targa Truevision - TGA +// by Jonathan Dummer +#ifndef STBI_NO_TGA +// returns STBI_rgb or whatever, 0 on error +static int stbi__tga_get_comp(int bits_per_pixel, int is_grey, int* is_rgb16) +{ + // only RGB or RGBA (incl. 16bit) or grey allowed + if (is_rgb16) *is_rgb16 = 0; + switch(bits_per_pixel) { + case 8: return STBI_grey; + case 16: if(is_grey) return STBI_grey_alpha; + // fallthrough + case 15: if(is_rgb16) *is_rgb16 = 1; + return STBI_rgb; + case 24: // fallthrough + case 32: return bits_per_pixel/8; + default: return 0; + } +} + +static int stbi__tga_info(stbi__context *s, int *x, int *y, int *comp) +{ + int tga_w, tga_h, tga_comp, tga_image_type, tga_bits_per_pixel, tga_colormap_bpp; + int sz, tga_colormap_type; + stbi__get8(s); // discard Offset + tga_colormap_type = stbi__get8(s); // colormap type + if( tga_colormap_type > 1 ) { + stbi__rewind(s); + return 0; // only RGB or indexed allowed + } + tga_image_type = stbi__get8(s); // image type + if ( tga_colormap_type == 1 ) { // colormapped (paletted) image + if (tga_image_type != 1 && tga_image_type != 9) { + stbi__rewind(s); + return 0; + } + stbi__skip(s,4); // skip index of first colormap entry and number of entries + sz = stbi__get8(s); // check bits per palette color entry + if ( (sz != 8) && (sz != 15) && (sz != 16) && (sz != 24) && (sz != 32) ) { + stbi__rewind(s); + return 0; + } + stbi__skip(s,4); // skip image x and y origin + tga_colormap_bpp = sz; + } else { // "normal" image w/o colormap - only RGB or grey allowed, +/- RLE + if ( (tga_image_type != 2) && (tga_image_type != 3) && (tga_image_type != 10) && (tga_image_type != 11) ) { + stbi__rewind(s); + return 0; // only RGB or grey allowed, +/- RLE + } + stbi__skip(s,9); // skip colormap specification and image x/y origin + tga_colormap_bpp = 0; + } + tga_w = stbi__get16le(s); + if( tga_w < 1 ) { + stbi__rewind(s); + return 0; // test width + } + tga_h = stbi__get16le(s); + if( tga_h < 1 ) { + stbi__rewind(s); + return 0; // test height + } + tga_bits_per_pixel = stbi__get8(s); // bits per pixel + stbi__get8(s); // ignore alpha bits + if (tga_colormap_bpp != 0) { + if((tga_bits_per_pixel != 8) && (tga_bits_per_pixel != 16)) { + // when using a colormap, tga_bits_per_pixel is the size of the indexes + // I don't think anything but 8 or 16bit indexes makes sense + stbi__rewind(s); + return 0; + } + tga_comp = stbi__tga_get_comp(tga_colormap_bpp, 0, NULL); + } else { + tga_comp = stbi__tga_get_comp(tga_bits_per_pixel, (tga_image_type == 3) || (tga_image_type == 11), NULL); + } + if(!tga_comp) { + stbi__rewind(s); + return 0; + } + if (x) *x = tga_w; + if (y) *y = tga_h; + if (comp) *comp = tga_comp; + return 1; // seems to have passed everything +} + +static int stbi__tga_test(stbi__context *s) +{ + int res = 0; + int sz, tga_color_type; + stbi__get8(s); // discard Offset + tga_color_type = stbi__get8(s); // color type + if ( tga_color_type > 1 ) goto errorEnd; // only RGB or indexed allowed + sz = stbi__get8(s); // image type + if ( tga_color_type == 1 ) { // colormapped (paletted) image + if (sz != 1 && sz != 9) goto errorEnd; // colortype 1 demands image type 1 or 9 + stbi__skip(s,4); // skip index of first colormap entry and number of entries + sz = stbi__get8(s); // check bits per palette color entry + if ( (sz != 8) && (sz != 15) && (sz != 16) && (sz != 24) && (sz != 32) ) goto errorEnd; + stbi__skip(s,4); // skip image x and y origin + } else { // "normal" image w/o colormap + if ( (sz != 2) && (sz != 3) && (sz != 10) && (sz != 11) ) goto errorEnd; // only RGB or grey allowed, +/- RLE + stbi__skip(s,9); // skip colormap specification and image x/y origin + } + if ( stbi__get16le(s) < 1 ) goto errorEnd; // test width + if ( stbi__get16le(s) < 1 ) goto errorEnd; // test height + sz = stbi__get8(s); // bits per pixel + if ( (tga_color_type == 1) && (sz != 8) && (sz != 16) ) goto errorEnd; // for colormapped images, bpp is size of an index + if ( (sz != 8) && (sz != 15) && (sz != 16) && (sz != 24) && (sz != 32) ) goto errorEnd; + + res = 1; // if we got this far, everything's good and we can return 1 instead of 0 + +errorEnd: + stbi__rewind(s); + return res; +} + +// read 16bit value and convert to 24bit RGB +static void stbi__tga_read_rgb16(stbi__context *s, stbi_uc* out) +{ + stbi__uint16 px = (stbi__uint16)stbi__get16le(s); + stbi__uint16 fiveBitMask = 31; + // we have 3 channels with 5bits each + int r = (px >> 10) & fiveBitMask; + int g = (px >> 5) & fiveBitMask; + int b = px & fiveBitMask; + // Note that this saves the data in RGB(A) order, so it doesn't need to be swapped later + out[0] = (stbi_uc)((r * 255)/31); + out[1] = (stbi_uc)((g * 255)/31); + out[2] = (stbi_uc)((b * 255)/31); + + // some people claim that the most significant bit might be used for alpha + // (possibly if an alpha-bit is set in the "image descriptor byte") + // but that only made 16bit test images completely translucent.. + // so let's treat all 15 and 16bit TGAs as RGB with no alpha. +} + +static void *stbi__tga_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri) +{ + // read in the TGA header stuff + int tga_offset = stbi__get8(s); + int tga_indexed = stbi__get8(s); + int tga_image_type = stbi__get8(s); + int tga_is_RLE = 0; + int tga_palette_start = stbi__get16le(s); + int tga_palette_len = stbi__get16le(s); + int tga_palette_bits = stbi__get8(s); + int tga_x_origin = stbi__get16le(s); + int tga_y_origin = stbi__get16le(s); + int tga_width = stbi__get16le(s); + int tga_height = stbi__get16le(s); + int tga_bits_per_pixel = stbi__get8(s); + int tga_comp, tga_rgb16=0; + int tga_inverted = stbi__get8(s); + // int tga_alpha_bits = tga_inverted & 15; // the 4 lowest bits - unused (useless?) + // image data + unsigned char *tga_data; + unsigned char *tga_palette = NULL; + int i, j; + unsigned char raw_data[4] = {0}; + int RLE_count = 0; + int RLE_repeating = 0; + int read_next_pixel = 1; + STBI_NOTUSED(ri); + STBI_NOTUSED(tga_x_origin); // @TODO + STBI_NOTUSED(tga_y_origin); // @TODO + + if (tga_height > STBI_MAX_DIMENSIONS) return stbi__errpuc("too large","Very large image (corrupt?)"); + if (tga_width > STBI_MAX_DIMENSIONS) return stbi__errpuc("too large","Very large image (corrupt?)"); + + // do a tiny bit of precessing + if ( tga_image_type >= 8 ) + { + tga_image_type -= 8; + tga_is_RLE = 1; + } + tga_inverted = 1 - ((tga_inverted >> 5) & 1); + + // If I'm paletted, then I'll use the number of bits from the palette + if ( tga_indexed ) tga_comp = stbi__tga_get_comp(tga_palette_bits, 0, &tga_rgb16); + else tga_comp = stbi__tga_get_comp(tga_bits_per_pixel, (tga_image_type == 3), &tga_rgb16); + + if(!tga_comp) // shouldn't really happen, stbi__tga_test() should have ensured basic consistency + return stbi__errpuc("bad format", "Can't find out TGA pixelformat"); + + // tga info + *x = tga_width; + *y = tga_height; + if (comp) *comp = tga_comp; + + if (!stbi__mad3sizes_valid(tga_width, tga_height, tga_comp, 0)) + return stbi__errpuc("too large", "Corrupt TGA"); + + tga_data = (unsigned char*)stbi__malloc_mad3(tga_width, tga_height, tga_comp, 0); + if (!tga_data) return stbi__errpuc("outofmem", "Out of memory"); + + // skip to the data's starting position (offset usually = 0) + stbi__skip(s, tga_offset ); + + if ( !tga_indexed && !tga_is_RLE && !tga_rgb16 ) { + for (i=0; i < tga_height; ++i) { + int row = tga_inverted ? tga_height -i - 1 : i; + stbi_uc *tga_row = tga_data + row*tga_width*tga_comp; + stbi__getn(s, tga_row, tga_width * tga_comp); + } + } else { + // do I need to load a palette? + if ( tga_indexed) + { + if (tga_palette_len == 0) { /* you have to have at least one entry! */ + STBI_FREE(tga_data); + return stbi__errpuc("bad palette", "Corrupt TGA"); + } + + // any data to skip? (offset usually = 0) + stbi__skip(s, tga_palette_start ); + // load the palette + tga_palette = (unsigned char*)stbi__malloc_mad2(tga_palette_len, tga_comp, 0); + if (!tga_palette) { + STBI_FREE(tga_data); + return stbi__errpuc("outofmem", "Out of memory"); + } + if (tga_rgb16) { + stbi_uc *pal_entry = tga_palette; + STBI_ASSERT(tga_comp == STBI_rgb); + for (i=0; i < tga_palette_len; ++i) { + stbi__tga_read_rgb16(s, pal_entry); + pal_entry += tga_comp; + } + } else if (!stbi__getn(s, tga_palette, tga_palette_len * tga_comp)) { + STBI_FREE(tga_data); + STBI_FREE(tga_palette); + return stbi__errpuc("bad palette", "Corrupt TGA"); + } + } + // load the data + for (i=0; i < tga_width * tga_height; ++i) + { + // if I'm in RLE mode, do I need to get a RLE stbi__pngchunk? + if ( tga_is_RLE ) + { + if ( RLE_count == 0 ) + { + // yep, get the next byte as a RLE command + int RLE_cmd = stbi__get8(s); + RLE_count = 1 + (RLE_cmd & 127); + RLE_repeating = RLE_cmd >> 7; + read_next_pixel = 1; + } else if ( !RLE_repeating ) + { + read_next_pixel = 1; + } + } else + { + read_next_pixel = 1; + } + // OK, if I need to read a pixel, do it now + if ( read_next_pixel ) + { + // load however much data we did have + if ( tga_indexed ) + { + // read in index, then perform the lookup + int pal_idx = (tga_bits_per_pixel == 8) ? stbi__get8(s) : stbi__get16le(s); + if ( pal_idx >= tga_palette_len ) { + // invalid index + pal_idx = 0; + } + pal_idx *= tga_comp; + for (j = 0; j < tga_comp; ++j) { + raw_data[j] = tga_palette[pal_idx+j]; + } + } else if(tga_rgb16) { + STBI_ASSERT(tga_comp == STBI_rgb); + stbi__tga_read_rgb16(s, raw_data); + } else { + // read in the data raw + for (j = 0; j < tga_comp; ++j) { + raw_data[j] = stbi__get8(s); + } + } + // clear the reading flag for the next pixel + read_next_pixel = 0; + } // end of reading a pixel + + // copy data + for (j = 0; j < tga_comp; ++j) + tga_data[i*tga_comp+j] = raw_data[j]; + + // in case we're in RLE mode, keep counting down + --RLE_count; + } + // do I need to invert the image? + if ( tga_inverted ) + { + for (j = 0; j*2 < tga_height; ++j) + { + int index1 = j * tga_width * tga_comp; + int index2 = (tga_height - 1 - j) * tga_width * tga_comp; + for (i = tga_width * tga_comp; i > 0; --i) + { + unsigned char temp = tga_data[index1]; + tga_data[index1] = tga_data[index2]; + tga_data[index2] = temp; + ++index1; + ++index2; + } + } + } + // clear my palette, if I had one + if ( tga_palette != NULL ) + { + STBI_FREE( tga_palette ); + } + } + + // swap RGB - if the source data was RGB16, it already is in the right order + if (tga_comp >= 3 && !tga_rgb16) + { + unsigned char* tga_pixel = tga_data; + for (i=0; i < tga_width * tga_height; ++i) + { + unsigned char temp = tga_pixel[0]; + tga_pixel[0] = tga_pixel[2]; + tga_pixel[2] = temp; + tga_pixel += tga_comp; + } + } + + // convert to target component count + if (req_comp && req_comp != tga_comp) + tga_data = stbi__convert_format(tga_data, tga_comp, req_comp, tga_width, tga_height); + + // the things I do to get rid of an error message, and yet keep + // Microsoft's C compilers happy... [8^( + tga_palette_start = tga_palette_len = tga_palette_bits = + tga_x_origin = tga_y_origin = 0; + STBI_NOTUSED(tga_palette_start); + // OK, done + return tga_data; +} +#endif + +// ************************************************************************************************* +// Photoshop PSD loader -- PD by Thatcher Ulrich, integration by Nicolas Schulz, tweaked by STB + +#ifndef STBI_NO_PSD +static int stbi__psd_test(stbi__context *s) +{ + int r = (stbi__get32be(s) == 0x38425053); + stbi__rewind(s); + return r; +} + +static int stbi__psd_decode_rle(stbi__context *s, stbi_uc *p, int pixelCount) +{ + int count, nleft, len; + + count = 0; + while ((nleft = pixelCount - count) > 0) { + len = stbi__get8(s); + if (len == 128) { + // No-op. + } else if (len < 128) { + // Copy next len+1 bytes literally. + len++; + if (len > nleft) return 0; // corrupt data + count += len; + while (len) { + *p = stbi__get8(s); + p += 4; + len--; + } + } else if (len > 128) { + stbi_uc val; + // Next -len+1 bytes in the dest are replicated from next source byte. + // (Interpret len as a negative 8-bit int.) + len = 257 - len; + if (len > nleft) return 0; // corrupt data + val = stbi__get8(s); + count += len; + while (len) { + *p = val; + p += 4; + len--; + } + } + } + + return 1; +} + +static void *stbi__psd_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri, int bpc) +{ + int pixelCount; + int channelCount, compression; + int channel, i; + int bitdepth; + int w,h; + stbi_uc *out; + STBI_NOTUSED(ri); + + // Check identifier + if (stbi__get32be(s) != 0x38425053) // "8BPS" + return stbi__errpuc("not PSD", "Corrupt PSD image"); + + // Check file type version. + if (stbi__get16be(s) != 1) + return stbi__errpuc("wrong version", "Unsupported version of PSD image"); + + // Skip 6 reserved bytes. + stbi__skip(s, 6 ); + + // Read the number of channels (R, G, B, A, etc). + channelCount = stbi__get16be(s); + if (channelCount < 0 || channelCount > 16) + return stbi__errpuc("wrong channel count", "Unsupported number of channels in PSD image"); + + // Read the rows and columns of the image. + h = stbi__get32be(s); + w = stbi__get32be(s); + + if (h > STBI_MAX_DIMENSIONS) return stbi__errpuc("too large","Very large image (corrupt?)"); + if (w > STBI_MAX_DIMENSIONS) return stbi__errpuc("too large","Very large image (corrupt?)"); + + // Make sure the depth is 8 bits. + bitdepth = stbi__get16be(s); + if (bitdepth != 8 && bitdepth != 16) + return stbi__errpuc("unsupported bit depth", "PSD bit depth is not 8 or 16 bit"); + + // Make sure the color mode is RGB. + // Valid options are: + // 0: Bitmap + // 1: Grayscale + // 2: Indexed color + // 3: RGB color + // 4: CMYK color + // 7: Multichannel + // 8: Duotone + // 9: Lab color + if (stbi__get16be(s) != 3) + return stbi__errpuc("wrong color format", "PSD is not in RGB color format"); + + // Skip the Mode Data. (It's the palette for indexed color; other info for other modes.) + stbi__skip(s,stbi__get32be(s) ); + + // Skip the image resources. (resolution, pen tool paths, etc) + stbi__skip(s, stbi__get32be(s) ); + + // Skip the reserved data. + stbi__skip(s, stbi__get32be(s) ); + + // Find out if the data is compressed. + // Known values: + // 0: no compression + // 1: RLE compressed + compression = stbi__get16be(s); + if (compression > 1) + return stbi__errpuc("bad compression", "PSD has an unknown compression format"); + + // Check size + if (!stbi__mad3sizes_valid(4, w, h, 0)) + return stbi__errpuc("too large", "Corrupt PSD"); + + // Create the destination image. + + if (!compression && bitdepth == 16 && bpc == 16) { + out = (stbi_uc *) stbi__malloc_mad3(8, w, h, 0); + ri->bits_per_channel = 16; + } else + out = (stbi_uc *) stbi__malloc(4 * w*h); + + if (!out) return stbi__errpuc("outofmem", "Out of memory"); + pixelCount = w*h; + + // Initialize the data to zero. + //memset( out, 0, pixelCount * 4 ); + + // Finally, the image data. + if (compression) { + // RLE as used by .PSD and .TIFF + // Loop until you get the number of unpacked bytes you are expecting: + // Read the next source byte into n. + // If n is between 0 and 127 inclusive, copy the next n+1 bytes literally. + // Else if n is between -127 and -1 inclusive, copy the next byte -n+1 times. + // Else if n is 128, noop. + // Endloop + + // The RLE-compressed data is preceded by a 2-byte data count for each row in the data, + // which we're going to just skip. + stbi__skip(s, h * channelCount * 2 ); + + // Read the RLE data by channel. + for (channel = 0; channel < 4; channel++) { + stbi_uc *p; + + p = out+channel; + if (channel >= channelCount) { + // Fill this channel with default data. + for (i = 0; i < pixelCount; i++, p += 4) + *p = (channel == 3 ? 255 : 0); + } else { + // Read the RLE data. + if (!stbi__psd_decode_rle(s, p, pixelCount)) { + STBI_FREE(out); + return stbi__errpuc("corrupt", "bad RLE data"); + } + } + } + + } else { + // We're at the raw image data. It's each channel in order (Red, Green, Blue, Alpha, ...) + // where each channel consists of an 8-bit (or 16-bit) value for each pixel in the image. + + // Read the data by channel. + for (channel = 0; channel < 4; channel++) { + if (channel >= channelCount) { + // Fill this channel with default data. + if (bitdepth == 16 && bpc == 16) { + stbi__uint16 *q = ((stbi__uint16 *) out) + channel; + stbi__uint16 val = channel == 3 ? 65535 : 0; + for (i = 0; i < pixelCount; i++, q += 4) + *q = val; + } else { + stbi_uc *p = out+channel; + stbi_uc val = channel == 3 ? 255 : 0; + for (i = 0; i < pixelCount; i++, p += 4) + *p = val; + } + } else { + if (ri->bits_per_channel == 16) { // output bpc + stbi__uint16 *q = ((stbi__uint16 *) out) + channel; + for (i = 0; i < pixelCount; i++, q += 4) + *q = (stbi__uint16) stbi__get16be(s); + } else { + stbi_uc *p = out+channel; + if (bitdepth == 16) { // input bpc + for (i = 0; i < pixelCount; i++, p += 4) + *p = (stbi_uc) (stbi__get16be(s) >> 8); + } else { + for (i = 0; i < pixelCount; i++, p += 4) + *p = stbi__get8(s); + } + } + } + } + } + + // remove weird white matte from PSD + if (channelCount >= 4) { + if (ri->bits_per_channel == 16) { + for (i=0; i < w*h; ++i) { + stbi__uint16 *pixel = (stbi__uint16 *) out + 4*i; + if (pixel[3] != 0 && pixel[3] != 65535) { + float a = pixel[3] / 65535.0f; + float ra = 1.0f / a; + float inv_a = 65535.0f * (1 - ra); + pixel[0] = (stbi__uint16) (pixel[0]*ra + inv_a); + pixel[1] = (stbi__uint16) (pixel[1]*ra + inv_a); + pixel[2] = (stbi__uint16) (pixel[2]*ra + inv_a); + } + } + } else { + for (i=0; i < w*h; ++i) { + unsigned char *pixel = out + 4*i; + if (pixel[3] != 0 && pixel[3] != 255) { + float a = pixel[3] / 255.0f; + float ra = 1.0f / a; + float inv_a = 255.0f * (1 - ra); + pixel[0] = (unsigned char) (pixel[0]*ra + inv_a); + pixel[1] = (unsigned char) (pixel[1]*ra + inv_a); + pixel[2] = (unsigned char) (pixel[2]*ra + inv_a); + } + } + } + } + + // convert to desired output format + if (req_comp && req_comp != 4) { + if (ri->bits_per_channel == 16) + out = (stbi_uc *) stbi__convert_format16((stbi__uint16 *) out, 4, req_comp, w, h); + else + out = stbi__convert_format(out, 4, req_comp, w, h); + if (out == NULL) return out; // stbi__convert_format frees input on failure + } + + if (comp) *comp = 4; + *y = h; + *x = w; + + return out; +} +#endif + +// ************************************************************************************************* +// Softimage PIC loader +// by Tom Seddon +// +// See http://softimage.wiki.softimage.com/index.php/INFO:_PIC_file_format +// See http://ozviz.wasp.uwa.edu.au/~pbourke/dataformats/softimagepic/ + +#ifndef STBI_NO_PIC +static int stbi__pic_is4(stbi__context *s,const char *str) +{ + int i; + for (i=0; i<4; ++i) + if (stbi__get8(s) != (stbi_uc)str[i]) + return 0; + + return 1; +} + +static int stbi__pic_test_core(stbi__context *s) +{ + int i; + + if (!stbi__pic_is4(s,"\x53\x80\xF6\x34")) + return 0; + + for(i=0;i<84;++i) + stbi__get8(s); + + if (!stbi__pic_is4(s,"PICT")) + return 0; + + return 1; +} + +typedef struct +{ + stbi_uc size,type,channel; +} stbi__pic_packet; + +static stbi_uc *stbi__readval(stbi__context *s, int channel, stbi_uc *dest) +{ + int mask=0x80, i; + + for (i=0; i<4; ++i, mask>>=1) { + if (channel & mask) { + if (stbi__at_eof(s)) return stbi__errpuc("bad file","PIC file too short"); + dest[i]=stbi__get8(s); + } + } + + return dest; +} + +static void stbi__copyval(int channel,stbi_uc *dest,const stbi_uc *src) +{ + int mask=0x80,i; + + for (i=0;i<4; ++i, mask>>=1) + if (channel&mask) + dest[i]=src[i]; +} + +static stbi_uc *stbi__pic_load_core(stbi__context *s,int width,int height,int *comp, stbi_uc *result) +{ + int act_comp=0,num_packets=0,y,chained; + stbi__pic_packet packets[10]; + + // this will (should...) cater for even some bizarre stuff like having data + // for the same channel in multiple packets. + do { + stbi__pic_packet *packet; + + if (num_packets==sizeof(packets)/sizeof(packets[0])) + return stbi__errpuc("bad format","too many packets"); + + packet = &packets[num_packets++]; + + chained = stbi__get8(s); + packet->size = stbi__get8(s); + packet->type = stbi__get8(s); + packet->channel = stbi__get8(s); + + act_comp |= packet->channel; + + if (stbi__at_eof(s)) return stbi__errpuc("bad file","file too short (reading packets)"); + if (packet->size != 8) return stbi__errpuc("bad format","packet isn't 8bpp"); + } while (chained); + + *comp = (act_comp & 0x10 ? 4 : 3); // has alpha channel? + + for(y=0; ytype) { + default: + return stbi__errpuc("bad format","packet has bad compression type"); + + case 0: {//uncompressed + int x; + + for(x=0;xchannel,dest)) + return 0; + break; + } + + case 1://Pure RLE + { + int left=width, i; + + while (left>0) { + stbi_uc count,value[4]; + + count=stbi__get8(s); + if (stbi__at_eof(s)) return stbi__errpuc("bad file","file too short (pure read count)"); + + if (count > left) + count = (stbi_uc) left; + + if (!stbi__readval(s,packet->channel,value)) return 0; + + for(i=0; ichannel,dest,value); + left -= count; + } + } + break; + + case 2: {//Mixed RLE + int left=width; + while (left>0) { + int count = stbi__get8(s), i; + if (stbi__at_eof(s)) return stbi__errpuc("bad file","file too short (mixed read count)"); + + if (count >= 128) { // Repeated + stbi_uc value[4]; + + if (count==128) + count = stbi__get16be(s); + else + count -= 127; + if (count > left) + return stbi__errpuc("bad file","scanline overrun"); + + if (!stbi__readval(s,packet->channel,value)) + return 0; + + for(i=0;ichannel,dest,value); + } else { // Raw + ++count; + if (count>left) return stbi__errpuc("bad file","scanline overrun"); + + for(i=0;ichannel,dest)) + return 0; + } + left-=count; + } + break; + } + } + } + } + + return result; +} + +static void *stbi__pic_load(stbi__context *s,int *px,int *py,int *comp,int req_comp, stbi__result_info *ri) +{ + stbi_uc *result; + int i, x,y, internal_comp; + STBI_NOTUSED(ri); + + if (!comp) comp = &internal_comp; + + for (i=0; i<92; ++i) + stbi__get8(s); + + x = stbi__get16be(s); + y = stbi__get16be(s); + + if (y > STBI_MAX_DIMENSIONS) return stbi__errpuc("too large","Very large image (corrupt?)"); + if (x > STBI_MAX_DIMENSIONS) return stbi__errpuc("too large","Very large image (corrupt?)"); + + if (stbi__at_eof(s)) return stbi__errpuc("bad file","file too short (pic header)"); + if (!stbi__mad3sizes_valid(x, y, 4, 0)) return stbi__errpuc("too large", "PIC image too large to decode"); + + stbi__get32be(s); //skip `ratio' + stbi__get16be(s); //skip `fields' + stbi__get16be(s); //skip `pad' + + // intermediate buffer is RGBA + result = (stbi_uc *) stbi__malloc_mad3(x, y, 4, 0); + if (!result) return stbi__errpuc("outofmem", "Out of memory"); + memset(result, 0xff, x*y*4); + + if (!stbi__pic_load_core(s,x,y,comp, result)) { + STBI_FREE(result); + result=0; + } + *px = x; + *py = y; + if (req_comp == 0) req_comp = *comp; + result=stbi__convert_format(result,4,req_comp,x,y); + + return result; +} + +static int stbi__pic_test(stbi__context *s) +{ + int r = stbi__pic_test_core(s); + stbi__rewind(s); + return r; +} +#endif + +// ************************************************************************************************* +// GIF loader -- public domain by Jean-Marc Lienher -- simplified/shrunk by stb + +#ifndef STBI_NO_GIF +typedef struct +{ + stbi__int16 prefix; + stbi_uc first; + stbi_uc suffix; +} stbi__gif_lzw; + +typedef struct +{ + int w,h; + stbi_uc *out; // output buffer (always 4 components) + stbi_uc *background; // The current "background" as far as a gif is concerned + stbi_uc *history; + int flags, bgindex, ratio, transparent, eflags; + stbi_uc pal[256][4]; + stbi_uc lpal[256][4]; + stbi__gif_lzw codes[8192]; + stbi_uc *color_table; + int parse, step; + int lflags; + int start_x, start_y; + int max_x, max_y; + int cur_x, cur_y; + int line_size; + int delay; +} stbi__gif; + +static int stbi__gif_test_raw(stbi__context *s) +{ + int sz; + if (stbi__get8(s) != 'G' || stbi__get8(s) != 'I' || stbi__get8(s) != 'F' || stbi__get8(s) != '8') return 0; + sz = stbi__get8(s); + if (sz != '9' && sz != '7') return 0; + if (stbi__get8(s) != 'a') return 0; + return 1; +} + +static int stbi__gif_test(stbi__context *s) +{ + int r = stbi__gif_test_raw(s); + stbi__rewind(s); + return r; +} + +static void stbi__gif_parse_colortable(stbi__context *s, stbi_uc pal[256][4], int num_entries, int transp) +{ + int i; + for (i=0; i < num_entries; ++i) { + pal[i][2] = stbi__get8(s); + pal[i][1] = stbi__get8(s); + pal[i][0] = stbi__get8(s); + pal[i][3] = transp == i ? 0 : 255; + } +} + +static int stbi__gif_header(stbi__context *s, stbi__gif *g, int *comp, int is_info) +{ + stbi_uc version; + if (stbi__get8(s) != 'G' || stbi__get8(s) != 'I' || stbi__get8(s) != 'F' || stbi__get8(s) != '8') + return stbi__err("not GIF", "Corrupt GIF"); + + version = stbi__get8(s); + if (version != '7' && version != '9') return stbi__err("not GIF", "Corrupt GIF"); + if (stbi__get8(s) != 'a') return stbi__err("not GIF", "Corrupt GIF"); + + stbi__g_failure_reason = ""; + g->w = stbi__get16le(s); + g->h = stbi__get16le(s); + g->flags = stbi__get8(s); + g->bgindex = stbi__get8(s); + g->ratio = stbi__get8(s); + g->transparent = -1; + + if (g->w > STBI_MAX_DIMENSIONS) return stbi__err("too large","Very large image (corrupt?)"); + if (g->h > STBI_MAX_DIMENSIONS) return stbi__err("too large","Very large image (corrupt?)"); + + if (comp != 0) *comp = 4; // can't actually tell whether it's 3 or 4 until we parse the comments + + if (is_info) return 1; + + if (g->flags & 0x80) + stbi__gif_parse_colortable(s,g->pal, 2 << (g->flags & 7), -1); + + return 1; +} + +static int stbi__gif_info_raw(stbi__context *s, int *x, int *y, int *comp) +{ + stbi__gif* g = (stbi__gif*) stbi__malloc(sizeof(stbi__gif)); + if (!g) return stbi__err("outofmem", "Out of memory"); + if (!stbi__gif_header(s, g, comp, 1)) { + STBI_FREE(g); + stbi__rewind( s ); + return 0; + } + if (x) *x = g->w; + if (y) *y = g->h; + STBI_FREE(g); + return 1; +} + +static void stbi__out_gif_code(stbi__gif *g, stbi__uint16 code) +{ + stbi_uc *p, *c; + int idx; + + // recurse to decode the prefixes, since the linked-list is backwards, + // and working backwards through an interleaved image would be nasty + if (g->codes[code].prefix >= 0) + stbi__out_gif_code(g, g->codes[code].prefix); + + if (g->cur_y >= g->max_y) return; + + idx = g->cur_x + g->cur_y; + p = &g->out[idx]; + g->history[idx / 4] = 1; + + c = &g->color_table[g->codes[code].suffix * 4]; + if (c[3] > 128) { // don't render transparent pixels; + p[0] = c[2]; + p[1] = c[1]; + p[2] = c[0]; + p[3] = c[3]; + } + g->cur_x += 4; + + if (g->cur_x >= g->max_x) { + g->cur_x = g->start_x; + g->cur_y += g->step; + + while (g->cur_y >= g->max_y && g->parse > 0) { + g->step = (1 << g->parse) * g->line_size; + g->cur_y = g->start_y + (g->step >> 1); + --g->parse; + } + } +} + +static stbi_uc *stbi__process_gif_raster(stbi__context *s, stbi__gif *g) +{ + stbi_uc lzw_cs; + stbi__int32 len, init_code; + stbi__uint32 first; + stbi__int32 codesize, codemask, avail, oldcode, bits, valid_bits, clear; + stbi__gif_lzw *p; + + lzw_cs = stbi__get8(s); + if (lzw_cs > 12) return NULL; + clear = 1 << lzw_cs; + first = 1; + codesize = lzw_cs + 1; + codemask = (1 << codesize) - 1; + bits = 0; + valid_bits = 0; + for (init_code = 0; init_code < clear; init_code++) { + g->codes[init_code].prefix = -1; + g->codes[init_code].first = (stbi_uc) init_code; + g->codes[init_code].suffix = (stbi_uc) init_code; + } + + // support no starting clear code + avail = clear+2; + oldcode = -1; + + len = 0; + for(;;) { + if (valid_bits < codesize) { + if (len == 0) { + len = stbi__get8(s); // start new block + if (len == 0) + return g->out; + } + --len; + bits |= (stbi__int32) stbi__get8(s) << valid_bits; + valid_bits += 8; + } else { + stbi__int32 code = bits & codemask; + bits >>= codesize; + valid_bits -= codesize; + // @OPTIMIZE: is there some way we can accelerate the non-clear path? + if (code == clear) { // clear code + codesize = lzw_cs + 1; + codemask = (1 << codesize) - 1; + avail = clear + 2; + oldcode = -1; + first = 0; + } else if (code == clear + 1) { // end of stream code + stbi__skip(s, len); + while ((len = stbi__get8(s)) > 0) + stbi__skip(s,len); + return g->out; + } else if (code <= avail) { + if (first) { + return stbi__errpuc("no clear code", "Corrupt GIF"); + } + + if (oldcode >= 0) { + p = &g->codes[avail++]; + if (avail > 8192) { + return stbi__errpuc("too many codes", "Corrupt GIF"); + } + + p->prefix = (stbi__int16) oldcode; + p->first = g->codes[oldcode].first; + p->suffix = (code == avail) ? p->first : g->codes[code].first; + } else if (code == avail) + return stbi__errpuc("illegal code in raster", "Corrupt GIF"); + + stbi__out_gif_code(g, (stbi__uint16) code); + + if ((avail & codemask) == 0 && avail <= 0x0FFF) { + codesize++; + codemask = (1 << codesize) - 1; + } + + oldcode = code; + } else { + return stbi__errpuc("illegal code in raster", "Corrupt GIF"); + } + } + } +} + +// this function is designed to support animated gifs, although stb_image doesn't support it +// two back is the image from two frames ago, used for a very specific disposal format +static stbi_uc *stbi__gif_load_next(stbi__context *s, stbi__gif *g, int *comp, int req_comp, stbi_uc *two_back) +{ + int dispose; + int first_frame; + int pi; + int pcount; + STBI_NOTUSED(req_comp); + + // on first frame, any non-written pixels get the background colour (non-transparent) + first_frame = 0; + if (g->out == 0) { + if (!stbi__gif_header(s, g, comp,0)) return 0; // stbi__g_failure_reason set by stbi__gif_header + if (!stbi__mad3sizes_valid(4, g->w, g->h, 0)) + return stbi__errpuc("too large", "GIF image is too large"); + pcount = g->w * g->h; + g->out = (stbi_uc *) stbi__malloc(4 * pcount); + g->background = (stbi_uc *) stbi__malloc(4 * pcount); + g->history = (stbi_uc *) stbi__malloc(pcount); + if (!g->out || !g->background || !g->history) + return stbi__errpuc("outofmem", "Out of memory"); + + // image is treated as "transparent" at the start - ie, nothing overwrites the current background; + // background colour is only used for pixels that are not rendered first frame, after that "background" + // color refers to the color that was there the previous frame. + memset(g->out, 0x00, 4 * pcount); + memset(g->background, 0x00, 4 * pcount); // state of the background (starts transparent) + memset(g->history, 0x00, pcount); // pixels that were affected previous frame + first_frame = 1; + } else { + // second frame - how do we dispose of the previous one? + dispose = (g->eflags & 0x1C) >> 2; + pcount = g->w * g->h; + + if ((dispose == 3) && (two_back == 0)) { + dispose = 2; // if I don't have an image to revert back to, default to the old background + } + + if (dispose == 3) { // use previous graphic + for (pi = 0; pi < pcount; ++pi) { + if (g->history[pi]) { + memcpy( &g->out[pi * 4], &two_back[pi * 4], 4 ); + } + } + } else if (dispose == 2) { + // restore what was changed last frame to background before that frame; + for (pi = 0; pi < pcount; ++pi) { + if (g->history[pi]) { + memcpy( &g->out[pi * 4], &g->background[pi * 4], 4 ); + } + } + } else { + // This is a non-disposal case eithe way, so just + // leave the pixels as is, and they will become the new background + // 1: do not dispose + // 0: not specified. + } + + // background is what out is after the undoing of the previou frame; + memcpy( g->background, g->out, 4 * g->w * g->h ); + } + + // clear my history; + memset( g->history, 0x00, g->w * g->h ); // pixels that were affected previous frame + + for (;;) { + int tag = stbi__get8(s); + switch (tag) { + case 0x2C: /* Image Descriptor */ + { + stbi__int32 x, y, w, h; + stbi_uc *o; + + x = stbi__get16le(s); + y = stbi__get16le(s); + w = stbi__get16le(s); + h = stbi__get16le(s); + if (((x + w) > (g->w)) || ((y + h) > (g->h))) + return stbi__errpuc("bad Image Descriptor", "Corrupt GIF"); + + g->line_size = g->w * 4; + g->start_x = x * 4; + g->start_y = y * g->line_size; + g->max_x = g->start_x + w * 4; + g->max_y = g->start_y + h * g->line_size; + g->cur_x = g->start_x; + g->cur_y = g->start_y; + + // if the width of the specified rectangle is 0, that means + // we may not see *any* pixels or the image is malformed; + // to make sure this is caught, move the current y down to + // max_y (which is what out_gif_code checks). + if (w == 0) + g->cur_y = g->max_y; + + g->lflags = stbi__get8(s); + + if (g->lflags & 0x40) { + g->step = 8 * g->line_size; // first interlaced spacing + g->parse = 3; + } else { + g->step = g->line_size; + g->parse = 0; + } + + if (g->lflags & 0x80) { + stbi__gif_parse_colortable(s,g->lpal, 2 << (g->lflags & 7), g->eflags & 0x01 ? g->transparent : -1); + g->color_table = (stbi_uc *) g->lpal; + } else if (g->flags & 0x80) { + g->color_table = (stbi_uc *) g->pal; + } else + return stbi__errpuc("missing color table", "Corrupt GIF"); + + o = stbi__process_gif_raster(s, g); + if (!o) return NULL; + + // if this was the first frame, + pcount = g->w * g->h; + if (first_frame && (g->bgindex > 0)) { + // if first frame, any pixel not drawn to gets the background color + for (pi = 0; pi < pcount; ++pi) { + if (g->history[pi] == 0) { + g->pal[g->bgindex][3] = 255; // just in case it was made transparent, undo that; It will be reset next frame if need be; + memcpy( &g->out[pi * 4], &g->pal[g->bgindex], 4 ); + } + } + } + + return o; + } + + case 0x21: // Comment Extension. + { + int len; + int ext = stbi__get8(s); + if (ext == 0xF9) { // Graphic Control Extension. + len = stbi__get8(s); + if (len == 4) { + g->eflags = stbi__get8(s); + g->delay = 10 * stbi__get16le(s); // delay - 1/100th of a second, saving as 1/1000ths. + + // unset old transparent + if (g->transparent >= 0) { + g->pal[g->transparent][3] = 255; + } + if (g->eflags & 0x01) { + g->transparent = stbi__get8(s); + if (g->transparent >= 0) { + g->pal[g->transparent][3] = 0; + } + } else { + // don't need transparent + stbi__skip(s, 1); + g->transparent = -1; + } + } else { + stbi__skip(s, len); + break; + } + } + while ((len = stbi__get8(s)) != 0) { + stbi__skip(s, len); + } + break; + } + + case 0x3B: // gif stream termination code + return (stbi_uc *) s; // using '1' causes warning on some compilers + + default: + return stbi__errpuc("unknown code", "Corrupt GIF"); + } + } +} + +static void *stbi__load_gif_main_outofmem(stbi__gif *g, stbi_uc *out, int **delays) +{ + STBI_FREE(g->out); + STBI_FREE(g->history); + STBI_FREE(g->background); + + if (out) STBI_FREE(out); + if (delays && *delays) STBI_FREE(*delays); + return stbi__errpuc("outofmem", "Out of memory"); +} + +static void *stbi__load_gif_main(stbi__context *s, int **delays, int *x, int *y, int *z, int *comp, int req_comp) +{ + if (stbi__gif_test(s)) { + int layers = 0; + stbi_uc *u = 0; + stbi_uc *out = 0; + stbi_uc *two_back = 0; + stbi__gif g; + int stride; + int out_size = 0; + int delays_size = 0; + + STBI_NOTUSED(out_size); + STBI_NOTUSED(delays_size); + + memset(&g, 0, sizeof(g)); + if (delays) { + *delays = 0; + } + + do { + u = stbi__gif_load_next(s, &g, comp, req_comp, two_back); + if (u == (stbi_uc *) s) u = 0; // end of animated gif marker + + if (u) { + *x = g.w; + *y = g.h; + ++layers; + stride = g.w * g.h * 4; + + if (out) { + void *tmp = (stbi_uc*) STBI_REALLOC_SIZED( out, out_size, layers * stride ); + if (!tmp) + return stbi__load_gif_main_outofmem(&g, out, delays); + else { + out = (stbi_uc*) tmp; + out_size = layers * stride; + } + + if (delays) { + int *new_delays = (int*) STBI_REALLOC_SIZED( *delays, delays_size, sizeof(int) * layers ); + if (!new_delays) + return stbi__load_gif_main_outofmem(&g, out, delays); + *delays = new_delays; + delays_size = layers * sizeof(int); + } + } else { + out = (stbi_uc*)stbi__malloc( layers * stride ); + if (!out) + return stbi__load_gif_main_outofmem(&g, out, delays); + out_size = layers * stride; + if (delays) { + *delays = (int*) stbi__malloc( layers * sizeof(int) ); + if (!*delays) + return stbi__load_gif_main_outofmem(&g, out, delays); + delays_size = layers * sizeof(int); + } + } + memcpy( out + ((layers - 1) * stride), u, stride ); + if (layers >= 2) { + two_back = out - 2 * stride; + } + + if (delays) { + (*delays)[layers - 1U] = g.delay; + } + } + } while (u != 0); + + // free temp buffer; + STBI_FREE(g.out); + STBI_FREE(g.history); + STBI_FREE(g.background); + + // do the final conversion after loading everything; + if (req_comp && req_comp != 4) + out = stbi__convert_format(out, 4, req_comp, layers * g.w, g.h); + + *z = layers; + return out; + } else { + return stbi__errpuc("not GIF", "Image was not as a gif type."); + } +} + +static void *stbi__gif_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri) +{ + stbi_uc *u = 0; + stbi__gif g; + memset(&g, 0, sizeof(g)); + STBI_NOTUSED(ri); + + u = stbi__gif_load_next(s, &g, comp, req_comp, 0); + if (u == (stbi_uc *) s) u = 0; // end of animated gif marker + if (u) { + *x = g.w; + *y = g.h; + + // moved conversion to after successful load so that the same + // can be done for multiple frames. + if (req_comp && req_comp != 4) + u = stbi__convert_format(u, 4, req_comp, g.w, g.h); + } else if (g.out) { + // if there was an error and we allocated an image buffer, free it! + STBI_FREE(g.out); + } + + // free buffers needed for multiple frame loading; + STBI_FREE(g.history); + STBI_FREE(g.background); + + return u; +} + +static int stbi__gif_info(stbi__context *s, int *x, int *y, int *comp) +{ + return stbi__gif_info_raw(s,x,y,comp); +} +#endif + +// ************************************************************************************************* +// Radiance RGBE HDR loader +// originally by Nicolas Schulz +#ifndef STBI_NO_HDR +static int stbi__hdr_test_core(stbi__context *s, const char *signature) +{ + int i; + for (i=0; signature[i]; ++i) + if (stbi__get8(s) != signature[i]) + return 0; + stbi__rewind(s); + return 1; +} + +static int stbi__hdr_test(stbi__context* s) +{ + int r = stbi__hdr_test_core(s, "#?RADIANCE\n"); + stbi__rewind(s); + if(!r) { + r = stbi__hdr_test_core(s, "#?RGBE\n"); + stbi__rewind(s); + } + return r; +} + +#define STBI__HDR_BUFLEN 1024 +static char *stbi__hdr_gettoken(stbi__context *z, char *buffer) +{ + int len=0; + char c = '\0'; + + c = (char) stbi__get8(z); + + while (!stbi__at_eof(z) && c != '\n') { + buffer[len++] = c; + if (len == STBI__HDR_BUFLEN-1) { + // flush to end of line + while (!stbi__at_eof(z) && stbi__get8(z) != '\n') + ; + break; + } + c = (char) stbi__get8(z); + } + + buffer[len] = 0; + return buffer; +} + +static void stbi__hdr_convert(float *output, stbi_uc *input, int req_comp) +{ + if ( input[3] != 0 ) { + float f1; + // Exponent + f1 = (float) ldexp(1.0f, input[3] - (int)(128 + 8)); + if (req_comp <= 2) + output[0] = (input[0] + input[1] + input[2]) * f1 / 3; + else { + output[0] = input[0] * f1; + output[1] = input[1] * f1; + output[2] = input[2] * f1; + } + if (req_comp == 2) output[1] = 1; + if (req_comp == 4) output[3] = 1; + } else { + switch (req_comp) { + case 4: output[3] = 1; /* fallthrough */ + case 3: output[0] = output[1] = output[2] = 0; + break; + case 2: output[1] = 1; /* fallthrough */ + case 1: output[0] = 0; + break; + } + } +} + +static float *stbi__hdr_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri) +{ + char buffer[STBI__HDR_BUFLEN]; + char *token; + int valid = 0; + int width, height; + stbi_uc *scanline; + float *hdr_data; + int len; + unsigned char count, value; + int i, j, k, c1,c2, z; + const char *headerToken; + STBI_NOTUSED(ri); + + // Check identifier + headerToken = stbi__hdr_gettoken(s,buffer); + if (strcmp(headerToken, "#?RADIANCE") != 0 && strcmp(headerToken, "#?RGBE") != 0) + return stbi__errpf("not HDR", "Corrupt HDR image"); + + // Parse header + for(;;) { + token = stbi__hdr_gettoken(s,buffer); + if (token[0] == 0) break; + if (strcmp(token, "FORMAT=32-bit_rle_rgbe") == 0) valid = 1; + } + + if (!valid) return stbi__errpf("unsupported format", "Unsupported HDR format"); + + // Parse width and height + // can't use sscanf() if we're not using stdio! + token = stbi__hdr_gettoken(s,buffer); + if (strncmp(token, "-Y ", 3)) return stbi__errpf("unsupported data layout", "Unsupported HDR format"); + token += 3; + height = (int) strtol(token, &token, 10); + while (*token == ' ') ++token; + if (strncmp(token, "+X ", 3)) return stbi__errpf("unsupported data layout", "Unsupported HDR format"); + token += 3; + width = (int) strtol(token, NULL, 10); + + if (height > STBI_MAX_DIMENSIONS) return stbi__errpf("too large","Very large image (corrupt?)"); + if (width > STBI_MAX_DIMENSIONS) return stbi__errpf("too large","Very large image (corrupt?)"); + + *x = width; + *y = height; + + if (comp) *comp = 3; + if (req_comp == 0) req_comp = 3; + + if (!stbi__mad4sizes_valid(width, height, req_comp, sizeof(float), 0)) + return stbi__errpf("too large", "HDR image is too large"); + + // Read data + hdr_data = (float *) stbi__malloc_mad4(width, height, req_comp, sizeof(float), 0); + if (!hdr_data) + return stbi__errpf("outofmem", "Out of memory"); + + // Load image data + // image data is stored as some number of sca + if ( width < 8 || width >= 32768) { + // Read flat data + for (j=0; j < height; ++j) { + for (i=0; i < width; ++i) { + stbi_uc rgbe[4]; + main_decode_loop: + stbi__getn(s, rgbe, 4); + stbi__hdr_convert(hdr_data + j * width * req_comp + i * req_comp, rgbe, req_comp); + } + } + } else { + // Read RLE-encoded data + scanline = NULL; + + for (j = 0; j < height; ++j) { + c1 = stbi__get8(s); + c2 = stbi__get8(s); + len = stbi__get8(s); + if (c1 != 2 || c2 != 2 || (len & 0x80)) { + // not run-length encoded, so we have to actually use THIS data as a decoded + // pixel (note this can't be a valid pixel--one of RGB must be >= 128) + stbi_uc rgbe[4]; + rgbe[0] = (stbi_uc) c1; + rgbe[1] = (stbi_uc) c2; + rgbe[2] = (stbi_uc) len; + rgbe[3] = (stbi_uc) stbi__get8(s); + stbi__hdr_convert(hdr_data, rgbe, req_comp); + i = 1; + j = 0; + STBI_FREE(scanline); + goto main_decode_loop; // yes, this makes no sense + } + len <<= 8; + len |= stbi__get8(s); + if (len != width) { STBI_FREE(hdr_data); STBI_FREE(scanline); return stbi__errpf("invalid decoded scanline length", "corrupt HDR"); } + if (scanline == NULL) { + scanline = (stbi_uc *) stbi__malloc_mad2(width, 4, 0); + if (!scanline) { + STBI_FREE(hdr_data); + return stbi__errpf("outofmem", "Out of memory"); + } + } + + for (k = 0; k < 4; ++k) { + int nleft; + i = 0; + while ((nleft = width - i) > 0) { + count = stbi__get8(s); + if (count > 128) { + // Run + value = stbi__get8(s); + count -= 128; + if ((count == 0) || (count > nleft)) { STBI_FREE(hdr_data); STBI_FREE(scanline); return stbi__errpf("corrupt", "bad RLE data in HDR"); } + for (z = 0; z < count; ++z) + scanline[i++ * 4 + k] = value; + } else { + // Dump + if ((count == 0) || (count > nleft)) { STBI_FREE(hdr_data); STBI_FREE(scanline); return stbi__errpf("corrupt", "bad RLE data in HDR"); } + for (z = 0; z < count; ++z) + scanline[i++ * 4 + k] = stbi__get8(s); + } + } + } + for (i=0; i < width; ++i) + stbi__hdr_convert(hdr_data+(j*width + i)*req_comp, scanline + i*4, req_comp); + } + if (scanline) + STBI_FREE(scanline); + } + + return hdr_data; +} + +static int stbi__hdr_info(stbi__context *s, int *x, int *y, int *comp) +{ + char buffer[STBI__HDR_BUFLEN]; + char *token; + int valid = 0; + int dummy; + + if (!x) x = &dummy; + if (!y) y = &dummy; + if (!comp) comp = &dummy; + + if (stbi__hdr_test(s) == 0) { + stbi__rewind( s ); + return 0; + } + + for(;;) { + token = stbi__hdr_gettoken(s,buffer); + if (token[0] == 0) break; + if (strcmp(token, "FORMAT=32-bit_rle_rgbe") == 0) valid = 1; + } + + if (!valid) { + stbi__rewind( s ); + return 0; + } + token = stbi__hdr_gettoken(s,buffer); + if (strncmp(token, "-Y ", 3)) { + stbi__rewind( s ); + return 0; + } + token += 3; + *y = (int) strtol(token, &token, 10); + while (*token == ' ') ++token; + if (strncmp(token, "+X ", 3)) { + stbi__rewind( s ); + return 0; + } + token += 3; + *x = (int) strtol(token, NULL, 10); + *comp = 3; + return 1; +} +#endif // STBI_NO_HDR + +#ifndef STBI_NO_BMP +static int stbi__bmp_info(stbi__context *s, int *x, int *y, int *comp) +{ + void *p; + stbi__bmp_data info; + + info.all_a = 255; + p = stbi__bmp_parse_header(s, &info); + if (p == NULL) { + stbi__rewind( s ); + return 0; + } + if (x) *x = s->img_x; + if (y) *y = s->img_y; + if (comp) { + if (info.bpp == 24 && info.ma == 0xff000000) + *comp = 3; + else + *comp = info.ma ? 4 : 3; + } + return 1; +} +#endif + +#ifndef STBI_NO_PSD +static int stbi__psd_info(stbi__context *s, int *x, int *y, int *comp) +{ + int channelCount, dummy, depth; + if (!x) x = &dummy; + if (!y) y = &dummy; + if (!comp) comp = &dummy; + if (stbi__get32be(s) != 0x38425053) { + stbi__rewind( s ); + return 0; + } + if (stbi__get16be(s) != 1) { + stbi__rewind( s ); + return 0; + } + stbi__skip(s, 6); + channelCount = stbi__get16be(s); + if (channelCount < 0 || channelCount > 16) { + stbi__rewind( s ); + return 0; + } + *y = stbi__get32be(s); + *x = stbi__get32be(s); + depth = stbi__get16be(s); + if (depth != 8 && depth != 16) { + stbi__rewind( s ); + return 0; + } + if (stbi__get16be(s) != 3) { + stbi__rewind( s ); + return 0; + } + *comp = 4; + return 1; +} + +static int stbi__psd_is16(stbi__context *s) +{ + int channelCount, depth; + if (stbi__get32be(s) != 0x38425053) { + stbi__rewind( s ); + return 0; + } + if (stbi__get16be(s) != 1) { + stbi__rewind( s ); + return 0; + } + stbi__skip(s, 6); + channelCount = stbi__get16be(s); + if (channelCount < 0 || channelCount > 16) { + stbi__rewind( s ); + return 0; + } + STBI_NOTUSED(stbi__get32be(s)); + STBI_NOTUSED(stbi__get32be(s)); + depth = stbi__get16be(s); + if (depth != 16) { + stbi__rewind( s ); + return 0; + } + return 1; +} +#endif + +#ifndef STBI_NO_PIC +static int stbi__pic_info(stbi__context *s, int *x, int *y, int *comp) +{ + int act_comp=0,num_packets=0,chained,dummy; + stbi__pic_packet packets[10]; + + if (!x) x = &dummy; + if (!y) y = &dummy; + if (!comp) comp = &dummy; + + if (!stbi__pic_is4(s,"\x53\x80\xF6\x34")) { + stbi__rewind(s); + return 0; + } + + stbi__skip(s, 88); + + *x = stbi__get16be(s); + *y = stbi__get16be(s); + if (stbi__at_eof(s)) { + stbi__rewind( s); + return 0; + } + if ( (*x) != 0 && (1 << 28) / (*x) < (*y)) { + stbi__rewind( s ); + return 0; + } + + stbi__skip(s, 8); + + do { + stbi__pic_packet *packet; + + if (num_packets==sizeof(packets)/sizeof(packets[0])) + return 0; + + packet = &packets[num_packets++]; + chained = stbi__get8(s); + packet->size = stbi__get8(s); + packet->type = stbi__get8(s); + packet->channel = stbi__get8(s); + act_comp |= packet->channel; + + if (stbi__at_eof(s)) { + stbi__rewind( s ); + return 0; + } + if (packet->size != 8) { + stbi__rewind( s ); + return 0; + } + } while (chained); + + *comp = (act_comp & 0x10 ? 4 : 3); + + return 1; +} +#endif + +// ************************************************************************************************* +// Portable Gray Map and Portable Pixel Map loader +// by Ken Miller +// +// PGM: http://netpbm.sourceforge.net/doc/pgm.html +// PPM: http://netpbm.sourceforge.net/doc/ppm.html +// +// Known limitations: +// Does not support comments in the header section +// Does not support ASCII image data (formats P2 and P3) + +#ifndef STBI_NO_PNM + +static int stbi__pnm_test(stbi__context *s) +{ + char p, t; + p = (char) stbi__get8(s); + t = (char) stbi__get8(s); + if (p != 'P' || (t != '5' && t != '6')) { + stbi__rewind( s ); + return 0; + } + return 1; +} + +static void *stbi__pnm_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri) +{ + stbi_uc *out; + STBI_NOTUSED(ri); + + ri->bits_per_channel = stbi__pnm_info(s, (int *)&s->img_x, (int *)&s->img_y, (int *)&s->img_n); + if (ri->bits_per_channel == 0) + return 0; + + if (s->img_y > STBI_MAX_DIMENSIONS) return stbi__errpuc("too large","Very large image (corrupt?)"); + if (s->img_x > STBI_MAX_DIMENSIONS) return stbi__errpuc("too large","Very large image (corrupt?)"); + + *x = s->img_x; + *y = s->img_y; + if (comp) *comp = s->img_n; + + if (!stbi__mad4sizes_valid(s->img_n, s->img_x, s->img_y, ri->bits_per_channel / 8, 0)) + return stbi__errpuc("too large", "PNM too large"); + + out = (stbi_uc *) stbi__malloc_mad4(s->img_n, s->img_x, s->img_y, ri->bits_per_channel / 8, 0); + if (!out) return stbi__errpuc("outofmem", "Out of memory"); + if (!stbi__getn(s, out, s->img_n * s->img_x * s->img_y * (ri->bits_per_channel / 8))) { + STBI_FREE(out); + return stbi__errpuc("bad PNM", "PNM file truncated"); + } + + if (req_comp && req_comp != s->img_n) { + if (ri->bits_per_channel == 16) { + out = (stbi_uc *) stbi__convert_format16((stbi__uint16 *) out, s->img_n, req_comp, s->img_x, s->img_y); + } else { + out = stbi__convert_format(out, s->img_n, req_comp, s->img_x, s->img_y); + } + if (out == NULL) return out; // stbi__convert_format frees input on failure + } + return out; +} + +static int stbi__pnm_isspace(char c) +{ + return c == ' ' || c == '\t' || c == '\n' || c == '\v' || c == '\f' || c == '\r'; +} + +static void stbi__pnm_skip_whitespace(stbi__context *s, char *c) +{ + for (;;) { + while (!stbi__at_eof(s) && stbi__pnm_isspace(*c)) + *c = (char) stbi__get8(s); + + if (stbi__at_eof(s) || *c != '#') + break; + + while (!stbi__at_eof(s) && *c != '\n' && *c != '\r' ) + *c = (char) stbi__get8(s); + } +} + +static int stbi__pnm_isdigit(char c) +{ + return c >= '0' && c <= '9'; +} + +static int stbi__pnm_getinteger(stbi__context *s, char *c) +{ + int value = 0; + + while (!stbi__at_eof(s) && stbi__pnm_isdigit(*c)) { + value = value*10 + (*c - '0'); + *c = (char) stbi__get8(s); + if((value > 214748364) || (value == 214748364 && *c > '7')) + return stbi__err("integer parse overflow", "Parsing an integer in the PPM header overflowed a 32-bit int"); + } + + return value; +} + +static int stbi__pnm_info(stbi__context *s, int *x, int *y, int *comp) +{ + int maxv, dummy; + char c, p, t; + + if (!x) x = &dummy; + if (!y) y = &dummy; + if (!comp) comp = &dummy; + + stbi__rewind(s); + + // Get identifier + p = (char) stbi__get8(s); + t = (char) stbi__get8(s); + if (p != 'P' || (t != '5' && t != '6')) { + stbi__rewind(s); + return 0; + } + + *comp = (t == '6') ? 3 : 1; // '5' is 1-component .pgm; '6' is 3-component .ppm + + c = (char) stbi__get8(s); + stbi__pnm_skip_whitespace(s, &c); + + *x = stbi__pnm_getinteger(s, &c); // read width + if(*x == 0) + return stbi__err("invalid width", "PPM image header had zero or overflowing width"); + stbi__pnm_skip_whitespace(s, &c); + + *y = stbi__pnm_getinteger(s, &c); // read height + if (*y == 0) + return stbi__err("invalid width", "PPM image header had zero or overflowing width"); + stbi__pnm_skip_whitespace(s, &c); + + maxv = stbi__pnm_getinteger(s, &c); // read max value + if (maxv > 65535) + return stbi__err("max value > 65535", "PPM image supports only 8-bit and 16-bit images"); + else if (maxv > 255) + return 16; + else + return 8; +} + +static int stbi__pnm_is16(stbi__context *s) +{ + if (stbi__pnm_info(s, NULL, NULL, NULL) == 16) + return 1; + return 0; +} +#endif + +static int stbi__info_main(stbi__context *s, int *x, int *y, int *comp) +{ + #ifndef STBI_NO_JPEG + if (stbi__jpeg_info(s, x, y, comp)) return 1; + #endif + + #ifndef STBI_NO_PNG + if (stbi__png_info(s, x, y, comp)) return 1; + #endif + + #ifndef STBI_NO_GIF + if (stbi__gif_info(s, x, y, comp)) return 1; + #endif + + #ifndef STBI_NO_BMP + if (stbi__bmp_info(s, x, y, comp)) return 1; + #endif + + #ifndef STBI_NO_PSD + if (stbi__psd_info(s, x, y, comp)) return 1; + #endif + + #ifndef STBI_NO_PIC + if (stbi__pic_info(s, x, y, comp)) return 1; + #endif + + #ifndef STBI_NO_PNM + if (stbi__pnm_info(s, x, y, comp)) return 1; + #endif + + #ifndef STBI_NO_HDR + if (stbi__hdr_info(s, x, y, comp)) return 1; + #endif + + // test tga last because it's a crappy test! + #ifndef STBI_NO_TGA + if (stbi__tga_info(s, x, y, comp)) + return 1; + #endif + return stbi__err("unknown image type", "Image not of any known type, or corrupt"); +} + +static int stbi__is_16_main(stbi__context *s) +{ + #ifndef STBI_NO_PNG + if (stbi__png_is16(s)) return 1; + #endif + + #ifndef STBI_NO_PSD + if (stbi__psd_is16(s)) return 1; + #endif + + #ifndef STBI_NO_PNM + if (stbi__pnm_is16(s)) return 1; + #endif + return 0; +} + +#ifndef STBI_NO_STDIO +STBIDEF int stbi_info(char const *filename, int *x, int *y, int *comp) +{ + FILE *f = stbi__fopen(filename, "rb"); + int result; + if (!f) return stbi__err("can't fopen", "Unable to open file"); + result = stbi_info_from_file(f, x, y, comp); + fclose(f); + return result; +} + +STBIDEF int stbi_info_from_file(FILE *f, int *x, int *y, int *comp) +{ + int r; + stbi__context s; + long pos = ftell(f); + stbi__start_file(&s, f); + r = stbi__info_main(&s,x,y,comp); + fseek(f,pos,SEEK_SET); + return r; +} + +STBIDEF int stbi_is_16_bit(char const *filename) +{ + FILE *f = stbi__fopen(filename, "rb"); + int result; + if (!f) return stbi__err("can't fopen", "Unable to open file"); + result = stbi_is_16_bit_from_file(f); + fclose(f); + return result; +} + +STBIDEF int stbi_is_16_bit_from_file(FILE *f) +{ + int r; + stbi__context s; + long pos = ftell(f); + stbi__start_file(&s, f); + r = stbi__is_16_main(&s); + fseek(f,pos,SEEK_SET); + return r; +} +#endif // !STBI_NO_STDIO + +STBIDEF int stbi_info_from_memory(stbi_uc const *buffer, int len, int *x, int *y, int *comp) +{ + stbi__context s; + stbi__start_mem(&s,buffer,len); + return stbi__info_main(&s,x,y,comp); +} + +STBIDEF int stbi_info_from_callbacks(stbi_io_callbacks const *c, void *user, int *x, int *y, int *comp) +{ + stbi__context s; + stbi__start_callbacks(&s, (stbi_io_callbacks *) c, user); + return stbi__info_main(&s,x,y,comp); +} + +STBIDEF int stbi_is_16_bit_from_memory(stbi_uc const *buffer, int len) +{ + stbi__context s; + stbi__start_mem(&s,buffer,len); + return stbi__is_16_main(&s); +} + +STBIDEF int stbi_is_16_bit_from_callbacks(stbi_io_callbacks const *c, void *user) +{ + stbi__context s; + stbi__start_callbacks(&s, (stbi_io_callbacks *) c, user); + return stbi__is_16_main(&s); +} + +#endif // STB_IMAGE_IMPLEMENTATION + +/* + revision history: + 2.20 (2019-02-07) support utf8 filenames in Windows; fix warnings and platform ifdefs + 2.19 (2018-02-11) fix warning + 2.18 (2018-01-30) fix warnings + 2.17 (2018-01-29) change sbti__shiftsigned to avoid clang -O2 bug + 1-bit BMP + *_is_16_bit api + avoid warnings + 2.16 (2017-07-23) all functions have 16-bit variants; + STBI_NO_STDIO works again; + compilation fixes; + fix rounding in unpremultiply; + optimize vertical flip; + disable raw_len validation; + documentation fixes + 2.15 (2017-03-18) fix png-1,2,4 bug; now all Imagenet JPGs decode; + warning fixes; disable run-time SSE detection on gcc; + uniform handling of optional "return" values; + thread-safe initialization of zlib tables + 2.14 (2017-03-03) remove deprecated STBI_JPEG_OLD; fixes for Imagenet JPGs + 2.13 (2016-11-29) add 16-bit API, only supported for PNG right now + 2.12 (2016-04-02) fix typo in 2.11 PSD fix that caused crashes + 2.11 (2016-04-02) allocate large structures on the stack + remove white matting for transparent PSD + fix reported channel count for PNG & BMP + re-enable SSE2 in non-gcc 64-bit + support RGB-formatted JPEG + read 16-bit PNGs (only as 8-bit) + 2.10 (2016-01-22) avoid warning introduced in 2.09 by STBI_REALLOC_SIZED + 2.09 (2016-01-16) allow comments in PNM files + 16-bit-per-pixel TGA (not bit-per-component) + info() for TGA could break due to .hdr handling + info() for BMP to shares code instead of sloppy parse + can use STBI_REALLOC_SIZED if allocator doesn't support realloc + code cleanup + 2.08 (2015-09-13) fix to 2.07 cleanup, reading RGB PSD as RGBA + 2.07 (2015-09-13) fix compiler warnings + partial animated GIF support + limited 16-bpc PSD support + #ifdef unused functions + bug with < 92 byte PIC,PNM,HDR,TGA + 2.06 (2015-04-19) fix bug where PSD returns wrong '*comp' value + 2.05 (2015-04-19) fix bug in progressive JPEG handling, fix warning + 2.04 (2015-04-15) try to re-enable SIMD on MinGW 64-bit + 2.03 (2015-04-12) extra corruption checking (mmozeiko) + stbi_set_flip_vertically_on_load (nguillemot) + fix NEON support; fix mingw support + 2.02 (2015-01-19) fix incorrect assert, fix warning + 2.01 (2015-01-17) fix various warnings; suppress SIMD on gcc 32-bit without -msse2 + 2.00b (2014-12-25) fix STBI_MALLOC in progressive JPEG + 2.00 (2014-12-25) optimize JPG, including x86 SSE2 & NEON SIMD (ryg) + progressive JPEG (stb) + PGM/PPM support (Ken Miller) + STBI_MALLOC,STBI_REALLOC,STBI_FREE + GIF bugfix -- seemingly never worked + STBI_NO_*, STBI_ONLY_* + 1.48 (2014-12-14) fix incorrectly-named assert() + 1.47 (2014-12-14) 1/2/4-bit PNG support, both direct and paletted (Omar Cornut & stb) + optimize PNG (ryg) + fix bug in interlaced PNG with user-specified channel count (stb) + 1.46 (2014-08-26) + fix broken tRNS chunk (colorkey-style transparency) in non-paletted PNG + 1.45 (2014-08-16) + fix MSVC-ARM internal compiler error by wrapping malloc + 1.44 (2014-08-07) + various warning fixes from Ronny Chevalier + 1.43 (2014-07-15) + fix MSVC-only compiler problem in code changed in 1.42 + 1.42 (2014-07-09) + don't define _CRT_SECURE_NO_WARNINGS (affects user code) + fixes to stbi__cleanup_jpeg path + added STBI_ASSERT to avoid requiring assert.h + 1.41 (2014-06-25) + fix search&replace from 1.36 that messed up comments/error messages + 1.40 (2014-06-22) + fix gcc struct-initialization warning + 1.39 (2014-06-15) + fix to TGA optimization when req_comp != number of components in TGA; + fix to GIF loading because BMP wasn't rewinding (whoops, no GIFs in my test suite) + add support for BMP version 5 (more ignored fields) + 1.38 (2014-06-06) + suppress MSVC warnings on integer casts truncating values + fix accidental rename of 'skip' field of I/O + 1.37 (2014-06-04) + remove duplicate typedef + 1.36 (2014-06-03) + convert to header file single-file library + if de-iphone isn't set, load iphone images color-swapped instead of returning NULL + 1.35 (2014-05-27) + various warnings + fix broken STBI_SIMD path + fix bug where stbi_load_from_file no longer left file pointer in correct place + fix broken non-easy path for 32-bit BMP (possibly never used) + TGA optimization by Arseny Kapoulkine + 1.34 (unknown) + use STBI_NOTUSED in stbi__resample_row_generic(), fix one more leak in tga failure case + 1.33 (2011-07-14) + make stbi_is_hdr work in STBI_NO_HDR (as specified), minor compiler-friendly improvements + 1.32 (2011-07-13) + support for "info" function for all supported filetypes (SpartanJ) + 1.31 (2011-06-20) + a few more leak fixes, bug in PNG handling (SpartanJ) + 1.30 (2011-06-11) + added ability to load files via callbacks to accomidate custom input streams (Ben Wenger) + removed deprecated format-specific test/load functions + removed support for installable file formats (stbi_loader) -- would have been broken for IO callbacks anyway + error cases in bmp and tga give messages and don't leak (Raymond Barbiero, grisha) + fix inefficiency in decoding 32-bit BMP (David Woo) + 1.29 (2010-08-16) + various warning fixes from Aurelien Pocheville + 1.28 (2010-08-01) + fix bug in GIF palette transparency (SpartanJ) + 1.27 (2010-08-01) + cast-to-stbi_uc to fix warnings + 1.26 (2010-07-24) + fix bug in file buffering for PNG reported by SpartanJ + 1.25 (2010-07-17) + refix trans_data warning (Won Chun) + 1.24 (2010-07-12) + perf improvements reading from files on platforms with lock-heavy fgetc() + minor perf improvements for jpeg + deprecated type-specific functions so we'll get feedback if they're needed + attempt to fix trans_data warning (Won Chun) + 1.23 fixed bug in iPhone support + 1.22 (2010-07-10) + removed image *writing* support + stbi_info support from Jetro Lauha + GIF support from Jean-Marc Lienher + iPhone PNG-extensions from James Brown + warning-fixes from Nicolas Schulz and Janez Zemva (i.stbi__err. Janez (U+017D)emva) + 1.21 fix use of 'stbi_uc' in header (reported by jon blow) + 1.20 added support for Softimage PIC, by Tom Seddon + 1.19 bug in interlaced PNG corruption check (found by ryg) + 1.18 (2008-08-02) + fix a threading bug (local mutable static) + 1.17 support interlaced PNG + 1.16 major bugfix - stbi__convert_format converted one too many pixels + 1.15 initialize some fields for thread safety + 1.14 fix threadsafe conversion bug + header-file-only version (#define STBI_HEADER_FILE_ONLY before including) + 1.13 threadsafe + 1.12 const qualifiers in the API + 1.11 Support installable IDCT, colorspace conversion routines + 1.10 Fixes for 64-bit (don't use "unsigned long") + optimized upsampling by Fabian "ryg" Giesen + 1.09 Fix format-conversion for PSD code (bad global variables!) + 1.08 Thatcher Ulrich's PSD code integrated by Nicolas Schulz + 1.07 attempt to fix C++ warning/errors again + 1.06 attempt to fix C++ warning/errors again + 1.05 fix TGA loading to return correct *comp and use good luminance calc + 1.04 default float alpha is 1, not 255; use 'void *' for stbi_image_free + 1.03 bugfixes to STBI_NO_STDIO, STBI_NO_HDR + 1.02 support for (subset of) HDR files, float interface for preferred access to them + 1.01 fix bug: possible bug in handling right-side up bmps... not sure + fix bug: the stbi__bmp_load() and stbi__tga_load() functions didn't work at all + 1.00 interface to zlib that skips zlib header + 0.99 correct handling of alpha in palette + 0.98 TGA loader by lonesock; dynamically add loaders (untested) + 0.97 jpeg errors on too large a file; also catch another malloc failure + 0.96 fix detection of invalid v value - particleman@mollyrocket forum + 0.95 during header scan, seek to markers in case of padding + 0.94 STBI_NO_STDIO to disable stdio usage; rename all #defines the same + 0.93 handle jpegtran output; verbose errors + 0.92 read 4,8,16,24,32-bit BMP files of several formats + 0.91 output 24-bit Windows 3.0 BMP files + 0.90 fix a few more warnings; bump version number to approach 1.0 + 0.61 bugfixes due to Marc LeBlanc, Christopher Lloyd + 0.60 fix compiling as c++ + 0.59 fix warnings: merge Dave Moore's -Wall fixes + 0.58 fix bug: zlib uncompressed mode len/nlen was wrong endian + 0.57 fix bug: jpg last huffman symbol before marker was >9 bits but less than 16 available + 0.56 fix bug: zlib uncompressed mode len vs. nlen + 0.55 fix bug: restart_interval not initialized to 0 + 0.54 allow NULL for 'int *comp' + 0.53 fix bug in png 3->4; speedup png decoding + 0.52 png handles req_comp=3,4 directly; minor cleanup; jpeg comments + 0.51 obey req_comp requests, 1-component jpegs return as 1-component, + on 'test' only check type, not whether we support this variant + 0.50 (2006-11-19) + first released version +*/ + + +/* +------------------------------------------------------------------------------ +This software is available under 2 licenses -- choose whichever you prefer. +------------------------------------------------------------------------------ +ALTERNATIVE A - MIT License +Copyright (c) 2017 Sean Barrett +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +------------------------------------------------------------------------------ +ALTERNATIVE B - Public Domain (www.unlicense.org) +This is free and unencumbered software released into the public domain. +Anyone is free to copy, modify, publish, use, compile, sell, or distribute this +software, either in source code form or as a compiled binary, for any purpose, +commercial or non-commercial, and by any means. +In jurisdictions that recognize copyright laws, the author or authors of this +software dedicate any and all copyright interest in the software to the public +domain. We make this dedication for the benefit of the public at large and to +the detriment of our heirs and successors. We intend this dedication to be an +overt act of relinquishment in perpetuity of all present and future rights to +this software under copyright law. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN +ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +------------------------------------------------------------------------------ +*/ diff --git a/modules/stb_image/windows/stb_image.dll b/modules/stb_image/windows/stb_image.dll new file mode 100644 index 0000000000000000000000000000000000000000..f27c3c39525a71ddb5f53926f1ac42e4f72f1ca4 GIT binary patch literal 277504 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 P@jE1{|NHybHSj+G6)~Na literal 0 HcmV?d00001 diff --git a/modules/stb_image/windows/stb_image.lib b/modules/stb_image/windows/stb_image.lib new file mode 100644 index 0000000000000000000000000000000000000000..aa89310d731539ca3e958adf72d39baece15de5c GIT binary patch literal 289394 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 f`TS!94}Wzms!xHA>$v;C}^}&y#R-zDD;2cq!ex zGzLy~7^RQq)vsINPDT2@0GGO#r*AawGtxuTkbVZ{(pNc$+YGr6;D0%ooYxX_-=V)R z0wcf2xoIYPzl340-e;4(`IvKN^UixP@U8yDCjH<`&P_Mb`xgC%>)$qM+P9oDd;a(> zf=@hXlm2>$bGXegzwCJ*%-HWZXV!it1XqEnI>I@#`9?7c_)#!l4Yiixd~5ct;_Fw}SiCNt~st5l8v>lg1>{t3==~aOa)O^~~(I7~C{4zt%Xj zdOsQ5a~hK<-fIx}FALlWsF?m!Qly_yhlInd9lZs^{uh`v6FGMwSR=dq6#hRsJ4Jd2 zCmm+_eG0+<1at4XoHMO25cmMhu}sdHjf0Pa%Q`PbdiVUq+;0%6dlbJpxRU;^&HOJfr0tw!LVz+ITb_2_C8FD*U0H71cB&BxQH zq)2md(t+d}>XH4cz+9VzI~QClm|tt0Sv{rp@f?^pHO?#_G*9{hOv=>6`6cdTFqug> zsvr4aJQ`<~-v_~!f;pgZX7%qIa8swHNas%H=`+jkSVW|NxoQUI%=B)7-h*H!jWg4`8r&;j&bx%`nT>B5 z2%ZIIS$<-!7Qw#(GrWLvX8q7#kdL`wMtTzKQM=9obFs$ZHp6;PTp^gUB-~@*=7Mo} zdAw%jL0mDIZ<27sk)XUn)YBraXJ%)bw=V#5I0;93rzj~>x-YTbncyx3Q&G%0vvHNU zd%-+cl9;3P9Rjn?pEzC@^d1NEMSyc=ABl=g$%J zmJNJwWE{9!Fe^2V^5II$a$V3gkfZ0fTfp3*an#-zC+MZa{|PX?7WCc*^Jx-2O5czx zc^=?ohgte2fSahXX6ZW(3T`kJ8kZ=)wP1o4^zHz&-h$rKV74XE8;|sT1m=jy8I;F_ zxyUb0I?VE$hA=mnnIdPPcO96OA}5qDmB+nc)@xiM`#lY2TN1r==zRpnP76Rd66uWw zGeP6b@=NKPt}#py7qj|O0&Y$cJ*qE3Ft=-5qV(Mh=8+_Nl)i0X-n5|i5tsu>^wOa> z`YN<@oOC2g-*hl;jZ0*|N{wNHxR}{52yS%}J+j{eV4l^uMCscGrq_br0Wc%yCC~3k zV9wMyv;0zf%Lg;Zf?g$<`XqWZE~^>?Cp*mScL%r!lIT%=c^*u!$QiWX17MDboX~!$ zKbUZJigXT6I&`}j=oNvPDRP2d1~je%bC<>?D&GgdJeEX{(zg@Ln-=sw0&^gV9@W3m z*C4+*=}45m95DGBr`tuyFQxBlF!dJnmVyZ-(WCNx5X@5+^frUpWkIh`V<^9LnAN|d z;D%QS^+3ok+3##HZjDQ1zW|uIN%UwQu~cIyZFHEWF9dE~61{ZX|2UYJH7-&5UI+70 z5R>FppZ$dlJm%Bzly-cfovP zK`#PkWM$&|Lg_mPOs>WyvY#7FSrR?!PwO=XPIj2pmms*+7W5vlsP_oCCzI$=eeSiW z_b#};BzlzJVGFp8d2S`s_TdC~s>YhtKhn#!s3(I9SkPNyQLhEuO&0X-x2X3pxF?e6 zQT=IcfQ7&l?UmSSk$Wm*O)|)$~SCL?=El;CefqxZMLZQ zI=GLL=+XFQTbLr9gp&^4E(Y_B95DGJCyYmI`~_1lat3-Tn7c(z(4+J{1!kwn8R&fq z=4+7?^eBB}sxj}xNk^jm=7T8_IRm{~jbVbgnDu{c;M$YuQGI#HqTXZRHYU-d{_j@1@_GqJhlAI<;PX$-|nhnf8z1Gh1W9`!G; zTGaaj+~Fj8RKBMyMt#9ahi(^x{QAJm7C9lmq}KxG7Lha1dl<|UB4?oY3Yd>X&OpzG zMf}mUkRP89L66Ee6HK1S8R*RgQ!R1^dLb}(h@64m6JVYfIYE#5gSRz?@h(ZKAJyj~FjXRFkl)o{!XhW=QGIy~%w~}@(0dn5pU4S% z)INqSNs-RLNr#>f1HDVY_(V?7qx!N4%unujanfOyU((Ce7zW~Emfw7E zB}w$saepnCPK`@6AG!m~14;BKeb0mG6*+_a9sqMhI^oX2+-X~zb5;;MS(&ud9HsQH7Z@*`OyHI2GdN1hFcpd;#Epi6w z3xQcDa)KVE?{SSumcDLqFI&*-2NMxFgY=!=igu2Z4zv7HeJRoy2I68?U&_E;l|+x) zTN{|WG%itldjQO1N%W{Zc7pl9f?hwEgGuyg|Kp?});n?1q1(m4esjQ7iJVZr)P7fk zxn1N8^wxuUR^$XdO5dAcj*6Ut-l^B)?^WQWL(hkxN9pr|nJsb#dM#jX5;;MS%Hw{G zp?K*qt1nN1>rSFa^Nsf{>h*&=m_(22-$_fY^#|GDF40&s`?3DdqFy7o~d@M`D}1G8mrd>A$?R|F0-gt39deg9;HtO^MJ-B8ZRFO^HdT&YHxeN91%H#@|ds! z?H4B`Zkq+YkH8!hIfL|_bQAV*aMEE`pDBI$U}lP(f!=jsR*IaE zU+NF;1@oB58R+c<^Qy=h=zR^wzDmf4f!>*5&KEgBkLDXC8UrUg%Kz6*WVK*t!G4tAvowYo4;M50<$)_oqDS-HYKwZ; zfm>-o?_P^~kAQp9f?lshy?4R&SK<}gw`YW7tnB|xCS72s}oPpkTU{;EpkUrL5fq6{i z4D@z_c~#^L^uE>@mJwXc+J}7&#%Y{%B+BpkU}TXqNM8k*B_b!JkJ@i1m92PkPy;IupT!E7gv;0zhk-=Ooat3q$QkI>gJ}~vA-|NqyTPm%IRm|y!MrJQf*!TE zgBk-TJIw4i@|G0o6r6M<%I{Q-VIVGMdR}msCDEhwHCogQfm@eEkH(|NE$TfDZkq+Y zk1XmP0Cyyb9?cIXbZ{HP$qqC7oeA!IjWsI|vR{csy$WzkEa-KDxnJZA>ff_qdPL5k z{(S=Gu*ezcozjW^1t%S5`K9(IgSkxP4D=eoEEhQ;ebnCW0rP~&8R)$N=53KP&^xR# zln*-0%6H7qQl!&y(qWcgD&IUXWg=&gzIrfiA}6Ge>~}YqM?}s*ZyT6ikrVXNp?5%I z;ADqcew`}b7sW}3S$=7~I2X*-8kgvKdJ&kGBzjrUyIo@_UOLRu*A4FFBzn|-`z`8y z4K9*IkIMJ-wOGHxNr!G1gYqZ?bCt*mOxJ2b!1*S2H9+gK}V_3wvn3eBc;2un(NA}wcX0ON@V*{NBIqdxnJZA^qvLNBXWWswU19U22OUE+3yQ*hm+{h{Qi{Nv964h z4&5#W>AMWf)gmXPkMg@5j4E;ldXIv6O5_am_G%1EATDP4{RrHFBzn{zjQ%;E18~xj zD8Kn&N<>abAK9-KOuNV#qX8$?`1H3B4?mC><;wLI0xiI(4+Fm1|y4{fnEie zB_d~_*QqfqVqDD1;~sDiC()zw*b3%#kuyl&H(+dcCeAPEodG6C=8RU04 z7**s9^d1HCl*kEs^gOdyW8h?mnf=}e*Ka{@_+8v4$@ESFcc#Yb^5ku$L0V_-IloRB`M&#!{{MC1(g?7u*NkCP6w{8D{6Ut<`Ei&=Td-~vhX zD1A#T>MaL%OA3b;{8D|%12a?P4D_x8vr^;?(swVI$3)IRZzq^n zMNZJ8{`qT-VHv^2tiBupH|*Zz`JD*n5{*kVzb^ta(}Lc0U^+$4Ais}*c~azr{8E3_ z3+4-vGte7(AJ#i@(qUGgslS>E#w&6LdR1T=MNUW`>4m}EFLDNY&w}X@IYE!=-zQ*> zikyMosrTdkI-GQv<(K*cFPK`9Gtj#Q%pD?UkiI9t>=Zczy-&e>Epmb$*>B9RG0xzm zL(hkSUOt!-krVVNzqMe(B4?oY7?_PBC+Jc7UIp`s$QkI_AHaMACmnh|1U)w2&=>~d zV%C0TaDgOxG(T8kQEw@@P!c_AZx4cbUgHw=2R&f+Cefq(eg$U8Zv?v-*zYVb7mA!< zKPry^n5#w3KyNviTSQLKqx3xt=4p{L(0d)sMZhh7g1^ezOGCvt)w z_4ji%h6&$O-l% zy)rOWB4Mcf_LJ$cHf>!byjj{V07? zHHLw>nB~_C?y@9$G=FKdsCNsvJ1pou0cNMhC2Ajg!MvYDkLur1Fk^l%*u|i}TnHvl zI;}&ku%Uc0Op9u8R$)T1i!PvNrzq!4D^b?%oI66 zkLFj`fw@cM4D_A^vsvT>Jt~iP!F(lh271mvV80P39eO?lJ+fb}#xM{Uv-<1dedcD7fK&66_-6m&)U8jY+1L z2d>D1UNx9DkuxZdyTLppazgs3K6iuZ6*&XF17MDboS;Yfov@zUBw2pX2bZg{X6=pi z=73ouat7(^1ap_j3F)K!J_%;4$QkH;0Okvk6Z9y3Bma!|%yH78=fgnn5->iI6Z9y3 zi@+=uIRm}Bz&t2&f*!TE%^E}LqrGIoo-R@ zDsYRE=uv;)Zc*<+aE~X^qw?5gQSWVVpC-|x`ZDA%*6cR{+(eBvvmfQxZBefR+>#`E zl;2K^diQ{PIEfymZ>vSU_rdjB&>Q}wHTz8jm#wj8_De_l%D^;gT%z%#4NQ9yJ+j|J z8UrUg%-Y+N;5LhT1OM#4bRQJn1=IG|xc)_QbzRU}*FtS4dZfc~x5h;MT*NJCX^DQP zPinv7u}aG7x}bSr#Pt8gZxr>?TrQEL|NrAf3*3Bgdk1mlgY@da=>Ma8%K}I3<4X%1tEU^2=a>GUsZka8 zw7^ll@3p|uc>cBpj{e`51B1B1{RVO0Sm5aY(K%v~OW7p0qrvf#-f#;Xm0Q{%Zg9Ur z_4zal9JSv}3mo+?Gc0gaZlxAD>W8khz)|@ww!l$-S6JX^yi_f4WS2WFa8&Ofw7^k* z|6+lod~C76kzTI_j_S(?7C0*3FD!7EgR?&^*5|?F+lk<258{mL=^_gprSEzR+>gMm zwZKgV_a_S+&GGhG;AnhvJR{m=aDJ&?ooIohdVhumj@ny}1&->=B^Ed;w}1tX{y)PC z3mn;{)dENL{-+i=vfu3%ILhy@EpXI+|73xqcsE<%DBhPWa5N6SV}T>Rk1cRi5B_6; zqj-;5;HZ3uKAXHgQ~FM|z+C_?(*j57n`@D)w7^mSS8IWzc!L%=ss}4Aa5QiFnMLj{ z3mm2IHx{`+Sm3C>{MiCW`FO?xM|R$3fjbvmuLX|sd&B}q{fqs%Rl}Ga+ zZg9NR->Y!~7-THweo&ko`S+mH0N4&sdC z?Xk%1vcS=N-^$1(j7xS_T7yeYjvvZC$lN*rM8+BoSs$vj`+eR7LhQgSc5nDP4xa zNz$bSCy2CWaFp6jgKe>RVRJ=mV?`Z47FE{QR}Q>2F0=&^igx7p5@c{MNkW-I4eqUN zVIj;CCRvF`jA{iBADH0ydj@B=26ZynTwT#zUD?vuAlzABxu_ZiUM*y@wxOocydK0t z%`<^|w4k;%fkq3eK@2eyLOO&L>nR(YQ`muP3b#bPd1?mV*HYbD5o~B`uC7NDt!=7n zt7vRsjdP$*Rb#{T)y=IHwM~l~8>%as8WvGeH!oT+5F@pky4t1+f@>*bCVHmPR%&bzj%RF?=6}8kZVy+7s7hEe{Bwaj4T7b<^X{q5@E{BZA{7&cisr!ubKtZk(%e+UPun^Lw0!aDIt%AI>hEtDt5}O&gwK zA2DWp`h*ilI);oI`-3wlWu5b*Q^$=SI_!j#PCM(|>>0U}Gc!&<*?GzjC!UvcQQnmE ze|*N-7fikQl4%!CzcgPsq~bzfA*D=S*tnn?pOjCsH?0=Xjuz#aX7;oyKr27=lu1vx zWCtn;da9!*ol|il+tOJ$GjZnN%){x%ITL3U&K8^@oDbpLit{6!DYQKB-#7@5KWV-a zf7Q5n+e1D%v7I-^J0m=mScVZ(=x7&6i^%04>f1RIrf>`49p*)jb8_!wq#M9nfJ z$`qLe1?izQFru_vFTy|AMkKUu9-^c^K^L=4}Eh# zg(~VU_8B@9X>}^nO(gJAdr&tU08prQmk9j@CSDQsFxu zzG>t;JnEaKgtpIDLjAVjGdW#-e@d04r>R+a!nMb|?GZA@P_KG4S4s6a1BY4iSQ?bn z&|!NpBlp&F1uH-&dUAj7ha)%^4uu>eWObXrvo6EcKgQp=FvBIQFW?4e`}@#F{_M{1 zt8leSyU7OKC z_wRJBxfsDd^>ZbBU&bbQDdE5Uj#*@=ni}f1?}wM9bQXCO#I+_1J%@U82g2|1bXKJu z%=f4}I_>JsYsu%}O^%#B`0jS}9`>kRoh74SRw}Ks^CCNBd$-bAa!5Y-6+XV~bf@H{QP z{&VHf;gsO%l!oC^zmpjBaZR}`m5 zbve{j6t}bEt)VOf9eeQEI%X5Hann5q4}0{b*_KKi#&F$$9FHR+VOj0 zPvoq8@Q^2OhjZP};U_!S?@+sO?YRW;+~i!hl6$@q=~k+C@{&b+*;FGirwdJD zO0Mj1-n<+J^{c28RDSrR;`Xb5%~-|0ugF+N)oMnK^9&E_%z7Ke;?0SuZ}{x*D4p{% zuJq@w$WWX&Petue)Oi_-68=+HA-P*KW+>t3GG2g=^NcmPqDmAU@`smx-izy^j|1wz za)+(BHlR8(eClici{hKy1f=nQsmZZ2?c0G|2GpTG^&e`{e>`g0_lk-Z7nlSyq(|nw zQ{3tKewjKf($zUEujtTkiI@~GS-S&vj{yq$tm)87tUl_1z z^P{P&yQm|X6i~NQJ{9%#$S;wx3Ti-b_6TI=!XdoSmNB;m(`=EH;#P z5u!Lpc5WDzOI0k?w@U5q-k)lxONZSJ|Lnp3Zd8#Cqt1~d-IOeY@D!d@PhM*C1AQM* zM==Iz^{XstNGeM*l8*kGl8k2PY+s2okRyALLvK!(Cs%UbOuvb{4M`X`Nse?mH`u@3 z?cA`#x&B2VkVyX zY#k#96vM}TLjmzpbgp@rD!&c(MVD*~7E%}aDNK*_JF=DVRW?s;*DolGWbY+APN&aY zSkPndUa}*As|<^KI^3)ef!%ug9>v|H@*qBI&^USfit449=xujLBBJIo>X)FowQn}G zLT#z27KbUhTD5StQ(x=N+2f&#m@URP>Rc*>$zG)RTwF$7BuBP5*Y|py>$`F8-0rqT zLZ7Wtx5%OWtB?s9?(gw1*LUGSh%iP?kfID?9KH(7?&l=ZvyBtf1frNbVTm6~7fzg)HD z>|w=pR(n^ghY3dQ3z3UD96yL`;Z5z!{)s@&jK!zb2h;>x1jU-du|5@jEm}Hy7dZ0J z>HhS|?;;WTdDv1?s@gDnh}>AFgnvyljGQkNb!2Rgp>$>{ol7vsD2bb6zz4IKC75HB z#LY3_gE_`l%rOpNj)ADvR0T25@5ILm0=9-31m+Kvci>sXIh`J`}u79OQ{p^^ya&Cg|`XyZSTAV|AQTKaacYUL~QZc>G zz@wN$IvK7DagLPE#PuSa4rwy3Jk$jj4=sUf0}I8&!&Vyl$19k3rq7YDP%wne@TqV5 z)ct<-->A*bTmKC^(O5TL3Ck%;RcnUJpZT?t+3&}Al#cm>2VFMKQJLs7#{E$4{&1We zR#wTYx6p&Xr}j;$@nq@gRS=Ogch>ewKOGYNw!>4~E!B^dy!N-`?jz$?e@Lqxa(L8< z)Jukas{sGxG)eA0G)}hf>HcnxTXR& zs>>LE#T-1Ygg&3|uevki4~QOl_o-hh>Sqc(enTE=j~x0Aoi5F9(N|Xc@%6L}`gS_8q3?z{Z|#A@c@Cx= z&N<(*QA-;wd{teD;x#$cm5R@Q;(Yn*0_Tm6ROg&+HO~3FzlJ*tzHhPbpS%yhedISu z4!efo%MOISP~*I=*HPm<`eu#n{A3GVK7iLp4sz{=e>YC@*#~IR8~E}e?%D;9j|o}y z5p-UH53t4W)Ho}*);Mc-;jzPp(}(V?J3ViUbM57@vU3u0;BihuW^siDaD`c%lVB-0 zPs>1d6!kj=eE1M@taRR&u?nC5@Z1z%W* zQSSa=T(|&ru$$Mx-BbrRk%XMtRl9@gAp4fNrFJ*3fxR*+*y;~>4Rj2*?}lMk)pk(@ zq?(5T47E_JP^f>g8s$-Y4eQw@THTA)NVVJBF_Y?^+%YpEci3ebS_1a>cYpjGtpBFZ&bhlSVKXEsmYWTnpg(5p!J!*J$Rt39fHgXXsJ8 zF?1i?eQ>u2^DcE~+t5v@rP5YBm$aSSzNhU(dJ=`Ut>^0ZD~mJo2@@mRNth?%=Fk|KxlcE6dcJS^>FCBv>PYLn@+-VM07|9v!=2i_eg5b>Q86S z#@fOmdt@RxM)s(?C+1-3u=}%=?tLk%KP30a-Rg_0KXhUls=Lpz`UB?p&@u8w=Z5a? zzSQo0sUy3ersa;zUDW2Y_8y{yRBWZ6uU*1A$+O^knz<&yHJo+HDD@9!bi zHG3vH-C6Q%`3iKs;Xh`K$Er3~jP_#)jbAZp-;D^=_HyR^rqVfk6HQpcvv2cv26p&6 zyrw=)Rn(fgMaX-!8<+b%G)p{%u>C-!AH63{T)8$tKL82!=-xvjE^ZOgo{16%tArT zphu&5p~$G1Cn#y zG4u=3)jEngc*5#qxHS?S>J2yc_mB4Ge9```?7VB69NK1Ay{kN!p?cI3hZkcf%3Ixm zXWA8ZkGh}MGkUQ|5x?ZI-?{E@@WP|w%M|<FrQ3B-7*6cj)!Va?bEV zjI}ut*!xPD&AH|Re3e&!FQNByt~(Q7$oEz+zS25}KirZ<1AEo?ct}UJ?}BZVybx9U z7N>JVsuJna+C=}k)TySimRAMZm zq3Gk1^xu%#9Xd9u^@6C@s5p@c^jx8YW=OO)%omE42s1>%cF*&BBUmo+=S7@r-$Mza z*V$JcuO~OpdFy(J@kKNYsOsPM9t!QVDdAD= zln&S zwsN!drp1-cB$nQEy<~V5b#91b)RFxullM3`VB9|JTssG&II4K-rAladn$&teA9*ub z=OO34wDL5>O4VCd|B>0N_xB|jz{mGvN%{rF#>yUD`o$=LNH^BpFGd?&`v8i+uN9Wf z*$J;KDuEh&^X7c($<1-z>PG2k`T3t(9*aWVtZIzF8nYbQ=j`6^P^w;0!sDVgKWTTQ zr^AsAW1rNE5dF)Z=oe=B;Yw9cq-VP$3r`t^wmiFY&95lmsAECj|4LG66h@52|AT~u zwx@XVa-3_ssd2%qRB{FX^b;W=tDbJ52wI;d@xOBdt82aD1GUeA$Vy1fb}eNKILrl1OXt^gJq1-9vFi%8It*| zj?jjCa0>r|=}ANip6#Kkt=+(9EK_CnI~C^Fw~^I@i?0 z!6djTXJurC_79^QFgIj#L_R}Ab{Auoh^Z)>CHAGP{(wyrUsSOk=0M0RG)cuok(Si# zyXhm%PV>4iY0j{aiIec_y`K?ElTJuB@hB1r%jzy8W#@)N7!vEEy0W^r_cMlS%FC=M z?=(_In&0qX8s8ez?j>!&n)a;Z+D5{dHB+ULL&s8`w|t91fkua0zJNmx9f9j3@;U^^ zTX3kTHK_G$;GaRA(@s4pH2aD5#SF`!RqbuEVf3dFTy776xjGr zHzglE^aGkH)8V6 z{-IA`u@qL^&^;XUUf$`_Sl)4hFS1>Z^my{}oNIqi-OoEP1)r2r5$wS?fB52TOd#e( zN4C(hwBQhr`ei@XVs@#ASY^Ujx%;1K9{WL>cz7^RS%?w%EHpM0_hJn}|H3`X;n^g2 z4AcEvx&M6lFOxfpY+3-CKUo7lDL#zSG~GOzv{!h~`U>bQ+{MWLA)DwCLde=M%!eX9 zG`*zEU5e3`CPcVz3eq^EeNXEp2Hkhwiz`ou#dkmsgRWXKNgH@E=+d42!__U(aTjB5 zj~|}&{5AudifgCi-5+M!b5V3IDR`E1y*=z`N5m0KgxkB8ofuu@-tNebD4{+_+qa>W zYor?+)tL_TmIt?>03tV5*4&0ENami%i&zc7IzQIlu}}FT=4&+ReiiPQkqG;1?K^Kg z+n>3E&8s$~V2cJz@uSAb9gZ>Rayv#S;md7EfG4kO#Xjg`&p_SMiw(`)D;`t>t6<7= z@KP^Gn56r{(+B92`R@5*(aK!cV>#jH9 z;`cTpdLDWP1|#n3(_MFBZ03FoF_`mZ=4;{NX}J-uE7%H=s)ydLhdvC~OcwefTs*e* zsgm?dmcCI~gyyb=x~offJ&qjmc)!tImq3gA-Ko0{!&S=kXw8bdvf%m^^HX$JrS4L7 z*ZX+9y^L``z~em6TRL1kZ}f;im!O?g_PWiy*( zQ=AX=HG4uw>ss?eM_067Bs3!4a>QL7wzf_yZZl{B$i)}kkfzYlQNc0MGLBX z@%hMz2id+%D3Hab#>p7uEL5023NKWlR^^tC3jP$&Bkec9xXH?+2ZLTR=Apq%tb&=; zLbleM1v~OyX|eA5Ib6IiqK8E8`mOHzFWvPQ-SwRAdP#S^rn}BSne$$W-qhgz$qcwW ztdE%w7mwpw-E|#YWvp*ouDfp5L+{pI|D}g+g^R~QuiNoB-hr!_#c@pM=zRvRe1h&e zS$F+VcNOX`>SOsG^K{oD-PH!yy*M4xYTfTnxOk3e^y9AedMN$<8m>pb$lJ9}$-`<~!6sx5RVEqH2=JW5)DWhpsrADA9_98CmR3)>nxlpZ`g zr;7+Yc6Q3AF>jFcND7jsmOb)#TqD?LQ99*uI7jh&bGrCK{=mWJurShW#l2e7zNHK9 z=t#r9u#x6L_$qm~?7#;`nww~(xs|-sR}$P82-e4dC}{apeS=A3z_G&wG;TZ-H*Rcc z9uYcJ*E%G0Xho3k3E;86OHtRc%?H|#Q99Rku_UhJI}qzA@qDzH1Q&0%^L5v1xOipj z)Lpmhu6uMBS%Pzq>aHhr*R#5d27109rH}EV*{QWBFdqhZ>MaDb)0;RktFjUjiYpMj zJ_cAex0aAsteZWJRWY{r6&-|Ob`%2Z8vk!>OuOrNU4|xA9`#kWQ-!${UTXHMZ`Is} z2M&9U+@6o>_*Rlvw`Okf*>`ppD$WfyId4l)350K^Y?Xx_3VZO=-ZMbn)0D6etJ=0e z*p=c@-+~qJ+mkK0sr5ryeUa6rz56_QZ#Y9A!GP*3R0j4vokL+Vyf*E?yriuYseOjb zD{rDme0U=4S#z@kNyS7U!fG&HG`h?e{u?C@xnLG%Z>??^MrC`BbK}XZG_hqy#kP0f z-VfWmZah(`deP7RP&fAmnQ$8%XI z>zLTat~MyVsf4G(7HkW|L!AqI+AvvevbgJU(WvRcAHsSHR@zoP9@kM|%07d45c)H= zibpYumilZ8eujS?wL^cI+A$*9tI*Rq{T9F>`EccZ_#JR@WBe8_Zj8s_dW&V3)t9^% zuTR743iioeTk~lD-dVNs3drW)Bt3OYJcl@65 znhXN*%EAylvaKA#YKvMjUhNLK(~g8bIHP<25bT!>>2#0xgde1Kw-PVk@tL$oZ5c1C z+X<9I|0Gh5YzOQB9HSuS4xjg9b!HlE`a42fzDIEA11F8`&t;S&a;!gg&P)q+J8JNo zhxAl5?Kxd|pUF99O-35Nb*#zw5k6X7UQGSNv^kBJfb0VzV5vR2>Vsj3rF*{}5umSh zT;#)>tZN;l5y;!S;zfDWSlp}NwHbws5WbViD`C8Ov!7J40=I^$qO2aoYlxx4X)DiF zu;QZR+M6eMa+i;Dwl^X)ET{Fj$H5_Wy3_h~W2jiM+QRx*=SGhQ?|ih5qZc2BpHq^y z_p{EK<5^JuX!f2#)PSKwCpvFA6;hZptsJLR{e3gZcB~ndg(UZFfZIEH56!1?Vbzql z94{ZQ_Q34NLZ904o(0zGkmL4mooimfElSmP3=DTVE`&z^%+R4R!5`u7czbDg9}Rsv z493FU{pV0h+G&0OblBjC4u?LyseAvhP|rw2q;AXHp4YRY1`#RYwHcIF#lFLXm%gyo z#tdmcnD>oy?It`31zk$GC)dGC?cp8knK zXJp*1(3_o9lN7w!$;wt;%c^zU(iGKuwlp>G>Z`U=J>bhy=fQOoYa}yuSDWs787^WS z(p$RUStz3w><)TZ;rHGN7ftyc(o4GE2z=+E^p-Vu)xpI(zqN326bEcUiP94@-h?DQeqzwaMXJkKX_tN@<;itD_a~3}qwz2JZ~v zWtG`VxF|(^t>!l8hLJOrW5JW08%k_5lt^$C94RwWgATkGh$&{5LkWFm3%=Q(ft%9R z*U-gaBEsG!oPl46+>|0aJv%zeu)+%J6V~zRBaGHL(qA9oFA>p8BVV%oxZvV15e@3X z4e~QLnxA6R{L~;n4xYS?BWrS%?}Ou=8%t8)Iu<+uE=NsnYH&!6r_+T^=&n?j+*kXv zkg4<7UHW#1b0czxak(a!vPUoVd3MxvmK|eveE9z&gG+V>YPZmv;dr4FZ-diYbg5en zJvCF*#V@K+*?xtk=r?e_sZ{kV>dUN=DC!}+;SoGn7SMxq3BL-XlcUrh9+j))9a=ivpZ9lXh@SV=trO3Xq*W`2MRtUC?2B||zOe~y z6nzZdcWl7x$%W}(I~!g5ixOn5kq(N(ZWpME|QtDXw`-89PF8awW_ZzOeXiEA9 zP6vh=JTS%PB~*xqqlFlDoT|U7!(P(~PPJ5su}KA=bL8xy!rX=wvBIQ<7riiZ{U}f+ z?@KDo9%tw`2*U>G2U={h~MY5uC+{>+}5 z*c2JB$@;#;z>Lq!4q@(_POr=Q!VbJ>JAZc|>_f4?x(kJakG)^Zc-8ecbjLpaQthj| z$m_B{)6M(o2A%3+0lR&9TUOk!RBiEB?egVyubhP0JFFN#<;Ixin1RihEoi`wLXNAK*H|7BOhai5DIwOjqD-JJ!9@ zD?LpzUawZa^xz$5wadY#pcLvvo|)9`@t6gJ0);>0CDgUh3bS>vz#hWAx5E`(53C;Aq7nBLn4w2kFHx zT2(=9dL{Z}xacq8cEFz=8_RQ$oL0OPKyR*J0?)$mlrO$T>3Zzndcs#l{9)cUwdWZR zo=lZW-Yoa?vx?JxW6FJO;(g7cOiLBLmq{i-`VU@XaJ-yOk2&R*K~?|2o% z(rxJZG58PfNJT}kvA4=KAn=6dOKJO}@4PrF9q#zbH9$WlK0V)}PDFF? z8Qccx(Rl}K;EQx9k+%2yXeB;+-(TR4#z6UG93{)%p&ZrjIkw#uiL|}hM+=)?&9pb@ z@ezb~t6cb1RX2?z^qov+U(!pztnwZ8*taa{#m}m?$arf)Mr8D2f7=eNnESHgR5Rd? z>fu*a#(I<*Bh6!NFGMwI=Q^5FTBVA&XH;KIuR}}k_eR=r>0PC3FIz^sQ9Uue3H6TA zU932|v^4i;@*-JwR(x^TnL4cL=up@_$EXP3jr7R$cHal|s;xHS;3-vM*LdA^n(j)6>l1cI23-GSu1Rox%3SQnQS>4@{VYLN z``Czx`7nOty(Kt?Mno(k@g{-Ye{D=eOQA6lPa+erb8avus@t9Gw>j72HSzE${`BYP z6Whtr!Chzo#&y4MHquCwE?3Um>^0+Dyc6fV^<4O3?E8eqJ{cn@R!wOHyc#1Qdo?1y z*HX7)NPPjR!92J~-HNdgZcK5C_$YX#J_`N}RT-n;p4cczFURpwXXEgiP8tSN_=5(G zP@newlKNb&S6>Tv+$ci4;$Sy)Dk-=Z-TctDkNc|QZkY==Uc+Xc)*znZ8H$@yG3ro1 zAB~6ldHoJjr2)gy_IcmPI0*Kj#H^tV#b}lutj5Hr=T!hv>78&7N>3c0Dmyp&j^X}e zZEyG87k49dO0g;BfYh;jD2YRH-*-`g?J1B`Y5*1N0uDQ zMwyMi?*@%BT&;&!1g!={w&qbyS$hn-rqLSbQ}L=%D;7j)X_S5pS3a<6Yl(TDYELXb z(eya}Tj}|pr-mo(xxN}y)abDK6SytpH&x5;A+!AUjf@i=LZa+%ADE>#vEKL5vN_iF zw?6u1L$p>r2{$vyp!&q>G>Z+TlZx_X8sD=D@>bt+(%3Z3xOa$^2;cg#))(YMvgZG6 z1S~|Y=3`O-E#7XBHo&sc1Kg{z;r zHo^5db3F&wx6IY0yJ%G8el#j_7mbQvFpfq=?nk5IznCA5iU*jBMnxVb^@?xInVyJ%G8E*cfTW_Qr2_#ft?QITFU zvrB96gFws&rH+(uyIrm5ls33*9R;>;yVLoXl#T*~r13BIjsiRX(I4MD%-QMuE#4Ij zy^wZQ+z-y!QzXVp`Y9(KBk}%Ca5{Tltm?vwbH_a>ZFHviO^Iy7FNQWa(h52pvM;pX z)`q2?=q>_(rp3*6TGaEOXgHLH3nSR@!JChY5}sqj>-Pmp*o{B@u)8?ySjGD)y|bqX z=t<4Fp%_mVmmg(MVBg~#9!l)^z*9|18x}1FCSV~Ft5rF;-eXg!Cb)Q&!(%gTF<{kD z*kTwDAN)cZZ#%kVb-&WNmi=(mqprzV#n?9$bvPFI(meEsj9kt;d+1LaEyE1lx&CnI zIrigyDR@3``uRRoW~j1*)bKL;HhfH?Kea>e*YkD!zGjTn9w6#)KeiasaSuIEcfgnZ z(V3gzi2ac25Is+`w;=EnE8^xOnEsv(jrXl-{BP47j1W}_AGK$|53P^`WFPBr&NY(| zimeRVUuZ&<{?6ZJ%)lphE&TWcMf?%$Q~J^FB>2+r-u#q0>ZPI`Ce~w65ow*yuiEi* z;Wg~f67{TMKeI;l#8Axv7Ip|82>T;G28I2Shy58Jh)gQPdN_IE<@2b72XXI!mjVge zxhJdu7T$!<%pI`hJXw_@J1966VHAVC8(-4!g;@MKBbJIc;Ku97bn78FLF~r|+9EkW z#|PaB=a-tZ5Pyt;-GidOl3wY@U$ClUzl50Or7esKh|8*izo(SB1Ha>w?c3yo-yk^) z@k=`x*@a-O+Q=$?pSQj#6?vm-LBBmHr`MHT3f>Z4=3M_JV!-Am)r%}dF^M8e4{aaT zeas%g%Q`tN^RQrY zz)ycu0vhD3`qX2u%b4X{|Gx8#RV3_FhtZ#>s(LM;zTmUZ8Sh-5iZvU|lkHlysoI5| z6P5=1LHoNt{P-!ji`JVcFADvPY(8RJh&(O!z)^=c$Fb2usiahS@{T&!)?zfL-$_#% zz&HIr?7a(kRMoloJz)k25Z%F|qP7wxYBbnJqLnzP8JNHxnJ89lsanMorBH3*Kq7kN zk~oQEx*5=;ZSBS0Z??ADQ;Sfw&JaujRIb(Hr5d~v#|w%AK~28jyWTx}CIKS;PoMwu zeb4jx$mHGYetFkg?|N@5>ip96do*RFDfo1h3d0OY6bVZn7ARn-NbO^5SwMsemI?}D zus_&ZcB`R*+{Pj5S;eRrcNv1R;tEKxSgH`j7GaA)bcUeFd@n1Og`OjHk=eQi_L$8a z)l-ydQF$_b|6#E^)4vk^OO?~afR=+w0pD9ddY*@wZ)-TGY@_SWNM;P@fWaJ>IbKrPh%(y!|p_Y zN5GmTwS`y=wS@NW4hMHyD+Uv+cBY2=xR0$}HbIfq)E?oqd|!9K9ejr5YJ_pG$HGQ4 zGn)9;NV5s9C4u2uie5Lf-a-9nu3J*o-gk{Num(xuya=E188MG3GOfDN_(VrjzIM*<&%pUuNmy{9!B<)Si1N3a{=I_ojPY{AOy(~d>OA3Wk_k%Z zvq;CWYRBUdDO$5VO2_PwvxOx#O?I_g$R?|>NX&Sh{Z-COb`4(PFkFh_E{<$zD|?SH zhpw|;Zn3jsJMzTWUy1A+YxZt--m@OSX+*4pKJ1G)Z$mHOwyV|lW9_}HILTl~{B?+9 z7mC6d+lRQsTKZ%@bFkIDderxb<9_6@X_j^XIB?{SvhCc(CUea{Yj zm}Ml@oq5DoBO}NLMcD#vF~}&X4nAuoI#?c25}>+MUD^_LHdL3=tS75WH%6STk1n;T4-+O7#0cDE(A@L0MWc%{EmP|<%S@DZGl$XAHBgxq1M;9V%>)Q3Sofyv(MiUuQ|Op#6pzk|$}L#t5zQns zkK6R#DBjwj86$a{cVY)Kp*cK6Wxuc6EP#?|@EI#1V(Um^M9}2l5G~ysb)JisZi<%D zv{bYdyXxNfP%zwD$yNSKdH(h-ouL8IWAF?T{Y;N(Sx0A_(&S{vBM+#7ozxVA8ko4< z7BZ+&DH6;BQA1cDy;0*RLQF|eo8ZT<4SwL7q7Qx~KP`R;bN&!-m(4rqW)brj*^^h(b5;>szY(d;w5RQ z9D*wg&ZuVI!-+tosx%cYP2zSXWKF=`+JyEhi0+kZtc%-WFj_0ukvPT2!~q3k!H%(D z2d+o|N9vg&?3r2VYx>!t7ES1Hck0ErI3#|X9Xzv6w4b;fPI&v#V9o;`IF9XZ8WPcuW~G2m-gT`sqSha7jX7~j|L&P ztd$R$6jk`cWZ$pjau!6puPxM*O70Bc2#z}*r@_;e$=3s+=3_VwSR%Gn#RP1x3jTc_ zf^S1)bNF<2P-SfYfV%(4R`Dc3nJQeeRcrG1u4z!Ong)DAP3c==`}5?cy8hr)N~ZqW zOGQ`7^iTHwBEy%``Um%}e{kgh?y9D<9Qa!gTE8JDAfGFPkD5D%m@hUO5(ELKEk~D{ zX@~tcBXtmQOtHPK5K~5Vqq#1WUbur1~+-=$!++R1rv_+hRG~OU2eJRq`tsHcx zvtH1)5!ZX5Wpof5%}oQ)!p)yK44ssVRVU?z&U48FVT1N5WB&5N$6WkOT8Q+nGZ;iAPa{>U8A&vtI)Q!H?(;f;gWkW={2NNgv*jIm=< z^o!WqafN8gACxISe$o3V8o_dy_;EI94?*1o^<;wDCg50bX8fXkX4iSB)0S2n*1dO! zIG8{{jv_S%OMfLp#5BFNN@fIq9Ogs5lpOF4AVzOU zrvqtuK_HF&4Um@dN1(U(7x4X=UoB+_7YvOp1X9+~(Lfp-1JeH938Xi!9|65?O8Fg- z*87kLwE}4lxgn|<>1$rtejvTA^#Eykl6s#Rp%S1j1C0UNZy+(X{LnyW1ASzmaX_MX z=T~)}th(J-M>;p7Yd6lZ3&ffASn-4))@;r{-8~eX2a5+Z`*EepqQbl!A{XruVW%Ob zy{0ABWz_Rl9$cMGm54nI2R+*j-orz|$M z)+<>{!y1#dm8?S!6=W9u6D@w&IOSV$!y201VglWeu(N%3DjSgI&`C8< z><%}dK>2})bmrci&PaW|`l~8~x&6I{Ds}p20(F^by#Yw4|386rGGjpR6FbZ&7CE~O zBn#wSlS4$1IrgUId)gYr)i1kWPyA2fJzO+&x>_4bBycC$eB-y*p3`SBo8ik@@wU5| zd#i@UKF+fm-=PHPbCE0RZo(1Nus=y?tx-%!+;$;VV|#hi?2M#Bw$_IIEQEk>9FWeG zh&^;+T?+I&Ge3*GbUy)_X>vT^g$e6MOA)2#*(UY^AT2Knq~(cysaQ?BT6AXFl_xQ? zj5nyu`Yxaj>gUh6$>vX`{<%m0{8az!(?32&DBduO-<>qTu={>S4Vgj1%W^~4GelU8 zj}qL_^{l{6XXhl5IsI0j@2mN)f7~FN)g*W#G^ETgD%8H(qq7ryqM9l3G{KXMwbo@j%y`QbgfR^UAm8oeT6}cFklrN>K+aa?L+tZi|B8g=X2(Ni;do?RC#9M{JVg*(3m;{AVouei=cOPfqo^{TeaNHENcXMbo|0m-y$&YBxq%b9iMyJ3ev$sj$ zmkruf0_k-^s5Gd32;K&M*-nJ?byB_9BRu(0_*c5dUSVVZ)xPbeaB%&6w6*f>pq)Q2 zFm`Kth_!OK%~Kt5E`3`~5=>3=L&LVj?ZWufk+H6kONOK$wjCP{`Fu=2&3&%gdB&R; zy^vo7=7tQ(Tc81VndSj>Cxh`rS=5VZ;$%OajYnA6<14bu+*%T`%#yJ zA8+W_c}It06~5Xp^hZx{l}Npw?}snt9m@tByUvR-_*qT`dZxEg$$3$FA`8C9Y%Uk?jRgIKTZa6@~eHn$MCdcbg&jZ;(Fc`$0r0 z!X6L;Ls5Q_2f2fqxdAI-XZ9WAavZ5~qz0O*tM+2&zIJkz-k0Pz`1Ya;Y@KW5ICc$I z@Gb6GUs8gOPg z&DE>@?@}1AL%D;!!G-Xc)qDN)bqjr%ru8g`_$1~#cPajFiYorM6xDD6s0KYs+e+Fd zjp26Nv*fD{ixE-#@|H}k=CU(5)HYZ?o8GD$?Oa@h-r#3rJFpl1^4THLCgByl>YmWH zj?6@ur6D4+O4-<;C~wSAlxWJkL(L$g8}qErk4Fl*wktYKwlku=JXswN3{O9-RFfO+ zC0|Y5On+c=G#=p5nDiYLeCtknH-MHzl76q_vInpbNd&YM_JO zU2=Csapm8+dTz65VeMjTbkSF|IO_WK0Co z!LWg}jCg8kauVRl)5NWu|3PdnQVBL7IgLAzX<+@HeB?ySE!Ztk#Mj5M({@ZXzIQ zU`FiB$Zq+|!=Cv%f;D>>YCbb8q)WJzPDYz;UF`+Yimw;eGVaORa&`fiF~+N&g}uH; zqFd?4;fH^^>=~U;@zaMJlOu8Hd=dQWCpsz76Uv;S)&my>qD=PO)V=|+4xIk@kt}o7 z9T=@irOWw|kW+C@dkODA+Ro&W;c>+SYKPIpeD2D3#shak&_{4W`*QkB+(OiqRO26L zbZ%NUq{)zem*hKvJF>|;oWa%ulR4qPk}uum5t(RB(hL`mND8NCFu@};VWG$5fV6po zA)|7_yEaJ~@}PO%W)qVF*uxBF^gr2-u}SW@X~X8 z_Dn8A^c0iv>z6D#M4kEK{J?D%Z*B+?GkHw7`MRa&=BgOx&W{!QHId7C3E3Wq)-n2=z|M{t_ebMMHWUJl8 zcm4h`wZrT82dyUY>tZ`Cou`?<8Pq{-J9C%a;Ox?kg||vwFzgJTm?*da32aF02!0Pr zCJM@emjtX8A|;rF+iC{WH^JrWh2u-F10h1r=J<*z0NOpcbNdte=BfD7X#~VqTqVEX zn`(Y%@Eb}53gb(s1EHi|Hz>YT0{cfFu%B@}5NG?~kMlig3$o;O;rI$$Dlm#jl{~Ms zcY7ir8=dcjb+H}z3r||%HSwik(!^I(N=m5Wv4YLD$O7h!2^j+U;j>x!sB*1SIvEG8= z8&=I`Hn=nIkgYIOKR)2AJB}q*Y?hS(W}^!)J$pht@UuwI+Gy~lh5v{+$@JF_y&3;o z9A&%0gc(BSi5$Ujl8u+_mT~k%3Ao<_Daj`UoI-NkDI|lV2lXBg5?-^09SfvHVkwZ4 zh9XMPu#13P4GAEUu3=1c;Gg23x{qL(_F?W!4nR3bVyo zqlTG<pQ^XI-&5_ThjfldP4KV0K+Rz>kL5Ab&f)y;9bdxO)2Pn%&mb zCgW~v_+XM+O>#)JO=hpJztH7gcrGx>OU|U1bNFB>m!Nj*%5@aBouOV$A)4uYgs3-J} zDxvwC&1oURihQ#TT?@3$gtMztG>$=U3=028%a*0PEkOniJdiaCKzp|qq2=VR!e|` zncJ}WFtAMLG8@)0nk;!hMLE=Eeb>;spU4DN=1AE&gQiDn+9tFHiWr==9<6j$OEn$V zRq&PvWm%P#@`~VDh0a! zwiqdD!4elAR9{h4cWllLP_B7I5L~<4EnJ(J>HlfH3Ki|UOo_a9>O2AeTUwN6L+@{x z~8!K4!!d9X=$4Ab-+{{p^A{QlX*P65)`Szhe@K+4P#?{C7vQf#`z%l$3w zX^Qez3{ySMU{U2@pHKXWpZFr=s0H=t-eaI^a#U( zAkyF_R%mX;?l@XaR~llK1P0^%o5a4pnMxE#wM?F=GY`7vSu38WrJ;t8sgjRPd{o81 z5Q?9TN%ZT&q4!tCPi=ZDY*oD~9{gq)YuWoqB}~Pi@i&*Lh@tFqDb2xC-bUe7)=P1i z>NGFNNg3MvkzDiT!BrlP#9T$36xdju3cvDVLeHlIqpTGZ0n6XQJ1%bo-iVT(^CVKE zfH#Ge=B9fWvlU8I?K^+(5-?!tpJXsejj8*`{K4MUT7C^lfZ@K?D`Lcw{B^ftIi5;# zSVE^Af(*+|!wL1)U*&iLsdy6ZGdV@UA4+DpOQ#*;wbtA;6tyQOd(QTsKFn8It(9Gs z^&dleOr)EY=Y3!`ohLve*2!`sMVI7%TYhR7zTTd&n(k-AK(<$RBHR|CJz*K^ZY|sH zR5KeNvJPQrGi%tEcwcw{CCfJ#o4G z!$S>MZW0jlZDuDT%PnS^5s`l?|hV5F( zJ+L#c?)}bsl9;sLkW7>y1&FRQfweQIB*s4~dGUyZRL#H7rKS7g+yB8VbIUcCQCuKA zz`&M%0AjBY_d>8~BC(I){5SJqd@+d!JXxlTLv{_O*%1eV8a1tm^Hz1u`;pXZ7+jp) zkYiuU0ux4(tE&+4@5x+y>s}?_bg_HvN#Przj16geFj{<-wQMzB|3u20A8{3ljm}pZ z6_1QQ*kNsb;xa)tCK1fYsgZN|-NC0SlU^gDnQXxVO*MPKCsdLCVK!5ynV*oQ^Lioe zn%OEUn`?{DYK|6<{okz}N+_3Io!blp!$6ycm%l}O93^Woj7$%AJ`Q$U32_MSd=LtL zu&62|eud1b1R<$ZlRU9YNo^3i*tgpkNQ+AO~ z=@en3C?z89gq8Cp7VXN%IsxcGQ^y!D_B=1P3h0+6_M1RT`YH#QLeBy{U`j58Gp8cMlRW4& zk6U*RkoK(-Ncogk11aV8UqG6-(SyDXq~mfAkmmgbP_60t175m^J?JqY&9MPUb36^S z(&P|+p|<&aAZ>F5Nb8*kG{yAer(W#;0BLziAT4hLkaAR?_F`Z0V&4H0o3&gw(4w3$ zQlCFT9nMayPBQhj>h|W4<<4L`czZih^D(H>eROd8#MojKGPxqE{i+SK+lvzs&)=}m zS{H1`Epbmveb868dKFXdOGClmZf-Cx!5Bwsw~;Vq$(dTrVzQm@nq}br^)U5g>KjH%k(*JGW71P8J2_h3Vn^&L>8|75!y7L8ztVX z?jSHy^R98=jZoNXoJ#KyEH!_QzeWN*0wBjh^Dc2(;v9bB>SUiJ|^W`IKoeo{FJM8j{ zoNWZKvrE7c5+AMUkmsPsiG!|^^0%s+URk`L{5g(bXJ;-66tYTE)>nk-GZ?QISKv0| z3Kbv2bs}6CPjU!bCHS)V>eIWe>HpkqT?2pUYpLDVm?WM-cx|O65`2E)N^$0dGB#-Y zXz_#60FGGHuJ-R2l{PFG zO&6>tF`W)uC3KQs`fiml99D_(rIZ;k9YZfzh(jH?(3w`Cm19;7CkMg&ceSIQWL0<=d*CYP@Xg(4jDE#bO}dt-XQ!)q&o9? z#5OS@fVb%Y@1$50c%XX%?g{nTh=o`fNmLfus8-|)(O^A3eb>yU=jtLeD@N9ZXI4xv#IUkrdQsgte#`2{ z@>^LqhTo}mr&^EO9jP4y;)x^~!%k;B@lycY@>Cbat9|k6j!rQ@3{zwwKl#?@9hxOSS7-x^N6Sd&3!Lv94#o(8f@d?hno0{NoM@UNdkc zjhg-Rvqk*zKNt3|5Br~WMihtrsjz=b*xwTNZwmYW*|0{6rWu2)O82F@hB5+t6aZC~ z?qEdtIKzCr!3fcU<3p*Qp`p@kq0~o12@j<{9-7)eG#q~{$uNfFzxpYE;+NyW?GN<= zRaY{S@5$s`#P|;|vvZW0os-S%j5V_}!OYH=%Sr}Q$TcU5`e9)-fiOaxR^>-{DvYI82*&&FsB$Lm3W-tQd=~bt zA5}S*y)Tf;Y5DrOt zm47{UT23C!IC0*bKE%t{V>Y11b z4616reqcX^RWY#5Re7OQH-#B_*-aF-M+(~`g_$4{*lzT0M6A5gIP&isJ0j3TRW*)^Bs zQ&#bF*>7j^jeD*oI3VZy%6s^!Y3AqmA}QnVpJ(acN2c>v5}OL~_7t{0ZkcI)%!4G> zwf~^LuBj3>XAcz_x=PZ%L5O};Szqaqk26hM0FE|*buEpaw zx|Tv zk%n=CF%lHNO?+AMoMOVMgpqJtMyQS(fM$~>7E%x`_J&j|3tQbUQ4EcmOG~@A z^E2;tX=-=7{A`w=&YW=}g*8X(bZ3PWbD*9iA#~bItNUF6*OJWC*$sI{ARX`iyNm_R z?0%X^p0L@!iE(*pC;?3Myd41ZI);*Ye=G6WZO*iAAoZNLN$EBZu$w_yGNPDpco%%W zPwX`6r4}<~ z>b2&*Y^r6j%s5C>iF{XnXxR-i)&aVzRqq2Z&7AkTl(Plo*iXtE_JS>7+#K4tgw(X{ zX?_Gd=TNX9(6tgUd%KJg2|yn(o#kd-yNj$8JBRGorX(8w;vC7o3DrhM_dsCBK(Abq@ci{voz`y|Vge0o?e%g*NNRB zZ59M$Jy zIc8r8o9D{tagm#(8_Z@~p#X5So5f-BnB0fL zf-)lB;ktaQY?}L%RaVKwc787VEkEuNRH8?Z_4O^}$hKksMzYP{$*WmZ|4OFa^IjfK zLGn#sUl#B+3AkY+<(Z>Qf=EN`^MG??2*3U^kyqYBF|SI`>CV@s_iKos!H~|7Nt(sX z&3T>=W@%Oj@CIUM$+gQQbd&9vsG zE+!rBEJ-)FMd0HMoC#VZLBo3mt(BmY_!odF|8k4)o{r-t7Vv!)sM}nP*LcuoFZN$R zpE2oP1IjayTq{Ny=t>Wo52WdYP#J7u<3Pt4=)Zw9?=QVD5wU2xXMqAH-RnT_n6|v* zg^2>Yh6P}&Ds&1oskVMBkhXrM7q$jSOWxqcZUfS`q`g>CwA8SpfV6!@K-v~@=&E67 z18LvJdr%li$3R4wnnOgJ8rBZ9&-A16a#5_9#%pLI4o}=)JWC!#YIyS=T9JEiZ>pzr zqEEqvy>fN4EvhYD)lNs$d1EI7&;8C2MbQK$3umfFl*`E=jv?xf@mM4mIR!AP0z*50 zBC$9PDBl`dRZnTA5YbnK@#S#^$y#hXM^>Rk<21;e;}9q*f1C#8WHz+(mA;@F3mY7X z407-zQjLi3mD-{5B~C^Pa3atntkprQnK57N=6t`=w6Ln%<5tLs-7`E$@lW2ggnqky zF)o%xvp0dnCIs8Vv=JF^lc+cwIZl7gGRA2pi#rOZdZQ3>Hii>7<+(%D%P&QGqBaV# zc$IL)p3cZmq~0HzImmEK53QCVf|jY=@@^DTKU08A1RP_{mH2Z~qT++1i9gF25-uZ( ziK4v9dbtefAjcnySDDcq>`Y`R17;{oVh9IEA`Y5WR|wAtKU{VBuBylpO*mC=!~b3^ z>5t^(6KjS+s_!&1 zjZ}0HADOI$3#v08GQB0DU#4;LS(g2bCHLL8m-|8;#toUw{<=buVU25J&%#3Ji{LWq zv4XW?m#yO~UfPA#UX3s;ehi*i?RZ{<7tP&5WQ4jwQzA&wCqn#<9_G-Yi6P_b4xOFB z+s0uOVJ9xH&(vpzIV_q?@6yc2Wr1XrKys8%O!}}Dc2!?wYU)Lg$@D~=fj9oyWXzTu z@>Ebtsyy`$+ba^IAITsiT$PwSIO5+V2#aM10q%l9`9nsV0F*=yqSqwBwYzb`*;{v{ zZj8wzdLxvo`XbpP%>*J14#&rJe$TYPk?E0X(CIPLa-@!X#w40m^DS@T_Q&B(M|IT< z%C4G8x@ue*NBUG@c4J*EYimF@)kWSmHPE>zKW@2FjD*>7GdJvpwX!2;Z`N0Stz{H# z*Q<3HNIA+=fRq>fB_QPhUjd|C;W&`m1biPz9bXM*)|I22wJ{Kf-0J>l29TC4&$(+U z%|Kf6uYi67o(Ft?0n$=l1NxB(6OI3*%M5<(H=C`iw%2F9OyKY z?&mCjhB5_e>y-z0`wd0;!Z%UXD{)>YYF;X%z!Dm9(~d zvGRV6#(s`tP6R{&Um1{&_&Gp2LX|-08qWRKfplDc0i^7Ytl&%(dZ(IW2C@&UQ#omh za!wl2QRLccJGbfKcUzKa<4X^}+hpTTk6}NqEVLSBD;DG@^`Vc-tSDoX>$J@{<1qUu zP74zco3kMC6R9UX$4lKSoE^4~C*qdi1#c9)>oBvsa=v=Is~;sULm+5?LF>L4|Y^yHVHF+KkLFRYzXp9;IHCW@LLoxpnN~L|fcWoJl>XjwMBKI@M0?JQg?EWw;QTU+%;tkF&*Ex$G<- z7!zz?av3I6SklE!-nfa!%k)?|Wjeb}Irwt8eGF$C;vIQQ+!xHBHx#X5lzxKw^Y>_x zv7X^|7sisiw1C4>myrG4bBiTPEWv$CTJ4&))kV}%x(V~OZEuXeyNM58g19|O1N`e7 zx?~I&{KT%=Vv^a3F=MTjP0|%u$J=(gZnDFp8yh5_^>E{tMPz|FulOClGG9jLXo+zX z?iBcRGmy@vZNHG=lj7*RJBrrIeX$anhI{V?oFjF0_fTj4fwGL^S=0hHhYs2pB-x6Fc$e{J(Yx<4OQ_UnP%{K z+xTMVpJuc<@Xk1_8anS|=B&rt3=ti&9_Lx%_9%LaGeqPtcP0-0GUmbuSqaAVnR-TJ zP-G2MS&xUSMB-k{%Nj`pjj4Ts*bXb!Vfl9j*IO&Dpf-rNnpPd}p4QN|9pShs2Or}l zbckmywuX3nowg)9-(coZv6CS;+K|0SIW)@TXr(I0$80?F^Zq*%s{w_+hno|76S~(QV zZq<1opNNB9Z*_S5uW9XRWkBv9NrVsQc23Zyx<0BOB)Q_#F4Nh2G--`4=7Em#4hE%*V@f0*)~0SfXjU|yBgbnklU zJ_5Slq>~rLwT`=i;1f{tpS-YX?7mvBysoRQ61qvl?g!F-{2565A=-f2k9UAHhiHu} zbR>s^)^R+L)_W3=#!ds$lD`F{y}ZMVeF{kX@iLJ1_iZ2@ae4g)j}@?TFZ(h)4mq#K z*)@MUn^UCPCUrdqV(iGd4@E7!;SNyMOow==}r!~d16_2-1WD_f)>1^FNddO^W zY}X?ubiM>iq1Mswu3036O0Qk>BtxmNYktJYA9UAzw8-q5f2UU7sEZ^Ti*xA}-8QY6 zhuk-RNV&3a{)oT1`{u;#zS)>de^^WBkuqoBJUNF3>8u*PtV#MW8|E~nK0eKc`IvOY z-7w!ty%UJNYSkShG{|kj&k@z7S!|o;g6ZFz*(Dz}BOZJz_c(INji(m%-X5PcG{;j) zbNoRX%Jz7={5|OQXkz+okERhIf#{df&Bs$Sx4mRNzFu}mIAZ@5{PQ@$%;mAn2H81F zx`f?^Nx!WFkJ;@8~t7*Jntiob0+Zo@2r28(hxDncH54Dbn}=`B^`vdbjl}mXOR{ zLDh-BNCi><9#K-8i6hxY`KIfbEMloPfyau*PpG|IS6bep-YZS#k_Sx|o~>&x5g4M4 zOH80&(q1UDk=Db5XEr@iS2z<71OsRKpGf;>mOe2vKDeiqH(9h%i!rB6 zvN+q;8)pp;WN|i|(Ug;}3i0*|oI5F#y1m(T+iyMou^`uH4~<+m`$KzQ%;5D8DaOSY z*{a9z>B9h&tNko&C1%FPhd}$YL$%X0*xaW+scXWa>$>Gs_Ps%Z$)6KU9s(w_DGcI) zI5H;UY6NB(x3lyM3hitB|?Z{RAA^b4$GW_ zRj5rp(Stx=;J_c|23qk*n7P& z5zlDeTRrHzK-#{0fwX-;mssi!_8r=V{$`pVhbuvO2c5D1@C0RFUkK zg&qUM&`3fURm#oNwwhw}g=@Mse2_JKQX&6}_*cfiO8!md-wgiEJ;*+3xF6BPDbfhx zoG8<*%PgUY<)8^$9VC0SFRbSNrW;}vj>kF0vpf*!k&{e6V1m41m>}!j zbA8fijpw3x(M3MhVLI(op?nIW@bZZ7=1c05sVlyVpFZQi3~3tXDv zjw7{Y%AA>Zj5+d+EJUuDwy+|z3!<3z>KYsiq-*eeAiZZ@1ElNsJ`WOeVcjj{g%Zs> z0Z8*!18Lp`K)MV3(SzE7bO+f4q&vtzB-ZR8!}-AOkhujXNcgUgMPAJaQ6PGSVk9)BlY+rB&9_i+t66Gqgx{}_^yn|T?aP`2W zT4aFrz~-6pOS>atj`%vRQA33!Tuq@lbep`oxl8o^qCWFy1l&G(fAJ}-0G8MfO0+!E zN%Up{d7pF1RJ>Wtsgy61M4s%dl(#uaf--{!b{G@LU+{wA^Ttl6GPc@0ClYnu)*-Z)Zom%ZEz^Ib})*Te$+s5ne~dbd^Dw$_lTTqxo`l=_e5(ZK8jt#0~7P%1rClh zB%5(=UF~o6x1~A;Vd=n&7#MxnGMbUZMT?`s%?r+r1l#A0jW}znOV_xAnx%4u^TA~f zPE94FyJcp4syn*rd6C3~LbB-aW~ky`qdUQx^KTtp=dyoPb2(jueP61>FTL?^wEa^$ zLOtJ|%esLAjkV^7f<4x<4_Kf*PlSSRTFd?ghu)awdQ zT;wirP4XFHbfFkgjbZcK2YcAT(1k)%9-$(MGRc2UOJ?Jg+YfB`BPb4SdXv}*tajS> zZsGQ0Zug_{7bp%)Og3S3X|*7mS)XEGR$DwWSI(e*U%aO!mdX}wBneVXjwIm%^;OeL zk}$)SB$!O<%Bd}!l}ks zSDKP7D!6^g>vl~`RQdXuGZ7B>y3!4DCXTqR57%?SD$YY;sUXJoqzAdjVc@nbtFvFZ z!B2!5;b8cUj8aB!0RDhUz1w)aH}p?>Lw_cVRX0=Fh;=iq0MgCW72=`hWu{1IoT7~N zA5P8RU9BoI`fBc@_Pe%Pu`R*8;;9?r z&$v^+i`SRjso!UGZw_nf(^Ut|JL1o1{9IF%I2N9P5{Y@D-gcgnr=PPTRdCF$&I;>N+0I1GP-hTt#Y@mCAbn=kWy3a3!dB1Hknb-uD0N)JEpON~< zNW07{ZB5B&yuqxPS;tMN&=Z*aGA-8d3MyAfLkcpeobh~Ai&|$J_!P$)aEf$h- zY1T{E4D`0+K~pf#4922Vth?8S_@8Y)T4Um>OLbm&Wbl;3xDBNT8c~?-e9wsMrGoDz z87Bg^%b)o7+WE7Se+1DyQ3k5b?EZ4-=t?>XNLSJqfRz3^4@g(iwLm&8GC?{m37~7u zw1`@Z=KU3r=6w)IpYMASNGDAZ2!)$`SMyH|VY&TtcUM>*f_jIFab3Dg)aROCk`Hm5@(e&u(!D0>S^`lE!*I3@u3qzB_&lFM z$5o2xinuX2BZh3yQ4(FFC`Xa-0GE=)j{nG*WQG!#pd8u=VRj|1CKwYV#Z=!f%SmvBkk(etW_+YftCcI zN3Uqd@bx|Gt0_!mAz6n{{>To#urMWxV`Z5(U~v=iziIPoyQ!+~E@QY_S^k`uuHqNw z(PBX(^PaMptjhF?59t!duPXSWl{k())%en0OAIz;w}$+iu&a8EFL-wQuot@3uG!3= zV61! zbZvOxPw=Y(g`PvWt2geRXbms8lRGFGdnL`2lp~{l>?2(7ac<)8NBvJ4GX2M(41n zm-#C|YW(|ICTub^7UsP`wt>Vwi<*jM(F_%IXG&oWW^)7Pf|*@x|5yi|}{6FA=!VTjZ)EJmzo) zbF1@g=Q}jKd~4WQBR48R{#Z|ub=z+M5|ex6!jT9Z$CFhT+reE6hD3uKte8Wbv#DXn zC_fRZZ#9z5% zVnp-QHo1!aloZk93*`dJt(3$g?bsSgh2DGblq~ioQ#aeeEen6fbAQpAO_5+~(Pu+{ z&10l++Y_&CU(uP`o!7epSo)jLZdWxB=fcfs_oc1*$a2c?*z| z!M_7ibWQ;&O11(iN{SR*QSx-U`5_F-fNwpJqO<&J4pFAphuii8>BDUUsa+p#I|WGi zw7kN0nWw3a;+&xLPpQE}>3lviD2-~mi_#e)%n%PpLIh3CXi;(*WHHDAQ7^@Co|q*c zf7GlLUd6N;>u8VYoS~fbK5Vpu;CmkoUxd)<0YUS9cFjAsyHB_Z;AeW17uE+TL}2Jc zB|hoC5M!emUoJR4P=+Cc>-X3f3=t-9DTO~tc z*T|W)*-lI>GHek+WB_}YGF7%<*0E*1C31ES!)ZszA1p+``KJS8B?Hjcu?~4UIyPUj zu>ktX5+2I|;3hYVK~TO~UbqZCv1pWv=e$#d7a%9*H5V9vV!|ac}nI$&pdRi(M)lXamCu9~um4mUqvoYjc&d#2xtED$ioJ*;S`i($}`m%#4>Ps6G z^&bLK)c-q>B64rF4@Lc}nad9h>R<0ccY4r09wZ_QT^MfzX?Z7r_U?;@K)Nu*1%xgP z@l=vo80a^wk{3*N(iWfH_lc9u44LgT7EdJw{#n9kfXy)AyR!dJm#FFT%?F%%%pF8? z!WM<>aq_B%zGq-N%Qs8m@#RVRlkp~FT*(N5)=qO|G3851XtK_*SxG)V%D0Ngl6|y6 z-%}B%CA;_%_a%=O?-Zy9+G;1I`s}9XYW)!A;s>Ns)WT;}Ie(9G1{GnZ5q5aX>@AZ{ zUL6Ux;@z_Y`vI$Q7ehvl8E}vwg=D|HPW8v9#?OK_#c7z+sxGIv0$YtTpYr^pdv}VO zBgkqL|B^O$P1%{~kX`fG`gvzvYpwjOw!XEvfWt&y51ad~Lk6#IC< z!h%HLi+Et+M2VInNx^4r*zm7#>(W?axFf?D>~{Jb!Yg3l&d$#es6Cg88OCMqDE!E# zWc(*+WZW-z$Yvu3bd&QwuLsR_A#F(dTm7fYyz7>p)PFk0C(UIU$)i`%0aY?qh||rp zmjg|z!?-AwC!;K5K>;CP1uvzkHPtRB2zxlzICzhPk^sY82{ zA2PnRCz*@0d3T54>*yB~_#`-9WST5Kr4WQeeNK9Ap zFW~!-U(GSlBVa8L3Ibhf(p?6mymMU4L`_mg(9%CG90#?_oH=M z;q?&h+DpOu0#U8(D@)$lqLh`#6C7ubW&42lg5d*Q(;_sZcIH$Ml54t#jrX97J?Lvd z+AX=TYqx}>lBLy)vU+O0o#)h(O!j8!P3X~lepwzJ{6RUQ+Ubml8}P1ZyeJ%>o9`mB zQK3hXKS?T=?+{Hq-Y#G9BO~!+WrvZ6BZRD<8gjaMm&#h&MKo_y$)-Iu=Xr3UH&_;P zL&3F+^Pz(37KWXUOnbudA|XL%$*@huq-C6QSwZlP+Osefqo^=Dg0o2$SSa>Ue%)Zx zI`?Jp_zeYSlcgoUlp6f9*i8%B6y${A$t+5V4-!k6^PGto^;P-OXZ4w`%;VQ1AovaG z5{U;2BTj4QlYEJ|b5>@TlYL@_J3M%RbfLDWv$s?HzaDP6b);=;EKbru#t*+{>*t$y zkkNTcpAfECP-ZnsMCMGvA|mtZ?x6bp6Rf6}$rK3=o_DmS{fCs{@$N{g-q8ltcU8MS zgS|-I)U$~{@jGMN!8@@nv3=tf6xx6F6`FSE+14-C%sV2s@5b7EuFJ7~3+o21Hr>g* zbqC*fsc@?zyj!-ec5-IAtDPsKV4@)a#9r!doiS#(L@t_UP&>aQB=SKDO0x=ol*#Lk zzapwUn72Z!Lw|S^dXlH-)R?J8URvv2(@ypUx1fwAi)%iDK?|5J56tG2YYbfKD(Jv2 zy4I^N+7U`eW}z#sPgRSk%BA~FjiR9b$TW&Ej31_%NuBRbUV6Apt~}7?&QZ@G8@Kj# z&txtRZaAy3Nj6BARfs!Hchto|Fn$bHfmya^2GO_6E>S6svxO9xp2b^pkLBse?Kvw! z+ci(y1A{+#RVP%hIIi`IWrP)i4EBSIv z^TN=4Ne0a{lTC$=6cnZhX=Daxgmg33nHdZ;10Jr>tXAV`oVVG5aYZVn2V9K3EkRa3 z6$OUNzVMe%=vx-O;i)TDfG8ev({;#1(;zAB>y#E-qFx)lvGoR$$H3Nw>bs}bRn&K$ zQ{R=hfTukaxq9K=q1Mq*X{x)9jO~+)9jwU=(u0N7Ib{mpO4ep(D>Zn;+Kf2=^m@Qk zrnq_fCOiEgo-hnK$7U=tJLU42!R^oIl$srqL$owqlf^z((TEi zdY-f4WUB7H0%h+o{PTvj^)xhddl!A9i}-d7@o+bg8hc4cl%Nn!k&rb3-#HAZp20$V z=@~5U;>!(bA*%O!e$VzG@fVCZ~1W4y1Mb3P`0<4+3c^tw7o; zaa4PzX~9`QY9#t~pwT9*9_V}ni33`>X9s*@!T4DNZ3R*T&QXJXKAFV>gp@|f-)PTO z8cztjYWUX=9Wc=pheOh-ihp;t#b>5!pAb;*SB&4(e&x|=6Z&IQ`Fx*_nCneTP! z5i&UR@m)ToEn##rj+4fWs4CqoohcBPfAB0!sSJ}%;hBPEz%HlMOAj(&=es>SM+z(J zHDD(r2E6%mPD+N$dLS7Ju32J9XG4C>A=hOp5`5Q+`bgD9=cNo)jTs@QOHMH7y{rO2 zfKz3J^}q`hx7~W+MgPC-nhY=RDvlj;*@CWOyIQ7Zz_RDUKK3fZU#S_fE$I8*G(PO4 zWOO!To>0!1tm;|f^L;Y(Wn0`i6R&+h7!`8(~#*sfMRGw5#K*U^qA0=*hvxA~? zz1Qf)rOl`(5JlWGZAL#qKH7|mfr{+1J^r*9O}D-C^f%k5X^g z`D2nlszmsNt3>!QN`$;YF@wCW5@AHZx2#d{^_M?Hdb{TK2j!2mC0g^{`vpq9G&DMU z-5rCdZgx`sL{cvewj0(of00Q4wg}MK#0iwLj|aj+t}N<@w7;&n1Ufgu(`I5dR}|$M z1q*iSPU)O*4pvZ@^WC*n66H9X%BsPAe@4%5`DViHnkR7U)N_|n_A?_8dql>;XRWx+ zjF6~gja5=RNTQg zA~M8dH*nU^w=-fgadFvFz6Z%^xZ=-u)A_}Z%5unv5se<{@9!YoTE0gnZ7XA1S#g&j zhqYV?Q9BV6Y%q7anRi5Mir|7zNsIw6UIj1G;flw8YjVrMH}ekXv0w59>WJX8UD{Za zPy}f55a2t40M-M4k$nGtJP7&s?xbFW3XPz(^BoTrK!lI22i^<$yHl_GQ?H@at_`#u}{1HVvW4F`4BmkpJMwhDd(4Srb5c49Ttc^5xsM_3FF zL~9-q94LQ_4PlA5A*|F5;n%t$w7Ocw-C3>TODID&1e91xC`Is2bc%1^$5)yY;|wNrza{&#P0*%>-`pr!unKka!UXj-uF zcC(m_c6BmfRuUL$`mxMrNIvzvZQK8UXWq=dpcAlc2{RVzSsM=OWG%Z!X7C~!Ql9Lz z`ExRzSK*5o&0lHA2zeOg%LbC0s0t%);-0IqSp%(0xiem6(lr8!6a9csZj_ogpBtdY z&H~afSHlLC8S$N`3gXUx7Pre#VYe)Jce0jZX6SNP}gAngc9 z1G#o4LWOM;N6=DVd}5(6N_9~=myLARoYF(M_3*-p;}KpQ?QBYQ4mo{F;kGy8myK+A zUEZi!HLj6pXMRy-^98&w*?9$c zU^Q+hu%YKfeyxOTP8cy&Id?b8$_P1+n!j9BYR7~tF3YhIr>!CGAE#ed=&aecGd^*o zsSk_u_R(wn`wr3fQ51g|eQ%stlrINP?Fbx#WV>%hCT-b?yCga@0I_|avzE3pl=eN+ zYyg(kL;9CypLzJr4&&g$LALw0T{^J@)dg$WccoZoN|{}{kx{XOsl~_0^Ln`s`fC4E z29*20UHW7w)}2>(qR5(kV5+rpxV&?h5k>j;cD}*>EwL~0cjg_|$~fY&GPq@by2pGP=YUz*N*8neFb9l+d3(DE?`9-y7^5$pZqSFp9+dwmya_6_@VpVCx zJ<1G#XonXE3B;-3nk-!nw8X3*(G+el&?7)G0|^-;VhF!)FTa+7gw?4zuJ9n?vuWO6 z107}3iILNA1Ien^9EFssC7%bR+@V=O$~TZBN%;m+mKr^-@M7=vVt)(NZg_dEUhF@- z*cXAGFtM`cbCmrr_f(M*_ZQDqrxT@dlS~oqDa18vMK1mNEkU9CwO|5rb*kjdE7Zf-`KVI*S^*z7)12*3w(q zG_A%DXl_GSWWv`cT8-k>q@inCC>*IhyP+$5aTPCa&nA^|2e@DmJ6?vTrMR1eww+ty zHIc6FdDMT3D=|SFB4kWs7(OJv%y9>Jl<4;YDKQh>5E&DN+z7F+Z+aaEHRKb(UDMANSWX;2l*2)x8(;_=D z{&)np*3!?=*wx3NY-s%=WyJ=XruSFfDX|NEwfJGpppZ$M5pQ_4@s>BZbXBZ-khSy} z7D=qzUw2d}wx|dt(LsF6D|D6Vq4LC$)%3v-uXFQ8NbxyphzAzmxXx;N=~L&}l+Dri zdGf>S5z?_PS!dIYN&nKvD9;%ty6|@cg`Ft@QEqQs$_HBT%vR;zck9uO_0>%lb-h*| z%o%`Gbq8<%x3)ct3Gu*g?iU%nIpeVXS7zD4=a(zMvjC=56g9PL_tQs%g=w zy!0&?({U2pjesMIc~6gT7Axs^bD==t-G zBN3%elHcIQMa-~CS^BPcMCB~g96gtf?34{sE^&EU#&UNZG>xXtNNiC)@Q?s`PL~5#8ZcAXUC5>OK5fv!( zHc#%6+|PAhL@qOBuRyD^wb5v6=>xQ3)$f1zyWj174XcaLmbXP?^*R*uZ{ktTraOr> z<9MX0@zyfD$tF#Od+p#|?LdO!L*$ZvS<@iF(uG6>=Ba^XFo=6 z--PDqIrW*MMu7R~|5Ho0yb>v|s84yMW1O-D`m4q!F(1g|oEqqrHe5@aK()GAoWUEZ zw$pt;>r83c7iZnV1_u%Zj0a&E^rJ1t67EULU$%ff z*4;@?U-WKZQtXtm=v~>14c$vdhBpDFq>?sz{XCU^`u2C@ylbK9I^y4RUZfRB4`c6*F<_ z_Bj&^BF>_b&VL512hP&%xasFq6WceS_FGtnh&J;@*c)Y(5>#fZ<*`1+KZ5n}wBlMj zF*y*n9u61J;};M74)2dt*dNv5UB05SyKd;rio&{q=&a8e0GozKhp@1Cp;J)H^ry3& zD}}80-@D~W{)%J85C;1p7+N7Kymn@Ma<|F&YNwFt(!#I0Ej;T`Ev)^TwQ^eVBw9Cs z!3`Hz@f$4;qaHfW?yfsBJgyR#)Z+^40^#NvdBQ+46}*%_6?HHiK~0mS>_6kADFar~ z5^mz*wJcSWZfDpzg&<%N0n-Ck1;D4CHPM{3Q+(5}9lOYdz#%?Vb zU@bq{%tjS6!c@# zc=$W@Ak}wnLq75$IQE?efR94W_Q%F=!9Q4KBTcE*@kJxkHyV0d^9Oq6kCAPECci02 zO3W6tp?5)}JzR5_=0#4Rqx0vSmk=2tU#-6fp8-yFp{cq&$qp#{j`=dzw9eZ|+Rt_; zDh2&SSM(o!eE-oOGKo-ajdD=Nr{rsc-j$g>^i`m(|LEWLA1&`U^i%jZ`j4K{f3z&* zehNRL|LC^`G1oL7EyPJ`=g4NWKR9brI}4i!l9Mvc_8DO-DPrbO23tqhaSCn zztQP$LP&BU^_iJSe*-;5=urLm+M!EL_jNCu)1dV6ht8+m3D+l3FW==NLXn%XicscP zMx0x7MJQiuIfF(j?@pL3s?YNfkZQGvzbS<_dC)T+B=3#seLoCzG#8tIZzYhbRc{BH z!te%sBl*=*L|;K6v7}Ha=s|Iy0{#Vjdp$^O>@=*|gVuRagsy1|z6PX^2H(PbYmPU8 zw2sekOdm_T1HKc0H0*vLP4|%pT?9>{VRr**x*vJaBS2c)CZICY-{bOqz5%AqUjULm z2Yf<33b!NRdkRRcSe^&k#T_Hy+W|Dh#4dnD*4V{B8XE)B*ffyVCfB(={2S&wir)_m zbRxg+@h{+u^Q)!Y0n}x}zQeDU@&lmv`8Uk>Ykqed=zsWqmwy4@BlJO40ETnL*4AI) zL34pr18A8S_5+}5)B4{5Y5V>Lbeb8Bbza!NfHdz;FYF_rGfld|a1u1{2|#C=rLfXr}@bc8?c!KhRMo>|rl#1CV9Hp7z4t0P>qKdG1QvG6ePw z1I4(E0Mf7$ppVU1oddMrKo@vW#Dgvc(i~TKVc+tgTfEo=&`G9_d%Upwflf4Go4l}> z1u|i2FRTaX1QRwG2A(^9KqF095s>oS&H+-6ySiq99qvR5!_Jma?4`lAqfk1@%7D>d zfPcJgr{N$^DTILxn@rxVU3``^g?D0+PD7}ybLkddrxi-Pd8nQEQeJFletgPEiETIC+7wa+gPMVf&PbxDp!iM=A{G@2 z6Gi0_oFEwwBi4Fb_1fyS-qyCZ*j`1nRuh5{dd+)VhYp=cb+M9R4$YqCbPQyrgi0=v8C>7Ct2iSIX)6Pc! zp(6#Nd$SK63+bZuq3J@o?n!Fe*6vR1{`}Lkc?W_r5FjY3FkoS>oUfbLXd`ptj_A+FE39nd26?x%n#2l1=_WJ!2cW3-cLCZT?B}7I{0G}#W$9)!dLIJO27ALt7TRD2&Rm<(TE6S99oAgQ zc6D5jMwzBS^qcIS##PL3>KWaekW;ChMSz6ED*y@qAJn0b>(KuKB>dl?L*LY)?*WpU zEpuN87X7#kDv^pfb~;1Lw^Tqs=BFVm#+E%ed-(-Cqcs4r5>`0U=E|*)L-9W}^PO3~ zyK?y^Tj;oX-nG?VWr=o1_Dw@Ir@tL+R|{eWSO7jQPe!M(2y9AUlCT-bn=61Ms#F ziZU`z)YvI?f>Rh25h@P&sdJMEgKiLu_+XzMa=VL*ef<W&(C+b!EV5KrQo$)=?DKWX9OdB56HSle323ot%03FYg(|R=C za8jLz`YJ{rRXwyx?az6ZLMpl)HvyroOeyTVh+VBxWdl2nvIj9iizK6>21~<;F-hj!hp8Cc!@CSE7>ZCQgXBEmzD~#Dr;nRN8;jx?Q zGB8F_jr*1ZgkcY~P>yl^4w~#=Q)z8@j><3R2u&rA>D)lC{~Hq)0f@=@TztjQLu6e+ zEpP&{8vIQxfXy^LbM%5b67r#6olbUQxA(-~6q^*vC% z^9Oh8W&ZdXAX&e*>(D(qlp4#$O3I%NNa)Se&_WH>YUsCsWM$U`NcQKq0eVdJY;M%> zm(Li8-*RGy1~HPW697rBN&v|!4vssgYj;)mBV+EpcHFST<3p`@9gfd=1b#cQir5K% zo!e}eAR%nO!*yrNxCS`yYz|^hItlyTg`wzf4By9Pf*OWgYab^o^xK!bVQYBTP==^y*Lok8oT8*|C!&dCSJ`L|g+3!cHQkZqT`w!e8 z)4~%Jv&`sk@vin8+#de|09qJ~FRR04o3)rc0y{V8d1Krr-W-XW7BPcQs31iQ2VH$QvIbj2y`l&57DeeI?)YYE;h z+h2=PnRmqSS%cji8AGg&c5n34rQB3qMO`imbQTS<{nlTdC~6bxc7$QzyxRgc*yiV^ z$7r=?JrU7!7*4d?u>i~>3?Td!VxWw=~{nD$_Sldb82kzmF{2E8Z6pL&HJjyQ0=VLwuuO~ zSx(PaUHMHJ%4y{2ap`-BI}&;vcc%}~G`Xlv<#rz4p&X}?j|J9S*arA4sR&&D21-9g zl-Ciq(L5XH57umk)ymo6YytEZWbW~bxyLEyjzQBFwrI7s7QF4F&%O9qg1n~0 z3{3C1*`=ZVI;ww)Uz~rB^j5rOYkefcJjj$>Aet}Hl zkSQ9L&L6TinwrIf=C1uDy1S)blQ(0-`>*{Y>aZXR4&IET3zIJ*C&BqhbWgT&VWKQ8Kt08S$pYwL)k5G5 zUXtxA00u-BGW!zcuOzGe{FE^?kgA0aW2;QLo_wgF7FnSmzA79rf_2A&V(gH)eDP6_ z8%iwLVKb>pNQRHMp_kg935pGZ?E*p{CYE&JW3CbYQJ|IG*#2)JBquHI=YT};{!c)1 zRQ?S>G7P>8NCvt#Kyp-``bQDkPt*|IW6QfTK!SS?AUPmUrLj=a8v%Bv)!o>(T@q}Y zWSCNhP14n&E3`KQ?VgeBY};{diMIG`1EQiugsjghMEk^r{!Uq%j!Y~~M{#MYZ#@6Z ztos%4;CMbXq1-T|RGJ0M7X}r?C$&t>f#oTFhpb-lk~Q(0cYt)fWWIx2s@Ap%y-F|W zRY02e%scDsUXEU+7ws|w^|=Mh_P_e-tGP>YjZrmLskM7fGwt!R zM1d_}S#9T3b2(+o_@q}R!m5@sW$oTm)ll;+qyWPV!YUU2CKQUJLP5qU);oj_kd`|N zS5mM@R!1Xs0eMc+`4KBOFg_Qi3<0Sl058x{*J>V^5C#>@@6Q}Kg4GO-2M!+gL|xEc zCb#n{r;yL(kss%)`vWjRdqH;5?p|%ZIFXxy)X=tk5bEf)!PPr9xw0$b0iW7}*rSFxdK6yB>49459g&LJW#oC9egU}0W4Kl_0o0+b@ zIErJ|bM%E48w1HwoKD}1UB^|U@CwJ#VbJ)p^2Oa>#f63}n{fv?ad-1f`l_#x3B+tx zG5^UQa8+2(u|E;>8x`|q23oIR#q9?KmlIp;fn0f3J(!v0Z&Y+248GrZfJKS>GSK63 zRWA)Id*P3EhO5sJqe=7}Z5f`@gWL;|OKB4c|H9lByd*nVx-Oy?h|oK}0)_=G6H6g~ z^0X}ugCd0?tEr2A%|%-Jscp%kTwkcsQMrny!!yx>a>zXu<&tJJ9Gs>3l+WP2C=K&W zK%%%}lNU3Tg@D*}eZ~@eO1ygkJ*%26PlU)UyaABR%v7LByiWj$dXCF#Y4RM*(Js55 zfyd3{71l?g`1O7`B}pvNL-8fW74bD3xI^)uH}EUEBoBlAl0s5}RE%lnmB`?*Wp+-- zAQl-28({n8oRDRNCU_Q9V`*A$O!P;xPRg0+yJZ@;J+R4uOUz+uyhLqI#BcIL;UB24 zG}<4g5%DN}^a&dh2y}*A6{YP~G+rECzkw< z5{`Y2a9IN)K!6FAE@M4$W~GWF6jK511<_j}X&i0$JvEg%5!8=%&Z^JavuXvLVIN?k zJ1!6%pKex7ndvyI*5uo6tn$>5$kN$6><61IWOZam9H$GtL_<(Lay2HU%Q=ZPkdDY{JZ@Qx=5ui`MLL;tuHx42frj$C zu1K-TK8!|(k-7*yG4J7EFS}h$5VOf~_8R+1YwrMZ_5a%Bej#*|RAg z==?QQLfGTuh04)AIG6Q50C^PhKuM9y|J1XE7GG11NQ<60u zSPI2MzIbk^bWh}aDMLBu#;NHfqNF0J>*TSgTps(?)DS1N$=PZ<2gAO3_myZW_KDld z_%l3P&GQQ`edNJ8(X#_V(Demk7k?YQJ={ui+A1F+la8Y9R!l4S$|UiW3f*inHO^ zxeiA+RF#+RFjqEV3`7-UsXhaTDgFndv(<-(pD1|z7k(*O;Wq#hg2x`p5Zx-8|T23 zewDsU@v1c0Csh4Tu*~+_guEia2OUA3!F&PsnH+J7>7s znfMer#*qv&6m9JY#m*TNh`y*?=0t9TsB1Ms*3G4aNY_T**f|rSvUL3{gM+0x^fWaq z(%03VmR3HAh zcv%pCB;JXDWT|qNhNf%iCP0$LB0!SH3P8d?+N(?GZ*=I>fPSv>{HhLpM~D6opnFv) zFZqD;H;B*68o*km)^lXx`2&>jTc}#OJs~E^H?@0mZ_ZUB#Eifdmp5TmfmO}Iz@Jcy zP(DE+fEVx#2SqVd>^O!Gj|S!O$@`&eqFgbaYsP@wJ-_vTtY+RjP#m;&2dpMsHmi2B zwziJj)Cuc>l?AmRiTF58)&W5lE74DuoDh!J6`Yza(vUMt)o0g-Jh*Qr7%SV)%M$~o zuPtg1#LF`RnAxg3#^IJrD6b<0h4vB#SBRT&uF7#l{s$?Oeu^-6iW25vQJ17-3&LkU zGnd2|Dj{*USq#lAT>Ii1#=|<_q9O3|`F3ALd@_{((FP!P!b({boGIyzRZ9kVF-b~~ z_ydzF);WSP#I?yEWLSndOhJ%hr4Zi8e0=Z}?IS6#X>-*Wq{**t(~D^jl7x z^3uQ5oXnG-eyf9LGzcJap7oM@3+;^euDM zew2>-jpeTZSpLbviYf6yb)6f+oec^bHcfu;ZB-PZaAYJ%~Kvem4UM5kVqbdLOu z#keg)MdOthQwrhpRHEY?d3zqcrFc}k!uDVgjJ2!=kau*wXkz_cdgJ2{pf}EQ>y4r8 zHP>u`N0&0m&I!1_xfwKrMU7AdEyfyM{R|YfFgvcyL~%J(fBSda0yLj6nrAi*sK!%7 zDzmp*FhX$gjw`{?{~;`?v1AMqkkR~9@KGSzAPe*|I?}JzsG5sWU&g*+fMjGG11P3c zJg4f=pbkAB(48u@N{8O0LvIDNQibMVVJN8`Q0=qq<6838-U}Ls{WK`apaHV>S}!ka zTaPfajsttNZHQU-2jnde-{A*iqPxwT$1dB;4ih=CXU*%k*pm%e z{ZzBJw&5u6;&R#2&|;6{%6w4svQAR28Q}6*4o6PclR_MMfLsl4{&;f<-bC9omUXt` zow@u~@H_fVrnzzkSP`<$gmGyD0z#!LSpA8$u6m2LE**4ZLFCxFs@Kl2C~+_>f(~4J z)$TbL_qqhk`=9_jDAC}Axy3yqTD#}$fb|K^7Jqu=D2CPDGr_Nq9K|D=$7p+I9o%#V zKcUmgI%@CHAgrw$?+k^Y_eK?|#vyVh<%VUQTo9PcV~833Cf8h9t5A+?y#|hWz0N%1 z^*Z;6*XuRq*1mExh&9BKYR%V5sXsd+6r=4~u9gyGC+^an#cV|S>0s5Dq0qJaa;KEa z9&Vgrrwfhwg4gXB05uPC6#Gd9+No-?u72_#|083R5J+Mr%j3 z)olF47u|<_s=t7uQWQN30D>;AI}JB}m~~Ic8iBi6^g%SMxg7=yMm_BiI-GJvVJ z5ZwVG^Aj!*sC%T@SCXc21iIT1VF7FiKQFgF3`9RP1C1a1aD5KyfhM8wClO6wrVEEq^b=3bFX;@aARvAP%~d-+Xb(3O_^~^WLz(5){_yqh z(MxE^`!4-)72uGXvx#TcwbP(5ZqaGzS{_8F;ZR}w2>X@#r8vvo(H9YSZD<4{Ro_rh zP!TW5M^g)7Np-0$Gai}p!3+c54&l9T-=ZgwVeIyxG0~8wup<5wx-|_q{u37aZ&!N% zT5kP!V%yAIJn-%oF!+vTqDD5p!i2{Q|fzrgT6z$35y=?Y})1G{kt5h5;f5F9jrG z@Lhlwt3`e~bqT*Ha*d#8rBY3M|hSweYWP#_*SI2V6DBL_WR z-d&}kCpDCTij>f48v3P%_Gu^=6KR1N{upG{u8W8XAr^E%7QrK@4IefFuWZ0FoTU0r9D##uS`etkt8icIXE+~Q_cL^^DREyJ2B%PC zYi47cFSc_0lR)6P6&kY47NszPDsXclW({dXL6iDk+MU_QJLe)QxlbmYP4q_t~@9fPQ+TO64rHbv3)R zZ|a72`=i}OSe6nYk@^9;j_NQp^p%kXEU-rm9zK(C;t@bHPW%>7RE-n4dVJ>wpNugh zF!~5IS3?aNqM}9UjRPd~&IGhl(OafNSLx6P0nvSl&v;aaa&8dZKLNT^g*NHXzv<8q z0oAHdWxv4@A)S#JY|Nq9Yz^^(pts@HRqb8}QKE!^aYWj(xu$K|zFKh4totiI7u-N^ z=bxG@_Tfj+yU*=x?1-dSk8Qk-K8lG?wqJkqbuVytrRZyQI_WMXd7!08&&Ix>cR$Rj z2iOZ7JE>1SHD6}2nMk@)xHAM%uf~W}KI)IuMb?iD6e^|xFjzAgi@oYvU=Nx>NoJQxY)#V&~ zma{U3o#QQ&ogesyWucQrm={W74ZDB63*uo7)V8vm#u~4tUtnVvWF32uIN-T$W()Q| zNtSOP#t~@^B;5=qd zahOw0*Se^lnwL{KjYBnu$LX;S2UEX!(g4>kMjV$K?u?`!h*x3C2?FCwcDbu4oXFSE zbPYYMAsUkj7oXD5^E#AwdHWN$%U(o=E<{^)T0~cdo|H1QA83NQ@!a2mT}HcKOfPorgNDmo8AF&ILK~Ia@RJMc`X2&FSOeO=UTUh<>qlTdbH`Lu4i0;d)SrDA?L_q`6skt8aRU*+(RHFHbM6(x-wcoMWBuNYM; zx1`p)q3W$+@0)?rcNdL@E@WKv8!t}o2Agry%g9>hSUJIhre=qy=Bsviw!xxadL(RI zU=xlQolVhie2boGdkl5y>`8W04&}HNssnT@+%o;`vm_G${|)0Fc-35VgQ};~bUmF+ z#T1XJuAhayjuxJu=8-JxH7qP<#jtNzhCU0|uwS-qtb?q9s(=tyE%BF%SR`!qtB@m(#H1OEd2nWY`G&X&>qXzsB%a zD7qIUM|{{V414=-U{6qBx9*Ly&+OF(^q{+q*DuJU>hFIk*q2>4PqC zeISzw_jV=R>+llBA<49TsXhR2ih-Q23Fn}x3H50EHZCIb?M$$5aTRn{uiI^In>9#@1CZv~*)D&BiKo)0xBYng!> z`VJsT;|xH88v-PDhE;$hR}mfW4jqr4sBcnfJfh>#Cy~&5R>xZp=!YuaUja!DD4~lw zpZ>(;9dB%rci-rDblxoQ`f_Z-pU()b$C!zvBlD$4B-cs2$kxW@q!-0uR4NQnSRu6&Rs1PTMnRaE{0=xr76 zAAnv{&fPh`l!Ixj0m;F%&jCrgoq#0W-nmZA91Tc9PXQ#M69COYT>CEV z1FY^t)~XgXiE&#RsY(gORyE)kUQ$w2iWM&Ei_QCR?S)!7TDT;V3;c8|=Co?Li@E0z zw&3WW{@`Ay1zqJ7E(oy-HrVP=xY(6VqWPHeYF2|&V^fOT@wyme&E(>mB5l-k&|};4 z7@4;z*=BU&4Q&CA-9{Ub?g3O}W1HAZIwAc9FusJi0048S7amXL zLzx(~fj{u%FbfGvmCOMoRdO>RadpxNNE(G=nyQ?j6(|YCZw0BhL%hg53})oX=1h?~ zz3=%kh4fJDPYw8ju6cM2rHxOX028}ryxGtT703LD28O$gvXb^rnv3Hw+!!B^oyXf;uZwu}zQNH-Mg{`J0)F>tl zSW&)H?*TS8BRn;IFh7Qr+mP%ggqdqD#JO{vmc%A0SE2dg>d$e_uon&`Cl)k*l)s zj83i(=HWyEn|HQ4g`9UW?`W~!DTilbFpLGj_KbHOubLYSBUq%4GS{n8gFyaOP4N)Q zx~L$pu?=|p16-->_bj<6T(qr{$M8Gfs6@Hc4m+$_b1LH(X23ftbI_*}K6^nOu6W~9 zeepq4;Vr1~BOmy)55EI=;rvGP!y$tPHnhC>R3w9hUbn{7o5B&A?ta3orolwYvmYU!}^NA3qz-`kiR&?r_mNw7kebJ+^*SCN&VjwEQ_PvC#xA9|N%Pe#Kre1i9*!zGzcik-W`;D{A>o+5Miw_@L@NwNb ztiYC@-N6=d^e&q(lXrnJVer;mJ{4VCnWA!<#kp*d{;H-X$8&Q+ z)tg~g;3+3>aVHB%1aP)2SnoR>A)(T@7GH8+Ja<4v(K{9KL6^8U1P;Ic)m0y;f7bid z3{*WT9kmZvBlXiJbfOwB0Pnw0!+zOCFw?fSNM|?i{xzx+T{X|V<6%J2GgwI(=1QK2 zM)^XWo6g0p^ykJ04Xr5Mc1unemfTUEn8n-v_M0tcbSB=gKV#!%Q9(YNfggNUi{x;8 zA-Fqt4C!)P8dN_ITQ7&;hm3G%R=z$kg#`$aQtrNSCFmQ*!=9)`5dEQ z#{EiV^(MGgUVK*A`WtJ8qexLpMbRdAr^>}jn-@ftdC>kc;)B9L?>aQW3|!~rm7(w* zj0=}HjYM^22lTaqhM{@|nxUbeXb5LSC@a`Uqw$ME0)BDw zX;S`XpiqKj1IY(7L2MasCAVMT*TSSGoZ_U~Dj=ARL zt^a8E;m|}o?0Qh_`MA1i1lpS81T5Yc1Z0Ef*=#^XZ)|Okc4psd-lWn$)`mfJy*)joScy zPeG^$*zHfb6_%W;mh7s-41Q~#5jnw%H6v=EsJ;PTxFY~dn_9jp+8nk*gyQNPqQk?jbRP&(4qKslww{);WXMU;CUxoj(06f>jTE$L#O0J~9InLL$p)FsJa zvUX2r&5zybxt!o0rO;<4r?mjC5=JIVe$LT!-ot#bw0Ksh0CA9JWEG4HTy>?uC*d)H zLU0udBU0R}8j^mXn|9;gVbKpfN~}PW6{k#Q9z>Y{00E1iJx%lWG#@11waATmP z7PK}7c-4xraTz5(KBzfY-`k;H*-~ySs`?>vgc}wRAUSf9QvESGxxRUbrBV#VF8Ehd z#5RL*lG>FYuA!+q7ck_B{YWw%$cqJvW2!*mYQAnjtPn)Y*pF2HV?SckYl0ve=@r-r zklOl9foNNHWHLT`MT+q0i5#uo0-eSeww+v((h1sgQ|lv5Yfp_cEzl zbX=W;l)xQpKrH8&3~ZsbZ>8a?aV30B*^Zv=b2XR-%N#5S#dONlE*OV4M33FQRxK}Y@bNTxyEUx?Oe0-O={J#}^qpxDZoV-Yp`*6=oi-+5N%K8g?H;?$l zR91P`s1I6|&;Ffq%qW*vFhep5TbtTPD`RL(YbnOim@AMq94s@9D2@J z=AmJO5i)^FW@b}8hlBin{+MU~07ZJFMo30%yb>xX!TY(}gCKPp-?rT< zba$#VL0U%3c^djaLrYK`37v_ooTnz^hcxsTKoU9-ITR>$beYck>ZdE$Z_7S@1cXC! z%9aC;?QSLyoixwoZ)S`-ay#4^;2VIXW2ol9&b-BOI1`FJrIeCzcRdtqikD%40G|fj z15Gp*r?nvqkY#X9r*qLe< z=oRen7Td7J!r}J}XE;keoM^is?vjY`OSpmY1K}7yoCH$8k-$Xt4ge&AgLSE%mI@WJ zIfx^(R~&#lCrQT9`ICmcAda72ktEab5C|P>O@qlA#Ef!lS4Hgkf?BYJ+velT<8wWM zWxMgyW3DcevaMXyC>u{Rd6H-4ub?v(en9}Az#e0M23Y=}|5r#mbzL*0uWYwbdxJu5}q?egH& z_AG2iqI82rT5&=A#@?%GAGhe3jziuQgc(HhLv8-dxF@J~Uf z0(7ufz@PIWlc6xag?&Ki| zwp|;$)>G&OGc-#ZmW&8m|Ad`UGBYZRzOMO%WBP2?2zm>$HVudq;gH1Ig*FeDC1%}r z49qwMO%LPaL((nhD?3=s+!LGY}=@QA@+;jDXDnRomQ;k0jD&P|e(0phIW?s{># zwSk#Lw%8UN4xyyWl^Zq9Ubro5yAP}S@(B|Qdg3Ff4Sv~i25Bkm78*b4)!rBLUyeG| z$+;{z{&_VPn{~9`g`1!&vTLTMWOP7MMlqJOpQ_S^E4ZXFs7o|c-9iIHFDD*#^4~+M zaBw~Y2j}4~!K`RDSHD4x7R(%=P`iJ~Jtn&DD?1jFE&I!K`{Mv>;_()qtbVzo2>BUQ=u)&(P1`@v z*$n-EJyh$tICyrU2V?Ql4+Gx6l^1Od;7a3ioaTCl<2EUB+(y%BR*iw96v|MhdKy~7 z{4>#3ON^S+Dy#-L%YlK@X2t!49X8T~JEk>dNDG?*p^OSI%y!^?>Ys`Pw{)q6K?Wi- zgQXiIR|l<^)lM#VMRAY9x{!EcfAey5?YHAH`u zA|DoN=rTZpu~@&O<5h{r%~F9L(9kP@Y>86KmhS?RU8FAniA((7Lf({(%$ESkR^=27 zwBqxU!?8d-RkaN?eZ~`jgh~UTtChNFGa$j`nJb}JglSL|QDXsJqvD+g$W}xF`Z;pp zGrj~QX=Gx)l{9$Gs^tEs8hR0sl=2fma)qG@sYTK_3Xr66G$2W1G$6rv8<5aDKHI_F z3rJGC2}?5B7^MxQysHHyrMwT2Z00_s-#rOPwy~cEB>QoqBf*A;YQKjwEDcN=l+*|$ zW7x}$Z6m##?J=tUB2UVgbWsL1NS8N3ablOZ>>}90bFUPO16-v8zt9Z`b424Lg+y?| zf?}8R>lB5=4d{VT5`-L7XeCZiS_y>)l|#yeQ0VgYQD(0Bx~!IGkvq_E+Iy9a{e-WS z0jY}~U5K>%6}|i}^z^zu@FExUWwraEZ=fOi{+D;IgSz2Ip!@=w9M;?mQuGZQ68eU> z(yzA@`i7{mM=j77vTNQ)b=CNFyaOSldrPVJujTX5ZIW5E2y#`$nR z>^GP1bFxz?u2up?&84p={H$OPZAu~JvV@}H@=$z|ul>CEBq$haGHdttsmZ~IxtwO< zs$BnqF2Tt-6akB_bN{$3Maz$?V#mRI5wx1mrwD=smj#LB}UTN*B zgu>&TS@*nXFj)vU{)*CFknO_er2V+&RSgR2x>qQ_M84%OOyTIGaz#+cyDQ}VtfFXF z&7Ug0{|pzs7v}k#hbu6Vj8_?dqM(elaWP9seLqz&Ree8EFhhMmR8Xb9SE_ z3K|enjy>Yo<$f@5HyGFf2JV2sumzWPwStk`z(FwdcHF|Vx}~CeFI-2G{qV;`3Az}b z7b`I17jNFHEVqMrS3pr^JQl}(IETD@H4+V58-wtTj5Uw-KBE<~!f?qO=lH@(bM>wY z@8_x26Sh8ueKD)2!c{#}VJN^AfjQ}$gH{iOV|Vq0ir%aFlceVTXN9*z)zO2L8^%Lq zL0txE5{#^?vV^^xXyL7jp-N>gAB**61*(u$#j0i9R9H_G%v0Zw6)eOztGHHuKUGk# zzF~x}z8@-BtG-tX-^YokDqh2b*XlkFsoovBDtBrq3$-W}{U5q|%PxXiiMI(X`?vuS zle^24cmw0Wa$ec-1^lshg5gzgt+^Jnwn4cRTMj{7QH76Uew6V;lrwPau%rMt?***C zCRGQFB;hC2(;2MuE7zc(Vd>+47TMwUeh?X`mg_~fwoVA%=QmgV1woyS*l1q#KLK^l zo=Pgpak#CoJbqa}NS>3d$V&g&vEa&iv(ApyO<~@Ga6mCB_QaH#fFY+J1+@g*iG5JN zbe#!*j~tp_!Lnd$Yq__<`{|@uo#jXLK>;iZX>^J(c zOVs@hzb2W_NP4^hWFCI4R4JYxA8wUf1B;r=&1V{U-altnu+PRo+}AsFf3SXKejTXJ ziakI1F?1vBJm9*D6(GhuTIol{c+9X=wZ)yU)6j}jAz=;R14C^#k_C|YM%L<}EOU{R^mC88MHNG@3|GZTI!flE& zKy6Wm61Px^A!GX=dlv1-13+0?^fW+n58+uTjSNma&MrdQHGo76yAjZfY72>1sYz%| zhu#P1c@-M6F385N$b|mpj~m29N9{vKZyk>k^0X(mv-~}EAdT%;`>a~gt%X*&*xFb$ zrEphEptNB@4_#0vDBws-uhPbw`zep8OK)lLZYpiOr!=|oI!#0eKq1SCA>OubHV@hTn4 zIa@++0VD!52atErWPHX8I^Jd-@9#REx_BWcRC;dqeDBx>n0&#$3AyV{<1m_(!8i;z z&|?%>JT7ca$_`J+n15^_dfOnQrhhz;7uYz7?(uMXeNtY#x*~x)s)bFk7g3A~SQqA_ zXLTYD-23?^V+AHf`Zls z`Lu(v)}g}&Ht$w_7S=k;TG?fTeHtp*m7DQfb=bBH>A@HXG6K?}Rj1wIlg|6TuTNtr zepd*i0(8MpWMuOiYmiwB4#Q=kXHgzb_s7FNfQ!GzVY$WAL)9&62qBZT-^doqm{im?vysy3_;dV>JujCmB%j12S(im9EqB!_=GPK za6D+e1Ex>7Aa8M|Vqm#72{(|vQhvf^c^oizfYJGCNZ8s6=gOnudH~$!kR+UnDZ_>) z@XGi?HIjtA17-b0RGfClFL#aB!gcOS8Y^3tX_xWf?K7a@d22=cSc$fm!@ICB>$PWc_Xu}$ch(%A;E>9rU9!}RgpR4et{~-U zh>&mCV}Nt8R%}4ZlpcqDc`7QU`06GWDYs6|1lnDF+`^VA&>6?pNYTU5XmOnEsW*d70DPI%ehuCI$NyD)}qP| zPvtfYdP5e&M5Db@9P@L8swvgy2QostuHvI9KH@4^$@cBUG_ zJI<+HyEQ6aU~d+j%48FC%F$tSgvGMCgtA$0D9#9z*l>7ns$$X+;!vf-A-J+l;Sl_0 zLx4jT?8C-vWG z*1fwCtQ4unX$Vp%rAraPV-Dg=c5eq{*S>ADuUk+Rji&1s6|0#)4T1^?7yl< zckRHsxuTyttrMNjYEJ6ON2rmi3S&oR8|~VArPp5RTHjIvdRjH8mjFqvk*#^kfLsm0 z2Pu8J9&2@U>9FJeruwe#tkQwq{gri@rpv~z+?G6`&ggp zQttA(+exC2(m5ChG&l!?J>CM$L$~9a!hc+;j5wuzp920!XQfytoi(T-j(x(%_W?;~ z{S1(BRFnd#Ltmo5qDQhjhGSEpO_|ahh)r%lpG1emFX&jNv~=GQIU!0$If6)5F3}k% zJG71nMN|)Z7e*S@6Vvsw(~)$C>OJI<^dnmefEE2gnv^|59;`z_FyN$_=uCQwbcTGV zYfVKCjM!pnM5=4b)EJ6QZ^iVOhc-8rdzP1$)x(`iI~Jb&HKW1{<9hU=IAtn0aVX!d z7Tqw@dLz_{ZCv*pJX|Hflo;nyMHtxiNT=PO zNKggBIv%O3?hE=EV;jsh&E^YUNTWx=`CZxgQgit&&N{R0N#@Nehs+?^v?_N4wY4Hv zxkHo$m8Fdf`eLgG)}$=YA!N9s;8M*R(j#^v!{B{|w^*fFXqR5Jfc6B~sZ3$lsTpvFRMSg3V;@8*2c_9s+F$eNyLZG1l+t*v|qHCO*< zv)<30^>*AVi2Ng~$REC$&mBrc!|*RER4dP_Mx*(urGySV~GVKIuZ+wSKqO@*~77%ShVRt#7o zRFuA~I=Uy^*@*7i+CG!pw^yb#n?UClsIjc_)}rzbPx&_ZP8-a`I4F&6P^qad4yy(X zLVP`g1g3_N1*mLsryfQHQfCIbj7_zr@Npe+x_aAh!HuNWQfarA${pd-%}Jx^A>>tM zp=)0GTJl=q#hD?pi-kfy)nJ&ER}M=muWaP@ummQ!hNTdeI8+GOOPnj4xEPlq=?q=R zl*naB`Wd3ikc5@9TF5qW<$R94UUt0-saN(S=(thiyj+%UDU6d{sY~Hvk(7%MVJUn( zYH*$`htZt;$xC8f7HNx!5T>s{O=ItA1{cLunAgh=XHi^-lD`Lr_>5J6l4kw?cMH5d zeSvYHhDca0N$A&+eTJX^RNv(jb9+-`# z10`wE1SlbBs^|e`5&^SP6*2^UfT~-H&mBdThNp6etq-W82#pjdI0Or>hdyAo)(0?Q zzV^))eE>Ezs1L}7J|GCSs-L-WEJ-W#9Hjt-XBH2_GX&=a6r8E!ZlYKs9p`;OLAA>G z1dwzW*a39qN}ZCzgVucoGe8g>6AMv8kycAs%5#;_nc!^)2vuOAjb>ejzbY(cSzxu4 z-3rN>wxWJUE;D77ZVbl9y z4!4zkhO2JfTAyvGXPW4QQd&P(ENI_oe?jZdwSb*Rc}g{sCb?R8qg?1V5j z)$SqK``T?gu0iL}IHsNu~C`%tehKGIOO{r)BQ{4Wp8@jl`$~ z^#U%LwfCosQ@UE6NHf?vuSE!Dou>-!0R&Ybjs5OdAhyeJe-*$A>opFkQ}H*CG9fgD z8=!z#i@(RAmUzUaD#V#6ylueWlk5{^lx##}3^jf3m>Fog71nOqz{J+WX0_QCo#=sw zYz10APkWY(3Ft+aT76)BP;Q+HOBm}$!#dSm{gSzQ13V_26@q-THS-cPB9>2wHY0`;GvX1N4i7~nw8bfif!y(+@?H8@0U(*<5=zu}@J=}OA)x<@ zghR=6Vi=C8%2PY6GBzZ(D-Uf$SH>8&B^h^Igg;k<&fyaNQVm`t{FQ>%hVtw~1)-wW zkV`(RD=0=txVkayg$xd@CMShL4F1YCNZCYi#K*7?85`3D9q{_m&N%2BYTg=Xm3uT)i5>g3Mwwx#-Decg z@Tj;j-n#gbZi|YoXx!28dZ-%P(z5cVaCaGt7t#eSgXLk!3waQNps<3a=NaEZmL9{R zF8xuV<$sIxc31#co&ZDbxKPMB4#cTAEnn2F#n5-!#ZTxTO7KpM#<@8qjQBC2ZE86F zPe4xZIs5`&fwk8?tShH(Lo6~%iK3(2sy?4|S3MO&6I{vlO}8>h02!aX~6g zd;U)}W7=p*?ak8#h-;_}JLYT4Pz9o#N!KyiRI9&umTes-1QIW8W8H;&4-rYVSKbJ# zstsZQ z^%Wxs4+Yy~dhbbq`fSwn1R}kBMQ;=w>rM~OTL#I%GiX_j?Ew?O!CNG*n*R)wDevHT|rox^T1oZ^M1K%`l$X!fMV ztk>8A5u10Wq75Hbi+M@Y6NvP9`w!?H5~nt3Is%c-q<@i98#PUVNRzh|d5xZMs##+T zMC|hG4K%aNeJ33;?YGpp~V1J%T`sJu1=f|LAJ(uV`8Vkye#(Dl5at8k;c> zFN_j?*w3pPLm*)h9qdLkoW5IbxlJc##|yaj_rl<|2Sh1@{~QVSCzX)2PM(_ z+C}dTO-~@ws}p*|GmPE`%u}_CMvJB)5NX_H)9@PokRO>-@ET=f%_ho5lN9IKtmz0u zI`=3#(ho7WP0K+UG2dM%bKHM8sQBKZu>~UbPb3#=#2VdYj_cZQ=9A;K*ZvOM(AxP<`}~x#~Z_E9%l?M8Dk6wU)=2`dG6#v%YK&17Q z&>ERx^hLfHnfYNzB0mrDwf$_S~hCCoab##OCZu} z=s|uSa0uZ09Zf?Z(%7JAcsRlhkem#0Vf5A*0ukfYE*M47>2CR;KwPKkR3KrXUb0eCwh>=^U8TdVxZgF>I_*=;i8*12qMKNP!nuLROF& zu$W1y4+3}wX$*mg!E0E7F|@ZaG&0Z_I&*+AbXtF7=pP4n3~cS+K&&(PVLyX41%XJR zpQ13zmtpuy@>DzrgP{_SBdtJ;AsCGHE&iM*9qmCv+m7PU#Y>x7atcD1G>5qOl#cE& zn=XoTNO>mRGrFPeKa4z+=5^iBr7v&Pl$m9iGy585Nv>hu+h-nG<6iL{rE5qaa_A(% z^mz>5ql|ADm&lj;9HKD5{Ovi71q#`dt*lVnbEhSPisy~uLk#8 zt_3lYXP4*bq}zTVdf0tlAksWjaxxfe!$?14FiJicB_Dim|5hT==*@YCX>5Ur9Te;f zvW*L7<`@;zvW=XvnXTS=GD5jWf1df3@kStGpR2HybV&Ul9tVS=5|1rgAhvA5V5}(U zIZry;Q-!u2#i5IrHnrpwgf3}5-3{G~rNp=PF>akX&=}s@IC(P+2v>H=1!Brq2$c;v#)j>gM&p}V#`Fkk;Ew)P4uyRQ0>&|#fS=ta9s|+h6(^l-7>Auq%q)~ zQ{v=2K53^1KDg6LNhi7G2%nj@q{B3Zva0MST|KO^(?OM`w9n)k5L~t)p-sByc0>Dl zMcXql+ZYH9>Og2v2aYv6`nJj}Pi?UC_;n8wh-t5roUwI7a^&M+@R!761_WZx1cR}- z7w0x_jGT_qK*jf25Z ziN}%(#F7dIV{!M?dD78-$1W+7h5XN_XS5YvS83DHZk5t1Sq8J|%wCXXvW&rFMV8s> zWDDQN>QW2Da($?QFSW1CdO2J^PrTB9m31@Bu zBKEOKrF7^f$4R6hbV>8~4pB`l8K+Q6*+1LpU((O$e<4;uEjbOn=4Dk8(UCU@AE!$! z5OZ~k@(FjV3(j{-4|g27m~xpJ0{cA4ZXOX=>5ftsYbDAc(T zi0PfJFoqUp8%KGD^w+zF_GtJ>eQKZjghcJ<1WivM(yI`91=xx39NRy$A))JQ0WFp$ z(Lbfn39%D3ErCeuLgCbDy^YhpI;Q{0+eh>t`R2&}gCqX_+0#b#C!RxrB=zkFv>uhw|7JL2a2vo>EzOD)c)qM7T-n4sf@G&u_osUg_JeW`!1}LG?qZb zx>>MBcXC&u>~Ub-GV(N6WX@{ zMqURj3R(o^85ib6jVTZ@?^Bqg%5sge_5F-e=pRp*on;&oF_DivBfDgX!gr{!p9rpB zLj{0@3S-gXtMjBw??Fj#l+PGd?=vzNW*TlR_7cHjpBIRutYDG$o88cVMCb#@O_x1V zsIklfF)g7>nrFINvxFz({8G~enxf6`xS-Eims<$meKECWf|4tYY=TXZ4aDhvgU+9|J_KT^g)V7c+YQ|;MOW?JV|E#Y zJ)c4Msu`+*xvAub{RDN%1!Bo_C0ChThnOm!gTYXV$NUIHE(iu=-HAWvNk@A?f;RMG zZj1xb77Wtm>1yXmM;ldTbJI`3~!)VUb+ynqu!2a@Mf1&ia5^HgdqfrxcpS}b>3lsrXF7Km8W(qg&OI$vW6M6AmM3r!?M-(7CS{6|sZKekk!d8VSVFNH7`edu+1y zlP(QxMxdOdI4B_vbvYr@;nTx3K!15RY209^fg+~lpQV&sacmKYWs>}p?)q+M&$np< z36GO!A_=wR6of8mo`jL!dD8I(A|CkS>6>Nr#j2+7*o1y#oP&n%i*&6C#MG8ZjyRHj zC7g6H7%K5tT7g(v!C{d`xArOW$I zR2rVVEF%v#DS4oe)nqG37&r05ex@O}(ys+#E*_HH<@t=fNG~IECVt{^u*g-3%RCB1 zt_l`o{oXZ~q@(|+&__%@4qb96kq3d8me3_ldJ%A*baWrL>4FmS?db9y`UlT9Y4>rp zhII6QujqRQLx&&n8huNkx0>cNvZ^Fc?>Je*_jJuwfymXT1RGQC0C3c8Wwh8;u8TFM zK*W4bF!yI0`?0P#8LNZd*zIwwwA?l%muPH(h}|IADKo;qA;fuRXe@zYM3kZx`CgkDD%gfW%Ht zLFkeu*NM)Pj_yY`T~JaxuQEG2JW1w+;IronPe_~6wezH--=XMxP*aihImX;bHhO`Y z4LTeR)hbt8zCzcSKrGeH1Xs7qY~WxpRN^t80o9k%nNqnm-j1ase_zQ&^MKI4`*GmZI?EaS#$IQ4Q3Rum1nReg#D|0$Q2;7VP3 zfmpt5MQP{>eT*R`#n71@XY0&*H@I!4{m2tn*ohVEK$OgRuGVw~BHezH!v~Kt9^9R6 z+`A*kxNBQ)F!k%q`khmr>AKL{Gmldc^1+i6G~ zhd;^r5Ik~9@=lt2yP^AYMOS(~dOTX3vu|*VlO25jK-Zc;EcIiOBi5STMjZ@>N<8L8 zAaYqS7z_Ss^plSEZ-lmMmhKsC(yi`>_LDYk$$&$boJ^E0k$cHAX)f%B?i%4_$|}iy z4r-3(qCn)+^J%eaU9I{CjU^DV)(KXI#}F;NVa$-?sLz`;hCswYe?d=9|**LAefBxyo&?r(s*6cKukUkU2-;&4}sV&gf3~iSIz0@zA2?G>t&Qh zAhyl)8Yf}p4Bh~z;6lbn|L4tlzhOvAAwEnq_Svp|FDoIDzQV?r>QXyg2%LkE@>8YL)QmHM=LqN==(=l z1ld+srJ&7AKJGD&y&rpq_2^j(858%Ls86x36g)~~ z0{H<61;$#5Kj%r87K}M47jUedovG+L7|e-au-pQX$AZCF7r8i)j`mSP8!_EENiJ(5 z1))otbGxBCT+;<<&5Hxk6<&}gFQ<2&boo72=nnB2LtrV8ja@l6Rx%d^pDj(WNc(2g zrSqht57RL68d2PI50r1AOPVXXp?iv=tE55u6y|&<8~Co#EleOpRtjC(f6~IDg!Z2e zzA8bfLOEE=3F+P$0~o$g(-MfZPM1<;`(U$Mj8&9qi5)C*P2!TOK;)WWF;>u3E9vN$ z3H=dS#)$3TF$PAyi+$d)YGiUSlPL=gj(UR0Sp8faOqa&lk_K?xIbzL7Y?f0XmPhE4 zroS7y6`C&4l19^XbcH9R$<>+jq|5JxHeKWpJU0%B=cLW~-g(l|pJCI7tO=g0G{AQQ zd{0e_d=?5EfdujclCm(JMc6=ao^)wl^)Hl#v{!aRAL?kk*D)7PyF5_cO1??+*WJ+l z!4cvS(Ht<~wY-t|?A+qtyE*Q&P7<43&6n0RpiF2nJ()jz8x~N1OMMa?VDwheVrnk9N&$>1e;8XnTrs zjUw!_j-G~dRY`LZ>5NW=wXiA?7tGEsZLnR(LDiAp;7>w25mEUx-UgolWtu%`TjuB zPPKP=$Awj|ODhn|vqP}b*jr9xA?)WajVTZ@KRqDkpB*%OTN+a!Vt#c%%(q;aag8Yu zG4~4Qlf8{6ONJRkz7RWW_ny&2R*n7KttkjZ3I^ss$fCz&!cMx-!08V?7vzIetj$Eb zz1OD0uT`3sK%|wWXsLGlRe_4@U@%nTF*^d0wqP(;rmJ4k(asgx$7LJGZ69MC{U-Lu z)*p{K=M=+@&ACgk+2aJFWF**3!>!v*m(Bo52RLrJY_$?QxgL8gTLd%bENsH;6*iBjmc3PnEAbpe4KE| zhb>HgNw$$cR(Z~vN93`tR(Y?cAP^}`6bdOaSipt#V~r&cu_h_3q2v1+$4CC%IDY1X z#_=T&7{}urr{3$C%G5EhgKK_#C;H%JVsgqr<33GWAkq#=j=DK(GSijAf74V1B9-%m z$^j(PpD=Oz`H99Bh}d8x>oSEahAYjVYAk_>by-@hxRVgRAJkX^5vxkD)OZa&cS%Ce zz0!sGkj4~5vp2 z)uk4Q<$6?67+TTKs92w8oE_uz#gXED+1IAyMM(Qep>#za$<@ED%d97>xA^=s8b1+OH;+*rCf3 zC(=)(AaoT?*LaeS?iQOal0T$8W9l&6tFCmkw;e{FN%P8X^8Bu%+tU-GkL#Keh;@Ob zWSY58&I3s;{90oPM68bl>mJj%2YXA4U=1%B*&PEQT3u}rjh-qb23N##0V|J z_>HC}5UF(twc)w&>DU)N4Bxb_kshWkib`cMrwIL4QxS+%b_$g=9>A@|}{Z3;GMC=TRvXCCSnN@z~>M_69R0JZGY@w1S_b0nBS8Ggxh}lmtlepKX z3-_LKQTcQO1ixTyS>rXmojV9*CI#E06C)A~@OgqW;d_>*hIeoE66h&25! z&Ln$|o9)WY(;8DCVjib30i=Cido{NV66;x~Jh$UaenZ|yN)t_zU1~8U9?E!Y_H8cgUo{kxJ%r2^)qlkHP#N zqacokeg)y@%z_Z>yO+z?^cR`#%$zjK5$L} zF6l1-g?WfQAK%po{XQ(=Z^G{zP>wV3&u@&!-y;0;A0pm&jZ>M{HAeOKZ#q8WpEY;h zwf`S!Zvq$7_s9QFvPC7bMns#WMJl0GTBK5`P?WSx`@TuG7F!6}vrD$fmZem-NR}u| zBwHb6OURP#ch0+W&+RmRpWpZY_+O8?-FeOHd0zJ{_spF!b0-uPArwSFR2bUra8&3x z2pNI4RM0;h($--J4qa53HoC=xM#Y4OhebvUeFR>fJ_=C*@j`{*fGAW|bk94?2i+5f z`bGOk35LSIK=e7kaj0&%^@J$e3$>6h`iJYR20Jhgt%suTJm{dm8tCQ^L=P$%h>y2|XQ+>YC+gU^aG^J1>HW1(bl zkiJ0sA08=;5=JZd1bB19I0Q>k0bwnj8XoG0b_>r4A?Qf=Ku0Jys__58;$uFVQKMi4 zw|2K2!T)ckx?lt<5l@`L(6AUke}(XXIAJh47D8h^g9CgNd;@}`(fGlKQaB3rr#pf% zJ`fkf?IIuguU*9l-T!Up@G;L;g)fUM9eYAzf};b%gM|tct;`*veenhife~6dTDn>W zS|jxFs8hfLu%&BZ%EjG{M}tC$Fxo$?r3YJT*jfn)MO6;=^cHfWwg$9H%j7Na4TwaY zi<=DMxt4OUb+!;hJK8xZc={qJ5EPyq~h55R;ECD@o95bdwv86579 zrsA*`6Gpj-4v#x{rttAZa|CigxwsfqzbKDzVWfw*zh`KuFjx?an${5AbkH~O@LbHz z_}rwcjUH>6boobG4h93{#uXYr$pKmm|K+9zyp3)OjeAVhn12>a`k1!m~G{hMe92SY5 zo?u6~gVrhGtFFLdqM0-7FB%d;XpadKEpe=Zcd*bi5|!I0Hy1{EM+SsPheZlP0?-kT_S_rxpk;s|zY8aTgjV=Wi(9yDdv6lj_3dD1xwoxv>%Or6w#ya$XnkAI z%>FZ)>$P6Ko5NJUe%_xwVow)JfBAl=zj=@FIp#92z4WY~gvf2VRyMzA&YPSIy^WJY zKWoM;h2U!?VMyg97r@W__AIQ z87J{^o>hdawdLW<;{zTK{;}A;RI=X!#ZiO4n>AD)+*z}3_<^G?9V=8CM{1UTUNQTZ zZ|Upggdd4ZzV6rCs&S>cY-96|qWYXo78@&`7^b<8D>&KHBxm5Z3Nz<%pB#Vg={oF2 zmDz#Ok(Uq8m~c-jTdv2Cj9V=Rhc)X7f9cFGa_(WVdWzEA6_#1 zMyV=}iTQNLShne4`)X6}@0Es#a@w^BV`G zj*1!gZI8I84|H&ueZvOlOE8-^_{oucCH;UUAf}KBq~o#zJ1r$Nb2f+xc0GBx~zV9u_;iRW``aW3r;Jw8Gyj z9TLsvEdFJFVcngh$|irxuJ~9RoLaZ!_V>u5o!bV=NA|c;UH`=QV6R5ACz~Ir1RcGw z?^8*@=*eSi{KXEZp5NF$?@7kd@Z_o*E92DANkhI4(OSIXB}k)P4xl(Gw-F(S$8*Z zkk#IsvzxVl4OB?g9;+L2zvmU5>1MxDzpBRw&lbL1Q`D{Q>y?h(Mkd7FTb%T%=gRHT zfwOE6yE(TJ}-5 z{2Hy2;17zcRbD=7FD1A5%8E0;Zk=D(t=ESB3Gcc-eo+y4`a`>t;h7sJ$JdCTPY9K- zlYKZPTvpp<=EgI<`Y&20U;Od9;i9yw&%67?-H$vcX^?I6Zr$xy3w4u(PnE)bc9c4N zNVC5`#o8)!=8aeD*7v-4f5o@ji8FU+_no$Vc&CT4HZrRE1_CbdYOnXXdM&I=;nSD2C;JXj;9TzHf&KlKcYWaqe zj3-ml)IzIWrEVvA_8QRcWd7TZ8^le^%2(FtO0RS4dac0sQT^Ouzb_8a`|`JcsQ!Xd zmDD-;TZGv&|43}fI5y?ZU88h+nLk6E|18jG+~mDMvQx8b{$iP>Yxg{zemcagO!ofr z8?%3?asBPCzQHfybgYbuiFC!=ALEvO3?6h}ZCLL5`Mr!st*qZs(=GkI$E2z1QM#++ z%^FKi-rpJ6e8f#S+%O>B=Udn0xWf(`&88@SxnDY>QAK`;fA!gi!k2ZozQ3t-jMBQN zx_WrttXn;8G*c)4OnqEyskQP&#L#qax%yXi6ZaOsJYJh+_H6T+9lM51S^e%#!qD8} zKfxDX9JUA)JF5S~>1gKFl?I2crk;NLVqv(^sY7Cmeq0|`&~sSM!KGWaX7!IWnsn{? ztDtL3*7zj7m#jGYSMz*x;`J;3AyI0TgXXrc*qi+FcCq_F*8@53nOc!@Pru}vQb6xmR56~$t=!J&v99+GXDOB2#eJ1TM`4^=2op-Ht+d`C;bmK<#o$j zwCA|SBKIx3KKS^4e$;&Na%EbxZS3`KHHNx3;~Xkx8uT)&3p!{db>we%H|5Ij6YiJ2 z58E{8o}1StJ>Mc9vEhT(w0{*ZxV|li`^$~9LtE#p`~K|m)y@e&hI%(-PwnjJBlEyH z?Bams6_x?_1TT(kSu|7qYrxx7ZPl%FBIlJ{%=$S)>wv}=g?ESJyC?QD?i4j`Rc^-9 zEjr$Brk~!E*RzM7<-P;8{+|zIU7cEa*uV1c&rD63Td%fpf9>1(1+SYPRmJ^PcdsfM zCmkWZE!fJdXR-D*?!J74cJ;N}U);FA+~X53DsFGSR1x2n7t52}J>KhsC+BP14sGv0 zZ0}dO`u?WiITy>y{#xjUmo%(CxleQHYsbo~*K!B0xwh%A$GdMeH#C24OS&~e>h#Bv zcb4AY=X$hP|1k+kji$LzZ?78EKG>^AkJ|8lc{X~1m$on2QW~ClC2f6St%{%Ix%bJI ziU!>${&YRGOmMbo^M{FNY|HDK6J3n|ToxaHcWLJ+hcl{|U+CS>uj-qB$g%GB5tGmQ z1E$YB86@qMzNDjYOUnP>y#KHK`_=ot9D64o8JTu}NWs-V0aXs$gW5}O=-#=%o7K7e zi#ka;XQm#%5!+|R>eC(D2lO%8|Ly$h1h2UD6Wi&=v|l1?v}}cxl?SD_K{&H}BL~+^f zo_?x!pXSCE49oqz#7kvb&6T9n^4*P74s9r0(*B#5PUgWQhq_Jf6c;ch&;R-F2$#tP zlMd~lGB)&1_N;}2USIeVa{cGe%jd_N4vH!b&$Ze3W8RUj-4hk-O7eS|uQ_+YyrAHx z?oRcyRkd}>o>vN2e<)2k%Id_8@FMU_bb~@oWS8Byuhe1cDq;ik2np#6cuDzyoj=P<$evg^{D7{bi^M6_vydye>d{*m1vI9 z{JzdsY39fJ_L&BEB)+*Fcw2GZEVtO)>fWd9)PSg9(<9XdHy?U@x8feRR{bb@w7i%5 zkD5heW?GM*%^e@Ik6*uAAEMTHNZfgE{el`5uKryA3_fB|{nMtXKz>+{*VDSKRoR=L zCi61G*5ZVz+LoKYB-hlxO6h1NU$~EJ|LsOcPDXXhQ9BnHS-fDJwA#adJMU=sx}msW zVgJ+16yFy;^*vDD=X_d5z#rSv`#sgSL>KIK-dOxBpA+c_HwOxjcdti?TgRV!md-AmGS^Ile zroT9BZ!Ev?uG4|!E>F<2`lun5t30{-7`}U>d8B^4_@D0L@0Ph6xz0Sl$@1L0pQ*39 z46az%GuirlW2e4R)3T1~8oOq1a@psu^X0SU5t9XP&VER|IcSW~I(_YPJ(bRJ?Rsa5 z%Wa(h%x1vTS@+Y&>Bzi2FeP`oamA>)WvLTv6B6_8JxJYaGWT`zwduaK;@7II;-+PU zt?g|Xc>Cha<<9cylY;vlICL+i!f0dv>f{VH=a=Dw>@;3?-Ky}@`Bg$6t>YJ?$G(3w zscVzL=>>nnmL6$0dWc)3T+E?6ul2oBTtgiX=?Ba!IGx&l$-M_Q0kP%D^AvJI_j(s^ zJ8)L#T70jf=nj{chv~Z2RD>B77MwXNb7xtx-pfHZgAxT#8dn%hK2p11{K<{5aYI7C zs|z!APedz?nR4Mq^Mg1~aqntHsg#wf$?DZlQ*OJR*cvX@Kilm3VI%7rmxD4(?+Qw1 zT+nHV6pPK_9^WV4?e@+HxpxH`reA-I8e!Bvrg>@6J;@7y4OHUxc=wil>s0$OGk0YA zNSOtBip6E^K6ZBuQXTuph#TMQ`>x9|57HcNaOjt-o#&<*xf#7Y2IXi4cWyWS{*H$r#_#dx^K7Elu0e_^0g6gXn^nH-1!U=4I$K z4|5$^n)F*d_S3fPl;I=9^;2FnTyvCl;qtiSNp+6I$KP9ZETlXSXEuz}(cYMzJ4<=T zsz#45PuGv>;j!;o2M+~L^@K=qiSm85$EMF({$0JPtJ1gW?Tic$NO{{x`ajqd)M<-F zM2ehQ2UXpC1@7_hzD0%6o&(dl<5{vI#cjqI3ngy+-C8_Z?`(a@;5B1bJ&$+te&}3X zTwpx?=!4t=$+I?XH?B(UQKksPLbKLbhqwkXI-28cHN!FM6sg14^ zUr+pQI<)g|ZvOi`v%hLQ$Rwk``1kU$zkfte|5;)lawlVMZ9&=g6Y`Gj=7p@*(p+e3TC}O}{{11f zci-368g3YCeoIeL?4wx3ju_p)P8Ms1Pu%VoAU`%bxm0=6Dy_GUeG>9zYl{yiUl@L8 z-wKr~8}aAfx6AHzN!jC9SF9&5sitdqYugMp_d}uAwDx?E==15ZW48~XoBg5_c7HDD z96WR4t(jx=e$VxZ!3H6(2yTm&#e?|Tthp0WL+%Fzxm=-n$+d0 zO>Q>pPBg|@54~jU5x@BG$y0I1Pke3{Y`j2LTl2l-m3^6Sy?0q3SIK^Fv_HA$4z9n{ z#FENB{ocLy*z1>y`fjJLTCcH_pOdz45I6p~{^Rb8g$8X>-14S9H(reHOZR#?)Z+*@ zUP1=U-Mf9jokH&Zybrt6241_qgS-EKdt7hfpO2}wJ-i}+pGb;0su%0Jce+DLbHKjM zZo2IiWO8yWmbk9?z1P|D?9shmH-A1%xH0g!MwFIf$t#=4??y}C>u3EeR=4c1St(<7 zzy`nU3#;F6w%lm&^YqK4OK+b55C_fTND`Rv}k ziA$Do?X}gp=e}R&n{IRW6W&g->?jkJ#q|d_9!BfGZ))`HKFO!iYQnTGgATbrXd3V9 zuy&x*o$!bEhnvkgonEP5)kpJp%8oUSfom4@=wy5$dg(gD3#Up7*G(|J@O#v7&$x>M zQ{9B)L$AIOzbrWII73lyior4Kz|%FKBI7&6K8^8=?VT2p@GLw1>z+<0zHKY+G3?8T zs2X2C=b%}tagmejO*_9*8$PPuV9zu`g8t3*ncqHt{wfvu`J>v77e+40$qynA%#s{F zEclAWGxf>0xbr)2gAF&nebSdzb(6PQJNlTW(wm!~at{qT8U1M4yc>VYI&W}VG9WKP z_W^g`r7*=LB{iYr38ntYu8VwvuS|FBGh)((DP2EZ$^0N0Yn$d=Sm7vB^7~2tGohc& z+u&7K>w3!U6FV3X`9`+uaoNnLGEZ~%UVoQ)d76DzuvBT+y(JDW$L&`BWdG>ggsktX z4--F~8umIgD`V-f=*sUW3rh5zUTus0Wt;VRuf!L7g^=gmc=t+?6Y4*HIZi_NTi8vj z4+A!gP1(EKIWOC^_)5Bte*M`=OJX7ww56J6D@2Ap8g*EA?Q30)=B@9?c3U*5{O$!! zbH5Qun=*?Bw42*3quNv7L0kFR_s)|I?rb_^Tl?k3IF`x-5;G#=vOwbIjd z$1wlu>DsDghItXq-4cDyZ}GOOINCURY}&h}js|`!4MuM@uTsIE59Y_7yU@+0ovTUs zrnEZk%A-GLzq|F!CoWTV+MdSBM2lX*QRB@nioaOVHAG-3h*n?FUF-O{@Z&O39v3Gh zPwthXbE)9jekbL~8CS-dJ#+~$IkslB?Xi&ymaLUsb>Ky$K+>gdt!M2cmFGI1ZXt?# zKefzUz7_shdoo9PWWK?M@B4*oGBqA({c4yj@pWjT*Orl%75z@h-sz%n?o~sHwzuN( zNq3{99o6>@IG3JP*3s?d?}a+EZ+VRyx2!-7x1t0uzOaInwjch&5 zcI90C5+wVc2}qscVrEjIv2~wEuB5$Y2kVD*v##!2=OR^b{nviGt?P2`(WC>uUw;hLbD9-XTR7z8+H==$zOL(Xc7WyDa;oa=w? z{G*3s=u6Y1w~e^@-D>^A0aYt@4D(UC@x4>d-{Qa#e*%J6M?GG%!7OiBW4|+fvmUGw zUl5#Xr7-`I-ZoE5?r~|U6IZGvHlF34pX6>WO34#WZRYL=G`YM&rJbI6runl*^5BJ^56TW*Wz(>K`1g$|j+#A}e!3cX zPiaGNgv!+LiX98Rx)?}I3waw^rMBSs@z+&1Y)!fOHMigKsT;qVoa|F?TDe@~rCz<4 zd+d^4?t3FTj^DlbN8cSo2d;mjWU=lL*B-|CYrfyXd`?b#;vnGVQ z-$5y5t%m&h=?f#$eVu&pCi4q7471h{XWf0i+1l=bLqe%trxqGEg#n96}La!>rd`}#oq1{ zOV^JzND6gycz&j$@1-dF4-*FME92@r$|%$9%}eRffX@!QP4@43_d)J@?y9GcYq|5q zl=q9RuDCAV$&H`thu`uit)3FZ@f%Y77p?nnLzTNfqPa5V=Oa7emI^n0NeStV*OXPO zs*Mw*JaPy7?7fvR$;$U@=ZGmw)h>9>OFEI8`*OcW$HE7bpVuW-Hk?@a)%y0a1eG0% zd(7Rq{=4uhd*R9($p#ODr=Q#<(LpFYo@13-d3qdIzucWmn)CcstvG-4tmI4TKI+Ha zYxYQ=x!c`qe_zw%C)b`RGFkkvZgB7QmyetpSST;;c8ELw;l_{G_xn<(Gcr~WH zt;1cjbT_;{@MYX(y_uW89n7iNmc6mp(W{o__8EQ_PST^NN-6lws&O+q7J9TMs@=@X z`N~bXV!OKUce(I=dM6LZFFU#x?=HF1zKg5PAMWvQkCv=XxWD2Qx4&)A?<@1~+7u+E zcpLaFwR!8%|Iz6DCk-7mZ)`YR($V+Pti*?T_G2|Wmc7j9+KYQXh3ijlym0N?P)e<{g&xRd*0~K za7OajP+#>Q?iR*7SN_SkwQpEXgSC;evUFs4LVoi+|B!`amS;%)vb?pX&OTY8a^R-> zmYY9@%~{?{;lZ?{L04yAn%2|U%TRx!&NPL>ue}y*`1CsL&6zQ&_iesg8t;1Am~-gj z%S_2(+wRSNEA5u6@wBsv;cn+3ba65nsc{d!50D)EC#f=e&+r1>rhsMRN~h#bdS+=e zt<0!tosz={siA)~H;NyhsTOK!H_YqmO^q%GkKa0f&CSPqk&(kY-xu}e^Kt~uGmmM@ zmJO>N6xMF!+^h>O`3I(z&D!E(Fz)%nn}=VGS6Ey*dXK|{tqa|6D9k$U9)0Z85{Cd` z>b;qtE?1?^w+aXzwD(b!OZ9E{^_#whtb8VybX@yT&UZ82TZJWM_9{b8_nl*Fd92{A z*+^Z9d&_QJ8?w>xTDg-=?=6ovu6kdZd~QwtmOd9}w>ST2r(mILXmk+Q7M<=F4tUaDx08DyJ1aM1nDqc?_W7}rcP&l@}5F`{pmMKA5+PlrnVdi;Fb`QT`i@|Pn9M61bk?jD*nv^dK1i)qK0%;84;UdG4y8uN?B~)g-MqpWU`5EE?9e_IstLc4qp|N0#01rA>_Z zoYC3oSk~MSzYYV7m&X0lI(@xrUeA|zEDUXm_imZmf3>IG(Gxo^rY|_X*-7O9q&!(X5Vo0NcB&JlM`;;m@@Qhq?KOngojsNFSyWCd2#cp{dG?#%xUZ*<$QHY zzdm(Exj7fUHCZqAbt{hUQ1sHz$6xT5nkg)6J(|`|LbdyhygMTo()fvi^ex>c2fWqfh6ft2;MtSa_m* zOiX&`O|wG`151Kd?q4;!w)s?gmun|3T&qeMBB>|q+@QWKeXGDGdsy1I{f)I&-_Kfy z*BKo28{pC1rLlv4uEc~l-Dg`bXgu8TvO1!4_MhyKfl2f1-s$Yv^sMu!ckSv28ojpC z8I?VHN2z$8pohev-ub@{NS|nW*>6!p_jQvux#xLLoo9spOC6TV9WG{$W|e=QOV7+R zH%x6gQRpl@Ju|L)(MSGF5x*4?1j4#oF> zyKENg*~96vrf~fJu3DqUjek>Y`?ALbi#~BHl44^f?fNL6I&0ytOFcfSf8MLQW^L}s z%Q+fd+j*{4oV9kfQB{mCMiCheJrI%X-HM(&qBGno(|W~3Qmt$ z|7Psv4?33)KWONGCHnR)+e~4Pz(qY}tky>7+igEgjLC3TQBQE~FXYGdiKY*kANf zQgMNauh27EQ(JqDm{!5( z242D6Rb0a;_~Vt&8O0ght7DWo=$<*FWT1N=8RZnZ7mljQXI;Y{M#0x9Zn;WQix2(2 zANHV%^VAST$e_EtVt^EFR5@O8K#BvS%t49^RWzf8anVX4@CjffqE_vV*2p4|44i+V zWeeRAq+tmy?F9;`^wt#aC~-0T`6-;L_4id6PjTNj>L5blPYH{Qp(|=YUxw!eY~raL zlGRa!!XJ|t7sJ5>@OMGP#rmK%Ues2e_7(NuD+G#**?$9xwj6R+^%HfqOw*4EH{+aYO&mNuuT862!&u^#*W@KY92&RMdly7;!QDjSoD2 zB478767>uMPZ9BK9DY1p)T00%+#`4i)UA6e>KTk45f}S!&k*q7c@Q6sMTY{(ywSQ1 z6~U8;Jop%#5pgP7G)oCQ_?Hnzpsl$f601Z#%HYA*;ztcEP^???k3Llaj}BVnrCdvh z4mI53t@lS2-RF504snCZkCTAF&luzbZw`83rDF&4A%( zE40t)U7{X!@Zj$_`-d6%e113U?6JmaJK-u6-GKxtcd z+;ZY#_}j{O)?1h$_m3lNs}=dNfu`ruiF*XWk-6#S2QeiV3)qcz@B@%j^vqU9Jc9@+Az??gR# zrW6;$J&VgZv;WT&QO_90bE{y;8Bq_K)=@dGXpQT&Ul36x+J=VUaYk$0&SQ)%YDCL1 z0?!q+#``mVRl`4y9rQ&cl*M^=Pm23T`xt`1Q*+WLBJ&^pm96Y!uNg)#3h-|4xi z$Mk>jj0ewqw3a}(UDA=3qUD%@2Y)+n2-@oDp^t_eZmHH|%p5%UJEyqc3qGYGp{>UP zJb2{eM^?&RK~MExG`m`7AecP<5 z;K9F=fF^H&_nKv>1KWD0f#(QXPK##f$RL?f*CiXQ4;L#hTC> zkHhqnkN(l8p5Vd1?%4%xo%rc@TQtiHJZ7l6-O$#d%d=6p;k|F&KHlIFB2N#rReHt+ zO(AVPKH$N>w~NPy!k!!5MLnphXrGs&HLm;RStGxRdVIlyuf30FYPS~+TSYy7;OU8W zK@x4v_WBzk>hT8;eulz}?WdC`MLhxN5pgj*^6`>yqO2_HL0yPEG2lSo_}?aRRMZm$ z9z1q%s~p*T`5)!r*+5*(o_K<`c1#m32anR0a{yewk#Pb z>Inl6o?-BE?wmRrB5lhFM~{e$X@Uct^FP_~k9iC=EArrPs$;rcqQOVeaw5T_LdwzC zEJT}av!cL*f13i2)nPm2c8PkT!Gph%kLQgg&86rNX@u(y4 zc#in>7)_9E%R$owDrXB?<3}#VcyAW<%mokrougi8%YN}N)X8njnFk(x?G3!opTm2} zihAaQ2UQs6v5czT%S1g3z_XTkWY*rS6ZI?v&nC3Sdoelp8k$$z?oR@EHWJSh?V)HO zwDlx{XBzPYZOQv2>PZ3*o_q1J{B^UlqNpbsJZRE^gnys6ECLVy_I!J^WjXK3Kjxps z;ITvPjE0cFf9bP-?9USLD4;d2O~vv7KScKj&tT$Wcz^L?-E`s~ZHSs4d3u8bU3qX< z7Mf;oiLK|=6!7#%`y++6N_vY=6!k0z55BelvI*2@>XnIlR)D7(t+A(HxA&bzJuAV3 zem$r z=lY9!)_@1UGly(~!os=#=nFJOqBg{@D^Z06N(=FoW!h$~1rL@{)dazt#L&}EThBW1 zSfdUbi?;MD3=Z_3UiFOqq8>C&AWsePB);A;P}GwSo(sfdq8)^Gu_U&AV-OXO$NX_^jq#$M-QeN&`Hi0+dO~Zv zKN;ZhL~H!WiV$yfP`35#0S{^v7^_buc8(VHWP(Qrt?}ZuyWay*&tCM1xY$f^pmWh1 zN~)rsec+Ks0}PLOqjmHCQ4Sg|sGLWr0kzOpzfSM(iW}=UiFyu!C!2T%noHag^&AGzE|i7){lu2RS42J8 z;E_UWyu4}LIJKpBThE#3&_#8}S8_#DkYKg2{vYG#D0upzHC|#?)eIIb=NNiKTr3f- z(Jl#WN}i+fjJH~69S6@7w8o3{$zwl6_xS{RL|hCF2xz%YGe(XVEhh&&xQ)?n3!1d% zqXC7tT4$XE&oI13x0mN#(6DXmIRzd(p7EYa`CK z?sL2s|30V91J7=>#&tXS*V#)n>nwPh@EYCvx$M>u_2h#`76svQWWKFMCn;^~UI3n@ zc#Uo`krO>dJ%!*&Kx+`(&f8!5N^ALj|^)D!h7o?CD^?X)zMM9aAV z9&fxxx2D4t|Cr}5g2x@L(cvuk6m;Yt&ncI{ql7vXdjbbMbP&xd0uTPpA3P_F$#+Hv zQ``2r44xB6#^ubnGyN^<>2}6dcjB*`;MIWSRE44K3p{G zE|l}%ZFmnnxIgip{(Fu>Pcx|Q|2;=l{14?k_#eu72p)Xaf$R04gHxPny(+;Yjn;Ud zCs%&;6!oCP674gdIdQ*xNG;he>Zt+`o)xj@NP6&6QO{%Wq@y+7pGTRGR*QO`fCoP# z;BubISbl8rz(tijqL79c1vE4JdIyI^30v+HMHuGG-RG3ZNObuLvH;~LjP~Y)mU8fA zYgi>pC=6niXklc~SBg!7CkjoGYwo%2CcxF*0 zf+#bol1LOcs-zJmnJT-8l0=oGL|I6cb3{p`N-0r#Q{^#HWU2C&C_SjsOq7FEk-$%4 zXxUGdzC_ta6;-0Fr;0vN)=|ZRC}~u2Cdyi>coW5zDv?C7p-LiAtf{hwDD$bZlPGhk za)c;zs8UE23#!~C%6O_&5ygip4MZ`a3jTjGysV%KerFahDOAC~=!KWXR8c3&5~|=| z=D~|LRm_PJM3u=zk)(<*QNpQ$f3*fL_#$O3V}31B0;qC;D1lVLztw@4V5;EXvA|0R zRq*dU;00fYjT}ux=}MK(_;eU8VN@AJ6i=#X6UB}yrbO|j%4DJpp^6_-6sa16a%Wn6J-olmJvmPDw~O-M3ro!45rEjq9{}40a5x<sq&F1MpWV6g!Z6H56PB#MNwr0QKnI40#RJ3;!2cNR0$=@YN{+Fiau5L5M?D* z&JkreRUQy!7gatJMT06`$y+|1sUk;|tyDojhYrhTs#p;vohq}4vV|)1iL!|*n~5Sp zm7_%ILY1pT*-n**L>WMpw?yeqm7hfEM3t`ir3qTxsWONtGE~taiZoTsiE@}Ku0+YE ziVsnaQYD-yBdL-=loM20O_bwQIYN|URJlx)BUHIVlxV8FBZ@p#I(KWSX)IM#i4sQ@ zW1`HaiUU!!s4|l%hE$0miX2r|5+#xpWN|g$tL{O!kD5+Fw*Q2GTW>o1-6d_ec5@ixqCJ<#JRi+cgiYmcGSw@uw zL|IOi%|uyBl`NtxqRM%qI8x;{QJkpqoG1dMv=exsYlj9!MF+LijC<|S$av5ds=dSK zv^ZKQq~I%kk_A)Y=qix>f)(`2g@54!SxUBc`kdz$+UO`i$_O1I-Jr@yqFklQD5Bit z6dhfn+~yQo@^wz3C10ZoS8@qexROgbg_eWg>0xPVb`{0T-Gjg*J26+LaFNTYXHa2AxThg-~&QSiuIz$my4@jEp< zh1+K+I+^7ayw8gm1@Chuqu_nkYu}0*p@Vku7*dqcBYfRu(LQ5^ulqPg!R16S3ajqB{Z!S-eK?!=fAdu248nJ;Mr|I-^|?)D>DN z^OP!~z$0j#^&BV#w8mN5%lhZupjqaGdX64pv#PN|vv$fDw9j}tOJAs50mwZ$(k2% zXdO>oCKPy>tXd{Z>4C|R+cfJLp}@mry=JnG`4~OpDd>FkICz+>I-vUEHM-sREDw19`n`iRt)V;Mh=$9xIR(kB#nn5;&ixGX&8dCG=R;9;^p0o8iU zm(nZ`LV<_L`pjhEG0#&A2n8M{>kCl0vAF)aOS85S3Or0!6O)Dei>LAl1s*2rD^Lm~ z3-?z!&8j36c$lnjOcw4hp882B@Gx25fg*zd`m2m)4d{&?L<@MBtRF~a=O~`iA{2O- ztY)CN{%SY2L+KrwWlAXUFj+sDtiRn>4dFC7KmaDDW^@znQGX z^Y^^rsqKUU50mu=C_G2uu_0;du>Ug6I!`F@Fj;?@tk6f9Iz07^P~c&*aD=!Rc>`21 zvc5yoMVj@8P~c&*#DLylnDhMCQF>j zs{B~rg{Q_43Or0!d!V?vH|R`RE>GDL3Or0!2PUiQjh}%$SU#nnq(_2iTbG)tRM z;9;_)m@Jq5J~MgBiBRBSvZR6H=3bx9W`obstQbOphso;3WO+synDf+DLV<_LlA&3+ z-q+;&&B>!#7YGF&CaXJ>)#LSRU!J-{DDW^@J%Hl+YkT96#C)3df>7XLvhXVte(s%T zWai9Me+dO1CaWib*NEV+JIL*Gfm9ww_7rSJ^!Xz^Glo*F?Y@Gx1ufl@#O z+7Orr7u-5evnCJ_tvH_YAryF+tbt6uN;M{Qc|x<22?ZV|YY>z5sQm7Fo;pk@@Gw~lBK3Mq zv+fZJJWSSLHtXnZZJzo~DDW^@LxAF*E6qNvzo|;Il>4`|Jb0Ka{H_OoeCZf0h~=p< zgaQwfr6iKIn`YS&3Or1fGLzM;bnZ1z1rZ87OqL3za2=FOU6nV|tfhnk50j-zDSRvk z?vxwKQ+o&n9wuujQ?ES-D!*jVEc}fCynu(vQe(1|cbN|0smFu@50f=aB&!3>`avl0 zFj?wMR`c`>GoI>!Cs(w9hshc)lGTxB4I>nIm@Ex8D}1T~PmL!Oc$h3rk*qy5%au^z zVY0NCEa`k{ah{4K6nK~{ZJ_YHftQulV`k2xS<49p9wuu9lZDR#cq)TX;9;_KfFe&h zg3U<_t!L7#JVJqo$r{OIb-i5Cji<^91s*0#m&uxPru>o{&8j05c$h3bCM&z$iNibv zKO>3S2s})dK2Y4efyaC@&FUi$4J!Z-lQoLTn(tJ)n5Q%e1s*2LfT`EF8>J;lG|QY& z;9;^xGg*f%O9t}P3_^j2$r=L`cRpYF_skrgiXaqtn5?l(R)hZdAv~2rDDW^@hCtzQ zh-Vv?KLV<_L!tczsyyt+k3eJ5n=c#f+frrU5X0i@# zJTAsl^@IWslV$QB^%5J{GB&`&WSKHqhSrlu@mc){1s*1AJk7%8`iHGbT1dyn2tt8} z$ueWI@OutCWko3PFj?k6abrHBUUgq0&6-Il@Gw~xOxCmJ7alwnLn!btS(cQ-^}^3z zy=m48LV<_Lnm{Ss%lN#Pr!oiy9wy5QCjar1_w zP25GE3L_MFn5@Z6*4WYlOP*RvDDW^@jzEzo4?(EpOSS#94R;a>JWQ4olhsMfq8(42 zCKPy>EN7s&=gJ>qE>Zhv)=ffzhsm14WNj4-_2H=(gaQwfH5Djso?mQQ6U|dU2n8M{ zYZ{ZKI;gu8Pjy#l8ByS2vRs%fg{~$pJf%h`@Gx1fOxDV6Q$O>RDWSl_WKCzX5+yJ8 z<|$V~frrVO!DM~TF`UO!5rhH{ljQ~!Hx6gTidpki3ZcNmWVth0Mdz*KcxpGHz{6zC zWU_8FS)SynJVJqo$?{;bE(hz{@KiaWz{6zCqLctFc|T75r!)u!9wy5ND10nqs#DM9 z0X$_!DDW^@LMF?~uX+tn%^(zbm@HqQxZ~^ngEzN$DvD6xVY2*~thXhzy?JT{p}@mr z`2&UL4P39Lj^>|vY7e2n!(;_8S)uiZ4)Rn!p}@mr1p>v5`A$O=9`V#&LV<_L3SzPb zFK86!skejz50e$lWM!tFR^uu0A*iZo0S}WE!ep5%517hR{RssgCMy)Ep{PXMhPxeY zd-BvsLV<_L3S+XA6kQ(klntT4!(@d6r9iT3rXAeNQ{IFE50e$aWF4FlUC2}O2n8M{ zD-tMf92!`U>cmqU2n8M{D~ieb**NtjPaPo?c$lncnuV$+xNCn;GmRe0R|y3kCM$-? z3OhOM1y4OC6nL1dSek|VEB{fp3Qv6@6nL1d*-Vzni3KBhN>UN;HM+_S_Aps-KyhO} zdFK4-Jf%b^@Gx0(n5^zM9oqAhA)&y-WW`eo?@PkK4j@UkmU9VZlc zn5>0N*64~~GCXySP~c&*5@;4~t(Dy@U)$0)tR@tAn5;x5>u zde`35dCG}U;9;_s0L6`Y&r$O_@Kg|?z{6xMWwH`7jiY!fnNZ+ivX(LRn!Kar3r}q& z6nL1d6eeqzzQi(~${`eZn5^ahQLh_>0uPh5g2}2?yz0tly&x2Ln5>mR;qwi&A#i_M zyV07Cjh}=950jP3WEH25Y2>LM_=8$#0S}Y43Mg)DjM&lXAx{k@6nL1d)lAlN}>zYr^)av>CWn5;A=%P+H1hNr>_1s*1AEl{0Xsx83pv(2Y%xQtNX zVY1dSS^X481n|^OLV<_LS`QT0hV7QxEArGSLV<_L+Q4KzEp%POQ>BCg50kYKD6S2g zuKAYn)GI=PhsoN+WQ~2>ub!uV6AC;`)@E8S+>CbF$&=>NHteO+(zM`VveKEXvoF)U zcxpJIz{6y10g5{pRXQqrm#4-P3Or2KRwirtx_on&Ing{XJPC|i)$=b;UH zM1hCN$^;6J4YVQf(ef|%p;>B#0uPh5m&t0}5pBy;7K8#1leG^hJjvqzk{ztFmZxSB z3Or2KekLnSZBGH>%iGFc*=uN;9;_kQ3_|__cvD1tQbOphsiolDLkV7 zD#zRN)Jj5uhsint6!-q&Xh~sy3eCzO6nL1d945=z(C#!(lBmq_2RNaJXK35@Gx1Yf$H26B`6<#rP~sk^@~v8VY1FJSyR1YfAEy7 zT1#QzVX|_Wdg0I8gwiZELV<_L%44$L*9BPflo_GG!(^QW3LndOk-LBI{(#R0Z%<96nL1d>p*eyd{E5xe!jE~zY+>OOx6u1>*B)aQ+P^R z9qlw)z{6zS1d5vvmzsH_H-|@bP85 zcaIZKtsoS5n5;@BE9!QEJx?7a6nL1dM?i6Hn3lK2kf-hv3Or0!6_a)B*(7zI`bH@5 zFjCm{fi-~uJWSRTCM)B2u{=+i5ehs^)>ELk|GUxckkf~!0tp2k zChHlK)ybheiKo^P3Or2Kb6PLlUv_=cGI^?iP~c&*s+p{3S%Ixu;}xO6!(`O}#m!Me zFa0p_qHQRx2~8*f50mwR$ufMf`2B|;z{6zKGFgKMJ?Y3(IfMcall7X((mMCIo~ND=3Or0!9Z=kuKU#J>iKjYgwX`94 zn5=pxtDlXVE>Ddh6nL1dH%wNU(e180HG@##VY1#bSzganhw{{7LV<_LdIwbNb8J02 zHjWYsJWSSmCTsqj(X~8PL@4kuSs#Gno|k2W?s|SStAbGAVX_*SETQg_nLO1%DDW^@ zADMdL_w>fntWJ2EL<@MBtVSjapU?A@9HGF&WPK9JlA>9|2?ZV|>ob#;|MXilPni-5 zJWSRXptv@~uVKg0tSN*750llzWI0W=)ZrTKF~WD4G>dDDW^@-zbG= zfYB9hay+$$P~c&*zEg_J8cnnI5(+#_)(=YItbVgAkMLAJp}@mrHB*YqGN4&ygaQwf z^^;Ouy?CmYP~c&*eo>0c8bh;w5(+#_)^AF2_2Q}SG9wgtm@IU82lQD-?zuA0?i%{<5bnI!gHYgMvha7#`OmZuG^jhp zQ}YQ09ww_Dll9@!q~kobl~CYevc#FJvD>fS<*7VEfrrUz4-|f`#4W#b+4QeG^?*>| zVX`_fS%*6g9M4ltgaQwf)e$J%UpTAjOnfv?$>OiyqXj%nRwpLQsbtF_p5iWe0Ujo+ zGtI)K%0=!jP^SH5PqM(nWJxetJDkUN<*86YfrrWJ0uVyIhlQoRV3UkjH$y2t30uPg=&Sd$npSX~x zLI?#OCTloQ+;fUbr-pkxwTe*SVX`!sti-d`=XvTVp}@mrX#&N~QN!YwNbyt|p}@mr zX)#&7^QV2|sYXJ9hsn~WS-5Y?JDf?HO2tg%eijUjjK zcxpSLz{6x20>!<*fv;0xM6*s33Or1f5tCKo^;nOmN(luXCTko}+&DZ^=z5B$UJ(jB zOqMZ|btK5JnWz2|3Or1f36s_C{qjbh>NmQjX~Dx}nKD^ly4BC+sgZ;N50f?iKe8qf z3Or1f8Iv{9H`9dA@*@;@m@IRk@c#wiakzHO56PDDW^@RzPuM!z#WggQvvCwDcEvn5>CR zR`UbTAf6gPDDW^@)2n8M{%bv*!j@jF)zs?Z~JWQ4Y zP~3bNc42w;DmpeQ2?ZV|Yci9y{^R-eJoS}O;9;^HX}$0`@F`n)Z8gp6F&1kA0eF}! zCngKOr^i#egaQwfAr%estE-iCd-w{(roHBou}Fx z;&vAZz{6xs2a20Fru{gvQ=jgkDxtu`WX)i*%6oO#%2U>a0uPhr1{C)`o8plV=wz2` zjbK87hsknhvPLX+5c1R-LV<_Lnh6xwhDLuKhw#)%LV<_L@?f&2Oc?Q%ryddtJWSRs znuXhVc*>71D`~xc5ehs^mM4=n`>v+}PYp7{B?$!JVY0k{;^toUGuI#SlqsRW!(@3g zS^A5+iSd+>P~c&*e1IB&_5&YZo%Ssp%~L6a0uPfVWU>akXsPj3Hle`7Wce~#=2k*Q zo+>94c$h3dCMz&BB7mow2n8M{%O5CiY-}B^pU6}F#^H8H-wekdCM$r+`ZV!bd!8~P z6nL1dK$?Y14YWAoHk^(PPeOr*$qHh!QZ{ec$5Tm!0uPfF3=}su8Yal7@Kgq&z{6yP zFj>EquPX7>WkP|6$qHq%%=#30@l-9Lz{6yPF>OP^s!(_z*#m(~)4P6IrrCDDH1s*1AHj@=q zSG0tuWKHm1qwjxV50e!K6gO`;N;x_5)Cd!R1mIz^<}g`DUb@Qj)MP?|hslZuiW?g{ z+pRa|sR%-Whsm1DWIZb08P8K`gaQwfH4i9!eBou&-E#BIv<;7&fG7YDlQo~o8Ze~k zB2SeO3Or2K0$MLz?iNF@(sY{jfl%OKvKBH~qbBT&=P7AZT#`Tl9wsY+Quy)7wd-=X z&@2r?frrUTq!b>9`2UxA%8^juVX~5d;>N~@F{-va6-y}aFj>h=mVbWVZ#=b)P~c&* z76HYL4Y79PKJ(NiLV<_LTFhkCf9bZAr|Jj=9wuuE&BAS%dZ%HP1Z_j<@mNEjn!+9? zYbld;IM@*V5Ds@nq(La~Fj>oh;?8>~$6o8fQ#OPG50jO`WbM4Wz7tOc5ehs^)^eb@ zHZ)lhbeX4C5DGj@*8eH(Ou*zSs=nU{vdSWh><}=#vNMxpG8qMW-&c|VvUYlAdS;r; zOi#Ld5)ynNBD+dJ3A-Rd*ks>THW68seUnX5KoOBe@D)_}&N+4JR-L;{c%HBGWO};l z|Equ1sk(LR-oE$FcZJve@BQIpL;aK~(g?5bIbIm8!fAVz)_0=uC{v^nUf&m9dz7zu z!BB5AMH=CCI#K$5hmF?#=FNs$KaT#P5NU+h3gLC}7xt+cY7eGJBfQQaO7E9Hy!DEM z3{_x?G{Wml;q~4tn{8#NF{Vf(ynaBG?yvS=j<%w4I#Z+(UOyCG7yteFU5wZDOp!)- zoh7^;T=kw6jVG8QjqqA2ysp3OjT4O5`%IBWc%4m@9`lj^U4EFMHchDhB8~7mM|f?% z)`9OEY9>>p5nkttcEw9K?PsX@Op!)-ohQ7)p=C!HYB5u!5nksLrT5GDJiQ+|WBy#G zNF%&15MJ+`J^6P--N+Pagx7^cVGP%R|3{vFJ3KmG&o&P;MH=DtBk2Y6yrEuWiZsIO zBFAe@@Oog`Q}E~3wAa6wB8~96Sa|J!MeAxqeL1OmnKZ)d$3*FU$}<-)zr#?wGesKV zb&2qrU-@*xP;sV6BfNe>l-|CcD()A`ceYv6TWr{Sy>k8qu*4n9m8R~aTkw$o3 zNz`=cP8=IUiLWj()CWwFMtEH%yb_1Z+tyGUq}13Tjqtj9igrzBiZsIOr^4&DudVT@ z@!F3m(g?3>h|*(2_SZp7kw$o3E4drI2GEN%!s}Lt!qJQOR~jnL6lsLlZA9T5g>&x( z@1A(`HICQeOp!)--7dWF`a?r4Wr{Sy>kgvydZYfOlXo=KN~TC7ynZIU_N|=VHq^~b zkw$p^oG3l!pWSzZOAYlTQ=}1IzYtzm+>!o;q26VRG{Wmn(XQ)H@2MMV!whv-h&00M zF5z|Wo7Y@ps6Ch>jqtjAigsn0B8~96M|iFA;SnzzuVJQ0BfRb$2(MoWuf&OGUTml*m?Dkvy5FI&Y4~iG z>m09lm?Dkv`n5yh_J!NBq1Mc*AdyCRJwTKm^E*Ga?KDGe#T03T*Mq|A<_o$rhT4ZI z(g?4IgxBfEKQw5l6jP)TUJnben@%|Wn}#}qDbfh9M~K3C17Gi4d%{S^iD8E+(g?3d zh1d1#_D?s|*-Vi}c>RW`Y2br%)bi#3{m%A|*X>M^MtJ>Jc-41k?PsW$m?DkvdWv7?=_D3(gYN)T~pwjRnjqrMcsC88~JriTG(=K=v2faumyq*+Z z2Y=~byBey=6lsLlQ=(m8&z}03p;j_Q8sYV{@cQ8+H{4~YyO<)4@OnmgoxSy;zcADr zOp!)-JuAFkditI37;3}3iUw(f*K-bq3fxyNabnoR6lsLl^A3gE@`Bpc-G(YLMH=Dt z0#Ue6!57{exUb_i#1v_S*YAWEK2Oh3Co)AE;q{`&Ya7SwQl>~Fyj~Jsi+}ZxqM`0% ziZsIOWsldcj@KWUB8~8RMR;9sTy9k0EZB8~9+ zz3@uydEXX>sxU9O(A1}CmzsCStnjqrL$cva5XZXZK!TvGi-8sYVKqU~_5FVv01v>mS1F zmg>bdL%qrrX@u8@4uw(1eaaq=*QZR8MtFVXP`Fh-_;3VnGXJ9LrqEZ)>KD=ouYVG? zD`evwb>%7h{BhEu_F{@O!t4Kp*Pk!GZib<9Op!)-{fj8QX2WNg?Cp3BF-02T^|A2! zXw`Ec80r|NNF%&HAqvMlzVLW?x#P8hDbfh9e+#e0cfI?Tp{{0%G{WmY4uxLWUt2m} z_cKKr;q_mK!v4BtgC&<6>i0~MMtFVdP}=Jv$LnLJNF%&Hb13xM;EeqrGSp@jED4@O zgBsz5)4RGC2J=^}x7G8TJ6?M-MH=C?22o!E0=-tAan@Rf$}>e8;q?Wg^c=Ox`ujX! zs0LG{5ngKwul1ikyo|c*H@k4c=aj|P=92KG{S2W zqV$;G_Vm+sGt_^XB8~9+vhX^tl$&R$ZRV;Nkw$oJN|YXlf4le67Y)_R6lsLlX2NU3 zSqJ{vQ1h80jquu>D7~-5`c<+gxAiF7yJ?`eeqAb8ET{Xs=r7hyuK>D=DfV# z9){YLDbfh9=|t%m{&vwV+Zrmy6lsLlF2d{3OYXkMP=_-`8sYUnL~RZYfL}s?Jg{rb zP>Y!&jqv)K@Vah%`CW!OgDKJouU(1qZ`ajKkw$p!CcIW=w_0Jm?q`ZL!fSV;>^Umx zjEz^BB8~9cLwMnH0uA*sQ=}1IdpZ=31DrP&IbNF`h-q+jENX<;UJeDngie~d-V=t} zn<>%=uf2)F<4Sz3ef61Jec$oQFhv^SwU6*R_`AEWYp4cOq!C_SMCtYX!?%9>zj4Rw zRHjHHyt;+gszssg4Yi6X(g?2^MB&)L7p?*7j@P|Rkw$pU6khnZO%3%1Q=}1IvxwSU zS<$gW(eYaEAeBrS;ngF&@EF!myD&u>;We8m9Yb74WgV{wQ=}1Iy~69Pt3TM(P=_%^ z8sRmEC_9E3$7_-)(g?3U;WhJHYu#_C6-<#vczs>8>z?_iFF4Kdx{@i<2(NDlueY9l z^g}~E!W3zQ*S^9FV|aq&^)^$a5nlTVuakyf+tN_$9;|wqG{S3tqNYJM9xwMzzi|Dz zj@NXiNF%($!t0_|%21W}mq>?uy4xUVP+${jYVJ*G3`=)wF%@;y@ zTU3gu^;kE3w~HP$RFWywNGeU#0;Vq8e(gOCwSXzqNGe0rC{xkO0dQT1uHpSmp+-_! zqTmO;w!QUkc-Pb}hp1H4NGeAZ9*N`Ylg9Sj8frFEs8J;y3@KZIPW3Vp!;peAlSx?u zDbqyCsgQ!Bfyagw)jYZLCGVkglE?3?o#1U*BdML+!^DY9v)A>dQ>M{>g14hFZWBY9v)5 z>N2Jt`f+%%p-yHBHIh0&c>UnE3n84k-#=suHIkZ3)cWl8{Eg-F47JT+Dj7ABnn%=E zm}(#U_;rTrWePQtnopFTqxz0K=MF;+F@+jQ9Y~b!uiIWc_#1}$E>ozH)ImgT$Te(T z^wi%Cbq!Ofk<`IN>0Z8N7o44S3?E|(HIn)!Q5&<@=F0Mwmj4qy~x7?Rt96caAsI=}e(UQgx#A3~@EjuO;k-`Hn?q4s48HIiB=s5QQJ`=1SUAXBK3)F@GUOS$K+*B>=hlPT0l zYK$noEnjlvI?o#F45m;csd1w8d^ng|4Cf4WAl0qffqets3=pYkyMK)Jr4JLJNz$04KalpNwta6 zF}(fBEl8niwt^|tNUB4WUi-}%{&*+jbrVylk<=tnI`YY1U)eF#V@#n&Qj3YwGr)b* zUwh0@?=poNNi88t$MF5cUq3L^S70RL3pJ8DnkXHO&?yng`CE6}(pm$Y$P{Xn|K*UfD^$R{VmyY*(Ia!yP9GGh>wG(xgBt1n zEu!?{O8uGQwT4=o4{uN-ssAMkb}jVk?6k)ULoH$oHIh1(C>_;j*WZ7sq0VCpHIh1x zDBZ5t{&||UmbjBC)JSSMQ9E-DZ(qLSnZ|2_ewB3ar}5gfu98tBsndwkk$>*PE#Syr z$8bNUP$Q}D5~a7D?Kj!&PD3qV3N@1Y9#Oi#Uf%5(7_r*x1g20UsqYh|W4PvncfDq) zRZO8qQl}H8=jZv)?gio0UXL<`8cD4nO4snvANI{N)CWwVMp9=GrEB=obH~7*S9@(f zq#}g!CQMp8czUf)`O#$OBte*l4AsFBnUiPEF@!QvIxzTg<9 zP$Q|ch|)Dot%2V=>vo;P6lx^3k|;e6Z#?dv1%|qbDb%QvUWSwk)LP96Sp6>yheAg? zDfVo0HkGX7yxBb;z?lbKpWT7N7iwgE&LL`Vl^r_l&}R~c8fFSLk~)_t-S)5Tx862} zdY&oNNa{R6U3Wlv2Sa_p6lx@OK2ds~d(yNSUp3T*BdX%4k<Tv;p+-`xh+3Da z?f$*-3x>LwDbz^na-#IU;QTuef~B;s;m?^ujijz1O7BmH*6FpVmzhG1q^=}NucQ7j ziRb9F*V;#^ilatSR}lq6mR`Bt&-|&Ox|u?aq^>4PM`ORxPOA)cC{w7B)K7`}B75EX z*{SCms>2j&Bz29X+H188wSpHNiby~`A8By}TEdY!P-(;r0*wdq3TjT%Ya zMAVjC!@2W5ooT4qOrb_nHxs4zJJ+7_@8=9P$P{WMbqi5?^j`7cpQagV1yiVz)U8D6 zS@irXPJ7r;KVu3tlDds3Jp=r9@TyM?^&(TKk<{%(>0Z9`>es`D3XQ5Dp+-`75VZlv zFqHmY%1}Eog&Ilyj3}5o>2=2`OK&t(k}1?k>gPo18kSC&mod~JQ>c;DFNo5;y!C?p zw=&dmOrb_ncM_#%fNzZTTWjO%m_m)D?jmX}Zr8D?8!t0n&oPA>N!?8pREu77e*4b2 zq5jSkY9w`!@LJj4YPq4dgZ(DHP$Q{(iJC^aq0q*s{$h!tW;2BvN&S*29r@3;o7~z^ zV@#n&Quh(1BY)KvPeEJs3~&llsFBpKh|)8_iEr-qx}k1m3N@0tpD2ASbMK3H+-j)j znL>^7UlSs%Un*r|kz#-I_-iUz_o{#LXD&z6x8Bd z-}t_v(oCU7QV$WOduRD?Ui^un4rU59l6qKpt=wqUNrq}Ng&IjcBB;$KTWLcb#}sNL z^{Al!eB#NU8fpbos8Mmfm{Ty;vYg*gIeKOO$ws*oG!qKl$P{WM^;YaRGSmx9 zp+-`V32Ob$?cXufXH20+QjZI2rYv>xoi^|tdCQ>c;D zvw|wz8JcFOO(s+fQ6s761og*(ZSOWzFH@+I)boNm{Ni^;40R+^sFBnQg8I=mXB};* z6PZGdq<$x;%OBqGuZFsYDbz^nMM3qRbVAZlPcwxYNxdYf#}hZ7W~fh?LXD(e7Sv_i zzxc7Cc3Pw&j~Yq6BB;KP`(P^4y_{hRHIjN&P=`OX$+L!PGKCsR{a#QPJ-g^#L!HeO zY9#dsL4DkH`;CUWiz(Dd>NP>VSKRCyhI*YT)JW=&f;wiO|2xJ|8^9_ZU#OAPp9Gcs z=YgGVIc^a(r9oN{ zyCX!Dpd?`~LpLT8?$-7L&9RBe4j4}k4UN^ts{_r!dRw)I{RitqwaL*=Rh8k`aVomh z#s})5@Wl9VwcUUinX*Uf0}HE|?rqj!eF7TQ9;l7htDRc^sBT-kGuUWWTM!0zQVH#a zjR}!ZZw{%?qs`i2b*R-GtB%#jnysboRB#yWuMI5ZUPZZEGStxaRM>E1D4@XZ*{jL$ zF{^gZ_VW|T0e+n9Q>fK;7MV7T47RGBW_1+ahHGPEJV2~e3Od(GX))8%A_^s7s-Ky!R? zz168UCPtd$b=o)})G#HeVv!yiZA?^A)W8b5_`u?;oe{Iu1iA>-6lOxVY_!o26Cq9w zFx`!gHV3N1lQ8$S8_T$hrc&_6KQs!HDD|&b>`m{7>8RfFrjIw(RKoR`LSUCr9hjJG z49-;QYP(&ZQLQb8k!Q_2tvYn!XjM=!vq4Y6fYu;=c8!{ z9<;^y(GufFm)NQm%{(Rm_|anVqs=x3gb{qS#1rt*65~W|#R@-KV*Is=X=Akp&n)!O zDqv!K%q{>wS_R-om)L4ny~V>*48>|~a1b|(c6D)Ww4nz9Oa(K1Qfq_$sWW}Gv;0zN zV;qBmc=+(<2`PHCo0M6sfhsn}J3ciWX|`O+W>3H@btdgxIDw*UMOe=~Fge1!HiuO@ zbq*#v<5kabG~=;Sq*dFa4OnE^R<-fL>O`~M(aWznFwswy-#yz1hM=+?n`UsRIZ@Xm z1luErOueI90kE^|s9GzM;d)2o@GCg##SDC!Im7pFTkmG87+ zV6---*M^P30jP#mI3=_jV|q)(DybE_U8`0dc7>cUQERp9)%tj+)tp#L%i+N)T`jMc z!(5w1leO`Vv-?xC_)ufK(H_yoh{FR{BCM*$dAGOchuzg!YU42XOCnG9z zFpN8?J=$C{QS0bI<;vFn^`j?XTI5e^{OWS-Z9z{TI*$(Z1T{I18t4`{z80I2DwGy( zVw{rcPdAtqPu8$9xxmFzl+gVO`D_^R}1RSe&I(pWFwXj;lJGIAo11oGT1tA=e zq7}S&v&R>&*sP?H#xNZ0J3BS_ZJ;?hu4kwANMoo2N7>_W0z?g4T-M=29#3MxWKGBF zdg{PD9uIV0fe~EXQP)6cTS<8MfJY)u+i_jT1F_}osb~$>o~7Hw>ou4tTRJjW4y=Ay zF#yx3`GhoWewJP@vS-hQSACOH|+C z3X`VlB_j=3$hvYG?ZL*dGZ0V<7O--w4?C5oc3Z12b&yI4)oOZP2BwA4dMl3GTc`@d zWMHz@=)hi$Ho$>qb77+%nm##>$1BsRO4M@uY|8Wr-1!A%`lIFu$)C3J-35f)L{Rl; zBXf(@5x>fEmrNZ!Wy`R`grUNasyzi5&pa-@D$-`Go+cs{&RH0~A4p@cB2p0(J>H+lz}PDkL;r4c;y_cy*$xoGVdmEK?rQjTls> z&JM!eXE}q)@#t1tpmw&lGCPz`fm&x5sL!I>wQ9}f>)v=Pja-1A}gl7nAA{duxJXl`8fnbfjdfd3R!^i#>{!uENMW z6)Rooc@<@)E4?>e>1V2an@8_W_cYcUM{I0B80plp=u#5n*?T#_@Sx2bbCW8nfys6h z%`u@$^@zQ7#v**`?0i2U>TFVFv`xB-KHt9;Qqixbf%`w^AOq1#ndz*=3mFlgD zt+s1o>u2#eG3BV5d(&0^448BoNt3ShI+7+`M$)7!y^f?wmytB-O0Oen(v`lCBX81`-kYxU z-OkkJ3Xo3*6VBx3CcGJ*4zmX{pJsqk?4fMe$5wmOxjI&ZZM|I?mF}$!&2K6`R%Iwv z6)sFIwKrYq?a^k>sor!^8GY79?)OZpN9-Nj7gV~ zH|er6CSB=uWlXxKGTvc;VtW|ah1hCux~FhEFuZj@;VRYJQd_OVj+OBVBc7-7hS8*o znqabBaa9wOD#R$HQ)zUPQS3xqS*ihg_vp%0@ejyUq@Lb=$$(5n>WSW$49HZZp7MRk zfJ_k{jGEm~CYC`o_X4gP5emRQKdv`D6mm>mz zb15_jNZlM2Vmn<{%+8S&vvXv{>>S1DirG1$Vl>PHHe{77`AR}!th&8$;Z z)ca}QDvA<6k5ZMX7Z$58^YbV_N9TxoPT4!6?Ndfwl=*p-qJz{GTcR&GNysold@+~M z+UWv-FIeZuDMqCT5nl!-O4MmW2<*70G)QraAQtd7tQ!2hVBpKhJW{%x%q>-k-csQ^ zd$*J>K=UcpM>=x`CW=z^9M4y!iNf7^a$LD{<(BTwRjghex^op9l&e@h&-=4Mxr)^@ zy+0e2J4K-I6rbI@vS7?r#(E0y<|{flU-5d=4B~_H6|XnLAU-%>@%~{otq;x@!IPI$ ziO9LKl&zlST$w6n0huyjzNC(pD^rHbm8m>+oLrecjnr3T`ZUtX5}3~gn}YSr7X{E4 z1NMcT0{7+$*me1*K;3x)q;g?8RF{Yf&XpC2$xX=W zM<9ojk3bC!J*0dDa#;BY0W@YYW3<>vXJBU#Md$ly`8Qirgt26jtY@q zj_fxtqerowqZqwUwsVw^Uyf*uy4ug@vTM<_V3jD020vepEqIY3V!DURP5W(=jJw?PLKq88CKmc^ybSjdh->pgXql)S|l5+$upr2?ua1rab$S*uft28!E^@a`kgG;gk|h~A}n^Ht9V=gW~5#OqDen;%?x z?`l%eDqF_UN1*DjL+B$=CFny7AAu@i3V|v?Pu_tgOd(Ju=qWj{gee571pTc^UN$y~?jo(w%oJsFCa6-4-CD558b@X1ib z>>$D?LlM0}ginSd<^&Nw8H(r&B78Cw0sZTVB8S%}hnem`#wUlF8G(#Xju=^Lq~Mj` zc<-DTT&^sE!To5??T-Qy83J+LA1Nqzo@$m}Q@V3i2!nDtB>dg3Kda|pcdlaf4C~HS zzCpQ))jKPHHYisHO5Y4BL*%4NvA&H{EpucKx^EPfCnlEh4WrUVC%U>oC%a;=lU;$+ z$*zd$WYGe?Gm#%WK}^Jy&I@9Wb%l`a50FC^{<7MM3zz@EE?1?L|Q&X|G*K=bKuh($id^G}s^VLYwE4Uy&IA8I4{T9Rr z=PO>X-h%kxe8uY%WsutekjxQ~ zeM7ydm&gzZmZqBNcOu7|t45yQGQIh7F8AguUavm9`Eu^|<||&WK)m^i56%~j$J-z9 z27i7~fC!m8Pk?x}JfD%lhY1MKohL!O#1$SmAPJr5k>UlF>ehS@U}ecZ(bxY9PIs6q zQ;~X2;L22?49FB!#Tepa5kw`OL?J~FI+~zoCJ4ZlB`|%puXl5hIUY!jZR^1c!V+Px zLdMfyBgeVFMn>0PBZKU(@ifYBQ$1J;qy-8PV9Cb&nxj~mNfvfsG8`OR-COs#UAFf#)9&PqJ z&z#X$zQV&Zg$N!DwptCGSqp{3)p(@Z6-z|ov1B5dt7IbZ5To(tlJRg4Ew{rxouw1? zh!)N%mDAZ`Jd=v(XT|8O?sPPg&P7YvOeGZwPmf09_#-@%e$K$3!}z0tKRPDyDEzhN z1g4MzQdIc66Xi%T8q38>(VS@()pik9&(xM;LeZfH!LyYiJ3Kv6=Jyi4Q);*Q zH9S3@)(z^O882fmCFA7OrPI5LkzythOJx!;0NRri6Ywme`k<3rjwF()a-mp=Mfz)l z;U0WKW4LD&9*OKoVzEf7oKIJh`LxpDDGJcgL!H}N)}2pAa_M{}myE#^rm6Pvtlv8g zjBuaIQVpaIGsA)cM6sc6pG4^p{m^DzP^WCRSjd*5s!DwJB;12_b5woVR3aZwr^-q+ zSRd_}5fMvAD!EuL5lt7J5inM74MWog2f{sYxj6h7aLR&5V&@B`L^+>JMBr$oJ^)b+ z_wb{$^;QI@u8_``l1HY2xLgtVuDFOqL4yN+PQS(Mm-MDv?qt zUC9)Sc{6jknj6bTU=zy4ix3=Y@4WIn>;iuLAN~r@{j%zmE+sS3OquIMY8XbApj3{> zW2tDI8y1Il!O1mCkV_Ziu|k^T3v-ba^d^(JaxtCe@PdQICd#Q|E?IQ)QnJB?NGzT$ z6_c@Cq&YsiG~6>M+y|$GodRIY6-vo;xfqR%H+8`A9UgaPRK2lmA{vK{D$*71S<)En zj5r1Km2-(gu?XdNnoz)K4F;Q&8B0bI(Ml$o$P`rL1H;%8D^&8yQZlD>8K;PzVx>^X z#B&^+gPe@ngWg5xFgBrGx?$_gCe($$>kQ z;Yetx(SpNSd@d)PYQcxr@xBpyI8`WD68Wgw<p!t8CI#%xtRrgL$Slv8R zx3@bLk7OZkg-o8t3++v4&p``@&sQ2PE99=ps+G3tip3+bOtBJ+71Izk2v>c)IXOH6 z;cFaSA9ePKU6n{G7K>NX#Zsg(P7hOtH3r2%7lp&ToJ_%vtfF?Bv@D|iAFTtZ?zEC| z#=1`sx}DZWCQGv;^d^`>5q`96 zCUVJKkw)dz1I+0nchE5-U{iqp;IXB?mWYI7m5Bb!81hUe|A7y6U{Hn$I1?-7%J~RC zrf?xPKu50IRS!*VMbO~GzI6`{E- z+(R3^D_FUBC7O#u>zqx!Qkb7~3V{YzVAISb^04=xTY_a$Z3yZFF;7J28&xb4PbNyG z0?Z3a)nA7@m7v<9FxY!03h{VeFYc7oUP*ynvIIvw@l1>hTGHsi3`I|(b?ka!Cz33b zlNp-)g$35PkVzNHrE~SSn{@Fnhy- ze{R7H(NY8sTw<{NhJzH$%T66w2`ubR4ZQ`HLl;-yP3K(&citlvTT4+Sk(3gU(vezS10+(!xX@oBQmE z=V7nT#~(3m)76`VDwJT>QvFz&mvFM+ST7TcC-V7tWJ#-uD<(MYBbHS##lrr)lup1e zEa6SWeQ*UGUMd%0k%r4o=Qtmhg$-QK;h!pUY~iF(wwzAKilw|$C_bYY&w${w`W<0! zqEacwqp)grFG6SKW2s~%lgdP($=PUl@hk_Ll`KGS79gvVjhm@$PC8wT!QfDR0TZ`5 z^y$qPbA?JYi)&D*Y&vTWHoD@a3alzK@rYACoKi`{5mvsOqlpC{lMXc($Nd#JVO4?& zIl)I-@K>SWa1JGA?8GvWLOCDHW}zJTvnloA+NhGi^bhCA)R|w$G?t2_v(acFUg9-- z7XQLexF=C>540K+oo35OlaW%in9CiGz_6O2Ee27_~g@UVU8VRann6xa(( z-fY4-bgPt#P8I~B9D@@GWmu;0scAemgJ-J4N(eS=_}d*z95IaIe7Xd?BFkN#Er3$u zrBtz;hrvHqI~wMO+UO({MP~(jX7}{WgrHQbG!SF>m({B99b?VWL;V}t813f&6?RuLMOkscW4Mw;InyJw|Y)@wR-f}ScJ>dZ>lu? z3Ely;WHYQB{MC{B%e35im$I2$n&(~0w26LKk?HE1<1cfvxpX0OYQmY;XHy!M5cuDb zVOWFzYguZ=F6Te6|Pfte`td)KlV zgV52l`?~|)wQTn6q3$XEYuP|gt$T|9EQ2Oa`HyAT$~tU*LGN1DH!y_NuLrzqS$}s8 xLt77cXW7uKzL`_~*D?%kt#6P*>+`N total_frames start = total_frames - FFT_SIZE; + if start < 0 { + // track shorter than the FFT window + decay_spectrum(0.10); + return; + } + + // Mix down to mono and apply window. + samples := sd.samples; + inv_chan := 1.0 / cast(float) nchannels; + for k: 0..FFT_SIZE-1 { + idx := (start + k) * nchannels; + sum: float = 0; + for ch: 0..nchannels-1 sum += cast(float) samples[idx + ch]; + mono := sum * inv_chan / 32768.0; // s16 → [-1, 1] + fft_re[k] = mono * fft_window[k]; + fft_im[k] = 0; + } + + fft(); + + // Bin into log-spaced bands. + rate := cast(float) sd.sampling_rate; + nyquist := rate * 0.5; + log_lo := log(MIN_VISUAL_FREQ); + log_hi := log(nyquist); + log_step := (log_hi - log_lo) / cast(float) SPECTRUM_BINS; + + for b: 0..SPECTRUM_BINS-1 { + f_lo := exp(log_lo + log_step * cast(float) b); + f_hi := exp(log_lo + log_step * cast(float) (b + 1)); + + bin_lo := cast(int) (f_lo * FFT_SIZE / rate); + bin_hi := cast(int) (f_hi * FFT_SIZE / rate); + if bin_hi <= bin_lo bin_hi = bin_lo + 1; + if bin_hi > HALF_FFT bin_hi = HALF_FFT; + if bin_lo >= HALF_FFT continue; + + peak: float = 0; + for k: bin_lo..bin_hi-1 { + mag := sqrt(fft_re[k] * fft_re[k] + fft_im[k] * fft_im[k]); + if mag > peak peak = mag; + } + + // Normalize by FFT_SIZE/4 (a Hann-windowed unit sine peaks around + // FFT_SIZE/4 in this convention) and compress with sqrt to match + // perceptual loudness better. + v := peak / (cast(float) FFT_SIZE * 0.25); + v = sqrt(v); + if v > 1 v = 1; + + // Asymmetric smoothing: fast attack, slow decay (classic + // VU-meter feel). + prev := app.spectrum[b]; + rate_lerp := ifx v > prev then 0.45 else 0.10; + app.spectrum[b] = lerp(prev, v, rate_lerp); + } +} + +#scope_file + +decay_spectrum :: (rate: float) { + for 0..SPECTRUM_BINS-1 { + app.spectrum[it] = lerp(app.spectrum[it], 0, rate); + } +} diff --git a/src/audio/decoders.jai b/src/audio/decoders.jai new file mode 100644 index 0000000..8d25fc1 --- /dev/null +++ b/src/audio/decoders.jai @@ -0,0 +1,110 @@ +// +// Format-aware decoder. Detects MP3 / FLAC / OGG / WAV from the leading bytes +// and routes through dr_mp3/dr_flac (vendored, modules/audio_decoders) for the +// formats Sound_Player doesn't natively handle. +// +// Native formats (OGG, WAV) go through Sound.load_audio_data unchanged. +// MP3/FLAC are decoded to interleaved s16 PCM and wrapped in a Sound_Data +// with type = .LINEAR_SAMPLE_ARRAY. +// + +Audio_Format :: enum { + UNKNOWN; + OGG; + WAV; + MP3; + FLAC; +} + +detect_audio_format :: (bytes: string) -> Audio_Format { + if bytes.count < 4 return .UNKNOWN; + + b := bytes.data; + // MP3: ID3 tag + if b[0] == #char "I" && b[1] == #char "D" && b[2] == #char "3" return .MP3; + // MP3: frame sync 0xFFEx (also 0xFFFx for MPEG-1, 0xFFEx for MPEG-2) + if b[0] == 0xFF && (b[1] & 0xE0) == 0xE0 return .MP3; + // FLAC: "fLaC" + if b[0] == #char "f" && b[1] == #char "L" && b[2] == #char "a" && b[3] == #char "C" return .FLAC; + // OGG: "OggS" + if b[0] == #char "O" && b[1] == #char "g" && b[2] == #char "g" && b[3] == #char "S" return .OGG; + // WAV: "RIFF" + if b[0] == #char "R" && b[1] == #char "I" && b[2] == #char "F" && b[3] == #char "F" return .WAV; + + return .UNKNOWN; +} + +// +// Decode `bytes` into a Sound_Data ready to feed to Sound.make_stream(). +// +// Ownership notes: +// - On the OGG/WAV path, Sound_Player keeps `bytes` alive via Sound_Data.buffer. +// - On the MP3/FLAC path, we call decoder_free on the original bytes immediately +// (we have decoded to a separate s16 PCM buffer); the Sound_Data references +// the dr_libs-malloc'd PCM buffer instead. +// +// TODO: free Sound_Data + its buffer in the release_asset path. Today we leak. +// +decode_audio :: (bytes: string, name: string) -> Sound.Sound_Data, Audio_Format, bool { + format := detect_audio_format(bytes); + log_info("decode_audio: '%' bytes=% format=%", name, bytes.count, format); + + if format == .OGG || format == .WAV { + result := Sound.load_audio_data(name, bytes); + return result, format, result.loaded; + } + + if format == .MP3 || format == .FLAC { + channels: u32; + sample_rate: u32; + total_frames: u64; + + samples: *s16; + if format == .MP3 { + samples = Audio_Decoders.decode_mp3( + bytes.data, cast(u64) bytes.count, + *channels, *sample_rate, *total_frames); + } else { + samples = Audio_Decoders.decode_flac( + bytes.data, cast(u64) bytes.count, + *channels, *sample_rate, *total_frames); + } + + if !samples { + log_error("decode_audio: decoder failed for '%'", name); + return .{}, format, false; + } + + // Source bytes are no longer needed. + free(bytes); + + total_samples := total_frames * cast(u64) channels; + + result: Sound.Sound_Data; + result.name = copy_string(name); + result.loaded = true; + result.type = .LINEAR_SAMPLE_ARRAY; + result.nchannels = cast(u16) channels; + result.sampling_rate = sample_rate; + result.nsamples_times_nchannels = cast(s64) total_samples; + result.samples = samples; + result.buffer.count = cast(s64) (total_samples * size_of(s16)); + result.buffer.data = cast(*u8) samples; + + log_info("decode_audio: % ch=%, rate=%, frames=%", format, channels, sample_rate, total_frames); + return result, format, true; + } + + if bytes.count >= 8 && bytes.data { + b := bytes.data; + log_error("decode_audio: unknown format for '%' (% bytes; first 8: %x %x %x %x %x %x %x %x)", + name, bytes.count, + formatInt(b[0], base=16), formatInt(b[1], base=16), + formatInt(b[2], base=16), formatInt(b[3], base=16), + formatInt(b[4], base=16), formatInt(b[5], base=16), + formatInt(b[6], base=16), formatInt(b[7], base=16)); + } else { + log_error("decode_audio: unknown format for '%' (% bytes — too short or null)", name, bytes.count); + } + return .{}, format, false; +} diff --git a/src/audio/fft.jai b/src/audio/fft.jai new file mode 100644 index 0000000..e397fd7 --- /dev/null +++ b/src/audio/fft.jai @@ -0,0 +1,82 @@ +// +// Tiny in-place radix-2 Cooley-Tukey FFT. Module-level scratch buffers so we +// don't allocate per frame. +// +// FFT_SIZE is a compile-time constant (power of two). 1024 at 44.1 kHz gives +// ~23 ms windows and ~43 Hz bin resolution — a good balance for the +// spectrum visualizer. +// + +FFT_SIZE :: 1024; +HALF_FFT :: FFT_SIZE / 2; + +fft_window: [FFT_SIZE] float; +fft_re: [FFT_SIZE] float; +fft_im: [FFT_SIZE] float; +fft_initted: bool; + +fft_init :: () { + if fft_initted return; + // Hann window: smooth attenuation at edges, no spectral leakage from + // arbitrary-phase sample boundaries. + for 0..FFT_SIZE-1 { + t := cast(float) it / cast(float) (FFT_SIZE - 1); + fft_window[it] = 0.5 - 0.5 * cos(2 * PI * t); + } + fft_initted = true; +} + +// +// In-place complex FFT on (fft_re, fft_im). +// +fft :: () { + n := FFT_SIZE; + + // Bit-reverse permutation. + j := 0; + for i: 0..n-2 { + if i < j { + t_re := fft_re[i]; t_im := fft_im[i]; + fft_re[i] = fft_re[j]; fft_im[i] = fft_im[j]; + fft_re[j] = t_re; fft_im[j] = t_im; + } + bit := n >> 1; + while j & bit { + j ^= bit; + bit >>= 1; + } + j ^= bit; + } + + // Cooley-Tukey butterflies. + seg_len := 2; + while seg_len <= n { + ang := -2.0 * PI / cast(float) seg_len; + w_re := cos(ang); + w_im := sin(ang); + i := 0; + while i < n { + tw_re := 1.0; + tw_im := 0.0; + half := seg_len / 2; + for k: 0..half-1 { + a := i + k; + b := i + k + half; + v_re := fft_re[b] * tw_re - fft_im[b] * tw_im; + v_im := fft_re[b] * tw_im + fft_im[b] * tw_re; + + fft_re[b] = fft_re[a] - v_re; + fft_im[b] = fft_im[a] - v_im; + fft_re[a] = fft_re[a] + v_re; + fft_im[a] = fft_im[a] + v_im; + + next_re := tw_re * w_re - tw_im * w_im; + next_im := tw_re * w_im + tw_im * w_re; + tw_re = next_re; + tw_im = next_im; + } + i += seg_len; + } + seg_len *= 2; + } +} diff --git a/src/audio/index.jai b/src/audio/index.jai new file mode 100644 index 0000000..9f26022 --- /dev/null +++ b/src/audio/index.jai @@ -0,0 +1,5 @@ +#load "decoders.jai"; +#load "player.jai"; +#load "queue.jai"; +#load "fft.jai"; +#load "analysis.jai"; diff --git a/src/audio/player.jai b/src/audio/player.jai new file mode 100644 index 0000000..b656af5 --- /dev/null +++ b/src/audio/player.jai @@ -0,0 +1,129 @@ +// +// Audio playback. The track download is async — `audio_play_track` returns +// immediately after queueing the request; when the bytes arrive we decode +// them and start a Sound_Player stream. +// +// Pause is REAL: setting `current_rate = desired_rate = 0` freezes the +// stream's play_cursor and (with `inaudible = true`) silences output. So +// while paused the seek bar doesn't drift and auto-advance can't fire. +// + +audio_play_track :: (track: Track) { + if !app.audio_inited return; + + pending := New(Track); + pending.* = clone_track(track); + + // /universal lets the server pick the best format, transcoding to mp3 + // when the original isn't in our `container` list. Without this, Opus / + // M4A / AAC / WMA / ALAC files come back as bytes we can't decode. + path := tprint( + "/Audio/%/universal?container=mp3,flac,ogg,wav&audioCodec=mp3&maxStreamingBitrate=320000&userId=%&deviceId=%&api_key=%", + track.id, app.jellyfin.user_id, DEVICE_ID, app.jellyfin.auth_token, + ); + log_info("audio: downloading '%' (% ticks)", track.name, track.duration_ticks); + http_submit("GET", path, on_done=on_track_downloaded, user_data=pending); +} + +audio_toggle_pause :: () { + if !app.current_stream return; + s := app.current_stream; + app.paused = !app.paused; + if app.paused { + s.current_rate = 0; + s.desired_rate = 0; + s.inaudible = true; + } else { + s.current_rate = 1; + s.desired_rate = 1; + s.inaudible = false; + } +} + +audio_is_paused :: () -> bool { + return app.paused; +} + +audio_seek_seconds :: (seconds: float) { + if !app.current_stream || !app.current_stream.sound_data return; + rate := cast(float64) app.current_stream.sound_data.sampling_rate; + target := cast(float64) seconds * rate; + if target < 0 target = 0; + app.current_stream.play_cursor = target; +} + +stop_current_stream :: () { + if !app.current_stream return; + Sound.stop_stream_abruptly(app.current_stream.entity_id); + app.current_stream = null; +} + +sound_release_callback :: (stream: *Sound.Sound_Stream, data: *Sound.Sound_Data) { + if stream && stream.entity_id == app.track_entity_id { + app.track_finished = true; + app.current_stream = null; + } +} + +clone_track :: (t: Track) -> Track { + out: Track; + out.id = copy_string(t.id); + out.name = copy_string(t.name); + out.album = copy_string(t.album); + out.album_id = copy_string(t.album_id); + out.artist = copy_string(t.artist); + out.duration_ticks = t.duration_ticks; + out.index_number = t.index_number; + return out; +} + +free_track :: (t: *Track) { + free(t.id); + free(t.name); + free(t.album); + free(t.album_id); + free(t.artist); + t.* = .{}; +} + +#scope_file + +on_track_downloaded :: (task: *Http_Task) { + pending := cast(*Track) task.user_data; + defer { free_track(pending); free(pending); } + + if !task.response.ok { + log_error("audio download '%' failed: status=%", pending.name, task.response.status_code); + return; + } + + bytes := task.response.body; + task.response.body = ""; + + sd, format, ok := decode_audio(bytes, pending.name); + if !ok { + log_error("audio decode failed for '%'", pending.name); + free(bytes); + return; + } + data := New(Sound.Sound_Data); + data.* = sd; + + stop_current_stream(); + free_track(*app.current_track); + app.current_track = clone_track(pending.*); + app.current_format = format; + + // New track always starts un-paused; user clicking Next/Prev or + // auto-advance both want fresh playback state. + app.paused = false; + + app.track_entity_id += 1; + stream := Sound.make_stream(data, .MUSIC); + stream.entity_id = app.track_entity_id; + Sound.start_playing(stream); + + app.current_stream = stream; + app.track_finished = false; + log_info("audio: playing '% — %' [%]", app.current_track.artist, app.current_track.name, format); +} diff --git a/src/audio/queue.jai b/src/audio/queue.jai new file mode 100644 index 0000000..fcb5893 --- /dev/null +++ b/src/audio/queue.jai @@ -0,0 +1,36 @@ +// +// Naive play queue. Linear array, current index. Shuffle/repeat punted. +// audio_play_track is now async (returns void); the queue just fires the +// download and trusts it to land. +// + +Queue :: struct { + tracks: [..] Track; + current: int = -1; +} + +queue: Queue; + +queue_clear :: () { + array_reset(*queue.tracks); + queue.current = -1; +} + +queue_add :: (track: Track) { + array_add(*queue.tracks, track); +} + +queue_play_index :: (index: int) -> bool { + if index < 0 || index >= queue.tracks.count return false; + queue.current = index; + audio_play_track(queue.tracks[index]); + return true; +} + +queue_next :: () -> bool { + return queue_play_index(queue.current + 1); +} + +queue_prev :: () -> bool { + return queue_play_index(queue.current - 1); +} diff --git a/src/core/app.jai b/src/core/app.jai new file mode 100644 index 0000000..3f23c61 --- /dev/null +++ b/src/core/app.jai @@ -0,0 +1,99 @@ +// +// Global app state. Everything that lives across frames hangs off `app`. +// + +View :: enum { + LOGIN; + LIBRARY; + NOW_PLAYING; +} + +App :: struct { + // Window + window: Window_Type; + window_width: s32 = 1280; + window_height: s32 = 800; + quit: bool; + + // Time + current_time: float64; + last_time: float64; + dt: float; + + // UI + current_view: View = .LOGIN; + current_theme: s32; // index into default_theme_procs + theme: Overall_Theme; + + title_font: *Simp.Dynamic_Font; + big_font: *Simp.Dynamic_Font; + row_font: *Simp.Dynamic_Font; // sized for the artist/album/track rows + button_font: *Simp.Dynamic_Font; + body_font: *Simp.Dynamic_Font; + + // Jellyfin + jellyfin: Jellyfin_Client; + + // Audio + audio_inited: bool; + current_stream: *Sound.Sound_Stream; + current_track: Track; + current_format: Audio_Format; // format of the bytes we played + track_finished: bool; // set by Sound_Player release_asset callback + track_entity_id: s64; // monotonic — identifies the active stream + + paused: bool; // real pause: stream's current_rate is 0 while true + master_volume: float = 1.0; // 0..1; persisted in config.json + scrub_seconds: float; // bound to the seek slider in now_playing_view + + // Per-frame audio analysis used by the visualizer shader. + spectrum: [SPECTRUM_BINS] float; + + // Library browse state. + library: Library_State; +} + +SPECTRUM_BINS :: 64; + +app: App; + +app_init :: () { + log_info("player starting up"); + + setup_data_directory(); + + app.window = create_window(app.window_width, app.window_height, "player"); + Simp.set_render_target(app.window, .LEFT_HANDED); + + init_fonts(); + ui_init(); + + sound_cfg: Sound.Sound_Player_Config; + sound_cfg.release_asset = sound_release_callback; + if Sound.sound_player_init(sound_cfg) { + app.audio_inited = true; + } else { + log_warn("sound player init failed — playback disabled"); + } + + jellyfin_client_init(*app.jellyfin); + + gfx_init(); + image_cache_init(); + + // Sensible defaults; config_load may overwrite. + app.jellyfin.server_url = copy_string("http://localhost:8096"); + app.jellyfin.username = copy_string(""); + app.jellyfin.password = copy_string(""); + + if config_load() { + app.current_view = .LIBRARY; + library_refresh_artists(); + } +} + +app_shutdown :: () { + if app.audio_inited Sound.sound_player_shutdown(); + jellyfin_client_shutdown(*app.jellyfin); + log_info("bye"); +} diff --git a/src/core/config.jai b/src/core/config.jai new file mode 100644 index 0000000..e2dbc32 --- /dev/null +++ b/src/core/config.jai @@ -0,0 +1,87 @@ +// +// Persisted state. Stored at ~/.config/player/config.json on Linux, +// ~/Library/Application Support/player/config.json on macOS. +// +// We persist: +// - server URL / username / auth token / user id (so subsequent launches +// skip the login screen entirely) +// - master volume (so the user doesn't have to re-set it every time) +// +// Password is never persisted. +// + +Persisted_Config :: struct { + server_url: string; + username: string; + auth_token: string; + user_id: string; + master_volume: float = 1.0; +} + +config_path :: () -> string { + home, ok := get_home_directory(); + if !ok return ""; + #if OS == .MACOS { + return tprint("%/Library/Application Support/player/config.json", home); + } else { + return tprint("%/.config/player/config.json", home); + } +} + +config_save :: () { + p := config_path(); + if !p return; + + cfg: Persisted_Config; + cfg.server_url = app.jellyfin.server_url; + cfg.username = app.jellyfin.username; + cfg.auth_token = app.jellyfin.auth_token; + cfg.user_id = app.jellyfin.user_id; + cfg.master_volume = app.master_volume; + + json := Jaison.json_write_string(cfg); + defer free(json); + + dir := path_strip_filename(p); + make_directory_if_it_does_not_exist(dir, recursive=true); + + if !write_entire_file(p, json) { + log_error("config_save: failed to write %", p); + return; + } +} + +config_load :: () -> bool { + p := config_path(); + if !p return false; + if !file_exists(p) return false; + contents, ok := read_entire_file(p, log_errors=false); + if !ok return false; + defer free(contents); + + parse_ok, cfg := Jaison.json_parse_string(contents, Persisted_Config); + if !parse_ok { + log_warn("config_load: failed to parse %", p); + return false; + } + + app.jellyfin.server_url = copy_string(cfg.server_url); + app.jellyfin.username = copy_string(cfg.username); + app.jellyfin.auth_token = copy_string(cfg.auth_token); + app.jellyfin.user_id = copy_string(cfg.user_id); + + if cfg.master_volume > 0 app.master_volume = clamp(cfg.master_volume, 0, 1); + + if cfg.auth_token.count > 0 && cfg.user_id.count > 0 { + app.jellyfin.logged_in = true; + log_info("loaded saved login (user_id=%)", cfg.user_id); + return true; + } + return false; +} + +config_clear :: () { + p := config_path(); + if !p return; + file_delete(p); +} diff --git a/src/core/imports.jai b/src/core/imports.jai new file mode 100644 index 0000000..91b2063 --- /dev/null +++ b/src/core/imports.jai @@ -0,0 +1,24 @@ +// +// All module imports for the project. Pulled into a dedicated file so that +// every folder doesn't redeclare them. +// + +#import "Basic"; +#import "Math"; +#import "String"; +#import "System"; +#import "File"; +#import "File_Utilities"; +#import "Random"; +#import "Hash_Table"; + +#import "Window_Creation"; +#import "GetRect_LeftHanded"; + +Simp :: #import "Simp"; +Input :: #import "Input"; +Sound :: #import "Sound_Player"; + +Jaison :: #import "Jaison"; +Curl :: #import "Curl"()(LINUX_USE_SYSTEM_LIBRARY=true); +Audio_Decoders :: #import "audio_decoders"; diff --git a/src/core/index.jai b/src/core/index.jai new file mode 100644 index 0000000..6720ad6 --- /dev/null +++ b/src/core/index.jai @@ -0,0 +1,6 @@ +// imports.jai is #loaded directly from main.jai before everything else. + +#load "app.jai"; +#load "window.jai"; +#load "time.jai"; +#load "config.jai"; diff --git a/src/core/time.jai b/src/core/time.jai new file mode 100644 index 0000000..0d6d08e --- /dev/null +++ b/src/core/time.jai @@ -0,0 +1,7 @@ +tick_time :: () { + app.current_time = seconds_since_init(); + delta := cast(float)(app.current_time - app.last_time); + Clamp(*delta, 0, 0.1); + app.dt = delta; + app.last_time = app.current_time; +} diff --git a/src/core/window.jai b/src/core/window.jai new file mode 100644 index 0000000..eae56a7 --- /dev/null +++ b/src/core/window.jai @@ -0,0 +1,71 @@ +// +// Main loop. Pulls input, handles resizes, dispatches to the current view, +// swaps buffers. +// + +run_main_loop :: () { + while !app.quit { + tick_time(); + + Input.update_window_events(); + + for Input.get_window_resizes() { + Simp.update_window(it.window); + if it.window == app.window { + resized := (it.width != app.window_width) || (it.height != app.window_height); + app.window_width = it.width; + app.window_height = it.height; + if resized init_fonts(); + } + } + + for event: Input.events_this_frame { + if event.type == .QUIT then app.quit = true; + getrect_handle_event(event); + } + + http_pump(); // fire callbacks for any HTTP requests that finished since last frame + image_pump(); // hand queued image fetches to http_submit, up to the concurrency cap + + if app.audio_inited Sound.set_master_volume(app.master_volume); + + draw_one_frame(); + + if app.audio_inited Sound.update(); + + // Auto-advance once the active stream has finished. + if app.track_finished { + app.track_finished = false; + queue_next(); + } + + reset_temporary_storage(); + sleep_milliseconds(8); + } +} + +draw_one_frame :: () { + proc := default_theme_procs[app.current_theme]; + app.theme = proc(); + set_default_theme(app.theme); + + bg := app.theme.background_color; + Simp.clear_render_target(bg.x, bg.y, bg.z, 1); + + x, y, w, h := get_dimensions(app.window, true); + ui_per_frame_update(app.window, w, h, app.current_time); + + // The visualizer shader runs *behind* the UI for every view that wants it. + if app.current_view != .LOGIN { + gfx_draw_visualizer_background(xx w, xx h); + } + + if #complete app.current_view == { + case .LOGIN; draw_login_view(); + case .LIBRARY; draw_library_view(); + case .NOW_PLAYING; draw_now_playing_view(); + } + + draw_popups(); + Simp.swap_buffers(app.window); +} diff --git a/src/gfx/images.jai b/src/gfx/images.jai new file mode 100644 index 0000000..3fd8bfa --- /dev/null +++ b/src/gfx/images.jai @@ -0,0 +1,240 @@ +// +// Async image cache with on-disk persistence. +// +// UI calls `image_request(item_id, size)` from the draw loop; it always +// returns an *Image immediately whose .loaded flips true asynchronously. +// +// Lookup order: +// 1. In-memory cache (this session) — instant +// 2. ~/.cache/player/images/_.bin — read on the main thread, +// rate-limited by image_pump +// 3. Jellyfin /Items/{id}/Images/Primary — async http_submit, capped +// +// On a fresh first run the user gets the slow path once; from that point on +// every relaunch hits disk and the artist/album walls render instantly. +// +// Concurrency: +// - HTTP fetches are capped (MAX_CONCURRENT_IMAGE_FETCHES) to keep the +// thread count sane on a 500-album library. +// - Disk hits are capped per frame (PROCESS_PER_FRAME) so first-frame +// hydration of hundreds of thumbs spreads across ~10 frames instead of +// blocking the UI for 400 ms. +// +// Decode + texture upload runs in the same place that consumed the bytes: +// - Disk hit → image_pump (main thread) +// - HTTP hit → on_image_response (already main-thread per jellyfin/async.jai) +// OpenGL stays single-threaded. +// + +Image :: struct { + texture: Simp.Texture; + loaded: bool; + loading: bool; + failed: bool; +} + +Image_Size :: enum { + THUMB; // 128 px square — for list rows + LARGE; // 512 px square — for now-playing + BACKDROP; // 1920x1080 — full-screen artist backdrop +} + +#scope_module + +Image_Request :: struct { + image: *Image; + id: string; + size: Image_Size; +} + +image_cache: Table(string, *Image); // key = ":" +image_pending: [..] *Image_Request; +image_in_flight: int; + +MAX_CONCURRENT_IMAGE_FETCHES :: 4; +PROCESS_PER_FRAME :: 16; + +#scope_export + +// +// Idempotent — safe to call from app_init or first image_request, called once +// from app_init for clarity. +// +image_cache_init :: () { + dir := image_cache_dir(); + if !dir return; + make_directory_if_it_does_not_exist(dir, recursive=true); +} + +image_request :: (item_id: string, size: Image_Size) -> *Image { + key := image_cache_key(item_id, size); + found, existing := table_find(*image_cache, key); + if found { + free(key); + return existing; + } + + img := New(Image); + img.loading = true; + table_set(*image_cache, key, img); + + req := New(Image_Request); + req.image = img; + req.id = copy_string(item_id); + req.size = size; + array_add(*image_pending, req); + return img; +} + +// +// Once per frame, before draw. Drains the pending queue: synchronous disk +// reads where we have a cached file, http_submit for the rest. Both paths are +// rate-limited so a 400-thumb cold-start doesn't stall the frame. +// +image_pump :: () { + processed := 0; + i := 0; + while processed < PROCESS_PER_FRAME && i < image_pending.count { + req := image_pending[i]; + disk_path := image_disk_path(req.id, req.size); + if file_exists(disk_path) { + consume_disk_hit(req, disk_path); + free(req.id); + free(req); + array_ordered_remove_by_index(*image_pending, i); + processed += 1; + // Do NOT increment i — the array shifted. + } else if image_in_flight < MAX_CONCURRENT_IMAGE_FETCHES { + url := build_image_url(req.id, req.size); + http_submit("GET", url, on_done=on_image_response, user_data=req); + image_in_flight += 1; + array_ordered_remove_by_index(*image_pending, i); + processed += 1; + } else { + // Out of HTTP slots, disk miss — leave for next frame. + i += 1; + } + } +} + +draw_image :: (x: float, y: float, w: float, h: float, img: *Image, tint := Vector4.{1,1,1,1}) { + if img && img.loaded { + Simp.set_shader_for_images(*img.texture); + Simp.immediate_quad( + Vector2.{x, y }, + Vector2.{x + w, y }, + Vector2.{x + w, y + h}, + Vector2.{x, y + h}, + color = tint, + ); + } else { + Simp.set_shader_for_color(); + col: Vector4; + if img && img.failed col = .{0.18, 0.04, 0.10, 1}; + else col = .{0.10, 0.05, 0.18, 1}; + Simp.immediate_quad(x, y, x + w, y + h, col); + } +} + +#scope_file + +build_image_url :: (item_id: string, size: Image_Size) -> string { + if size == .BACKDROP { + // Backdrops are 16:9, fetch at 1080p quality + return tprint( + "/Items/%/Images/Backdrop/0?fillWidth=1920&fillHeight=1080&quality=85", + item_id, + ); + } else { + side := ifx size == .THUMB then 128 else 512; + return tprint( + "/Items/%/Images/Primary?fillHeight=%&fillWidth=%&quality=80", + item_id, side, side, + ); + } +} + +image_cache_key :: (item_id: string, size: Image_Size) -> string { + prefix: string; + if size == { + case .THUMB; prefix = "t:"; + case .LARGE; prefix = "l:"; + case .BACKDROP; prefix = "b:"; + } + b: String_Builder; + append(*b, prefix); + append(*b, item_id); + return builder_to_string(*b); +} + +image_cache_dir :: () -> string { + home, ok := get_home_directory(); + if !ok return ""; + #if OS == .MACOS { + return tprint("%/Library/Caches/player/images", home); + } else { + return tprint("%/.cache/player/images", home); + } +} + +image_disk_path :: (item_id: string, size: Image_Size) -> string { + prefix: string; + if size == { + case .THUMB; prefix = "t"; + case .LARGE; prefix = "l"; + case .BACKDROP; prefix = "b"; + } + // Jellyfin item ids are 32-char hex strings — safe as filenames as-is. + return tprint("%/%_%.bin", image_cache_dir(), prefix, item_id); +} + +consume_disk_hit :: (req: *Image_Request, disk_path: string) { + img := req.image; + img.loading = false; + + bytes, ok := read_entire_file(disk_path, log_errors=false); + if !ok { + img.failed = true; + return; + } + defer free(bytes); + + buf: [] u8 = ---; + buf.data = bytes.data; + buf.count = bytes.count; + if !Simp.texture_load_from_memory(*img.texture, buf) { + img.failed = true; + return; + } + img.loaded = true; +} + +on_image_response :: (task: *Http_Task) { + image_in_flight -= 1; + + req := cast(*Image_Request) task.user_data; + defer { free(req.id); free(req); } + + img := req.image; + img.loading = false; + + if !task.response.ok || task.response.body.count == 0 { + img.failed = true; + return; + } + + // Write to disk first so even if the texture upload fails we keep the + // bytes for next time. write_entire_file failures (out of space, perm) + // are silent — display is still possible. + disk_path := image_disk_path(req.id, req.size); + write_entire_file(disk_path, task.response.body); + + body_bytes: [] u8 = ---; + body_bytes.data = task.response.body.data; + body_bytes.count = task.response.body.count; + if !Simp.texture_load_from_memory(*img.texture, body_bytes) { + img.failed = true; + return; + } + img.loaded = true; +} diff --git a/src/gfx/index.jai b/src/gfx/index.jai new file mode 100644 index 0000000..1688d1b --- /dev/null +++ b/src/gfx/index.jai @@ -0,0 +1,2 @@ +#load "shaders.jai"; +#load "images.jai"; diff --git a/src/gfx/shaders.jai b/src/gfx/shaders.jai new file mode 100644 index 0000000..f064cee --- /dev/null +++ b/src/gfx/shaders.jai @@ -0,0 +1,90 @@ +// +// Visualizer backdrop. Reads `app.spectrum` (filled by audio/analysis.jai with +// a real FFT each frame) and draws a mirrored bar visualizer with a +// bass-driven background pulse. +// +// All immediate-mode quads via Simp for now. A real GLSL fragment shader is +// on the roadmap (ai/todo.md) — once that lands this becomes a fullscreen +// quad reading the spectrum + waveform as 1D textures. +// + +gfx_init :: () { + // Nothing yet. +} + +gfx_draw_visualizer_background :: (w: float, h: float) { + update_audio_analysis(); + Simp.set_shader_for_color(); + + t := cast(float) app.current_time; + + // Bass = average of the lowest ~16% of bins. Drives a subtle base + // brightness pulse so the whole screen breathes with the kick drum. + bass: float = 0; + bass_bins := SPECTRUM_BINS / 6; + if bass_bins < 1 bass_bins = 1; + for 0..bass_bins-1 bass += app.spectrum[it]; + bass /= cast(float) bass_bins; + + base := Vector4.{ + 0.04 + 0.10 * bass, + 0.02 + 0.04 * bass, + 0.10 + 0.18 * bass, + 1, + }; + Simp.immediate_quad(0, 0, w, h, base); + + // Mirrored bars from the horizontal mid-line — bass on the left, treble + // on the right, both spreading top and bottom. + cy := h * 0.5; + bar_w := w / cast(float) SPECTRUM_BINS; + max_bar := h * 0.45; + + for i: 0..SPECTRUM_BINS-1 { + v := app.spectrum[i]; + bar_h := v * max_bar; + x0 := cast(float) i * bar_w; + x1 := x0 + bar_w * 0.85; + + hue := cast(float) i / cast(float) SPECTRUM_BINS; + body := neon_color(hue, v, t); + tip := body; + tip.x = min(1.0, tip.x + 0.4); + tip.y = min(1.0, tip.y + 0.4); + tip.z = min(1.0, tip.z + 0.4); + + // Top half (going up). + Simp.immediate_quad(x0, cy - bar_h, x1, cy, body); + // Bottom half (going down) — slightly shorter so the eye reads the + // top half as primary. + Simp.immediate_quad(x0, cy, x1, cy + bar_h * 0.85, body); + + // Bright tip cap on the top bar (the classic Winamp peak nub). + cap_h := max_bar * 0.012; + if bar_h > cap_h * 2 { + Simp.immediate_quad(x0, cy - bar_h - cap_h, x1, cy - bar_h, tip); + } + } + + // Center mirror line — a thin neon glow across the middle for the + // 2000s-skin vibe. + { + line_h := 1.5; + line_col := Vector4.{1.0, 0.4, 0.8, 0.5 + 0.3 * bass}; + Simp.immediate_quad(0, cy - line_h * 0.5, w, cy + line_h * 0.5, line_col); + } +} + +#scope_file + +neon_color :: (hue: float, intensity: float, t: float) -> Vector4 { + // Slow hue drift over time so the color palette evolves even on + // sustained tones. + h := hue + t * 0.03; + r := 0.5 + 0.5 * sin(h * 6.28318 + 0.0); + g := 0.5 + 0.5 * sin(h * 6.28318 + 2.094); + b := 0.5 + 0.5 * sin(h * 6.28318 + 4.188); + a := 0.55 + 0.45 * intensity; + boost := 0.45 + 0.55 * intensity; + return Vector4.{r * boost, g * boost, b * boost, a}; +} diff --git a/src/jellyfin/async.jai b/src/jellyfin/async.jai new file mode 100644 index 0000000..1aaf6ab --- /dev/null +++ b/src/jellyfin/async.jai @@ -0,0 +1,165 @@ +// +// Async HTTP. Each request spawns a worker thread that runs libcurl's blocking +// easy-perform; the main loop polls `thread_is_done` each frame via +// `http_pump()` and fires the request's `on_done` callback on the main thread +// when the response is ready. +// +// All UI state mutation happens in the on_done callback, so handlers don't +// need to think about threading at all — just JSON-parse and write to +// `app.library` / `app.current_track` / etc. +// +// Per-request threads (vs a shared queue) keep this small. Library browsing +// and track downloads rarely have more than ~3 in flight; if we start +// flooding we'll graduate to a thread pool. +// + +#import "Thread"; + +Http_Task :: struct { + method: string; + url: string; + body: string; + auth: string; + + response: Http_Response; + + // Bookkeeping. The worker writes `done` after `response` is fully + // populated; the main thread reads via thread_is_done. + done: bool; + + thread: Thread; + user_data: *void; + on_done: #type (task: *Http_Task); +} + +http_in_flight: [..] *Http_Task; + +http_submit :: ( + method: string, + path: string, + body: string = "", + on_done: #type (task: *Http_Task) = null, + user_data: *void = null, +) -> *Http_Task { + task := New(Http_Task); + task.method = copy_string(method); + task.url = copy_string(tprint("%/%", app.jellyfin.server_url, trim_left(path, "/"))); + task.body = copy_string(body); + task.auth = copy_string(build_auth_header(*app.jellyfin)); + task.on_done = on_done; + task.user_data = user_data; + + if !thread_init(*task.thread, http_thread_proc) { + log_error("http_submit: thread_init failed"); + free_task(task); + return null; + } + task.thread.data = task; + thread_start(*task.thread); + + array_add(*http_in_flight, task); + return task; +} + +// +// Called every frame from the main loop. Drains finished tasks. +// +http_pump :: () { + i := 0; + while i < http_in_flight.count { + task := http_in_flight[i]; + if thread_is_done(*task.thread, 0) { + if task.on_done task.on_done(task); + array_unordered_remove_by_index(*http_in_flight, i); + free_task(task); + } else { + i += 1; + } + } +} + +#scope_file + +http_thread_proc :: (thread: *Thread) -> s64 { + task := cast(*Http_Task) thread.data; + task.response = perform_curl_blocking(task); + // Memory-ordering note: thread_is_done synchronizes with the worker's + // exit, so by the time the main thread sees the thread as finished, the + // response store is visible too. No explicit barrier needed. + task.done = true; + return 0; +} + +free_task :: (task: *Http_Task) { + free(task.method); + free(task.url); + free(task.body); + free(task.auth); + free(task.response.body); + thread_deinit(*task.thread); + free(task); +} + +Write_Buffer :: struct { + builder: String_Builder; +} + +write_callback :: (contents: *u8, count: u64, size: u64, user: *Write_Buffer) -> u64 #c_call { + total := count * size; + push_context { + append(*user.builder, contents, cast(s64) total); + } + return total; +} + +perform_curl_blocking :: (task: *Http_Task) -> Http_Response { + using Curl; + response: Http_Response; + + handle := curl_easy_init(); + if !handle { + log_error("http: curl_easy_init failed"); + return response; + } + defer curl_easy_cleanup(handle); + + curl_easy_setopt(handle, CURLoption.URL, temp_c_string(task.url)); + + // Jellyfin's /Audio/{id}/universal endpoint redirects to the actual + // transcoded stream. Without FOLLOWLOCATION we just get the 302 body + // (empty) and a 200/302 status, which downstream silently looks like + // "successful 0-byte download". + curl_easy_setopt(handle, CURLoption.FOLLOWLOCATION, cast(s64) 1); + curl_easy_setopt(handle, CURLoption.MAXREDIRS, cast(s64) 5); + + buf: Write_Buffer; + curl_easy_setopt(handle, CURLoption.WRITEFUNCTION, write_callback); + curl_easy_setopt(handle, CURLoption.WRITEDATA, *buf); + + headers: *curl_slist; + headers = curl_slist_append(headers, temp_c_string(tprint("X-Emby-Authorization: %", task.auth))); + headers = curl_slist_append(headers, temp_c_string("Accept: application/json")); + if task.method == "POST" || task.method == "PUT" { + headers = curl_slist_append(headers, temp_c_string("Content-Type: application/json")); + curl_easy_setopt(handle, CURLoption.POSTFIELDS, temp_c_string(task.body)); + curl_easy_setopt(handle, CURLoption.POSTFIELDSIZE, cast(s64) task.body.count); + } else if task.method != "GET" { + curl_easy_setopt(handle, CURLoption.CUSTOMREQUEST, temp_c_string(task.method)); + } + curl_easy_setopt(handle, CURLoption.HTTPHEADER, headers); + defer curl_slist_free_all(headers); + + err := curl_easy_perform(handle); + if err != .OK { + msg := to_string(curl_easy_strerror(err)); + log_error("curl % %: %", task.method, task.url, msg); + return response; + } + + code: s64; + curl_easy_getinfo(handle, CURLINFO.RESPONSE_CODE, *code); + response.status_code = code; + response.body = builder_to_string(*buf.builder); + response.ok = code >= 200 && code < 300; + return response; +} diff --git a/src/jellyfin/auth.jai b/src/jellyfin/auth.jai new file mode 100644 index 0000000..49b0157 --- /dev/null +++ b/src/jellyfin/auth.jai @@ -0,0 +1,57 @@ +// +// POST /Users/AuthenticateByName → { AccessToken, User: { Id, Name } } +// +// Async via http_submit; on_login_response runs on the main thread. +// + +Login_User :: struct { + Id: string; + Name: string; +} + +Login_Response :: struct { + AccessToken: string; + User: Login_User; +} + +jellyfin_login_async :: (c: *Jellyfin_Client) { + if c.login_pending return; + c.login_pending = true; + body := tprint("{\"Username\":\"%\",\"Pw\":\"%\"}", c.username, c.password); + log_info("auth: logging in as %", c.username); + http_submit("POST", "/Users/AuthenticateByName", body, on_done=on_login_response); +} + +jellyfin_logout :: (c: *Jellyfin_Client) { + free(c.auth_token); + free(c.user_id); + c.auth_token = ""; + c.user_id = ""; + c.logged_in = false; + config_clear(); +} + +#scope_file + +on_login_response :: (task: *Http_Task) { + app.jellyfin.login_pending = false; + if !task.response.ok { + log_error("login failed: status=% body=%", task.response.status_code, slice(task.response.body, 0, min(300, task.response.body.count))); + return; + } + + ok, parsed := Jaison.json_parse_string(task.response.body, Login_Response); + if !ok { + log_error("login: failed to parse JSON"); + return; + } + + app.jellyfin.auth_token = copy_string(parsed.AccessToken); + app.jellyfin.user_id = copy_string(parsed.User.Id); + app.jellyfin.logged_in = true; + log_info("auth: logged in as % (id=%)", parsed.User.Name, app.jellyfin.user_id); + + config_save(); + app.current_view = .LIBRARY; + library_refresh_artists(); +} diff --git a/src/jellyfin/client.jai b/src/jellyfin/client.jai new file mode 100644 index 0000000..759eee0 --- /dev/null +++ b/src/jellyfin/client.jai @@ -0,0 +1,129 @@ +// +// HTTP client for Jellyfin. Wraps libcurl with a write-to-builder callback so +// each request returns the response body as a string. +// +// We follow Jellyfin's auth scheme: every authenticated request carries the +// `Authorization: MediaBrowser Token=""` header (along with a Client +// fingerprint). +// + +CLIENT_NAME :: "player"; +CLIENT_VERSION :: "0.0.1"; +DEVICE_NAME :: "player"; +DEVICE_ID :: "player-dev-device"; // TODO: persist a real id per install + +Jellyfin_Client :: struct { + server_url: string; + username: string; + password: string; + + auth_token: string; + user_id: string; + logged_in: bool; + login_pending: bool; +} + +jellyfin_client_init :: (c: *Jellyfin_Client) { + // Curl globals are managed lazily on first request. +} + +jellyfin_client_shutdown :: (c: *Jellyfin_Client) { + // Nothing yet. +} + +// +// Request helpers +// + +Http_Response :: struct { + status_code: int; + body: string; + ok: bool; +} + +build_auth_header :: (c: *Jellyfin_Client) -> string { + if c.logged_in && c.auth_token { + return tprint( + "MediaBrowser Client=\"%\", Device=\"%\", DeviceId=\"%\", Version=\"%\", Token=\"%\"", + CLIENT_NAME, DEVICE_NAME, DEVICE_ID, CLIENT_VERSION, c.auth_token); + } + return tprint( + "MediaBrowser Client=\"%\", Device=\"%\", DeviceId=\"%\", Version=\"%\"", + CLIENT_NAME, DEVICE_NAME, DEVICE_ID, CLIENT_VERSION); +} + +http_get :: (c: *Jellyfin_Client, path: string) -> Http_Response { + return http_request(c, "GET", path, ""); +} + +http_post :: (c: *Jellyfin_Client, path: string, json_body: string) -> Http_Response { + return http_request(c, "POST", path, json_body); +} + +#scope_file + +Write_Buffer :: struct { + builder: String_Builder; +} + +write_callback :: (contents: *u8, count: u64, size: u64, user: *Write_Buffer) -> u64 #c_call { + total := count * size; + push_context { + append(*user.builder, contents, cast(s64) total); + } + return total; +} + +http_request :: (c: *Jellyfin_Client, method: string, path: string, body: string) -> Http_Response { + using Curl; + + response: Http_Response; + + handle := curl_easy_init(); + if !handle { + log_error("curl_easy_init failed"); + return response; + } + defer curl_easy_cleanup(handle); + + url := tprint("%/%", c.server_url, trim_left(path, "/")); + curl_easy_setopt(handle, CURLoption.URL, temp_c_string(url)); + + buf: Write_Buffer; + curl_easy_setopt(handle, CURLoption.WRITEFUNCTION, write_callback); + curl_easy_setopt(handle, CURLoption.WRITEDATA, *buf); + + headers: *curl_slist; + auth := build_auth_header(c); + headers = curl_slist_append(headers, temp_c_string(tprint("X-Emby-Authorization: %", auth))); + headers = curl_slist_append(headers, temp_c_string("Accept: application/json")); + + if method == "POST" || method == "PUT" { + headers = curl_slist_append(headers, temp_c_string("Content-Type: application/json")); + curl_easy_setopt(handle, CURLoption.POSTFIELDS, temp_c_string(body)); + curl_easy_setopt(handle, CURLoption.POSTFIELDSIZE, cast(s64) body.count); + } + + if method == "GET" { + // default + } else if method != "POST" { + curl_easy_setopt(handle, CURLoption.CUSTOMREQUEST, temp_c_string(method)); + } + + curl_easy_setopt(handle, CURLoption.HTTPHEADER, headers); + defer curl_slist_free_all(headers); + + err := curl_easy_perform(handle); + if err != .OK { + msg := to_string(curl_easy_strerror(err)); + log_error("curl % %: %", method, url, msg); + return response; + } + + code: s64; + curl_easy_getinfo(handle, CURLINFO.RESPONSE_CODE, *code); + response.status_code = code; + response.body = builder_to_string(*buf.builder); + response.ok = code >= 200 && code < 300; + return response; +} diff --git a/src/jellyfin/images.jai b/src/jellyfin/images.jai new file mode 100644 index 0000000..6385012 --- /dev/null +++ b/src/jellyfin/images.jai @@ -0,0 +1,25 @@ +// +// Artist / album image fetch. Returns raw bytes that gfx/images.jai can decode +// with stb_image and upload to a Simp.Texture. +// +// Endpoints: +// GET /Items/{itemId}/Images/Primary — square thumb/album art +// GET /Items/{itemId}/Images/Backdrop/0 — 16:9 artist backdrop +// + +fetch_primary_image :: (c: *Jellyfin_Client, item_id: string) -> string, bool { + if !c.logged_in return "", false; + path := tprint("/Items/%/Images/Primary", item_id); + resp := http_get(c, path); + if !resp.ok return "", false; + return resp.body, true; +} + +fetch_backdrop_image :: (c: *Jellyfin_Client, item_id: string) -> string, bool { + if !c.logged_in return "", false; + // Backdrop/0 fetches the first (usually highest-rated) backdrop image + path := tprint("/Items/%/Images/Backdrop/0?fillWidth=1920&fillHeight=1080&quality=85", item_id); + resp := http_get(c, path); + if !resp.ok return "", false; + return resp.body, true; +} diff --git a/src/jellyfin/index.jai b/src/jellyfin/index.jai new file mode 100644 index 0000000..ce521c3 --- /dev/null +++ b/src/jellyfin/index.jai @@ -0,0 +1,6 @@ +#load "client.jai"; +#load "async.jai"; +#load "auth.jai"; +#load "library.jai"; +#load "images.jai"; +#load "stream.jai"; diff --git a/src/jellyfin/library.jai b/src/jellyfin/library.jai new file mode 100644 index 0000000..0edae95 --- /dev/null +++ b/src/jellyfin/library.jai @@ -0,0 +1,240 @@ +// +// Library browsing — async. The UI calls library_refresh_artists / +// library_select_artist / library_select_album, which submit HTTP tasks. +// When each task completes the on_done callback parses JSON and writes the +// result into app.library on the main thread. +// +// Stale-result guard: each "select" stores a generation id. Late callbacks +// compare against the current id and discard if the user has navigated +// elsewhere. +// + +Artist :: struct { + id: string; + name: string; +} + +Album :: struct { + id: string; + name: string; + artist: string; + artist_id: string; +} + +Track :: struct { + id: string; + name: string; + album: string; + album_id: string; + artist: string; + artist_id: string; + duration_ticks: s64; + index_number: int; +} + +Library_State :: struct { + artists: [..] Artist; + albums: [..] Album; + tracks: [..] Track; + + selected_artist_id: string; + selected_album_id: string; + + artists_loaded: bool; + albums_loaded: bool; + tracks_loaded: bool; + + artists_loading: bool; + albums_loading: bool; + tracks_loading: bool; + + // Generation counters used by the async callbacks to discard stale + // results when the user has navigated away. + albums_request_gen: int; + tracks_request_gen: int; + + artists_scroll: float; + albums_scroll: float; + tracks_scroll: float; +} + +#scope_module + +Item_Summary :: struct { + Id: string; + Name: string; + Album: string; + AlbumId: string; + AlbumArtist: string; + AlbumArtistId: string; + RunTimeTicks: s64; + IndexNumber: int; +} + +Items_Response :: struct { + Items: [..] Item_Summary; + TotalRecordCount: int; +} + +#scope_export + +// +// Public — kick off async fetches. +// + +library_refresh_artists :: () { + if app.library.artists_loading return; + app.library.artists_loading = true; + path := tprint("/Users/%/Items?IncludeItemTypes=MusicArtist&Recursive=true&SortBy=SortName&Limit=2000", app.jellyfin.user_id); + log_info("library: fetching artists"); + http_submit("GET", path, on_done=on_artists_loaded); +} + +library_select_artist :: (artist_id: string) { + if app.library.selected_artist_id == artist_id && app.library.albums_loaded return; + + free(app.library.selected_artist_id); + app.library.selected_artist_id = copy_string(artist_id); + + free_albums(*app.library.albums); + app.library.albums_loaded = false; + app.library.albums_loading = true; + app.library.albums_request_gen += 1; + app.library.albums_scroll = 0; + + free_tracks(*app.library.tracks); + free(app.library.selected_album_id); + app.library.selected_album_id = ""; + app.library.tracks_loaded = false; + app.library.tracks_loading = false; + app.library.tracks_scroll = 0; + + path := tprint("/Users/%/Items?IncludeItemTypes=MusicAlbum&ArtistIds=%&Recursive=true&SortBy=ProductionYear,SortName&Limit=2000", app.jellyfin.user_id, artist_id); + log_info("library: fetching albums for %", artist_id); + http_submit("GET", path, on_done=on_albums_loaded, user_data=cast(*void) app.library.albums_request_gen); +} + +library_select_album :: (album_id: string) { + if app.library.selected_album_id == album_id && app.library.tracks_loaded return; + + free(app.library.selected_album_id); + app.library.selected_album_id = copy_string(album_id); + + free_tracks(*app.library.tracks); + app.library.tracks_loaded = false; + app.library.tracks_loading = true; + app.library.tracks_request_gen += 1; + app.library.tracks_scroll = 0; + + path := tprint("/Users/%/Items?ParentId=%&IncludeItemTypes=Audio&SortBy=ParentIndexNumber,IndexNumber,SortName&Limit=2000", app.jellyfin.user_id, album_id); + log_info("library: fetching tracks for %", album_id); + http_submit("GET", path, on_done=on_tracks_loaded, user_data=cast(*void) app.library.tracks_request_gen); +} + +#scope_file + +// +// Callbacks — run on the main thread once the worker thread finishes. +// + +on_artists_loaded :: (task: *Http_Task) { + app.library.artists_loading = false; + if !task.response.ok { + log_error("artists: status=% body=%", task.response.status_code, slice(task.response.body, 0, min(300, task.response.body.count))); + return; + } + ok, parsed := Jaison.json_parse_string(task.response.body, Items_Response); + if !ok { + log_error("artists: json parse failed"); + return; + } + free_artists(*app.library.artists); + for parsed.Items { + a: Artist; + a.id = copy_string(it.Id); + a.name = copy_string(it.Name); + array_add(*app.library.artists, a); + } + app.library.artists_loaded = true; + log_info("library: % artists loaded", app.library.artists.count); + + // Prefetch every artist thumb. The image cache caps concurrency at 4 + // so this just queues — it doesn't blow up the network. + for app.library.artists image_request(it.id, .THUMB); +} + +on_albums_loaded :: (task: *Http_Task) { + gen := cast(int) task.user_data; + if gen != app.library.albums_request_gen return; // user moved on; discard + + app.library.albums_loading = false; + if !task.response.ok { + log_error("albums: status=% body=%", task.response.status_code, slice(task.response.body, 0, min(300, task.response.body.count))); + return; + } + ok, parsed := Jaison.json_parse_string(task.response.body, Items_Response); + if !ok { + log_error("albums: json parse failed"); + return; + } + free_albums(*app.library.albums); + for parsed.Items { + a: Album; + a.id = copy_string(it.Id); + a.name = copy_string(it.Name); + a.artist = copy_string(it.AlbumArtist); + a.artist_id = copy_string(it.AlbumArtistId); + array_add(*app.library.albums, a); + } + app.library.albums_loaded = true; + log_info("library: % albums loaded", app.library.albums.count); + + // Prefetch every album thumb up front so scrolling is instant. + for app.library.albums image_request(it.id, .THUMB); +} + +on_tracks_loaded :: (task: *Http_Task) { + gen := cast(int) task.user_data; + if gen != app.library.tracks_request_gen return; + + app.library.tracks_loading = false; + if !task.response.ok { + log_error("tracks: status=% body=%", task.response.status_code, slice(task.response.body, 0, min(300, task.response.body.count))); + return; + } + ok, parsed := Jaison.json_parse_string(task.response.body, Items_Response); + if !ok { + log_error("tracks: json parse failed"); + return; + } + free_tracks(*app.library.tracks); + for parsed.Items { + t: Track; + t.id = copy_string(it.Id); + t.name = copy_string(it.Name); + t.album = copy_string(it.Album); + t.album_id = copy_string(it.AlbumId); + t.artist = copy_string(it.AlbumArtist); + t.artist_id = copy_string(it.AlbumArtistId); + t.duration_ticks = it.RunTimeTicks; + t.index_number = it.IndexNumber; + array_add(*app.library.tracks, t); + } + app.library.tracks_loaded = true; + log_info("library: % tracks loaded", app.library.tracks.count); +} + +free_artists :: (xs: *[..] Artist) { + for xs.* { free(it.id); free(it.name); } + array_reset(xs); +} + +free_albums :: (xs: *[..] Album) { + for xs.* { free(it.id); free(it.name); free(it.artist); free(it.artist_id); } + array_reset(xs); +} + +free_tracks :: (xs: *[..] Track) { + for xs.* { free(it.id); free(it.name); free(it.album); free(it.album_id); free(it.artist); free(it.artist_id); } + array_reset(xs); +} diff --git a/src/jellyfin/stream.jai b/src/jellyfin/stream.jai new file mode 100644 index 0000000..7d7a1cf --- /dev/null +++ b/src/jellyfin/stream.jai @@ -0,0 +1,18 @@ +// +// Build a streaming URL for a track. Jellyfin has /Audio/{id}/universal which +// transcodes if needed, but for now we'll prefer /Audio/{id}/stream.{ext} and +// transcode-fallback later. +// + +build_stream_url :: (c: *Jellyfin_Client, track_id: string) -> string { + return tprint("%/Audio/%/stream?api_key=%", c.server_url, track_id, c.auth_token); +} + +// Download an entire track into memory, suitable to hand off to +// Sound_Player.load_audio_data(). +download_track_bytes :: (c: *Jellyfin_Client, track_id: string) -> string, bool { + path := tprint("/Audio/%/stream", track_id); + resp := http_get(c, path); + if !resp.ok return "", false; + return resp.body, true; +} diff --git a/src/main.jai b/src/main.jai new file mode 100644 index 0000000..7b74a59 --- /dev/null +++ b/src/main.jai @@ -0,0 +1,23 @@ +// +// player — jellyfin music player +// +// All actual code lives under sibling folders. Each folder owns an index.jai +// that #loads its files, so adding code = drop a file + one #load line. +// +// Order: imports first (so types are in scope), then util, then everything else. +// + +#load "core/imports.jai"; + +#load "util/index.jai"; +#load "core/index.jai"; +#load "jellyfin/index.jai"; +#load "audio/index.jai"; +#load "gfx/index.jai"; +#load "ui/index.jai"; + +main :: () { + app_init(); + defer app_shutdown(); + run_main_loop(); +} diff --git a/src/ui/fonts.jai b/src/ui/fonts.jai new file mode 100644 index 0000000..06dae89 --- /dev/null +++ b/src/ui/fonts.jai @@ -0,0 +1,18 @@ +// +// Font loading. Sized relative to window height so the UI scales sanely on +// resize. Called from app_init() and on window-resize. +// + +FONT_DIR :: "data/fonts"; +FONT_FILE :: "OpenSans-BoldItalic.ttf"; + +init_fonts :: () { + h := app.window_height; + app.title_font = Simp.get_font_at_size(FONT_DIR, FONT_FILE, h / 8); + app.big_font = Simp.get_font_at_size(FONT_DIR, FONT_FILE, h / 18); + app.row_font = Simp.get_font_at_size(FONT_DIR, FONT_FILE, h / 24); + app.button_font = Simp.get_font_at_size(FONT_DIR, FONT_FILE, h / 32); + app.body_font = Simp.get_font_at_size(FONT_DIR, FONT_FILE, h / 40); + + if !app.title_font log_error("font load failed: %", FONT_FILE); +} diff --git a/src/ui/index.jai b/src/ui/index.jai new file mode 100644 index 0000000..2b87464 --- /dev/null +++ b/src/ui/index.jai @@ -0,0 +1,3 @@ +#load "fonts.jai"; +#load "theme.jai"; +#load "views/index.jai"; diff --git a/src/ui/theme.jai b/src/ui/theme.jai new file mode 100644 index 0000000..ec39ac6 --- /dev/null +++ b/src/ui/theme.jai @@ -0,0 +1,13 @@ +// +// 2000s album-skin theme. We start from the GetRect "Blood Vampire" / "Nimbus" +// vibe but you can pick any of the bundled themes via app.current_theme. +// +// Eventually we'll write a fully custom Overall_Theme here with chunky bevels, +// big rounding, and neon accents. For MVP we lean on the existing theme procs +// and let the visualizer shader carry the aesthetic. +// + +ui_theme_init :: () { + // Default_Themes.Blood_Vampire is the loudest stock theme — fits the brief. + app.current_theme = xx Default_Themes.Blood_Vampire; +} diff --git a/src/ui/views/index.jai b/src/ui/views/index.jai new file mode 100644 index 0000000..a25cd80 --- /dev/null +++ b/src/ui/views/index.jai @@ -0,0 +1,3 @@ +#load "login_view.jai"; +#load "library_view.jai"; +#load "now_playing_view.jai"; diff --git a/src/ui/views/library_view.jai b/src/ui/views/library_view.jai new file mode 100644 index 0000000..aefe7cf --- /dev/null +++ b/src/ui/views/library_view.jai @@ -0,0 +1,246 @@ +// +// Library browser. Three scrollable columns: artists | albums | tracks. +// Click an artist → fetch its albums. Click an album → fetch its tracks. +// Click a track → play it (and queue the rest of the album). +// +// Top bar: title + logout. Bottom bar: now-playing strip + transport controls. +// + +draw_library_view :: () { + w := cast(float) app.window_width; + h := cast(float) app.window_height; + + // Margins. + pad := h * 0.02; + top_h := h * 0.10; // header strip + bottom_h := h * 0.10; // transport strip + + draw_library_header(0, 0, w, top_h); + draw_library_columns(pad, top_h, w - pad * 2, h - top_h - bottom_h); + draw_transport_strip(0, h - bottom_h, w, bottom_h); +} + +#scope_file + +draw_library_header :: (x: float, y: float, w: float, h: float) { + label_theme := app.theme.label_theme; + label_theme.font = app.title_font; + label_theme.alignment = .Left; + label_theme.text_color = .{1, 0.4, 0.8, 1}; + label(get_rect(x + h * 0.4, y + h * 0.1, w * 0.5, h * 0.8), "PLAYER", *label_theme); + + button_theme := app.theme.button_theme; + button_theme.font = app.button_font; + button_theme.label_theme.alignment = .Center; + + bw := w * 0.10; + bh := h * 0.5; + if button(get_rect(x + w - bw - h * 0.4, y + h * 0.25, bw, bh), "logout", *button_theme) { + jellyfin_logout(*app.jellyfin); + free(app.jellyfin.password); + app.jellyfin.password = copy_string(""); + app.current_view = .LOGIN; + } +} + +draw_library_columns :: (x: float, y: float, w: float, h: float) { + pad := w * 0.01; + col_w := (w - pad * 2) / 3.0; + + artists_x := x; + albums_x := x + col_w + pad; + tracks_x := x + col_w * 2 + pad * 2; + + draw_artists_column(artists_x, y, col_w, h); + draw_albums_column (albums_x, y, col_w, h); + draw_tracks_column (tracks_x, y, col_w, h); +} + +draw_artists_column :: (x: float, y: float, w: float, h: float) { + header_h := app.button_font.character_height * 1.5; + draw_column_header(x, y, w, header_h, "ARTISTS"); + + region_y := y + header_h; + region_h := h - header_h; + region, inside := begin_scrollable_region(get_rect(x, region_y, w, region_h)); + + button_theme := app.theme.button_theme; + button_theme.font = app.row_font; + button_theme.label_theme.alignment = .Left; + + row_h := app.row_font.character_height * 1.8; + s := inside; + s.h = row_h; + s.y -= app.library.artists_scroll; + + for app.library.artists { + active := app.library.selected_artist_id == it.id; + bt := button_theme; + if active { + bt.surface_color = .{0.35, 0.10, 0.45, 1}; + bt.text_color = .{1, 1, 1, 1}; + } + + thumb_size := row_h; + thumb_pad := row_h * 0.10; + + img := image_request(it.id, .THUMB); + draw_image(s.x, s.y, thumb_size, row_h, img); + + btn_x := s.x + thumb_size + thumb_pad; + btn_w := s.w - thumb_size - thumb_pad; + if button(get_rect(btn_x, s.y, btn_w, row_h), it.name, *bt, identifier=it_index) { + library_select_artist(it.id); + } + s.y += row_h * 1.05; + } + + end_scrollable_region(region, s.x + s.w, s.y, *app.library.artists_scroll); +} + +draw_albums_column :: (x: float, y: float, w: float, h: float) { + header_h := app.button_font.character_height * 1.5; + draw_column_header(x, y, w, header_h, "ALBUMS"); + + region_y := y + header_h; + region_h := h - header_h; + region, inside := begin_scrollable_region(get_rect(x, region_y, w, region_h)); + + button_theme := app.theme.button_theme; + button_theme.font = app.row_font; + button_theme.label_theme.alignment = .Left; + + row_h := app.row_font.character_height * 1.8; + s := inside; + s.h = row_h; + s.y -= app.library.albums_scroll; + + for app.library.albums { + active := app.library.selected_album_id == it.id; + bt := button_theme; + if active { + bt.surface_color = .{0.35, 0.10, 0.45, 1}; + bt.text_color = .{1, 1, 1, 1}; + } + + thumb_size := row_h; + thumb_pad := row_h * 0.10; + + img := image_request(it.id, .THUMB); + draw_image(s.x, s.y, thumb_size, row_h, img); + + btn_x := s.x + thumb_size + thumb_pad; + btn_w := s.w - thumb_size - thumb_pad; + if button(get_rect(btn_x, s.y, btn_w, row_h), it.name, *bt, identifier=it_index) { + library_select_album(it.id); + } + s.y += row_h * 1.05; + } + + end_scrollable_region(region, s.x + s.w, s.y, *app.library.albums_scroll); +} + +draw_tracks_column :: (x: float, y: float, w: float, h: float) { + header_h := app.button_font.character_height * 1.5; + draw_column_header(x, y, w, header_h, "TRACKS"); + + region_y := y + header_h; + region_h := h - header_h; + region, inside := begin_scrollable_region(get_rect(x, region_y, w, region_h)); + + button_theme := app.theme.button_theme; + button_theme.font = app.row_font; + button_theme.label_theme.alignment = .Left; + + row_h := app.row_font.character_height * 1.8; + s := inside; + s.h = row_h; + s.y -= app.library.tracks_scroll; + + for app.library.tracks { + playing := app.current_stream && app.current_track.id == it.id; + bt := button_theme; + if playing { + bt.surface_color = .{0.10, 0.40, 0.55, 1}; + bt.text_color = .{1, 1, 1, 1}; + } + + label_text := tprint("%. %", it.index_number, it.name); + if button(s, label_text, *bt, identifier=it_index) { + queue_clear(); + for tr, idx: app.library.tracks { + queue_add(tr); + if tr.id == it.id queue.current = idx; + } + audio_play_track(it); + app.current_view = .NOW_PLAYING; + } + s.y += row_h * 1.05; + } + + end_scrollable_region(region, s.x + s.w, s.y, *app.library.tracks_scroll); +} + +draw_column_header :: (x: float, y: float, w: float, h: float, text: string) { + label_theme := app.theme.label_theme; + label_theme.font = app.button_font; + label_theme.alignment = .Left; + label_theme.text_color = .{0.6, 0.9, 1.0, 1}; + label(get_rect(x, y, w, h), text, *label_theme); +} + +draw_transport_strip :: (x: float, y: float, w: float, h: float) { + // Now-playing readout (left). + label_theme := app.theme.label_theme; + label_theme.font = app.button_font; + label_theme.alignment = .Left; + label_theme.text_color = .{1, 1, 1, 1}; + + title := ifx app.current_stream + then tprint("% — % [%]", app.current_track.artist, app.current_track.name, app.current_format) + else "—"; + label(get_rect(x + h * 0.3, y + h * 0.2, w * 0.40, h * 0.6), title, *label_theme); + + // Volume slider (middle). + { + slider_theme := app.theme.slider_theme; + slider_theme.foreground.font = app.body_font; + + vw := w * 0.18; + vh := h * 0.55; + vx := x + w * 0.42; + vy := y + h * 0.225; + + before := app.master_volume; + slider( + get_rect(vx, vy, vw, vh), + *app.master_volume, + 0.0, 1.0, 0.05, + *slider_theme, + "vol ", "", + identifier=99, + ); + if before != app.master_volume config_save(); + } + + // Transport buttons (right cluster). + button_theme := app.theme.button_theme; + button_theme.font = app.button_font; + button_theme.label_theme.alignment = .Center; + + bw := h * 1.3; + bh := h * 0.55; + spacing := h * 0.15; + cluster_w := bw * 4 + spacing * 3; + bx := x + w - cluster_w - h * 0.3; + by := y + h * 0.225; + + if button(get_rect(bx, by, bw, bh), "<<", *button_theme) queue_prev(); + bx += bw + spacing; + pp_label := ifx audio_is_paused() then "PLAY" else "PAUSE"; + if button(get_rect(bx, by, bw, bh), pp_label, *button_theme) audio_toggle_pause(); + bx += bw + spacing; + if button(get_rect(bx, by, bw, bh), ">>", *button_theme) queue_next(); + bx += bw + spacing; + if button(get_rect(bx, by, bw, bh), "now", *button_theme) app.current_view = .NOW_PLAYING; +} diff --git a/src/ui/views/login_view.jai b/src/ui/views/login_view.jai new file mode 100644 index 0000000..6dcc385 --- /dev/null +++ b/src/ui/views/login_view.jai @@ -0,0 +1,87 @@ +// +// Login screen. Three text inputs (server URL, username, password) and a +// big chunky CONNECT button. +// + +draw_login_view :: () { + w := cast(float) app.window_width; + h := cast(float) app.window_height; + k := h * 0.05; + + // Title. + { + label_theme := app.theme.label_theme; + label_theme.font = app.title_font; + label_theme.alignment = .Center; + label_theme.text_color = .{1, 0.4, 0.8, 1}; + r := get_rect(0, h * 0.06, w, app.title_font.character_height * 1.2); + label(r, "PLAYER", *label_theme); + } + { + label_theme := app.theme.label_theme; + label_theme.font = app.body_font; + label_theme.alignment = .Center; + label_theme.text_color = .{0.7, 0.7, 0.9, 1}; + r := get_rect(0, h * 0.06 + app.title_font.character_height * 1.2, w, app.body_font.character_height * 2.0); + label(r, "a jellyfin music player", *label_theme); + } + + // Form column. + field_w := min(w * 0.5, 12.0 * k); + field_x := (w - field_w) * 0.5; + field_h := app.button_font.character_height * 1.7; + + text_theme := app.theme.text_input_theme; + text_theme.font = app.button_font; + + label_theme := app.theme.label_theme; + label_theme.font = app.body_font; + label_theme.alignment = .Left; + + line_h := app.body_font.character_height * 1.2; + gap := field_h * 1.3; + cursor_y := h * 0.40; + + text_field(field_x, *cursor_y, field_w, line_h, field_h, "server URL", *app.jellyfin.server_url, *label_theme, *text_theme); + cursor_y += gap - line_h - field_h; + text_field(field_x, *cursor_y, field_w, line_h, field_h, "username", *app.jellyfin.username, *label_theme, *text_theme); + cursor_y += gap - line_h - field_h; + text_field(field_x, *cursor_y, field_w, line_h, field_h, "password", *app.jellyfin.password, *label_theme, *text_theme); + cursor_y += gap - line_h - field_h; + + // CONNECT button. + cursor_y += k * 0.5; + button_theme := app.theme.button_theme; + button_theme.font = app.button_font; + button_theme.label_theme.alignment = .Center; + label_text := ifx app.jellyfin.login_pending then "CONNECTING..." else "CONNECT"; + if button(get_rect(field_x, cursor_y, field_w, field_h * 1.2), label_text, *button_theme) { + if !app.jellyfin.login_pending { + jellyfin_login_async(*app.jellyfin); + } + } +} + +// +// Stack a label + text_input. Each call gets its own widget identity by +// passing the caller's source location through to the widgets — same trick +// GetRect uses internally. The identifier= disambiguates the two widgets +// drawn at the same loc. +// +text_field :: ( + x: float, y: *float, w: float, label_h: float, input_h: float, + label_text: string, value: *string, + label_theme: *Label_Theme, text_theme: *Text_Input_Theme, + loc := #caller_location, +) { + label(get_rect(x, y.*, w, label_h), label_text, label_theme); + y.* += label_h; + action, new_text := text_input(get_rect(x, y.*, w, input_h), value.*, text_theme, loc=loc); + if action & .ENTERED modify_string(value, new_text); + y.* += input_h; +} + +modify_string :: (ps: *string, new_value: string) { + free(ps.*); + ps.* = copy_string(new_value); +} diff --git a/src/ui/views/now_playing_view.jai b/src/ui/views/now_playing_view.jai new file mode 100644 index 0000000..13d7251 --- /dev/null +++ b/src/ui/views/now_playing_view.jai @@ -0,0 +1,188 @@ +// +// Now playing — the marquee screen. Visualizer shader runs behind this in +// window.jai, so the foreground here is just track info, transport, and +// the seek/volume sliders. +// +// Artist backdrop (if available) renders full-screen behind everything with +// a dark tint overlay so the UI remains readable. +// + +draw_now_playing_view :: () { + w := cast(float) app.window_width; + h := cast(float) app.window_height; + k := h * 0.05; + + has_track := app.current_stream != null || app.current_track.id.count > 0; + + // + // Full-screen artist backdrop (drawn first, behind everything). + // We tint it dark so the UI text remains readable. + // + if has_track && app.current_track.artist_id.count > 0 { + backdrop := image_request(app.current_track.artist_id, .BACKDROP); + // Draw backdrop full-screen + draw_image(0, 0, w, h, backdrop); + // Dark overlay: 60% black so the UI pops against busy backdrops + Simp.set_shader_for_color(); + Simp.immediate_quad(0, 0, w, h, .{0.05, 0.02, 0.08, 0.60}); + } else { + // No track playing — solid background + Simp.set_shader_for_color(); + Simp.immediate_quad(0, 0, w, h, .{0.05, 0.02, 0.08, 1}); + } + + // Top-left: back to library. + { + button_theme := app.theme.button_theme; + button_theme.font = app.button_font; + button_theme.label_theme.alignment = .Center; + if button(get_rect(k * 0.6, k * 0.6, w * 0.16, k), "library", *button_theme) { + app.current_view = .LIBRARY; + } + } + + // Layout: art on the left, info column on the right. + art_size := min(w * 0.32, h * 0.55); + art_x := w * 0.06; + art_y := h * 0.12; + + info_x := art_x + art_size + w * 0.04; + info_w := w - info_x - w * 0.06; + + if has_track { + img := image_request(app.current_track.album_id, .LARGE); + draw_image(art_x, art_y, art_size, art_size, img); + } else { + // Placeholder slot so the layout doesn't shift on first launch. + Simp.set_shader_for_color(); + Simp.immediate_quad(art_x, art_y, art_x + art_size, art_y + art_size, .{0.10, 0.05, 0.18, 1}); + } + + // Track name (large). + text := ifx has_track app.current_track.name else "— silence —"; + { + label_theme := app.theme.label_theme; + label_theme.font = app.title_font; + label_theme.alignment = .Left; + label_theme.text_color = .{1, 0.4, 0.8, 1}; + r := get_rect(info_x, art_y, info_w, app.title_font.character_height * 1.4); + label(r, text, *label_theme); + } + + if has_track { + label_theme := app.theme.label_theme; + label_theme.font = app.big_font; + label_theme.alignment = .Left; + label_theme.text_color = .{0.8, 0.8, 1, 1}; + r := get_rect(info_x, art_y + app.title_font.character_height * 1.5, info_w, app.big_font.character_height * 1.4); + label(r, app.current_track.artist, *label_theme); + + label_theme.font = app.body_font; + label_theme.text_color = .{0.6, 0.6, 0.8, 1}; + r = get_rect(info_x, art_y + app.title_font.character_height * 1.5 + app.big_font.character_height * 1.6, info_w, app.body_font.character_height * 1.5); + label(r, app.current_track.album, *label_theme); + + // Format chip. + label_theme.text_color = .{0.5, 0.9, 0.7, 1}; + format_text := tprint("[%]", app.current_format); + r = get_rect(info_x, art_y + app.title_font.character_height * 1.5 + app.big_font.character_height * 1.6 + app.body_font.character_height * 1.6, info_w, app.body_font.character_height * 1.5); + label(r, format_text, *label_theme); + } + + // Seek slider — replaces the old hand-drawn position strip. + if has_track && app.current_stream && app.current_stream.sound_data { + rate := cast(float) app.current_stream.sound_data.sampling_rate; + total := cast(float) app.current_track.duration_ticks / 10_000_000.0; + if total <= 0 total = max(cast(float) app.current_stream.play_cursor / rate + 1, 1); + + // Each frame, mirror play_cursor → scrub_seconds before the slider + // draws. If the user drags, the slider mutates scrub_seconds in + // place; we read `changed` and seek. + app.scrub_seconds = clamp(cast(float) app.current_stream.play_cursor / rate, 0, total); + + slider_theme := app.theme.slider_theme; + slider_theme.foreground.font = app.button_font; + + slider_w := w * 0.7; + slider_h := k * 0.6; + slider_x := (w - slider_w) * 0.5; + slider_y := h * 0.66; + + changed, _ := slider( + get_rect(slider_x, slider_y, slider_w, slider_h), + *app.scrub_seconds, + 0.0, total, 1.0, + *slider_theme, + "", "s", + ); + if changed { + audio_seek_seconds(app.scrub_seconds); + } + + // Time labels under the slider. + time_theme := app.theme.label_theme; + time_theme.font = app.body_font; + time_theme.text_color = .{0.7, 0.7, 0.85, 1}; + time_theme.alignment = .Left; + label(get_rect(slider_x, slider_y + slider_h, slider_w * 0.5, app.body_font.character_height * 1.3), + format_seconds(app.scrub_seconds), *time_theme); + time_theme.alignment = .Right; + label(get_rect(slider_x + slider_w * 0.5, slider_y + slider_h, slider_w * 0.5, app.body_font.character_height * 1.3), + format_seconds(total), *time_theme); + } + + // Transport buttons cluster, centered. + button_theme := app.theme.button_theme; + button_theme.font = app.button_font; + button_theme.label_theme.alignment = .Center; + + bw := k * 2.6; + bh := k * 1.6; + spacing := k * 0.4; + total_btn_w := bw * 3 + spacing * 2; + bx := (w - total_btn_w) * 0.5; + by := h * 0.78; + + if button(get_rect(bx, by, bw, bh), "<<", *button_theme, identifier=1) queue_prev(); + bx += bw + spacing; + pp_label := ifx audio_is_paused() then "PLAY" else "PAUSE"; + if button(get_rect(bx, by, bw, bh), pp_label, *button_theme, identifier=2) audio_toggle_pause(); + bx += bw + spacing; + if button(get_rect(bx, by, bw, bh), ">>", *button_theme, identifier=3) queue_next(); + + // Volume slider, bottom-right. + { + slider_theme := app.theme.slider_theme; + slider_theme.foreground.font = app.body_font; + + vw := w * 0.18; + vh := k * 0.55; + vx := w - vw - k * 0.6; + vy := h - vh - k * 0.6; + + before := app.master_volume; + slider( + get_rect(vx, vy, vw, vh), + *app.master_volume, + 0.0, 1.0, 0.05, + *slider_theme, + "vol ", "", + identifier=99, + ); + if before != app.master_volume { + // Persist on every change — config_save is cheap and the user + // expects volume to survive restarts. + config_save(); + } + } +} + +#scope_file + +format_seconds :: (s: float) -> string { + if !(s >= 0) return "0:00"; // catches negatives and NaN + total := cast(int) s; + m := total / 60; + sec := total - m * 60; + return tprint("%:%", m, formatInt(sec, minimum_digits=2)); +} diff --git a/src/util/index.jai b/src/util/index.jai new file mode 100644 index 0000000..317af7f --- /dev/null +++ b/src/util/index.jai @@ -0,0 +1,2 @@ +#load "log.jai"; +#load "path.jai"; diff --git a/src/util/log.jai b/src/util/log.jai new file mode 100644 index 0000000..c4fa858 --- /dev/null +++ b/src/util/log.jai @@ -0,0 +1,22 @@ +// +// Tiny logging shim. Wraps print() so we can later add levels/file output without +// touching call sites. +// + +log_info :: (fmt: string, args: ..Any) { + print("[info] "); + print(fmt, ..args); + print("\n"); +} + +log_warn :: (fmt: string, args: ..Any) { + print("[warn] "); + print(fmt, ..args); + print("\n"); +} + +log_error :: (fmt: string, args: ..Any) { + print("[error] "); + print(fmt, ..args); + print("\n"); +} diff --git a/src/util/path.jai b/src/util/path.jai new file mode 100644 index 0000000..35885a4 --- /dev/null +++ b/src/util/path.jai @@ -0,0 +1,26 @@ +// +// Find the data/ folder regardless of where the binary was launched. +// +// We try cwd, then the exe's directory, then exe_dir/.. (so running +// ./build/player from the project root works). +// + +setup_data_directory :: () { + candidates: [..] string; + array_add(*candidates, "."); + + exe_dir := path_strip_filename(get_path_of_running_executable()); + array_add(*candidates, copy_string(exe_dir)); + array_add(*candidates, tprint("%/..", exe_dir)); + + for candidates { + data_path := tprint("%/data", it); + if file_exists(data_path) { + set_working_directory(it); + log_info("working dir: %", it); + return; + } + } + + log_warn("could not locate data/ — fonts and shaders may fail to load"); +}

    fkSuogIlx*Jr) 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