Skip to content

← All documentation

Post-install setup · Y2Reborn

Reborn Audiobooks (plan, Beta 8.19+)

Documentation published by SchulzCode/Y2Reborn.

Instructions published by the project, shown here word for word.

Reborn Audiobooks (plan, Beta 8.19+)

Owner request (2026-10-21): audiobooks as a full feature, a Home entry that can be switched on and off, chapters, remembering where the listener stopped, built on Reborn's FFmpeg layer. Y2Player had the feature; it was assessed, not copied.

Owner decisions

What Y2Player had (assessment)

Kept: path identity (book = folder, Disc/CD/Part N folders fold into it, author folders stay), natural chapter order (disc, folder, track only if every file has one, filename), one progress row per book, saves on start/pause/change/tick, nothing saved in the first 10 s or last 5 s of a file, 5 s rewind on resume, books kept out of every music view, Book Options (Chapters, Start from Beginning, Clear Progress), books always in order.

Fixed here: embedded chapters were never read (an M4B was one long item); Next on the last chapter deleted the progress; starting a book turned shuffle and repeat off globally for good; renaming a folder lost the progress; search named books "CD1"; the rewind applied only from the book list; no finished state, no speed, no book-level time left, no settings.

Constraints found in Reborn

Phase 0 results (2026-10-21, host FFmpeg 9.0.2 = device version)

Fixtures made with the host ffmpeg (sine audio, ffmetadata chapters), run through Reborn's media layer (crates/reborn-media/examples/book_probe.rs: inspect, open, read, seek to 90 %):

FileResult beforeAction
3-min M4B, 4 chapters (QuickTime chapter track)ok; FFmpeg chapters incl. umlautsread them (phase 1)
3-min MP3, ID3 CHAPok; chapterssame
Folder book Audiobooks/Author/Book/CD n/0n.mp3okgrouping (phase 1)
M4B with the cover as an MPEG-4 video trackrefused (any non-attached video)admit_streams: in MP4/M4B beside audio the video stream is discarded, never read
10.5-h M4B, AAC-LC 44.1 kHz 32 kb/s (1.63 M frames)scanned, but no audio and no seek: the mov index (24 B/frame, one allocation) exceeds av_max_alloc(32 MiB) and FFmpeg drops it silentlycap 128 MiB (≈36 h at 44.1 kHz AAC-LC); large MP4s scanned one at a time

Cost of the 10.5-h book with the larger cap: peak RSS 186 MB vs 49 MB for a short book (open 49 ms, seek to 90 % in 1 ms). The player has ≈822 MB available; Reborn's RSS is ≈33 MB.

Phases

  1. Risks with real files: fixtures for an M4B with chapters, a >10 h M4B, an M4B with an image

    track, an MP3 folder book, an MP3 with CHAP; scan + open within the budgets; chapters seen.

  2. Library: book identity computed from path/extension/genre (no schema or revision bump);

    grouping and order; author from album artist/artist; rb_media_chapters + a chapter cache table keyed by file identity; books removed from Songs/Albums/Artists/Genres/Folders, Cover Flow, counts, Recently added, Shuffle, Last.fm.

  3. Progress: additive book_progress table (book key, file, position, chapter, finished,

    updated); found again by file name + size after a rename; saved every 15 s, on pause, chapter change, switching away and shutdown; rewind 5 s (pause < 10 min), 15 s (< 1 day), 30 s (longer); finished instead of deleted.

  4. Playback rules: no shuffle/repeat/crossfade for books (music settings untouched); Next/Previous

    = chapter (Previous restarts after 5 s); last chapter never deletes; held seek steps 10 s → 30 s → 60 s; in-file seek without reopening; AVRCP title = chapter, album = book.

  5. Menus: Home > Audiobooks (continue first, cover, author, "Chapter 3 of 12 · 45 %",

    Finished), book page (Resume, Start Over, Chapters, Mark as Finished, total/left), Now Playing for books (chapter title and progress, book time left, h:mm:ss), hold menu Chapters / Speed / Sleep.

  6. Speed: atempo in Y2Linux FFmpeg and its verify lists, RbDspConfig.speed, scaled times.
  7. Sleep timer.
  8. Finish: tests, previews, skins, docs, device test with real books, beta.

Status (2026-10-21)

Phases 0–6 are implemented on main (11febec library, faa87fc progress and playback, 56f79ac menus, 6aeec66 speed, b2951f5 sleep timer, f61c7c3 skins); Y2Linux 01d8882 builds FFmpeg with atempo. Code map:

Host evidence: workspace tests (608), clippy, previews b1–b6 in Reborn's look and two skins, GLES comparison 165/165.

Device test (2026-10-21, owner's player, builds 117 and 118 = 1.0.0-beta.8.19, seq 8301/8302)

Test books in Internal Storage/Audiobooks/Reborn Test Books/ (the Phase 0 fixtures: 3-min M4B with 4 chapters, the same as MP3 with ID3 CHAP, an M4B with a cover video track and Nero chapters, a 10.5-h M4B, a 6-file Frank Test/The Folder Book/CD 1|2 book). Buttons by evdev injection, screens by y2-screen-stream.

Not testable by injection: held seek (the button driver reports the key released ~18 ms after an injected press). Not done: in-file seek without a reopen (a chapter jump in a very long single file costs ≈2–3 s); heard by ear: speed quality, the sleep fade.

Published by the SchulzCode/Y2Reborn project [1] [3]