Commit Graph

10 Commits

Author SHA1 Message Date
Marc Brooks
5c7ee6a635 Improved resilience for fast-paths
Use fast paths only if we can TryGetBuffer on MemoryStream using segment's Array.
Reduce swap overhead for fast path B.
Avoid multiple virtcalls by memoizing the CanSeeks.
Overlap slow path stream async reads.
2026-05-29 15:54:58 -05:00
Marc Brooks
645ae6bb99 Use ReadAtLeastAsync to handle short-reads.
Seeks to beginning of streams if CanSeek is true.
Added remarks about stream position.
Add test coverage for short-reads.
Fix fast-path tests to actually test the fast path.
Also fix class comment.
2026-05-28 13:31:13 -05:00
Marc Brooks
f12b666cbb Remove IsStreamIdenticalAsync CanSeek requirement
Now only uses for the Length mismatch.
2026-05-27 20:13:52 -05:00
Marc Brooks
aa2370e021 Use TryGetBuffer() on MemoryStreams
Also now throws if the streams are no CanSeek.
2026-05-27 19:56:36 -05:00
Marc Brooks
c449a93372 Explicitly handle MemoryStream(s) 2026-05-26 18:12:31 -05:00
Marc Brooks
02ca63cd13 Moved IsFileIdenticalAsync & IsStreamIdenticalAsync to StreamExtensions. 2026-05-26 18:12:31 -05:00
Bond-009
c7f87c0d69 Backport pull request #11910 from jellyfin/release-10.9.z
Audio normalization: parse ffmpeg output line by line

Original-merge: d2be2ee480

Merged-by: joshuaboniface <joshua@boniface.me>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-06-01 18:41:15 -04:00
Lehonti Ramos
bc959270b7 Removed nesting levels through block-scoped using statement (#10025)
Co-authored-by: John Doe <john@doe>
Co-authored-by: Lehonti Ramos <lehonti@ramos>
2023-09-11 12:12:40 +02:00
Bond_009
18a311d32f == null -> is null 2023-08-22 21:14:54 +02:00
Bond_009
6f8ccab788 Move non-jellyfin extensions to separate project 2021-06-19 18:04:46 +02:00