aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Controller/MediaEncoding/IMediaEncoder.cs
AgeCommit message (Collapse)Author
2025-04-02Improve dynamic HDR metadata handling (#13277)gnattu
* 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
2024-12-09Enable VideoToolbox AV1 decodegnattu
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.
2024-09-04Adapting AMD VAAPI-Vulkan pipeline to FFmpeg 7.0 (#12577)Nyanmisaka
2024-08-28Prevent server from starting if the ffmpeg path is invalid (#12463)gnattu
2024-07-17Add option to extract keyframe only during trickplay image generationgnattu
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>
2024-05-25Backport pull request #11754 from jellyfin/release-10.9.zShadowghost
Fix BD/DVD folder chapter image extraction Original-merge: 52be8be28fa27c0c7b4f53dc32e00ec0543616a9 Merged-by: Bond-009 <bond.009@outlook.com> Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-03-28fix: move trickplay specific option into TrickplayOptions (#11229)gnattu
2023-10-18Merge branch 'master' into trickplayNick
2023-08-03Expand AMD VA-API Vulkan filtering support to Polaris/gfx8nyanmisaka
ROCm OpenCL runtime is not needed anymore when using HDR tone-mapping on Polaris/gfx8. This change requires jellyfin-ffmpeg5 5.1.3-4 or jellyfin-ffmpeg6 6.0-5 or newer versions. Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2023-06-22Use config valuesnicknsy
2023-06-22Trickplay generation, manager, storagenicknsy
2023-03-10Apply review suggestionsShadowghost
2023-03-10Add more comments and logging, streamline codeShadowghost
2023-02-04Use FFmpeg concat for DVD and BD folder playbackShadowghost
2023-02-04Fix BD and DVD folder probing and playbackShadowghost
2023-02-04Revert "Remove DvdLib (#9068)"Shadowghost
This reverts commit db1913b08fac0749133634efebd1ee7a7876147a.
2023-01-20Remove DvdLib (#9068)Patrick Barron
* Remove DvdLib * Update error message for blu-ray folders Co-authored-by: Shadowghost <Shadowghost@users.noreply.github.com> * Remove BDInfo * Remove MediaEncoder.GetPrimaryPlaylistVobFiles * Remove BlurayDiscInfo Co-authored-by: Shadowghost <Shadowghost@users.noreply.github.com>
2022-12-05Fix some warnings and only disable TreatWarningsAsErrors for CodeAnalysis ↵Bond-009
(#8709)
2022-10-16Add Vulkan filtering support for AMD VAAPI (Vega/gfx9+)nyanmisaka
This requires: - VK_EXT_image_drm_format_modifier extension - Linux kernel version >= 5.15 - jellyfin-ffmpeg5 >= 5.0.1-2 Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2022-09-23Backport pull request #8213 from jellyfin/release-10.8.znyanmisaka
Fix high single thread usage in throttler Original-merge: ba026716c1609941ec50a26e50ef5e68cc84d0c0 Merged-by: Claus Vium <cvium@users.noreply.github.com> Backported-by: Joshua M. Boniface <joshua@boniface.me>
2022-05-20Merge pull request #7529 from Shadowghost/strm-ffprobe-external-fixCody Robibero
(cherry picked from commit 60affd096595d68728506149d0ffce6e84b6b015) Signed-off-by: crobibero <cody@robibe.ro>
2022-01-07Merge branch 'master' into keyframe_extraction_v1cvium
# Conflicts: # Jellyfin.Api/Controllers/DynamicHlsController.cs # MediaBrowser.Controller/MediaEncoding/IMediaEncoder.cs # MediaBrowser.MediaEncoding/Encoder/MediaEncoder.cs
2021-12-27Remove more warningsCody Robibero
2021-12-24Apply suggestions from code reviewnyanmisaka
Co-authored-by: Cody Robibero <cody@robibe.ro> Co-authored-by: Claus Vium <cvium@users.noreply.github.com> Co-authored-by: Bond_009 <bond.009@outlook.com>
2021-12-24EncodingHelper hwaccel pipelines refactornyanmisaka
separate the HW pipeline according to HWA method for maintainability.
2021-11-12Use ImageFormat instead of string for extensionJoe Rogers
2021-11-09Fix some warningsBond_009
down to 580
2021-10-11Add image provider tests and clean upJoe Rogers
2021-10-11Add support for non-jpg image extractionsJoe Rogers
2021-09-23Add first draft of keyframe extraction for Matroskacvium
2021-08-30Merge branch 'master' into tonemap-overlayClaus Vium
2021-08-30Simplify the way we choose our ffmpegBond_009
* no longer search $PATH * no longer require a full path * don't fall back
2021-08-13Merge branch 'master' into tonemap-overlayNyanmisaka
2021-08-11Apply suggestions from code reviewRich Lander
Co-authored-by: Claus Vium <cvium@users.noreply.github.com>
2021-08-10Fix warnings in MediaBrowser.Controller/MediaEncoding directoryRich Lander
2021-07-25add support for cuda tonemap and overlaynyanmisaka
2021-05-13Reduce warnings in MediaBrowser.Controllercrobibero
2021-05-07Enable nullable reference types for MediaBrowser.ControllerBond_009
2021-04-17Remove unused using directivesBaronGreenback
2021-02-06hybird vpp tonemapping for QSV on Linuxnyanmisaka
2021-02-06add cuda format converternyanmisaka
2020-12-03Remove IIsoMounter and IsoMountercrobibero
2020-10-28Merge branch 'master' into bdiso-playbackStan
2020-10-12Fix SA 1116 warningsJan-Pieter Baert
2020-10-01Remove PlayableStreamFileNames as unusedStanislav Ionascu
Since ffmpeg can play and transcode ISO files and BDMV folders directly, there's no use of that property.
2020-10-01Add probe / direct-stream / transcoding support for BluRaysStanislav Ionascu
This commit (and ffmpeg built with libbluray support), adds support for playback of bluray images (bd-iso) and bluray folders.
2020-08-22Enable TreatWarningsAsErrors for MediaBrowser.Controller in ReleaseBond_009
2020-06-16Merge pull request #3343 from telans/comment-stopsBond-009
Add full stop at end of comments (SA1629)
2020-06-16Add full stop at end of comments (SA1629)telans
2020-05-26Update IMediaEncoder.csartiume