Allow opting into frame-index seeking for MP3s without reliable seek metadata
I maintainer di solito rispondono entro 4 giorni
@icbaker ci sta già lavorando.
Dal 28/10/2026.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 48/100
Direzione di ricerca
Read the MP3 extractor seeking logic around Mp3Extractor.FLAG_ENABLE_INDEX_SEEKING and the ConstantBitrateSeeker, IndexSeeker, and VBR metadata seeker selection. Reproduce the known-length, headerless VBR case from the issue and inspect existing extractor tests. Done means an opt-in selects accurate frame-index seeking when reliable seek metadata is absent while still honoring reliable metadata when present.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Request
Provide an opt-in way to force frame-index seeking for MP3s whose bitrate is unknown and which lack usable Xing/Info/VBRI/MLLT seeking metadata, while still honoring reliable metadata when present. The application cannot always control or preinspect files hosted by third parties and needs accurate seek/resume behavior even if scanning is slower.
Reproduction and results
Media3 1.11.1, Mp3Extractor.FLAG_ENABLE_INDEX_SEEKING, a known-length variable-bitrate MP3 without a VBR seek header:
- Public sample, 5,567,740 bytes, 16 kHz mono, varying frame bitrates, first audio frame 8 kbps at byte 15,424. Complete frame scan: 29:36.456.
- With the known input length, the extractor chooses
ConstantBitrateSeekerand reports 92:32.316. Seeking to 15:04 resolves to byte 919,564, approximately 4:49 in the audio. End-of-audio can consequently be followed by a long silent tail. - With the input length presented as unknown to the extractor in a local experiment, the same flag selects
IndexSeekerand reports approximately 29:36 after the full scan. A lossless remux adding a Xing header selectsXingSeekerand also reports the correct duration.
These results were reproduced against the real extractor in a Robolectric test and are consistent with the player duration captured on a Pixel 9a running Android 17. The code path is not limited to that device. They are not a claim that a complete standalone Media3 demo app has been tested.
Context
Issue #3017 describes the same class of headerless VBR media and discusses customizing computeSeeker. Issue #2848 and the 1.9.0 release notes explain why constant-bitrate seeking was made the default when no VBR metadata is present. An explicit opt-in would let applications choose accurate frame indexing for unknown files without maintaining an extractor fork or hiding input length from the parser; the performance tradeoff is acceptable for some use cases.
Agent: codex
Agent-Model: gpt-6
- Lingua principale
- Java
- Stelle
- 3.1k
- Fork
- 998
- Merge medio
- 6g 8h
- PR unite (30g)
- 2
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di androidx/media
-
Waive ads when seek/start at the beginningForse già presa @microkatz l’ha presa 2 giorni fa. Apertaenhancement
androidx/media#3496 · 2 commenti · 1 assegnatario ·
I maintainer di solito rispondono entro 4 giorni
-
Since 1.9.0, skip buttons in SLOT_BACK / SLOT_FORWARD reach legacy controllers as custom actionsForse già presa @marcbaechinger l’ha presa 1 giorno fa. Apertabug
androidx/media#3495 · 1 commento · 1 assegnatario ·
I maintainer di solito rispondono entro 4 giorni
-
Allow configuring asset-list prefetch timing per HLS interstitialForse già presa @marcbaechinger l’ha presa 2 giorni fa. Apertaenhancement
androidx/media#3494 · 2 commenti · 1 assegnatario ·
I maintainer di solito rispondono entro 4 giorni
-
Offloaded audio left paused keeps AudioFlinger's AudioOffload wake lock forever, device never suspendsForse già presa @microkatz l’ha presa 2 giorni fa. Apertabug
androidx/media#3493 · 1 commento · 1 assegnatario ·
I maintainer di solito rispondono entro 4 giorni
-
MediaSessionService: the platform session keeps every player command and publishes the whole queue until the session is added, e.g. after a sticky restartForse già presa @marcbaechinger l’ha presa 4 giorni fa. Apertabug
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
androidx/media#3490 · 4 commenti · 1 assegnatario ·
I maintainer di solito rispondono entro 4 giorni
Tutte le issue di androidx/media
Issue simili
-
bug/错误
Difficoltà 2/5 1-3 ore Idoneità per principianti 64/100
FCL-Team/FoldCraftLauncher#1982 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
[BUG] micronaut-serde-oracle-jdbc-json brings a second OJDBC driver onto the runtime classpathForse già presa @ZARAYACH l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
micronaut-projects/micronaut-serialization#1494 · 4 commenti ·
I maintainer di solito rispondono entro 2 giorni
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 73/100
I maintainer di solito rispondono entro 2 giorni
-
bug
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 85/100
vitruv-tools/Vitruv-Change#600 ·
I maintainer di solito rispondono entro 1 giorno
-
code-health feature/sync OS/Android QA/Test-Plan-Specified QA/Yes
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
brave/brave-browser#60327 ·
I maintainer di solito rispondono entro 1 giorno