Commit Graph

1178 Commits

Author SHA1 Message Date
Ziyuan Qu 29b3aa8543 Add hidden file check in bdInfo (#15582) 2025-11-21 21:14:30 -07:00
gnattu ee7ad83427 Restrict first video frame probing to file protocol (#15557) 2025-11-18 18:36:59 -07:00
Iksas ee34c75386 fix missing font extraction for certain transcoding settings (#15502) 2025-11-13 18:30:18 -07:00
gnattu 70c32a26fa Make priority class setting more robust (#15177) 2025-10-24 17:57:02 -06:00
Nyanmisaka 175ee12bbc Fix videos with cropping metadata are probed as anamorphic (#15144) 2025-10-23 16:31:11 -06:00
Cody Robibero b36aab9399 Validate encoder path (#14996) 2025-10-13 14:16:05 -06:00
Tim Eisele 9c298c52f5 Expose ExtractAllExtractableSubtitles (#14876) 2025-09-26 13:45:01 -06:00
evan314159 2618a5fba2 Fix sync disposal of async-created IAsyncDisposable objects (#14755) 2025-09-16 11:14:52 +02:00
Bond-009 6796b3435d Avoid constant arrays as arguments (#14784) 2025-09-12 13:58:28 -06:00
Bond-009 8776a447d1 Various cleanups (#14785) 2025-09-12 13:58:23 -06:00
Tim Eisele e4e578b37a Don't use ffprobe frame options on audio probe (#14773) 2025-09-10 20:32:14 -06:00
Marc Brooks 0b465842c8 Normalizer cleanup (#14711) 2025-08-27 17:34:00 -06:00
Bond-009 ce28374d40 Run background ffmpeg tasks as ProcessPriorityClass.BelowNormal (#14651)
Follow TrickPlay example of running other background ffmpeg tasks as ProcessPriorityClass.BelowNormal:

- Keyframe extraction
- Media info probing during library scans
- Audio normalization
- Image extraction

Co-authored-by: Evan <evan@MacBook-Pro.local>
2025-08-22 10:08:29 +02:00
Gene 28b8d3ee29 fix: correct anamorphic video detection (#14640) (#14648) 2025-08-15 18:52:43 -06:00
Evan 29e17b6bc0 Run background ffmpeg tasks as ProcessPriorityClass.BelowNormal
Follow TrickPlay example of running other background ffmpeg tasks as ProcessPriorityClass.BelowNormal:

- Keyframe extraction
- Media info probing during library scans
- Audio normalization
- Image extraction
2025-08-15 07:18:44 +08:00
renovate[bot] dea500b26b Update dependency UTF.Unknown to 2.6.0 (#14599)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Bond_009 <bond.009@outlook.com>
2025-08-11 13:06:24 -06:00
Joshua M. Boniface 5cae44fdf7 Merge pull request #12718 from IceStormNG/extract-mks-subtitles
Extract subtitles of MKS aux files if they're extractable.
2025-08-03 17:31:13 -04:00
Bond-009 a52a230778 Merge pull request #14467 from jkhsjdhjs/keyframe-only-trickplay-extraction-fallback
Add fallback for keyframe-only trickplay extraction
2025-08-01 10:30:24 +02:00
jkhsjdhjs 663087b155 Fix trickplay extraction ffmpeg error-handling (#14493) 2025-07-22 17:13:38 -06:00
jkhsjdhjs bf3f37e3d0 Add fallback for keyframe-only trickplay extraction
Keyframe-only trickplay image extraction can fail for some media
files. The current behavior is to skip the media file and try again
on the next run, which will fail again.

This adds a fallback to regular non-keyframe-only extraction for
failed runs, so the extraction can complete.
2025-07-14 00:09:43 +02:00
Carsten Braun 98daf4aedb Use string.IsNullOrEmpty instead of regular null check. 2025-06-07 21:51:08 +02:00
Carsten Braun fcf56b73cb When subtitle is embedded in the main video file, the path will be null. 2025-06-07 21:51:08 +02:00
Carsten Braun e8239a7ee2 Do not attempt to extract internal subtitles if there are only MKS subtitles. 2025-06-07 21:51:08 +02:00
Carsten Braun 84cebeae64 Skip early if subtitle is in MKS to avoid unnecessary function calls. 2025-06-07 21:51:08 +02:00
Carsten Braun c0e2875818 If subtitles are part of an MKS, it is not an error. Just log for debug purpose and continue. 2025-06-07 21:51:08 +02:00
Carsten Braun 411ba03bf0 Fixed formatting 2025-06-07 21:51:08 +02:00
Carsten Braun b2e19c0306 Also extract subtitles of MKS aux files if they're extractable. 2025-06-07 21:51:08 +02:00
nyanmisaka 56231222df Enable OpenCL deinterlacer for AMF on Windows when available
Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2025-05-20 22:07:00 +08:00
Tim Eisele d976f13970 Recognize file changes and remove data on change (#13839) 2025-05-04 21:21:44 -06:00
Bond-009 0c3ba30de2 Cleanup file related code (#14023) 2025-05-04 08:40:34 -06:00
Nyanmisaka 4199f7acc2 Fix the transparency issue of ASS subtitle rendering in HWA (#14024) 2025-05-03 08:21:08 -06:00
gnattu f436743f9f Don't trim image extractor option 2025-04-27 21:37:44 +08:00
gnattu 77bb1a726e Use full range output for image 2025-04-27 21:36:57 +08:00
gnattu 6637102162 Correctly handle retry when I frame only failed 2025-04-27 21:30:02 +08:00
Tim Eisele f576783ae1 Fix distinction queries (#14007) 2025-04-26 18:49:30 -06:00
gnattu 2e467f29de Don't pass through timestamp for image extractor (#13999) 2025-04-26 09:36:40 -06:00
Tim Eisele 9092130350 Optimize migrations (#13855) 2025-04-26 09:36:17 -06:00
Bond-009 74230131a1 Fix OverflowException when scanning media with a very short duration (#13949) 2025-04-19 13:08:29 -06:00
Nyanmisaka e84826297d Fix thumbnail extraction of mpegts videos in FFmpeg 7.1+ (#13942) 2025-04-19 10:41:30 -06:00
Tim Eisele 596b635511 Cleanup extracted files (#13760)
* Cleanup extracted files

* Pagination and fixes

* Add migration for attachments to MigrateLibraryDb

* Unify attachment handling

* Don't extract again if files were already extracted

* Fix MKS attachment extraction

* Always run full extraction on mks

* Don't try to extract mjpeg streams as attachments

* Fallback to check if attachments were extracted to cache folder

* Fixup
2025-04-03 09:17:14 -06:00
gnattu 49ac705867 Improve dynamic HDR metadata handling (#13277)
* 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
2025-04-02 18:06:02 -06:00
Bond-009 476a0d6932 Merge pull request #13194 from gnattu/av1-videotoolbox
Enable VideoToolbox AV1 decode
2025-03-30 23:12:53 +02:00
gnattu c69e9d8f2c Gate the macOS only functions 2025-03-28 21:30:39 +08:00
gnattu 384134fd25 Use string literal 2025-03-28 21:22:00 +08:00
timminator 181a37a8cd Fix consumer count off by one when closing a browser tab with a livestream that is transcoding (#13220)
Rework Implementation
Fix review issues
Add missing nullorempty check
Fix closely related #13721
2025-03-27 17:59:08 -06:00
JPVenson 160020c551 WIP fixed namespaces 2025-03-25 15:30:22 +00:00
JPVenson 850f1c79f1 Merge branch 'master' into feature/DatabaseRefactor 2025-03-25 15:12:48 +00:00
Marc Brooks a5f3d942f6 Merge branch 'master' into sort-nfo-data 2025-03-12 10:33:27 -05:00
Marc Brooks 114591c1aa Clean up usings and honor SortName 2025-02-25 01:51:38 -06:00
JPVenson d8030147ff Merge remote-tracking branch 'jellyfinorigin/master' into feature/DatabaseRefactor 2025-02-19 18:25:00 +00:00