Implement support for encoding Dolby Vision from RPU file#3250
Implement support for encoding Dolby Vision from RPU file#3250quietvoid wants to merge 1 commit into
Conversation
8cc3d6b to
e6d6adb
Compare
|
There are some issues with the current T35 code..
I don't know if the changes I made are any correct but they seem to fix the issues for me. |
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #3250 +/- ##
==========================================
- Coverage 88.09% 88.01% -0.08%
==========================================
Files 85 85
Lines 33596 33651 +55
==========================================
+ Hits 29596 29619 +23
- Misses 4000 4032 +32 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
|
There doesn't seem to be an easy way of fixing the T35 metadata without cloning from the queue, and removing later. |
The changes allow to encode AV1 files with Dolby Vision metadata for playback on supported devices.
As there is no official specification, the minimum I've tested is that the metadata is recognized and used correctly on playback.
The metadata OBU placement is based on #3000 (the AV1 HDR10+ specification), and I've tested it to be working fine with 2 GOPs.
From CLI, the metadata is expected to be passed as a RPU binary file, which follows the same format as encoders like
x265.The metadata parsing/encoding is done through the dolby_vision crate.
The CLI opt can be either
--dovi-rpuor--dolby-vision-rpu(used byx265)From Rust, the metadata must be encoded into the final T.35 and provided for the frames that require it.
For muxing, it's possible to use the GPAC utilities but it currently requires patching for AV1: gpac/gpac#2549
mkvmergewill also have support for raw OBU. IVF has to be added.