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