* Add support for bitstream filter to remove dynamic hdr metadata
* Add support for ffprobe's only_first_vframe for HDR10+ detection
* Add BitStreamFilterOptionType for metadata removal check
* Map HDR10+ metadata to VideoRangeType.cs
Current implementation uses a hack that abuses the EL flag to avoid database schema changes. Should add proper field once EFCore migration is merged.
* Add more Dolby Vision Range types
Out of spec ones are problematic and should be marked as a dedicated invalid type and handled by the server to not crash the player.
Profile 7 videos should not be treated as normal HDR10 videos at all and should remove the metadata before serving.
* Remove dynamic hdr metadata when necessary
* Allow direct playback of HDR10+ videos on HDR10 clients
* Only use dovi codec tag when dovi metadata is not removed
* Handle DV Profile 7 Videos better
* Fix HDR10+ with new bitmask
* Indicate the presence of HDR10+ in HLS SUPPLEMENTAL-CODECS
* Fix Dovi 8.4 not labeled as HLG in HLS
* Fallback to dovi_rpu bsf for av1 when possible
* Fix dovi_rpu cli for av1
* Use correct EFCore db column for HDR10+
* Undo outdated migration
* Add proper hdr10+ migration
* Remove outdated migration
* Rebase to new db code
* Add migrations for Hdr10PlusPresentFlag
* Directly use bsf enum
* Add xmldocs for SupportsBitStreamFilterWithOption
* Make `VideoRangeType.Unknown` explicitly default on api models.
* Unset default for non-api model class
* Use tuples for bsf dictionary for now
This decoder differs from others provided by VideoToolbox in that it lacks any software fallback. To achieve consistent behavior with other VideoToolbox decoders, this PR implemented additional checking on the server to simulate the software fallback provided by VideoToolbox.
The current fallback checking mechanism is a temporary solution. In the long term, it should be replaced with a more capable hardware capability checking system.
Create and use FormattingStreamWriter
Original-merge: cd2f2ca17800f71c8d94a6e043b49b7c4200e254
Merged-by: Bond-009 <bond.009@outlook.com>
Backported-by: Joshua M. Boniface <joshua@boniface.me>
This applies software tonemapx filter for dolby vision videos that have no compatability fallback.
Due to the complexity of the reshaping process, this is quite CPU-intensive. For real-time transcoding and tonemapping of 4K 60fps content, a CPU with 16 cores of Zen3-level performance is recommended.
Signed-off-by: gnattu <gnattuoc@me.com>
This would be significantly faster than decoding every frame, but it does have compatibility issues. Not all decoders support this mode, notably the VP9 decoder, CUVID decoders, and QSV decoders.
Some videos with very long key-frame intervals may also perform poorly with this mode, as the image timing could become too inaccurate to reflect the actual frame.
Signed-off-by: gnattu <gnattuoc@me.com>
Retain order blu-ray segments
Original-merge: 2ddf2a7866a9010191de1057f7c7bbbc3cb6e93d
Merged-by: Bond-009 <bond.009@outlook.com>
Backported-by: Joshua M. Boniface <joshua@boniface.me>