libva lacks a way for user/app to get the actual parameter sets supported by the HW before encoding begins
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 35/100
Direzione di ricerca
Start by reviewing the VA_ENC_PACKED_HEADER_SEQUENCE flow and the existing dummy-encode approach described in the issue, then examine how libva exposes encoder options to drivers. Done means reaching agreement on an API method that lets applications obtain the driver's HEVC parameter sets before the first frame, with the behavior documented and validated across relevant drivers.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
As the title suggests, libva currently assumes that the VA_ENC_PACKED_HEADER_SEQUENCE written by the user or application is fully compatible with the actual bitstream encoded by the hardware. However, in practice, this assumption does not hold true for hardware other than Intel QuickSync.
Starting with FFmpeg 8.0, the MP4 muxer strips in-band parameter sets from videos using the HEVC codec_tag hvc1, leaving only the incompatible VA_ENC_PACKED_HEADER_SEQUENCE written by FFmpeg.
https://github.com/FFmpeg/FFmpeg/commit/f0051604c7f131582e6fa97febd77069e1d87032
This causes decoding failures for the encoded video. Affected players include, but are not limited to, Safari, Chrome, Firefox, FFplay, and MPC-BE. The affected videos cannot be used in HLS fMP4 segments (which is why hvc1 is needed).
Matroska/MKV files also require AV_CODEC_FLAG_GLOBAL_HEADER, so similar issues arise there as well.
Mesa/AMD developer have provided a suggestion:
What would be a good solution is to have an option to only get the encoded headers, eg. a new flag that will disable slice output. App would do the exact same calls as when encoding a frame, except set this new flag. But then again, this is just like a dummy encode which apps can do today and it will work with all drivers. Since it's only needed once at the start of the session, the overhead of one encode job is probably not a big deal.
Could libva consider adding a method to obtain HEVC parameter sets from the vaapi driver before encoding the first frame?
Thanks in advance! @XinfengZhang @nowrep
- Lingua principale
- C
- Stelle
- 793
- Fork
- 318
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
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 intel/libva
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 65/100
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
-
registry_packageAperta
Difficoltà 5/5 Più di una settimana Idoneità per principianti 10/100
-
OjaidiAperta
Difficoltà 5/5 Più di una settimana Idoneità per principianti 1/100
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
I maintainer di solito rispondono entro 5 giorni
-
area:backend bug launch:p2 scope:core
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
Chelis-Lang/chelis#3494 ·
I maintainer di solito rispondono entro 1 giorno
-
IO.get_env on Node truncates names at embedded NULForse già presa @Yi-111-a l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
HigherOrderCO/Bend#1449 · 1 commento ·
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
FujiNetWIFI/fujinet-firmware#1872 ·
I maintainer di solito rispondono entro 1 giorno
-
bug C/C++ code
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
webarkit/WebARKitLib#84 ·
I maintainer di solito rispondono entro 1 giorno