aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Model/Dlna/StreamBuilder.cs
AgeCommit message (Collapse)Author
2025-04-08Only reselect audio streams when user preference is respected (#13832)gnattu
2025-03-28Reduce allocations, simplifed code, faster implementation, included tests - ↵Tim Eisele
StreamInfo.ToUrl (#9369) * Rework PR 6168 * Fix test
2025-03-28Add profile condition to limit the number of streams (#13583)Dmitry Lyzo
2025-03-26Extract container, video and audio compatibility checks (#12678)Dmitry Lyzo
* Extract container, video and audio compatibility checks * Extract audio compatibility checks * Extract CheckVideoConditions * Simplify direct audio stream check
2025-02-03Backport pull request #13423 from jellyfin/release-10.10.zgnattu
Don't select audio stream and codec explicitly for copy when bitrate exceeds limit Original-merge: e8514de33b59e24184cc7eb7f8df9cd5e850a7de Merged-by: crobibero <cody@robibe.ro> Backported-by: Bond_009 <bond.009@outlook.com>
2025-02-03Backport pull request #13345 from jellyfin/release-10.10.zgnattu
Never treat matroska as webm for audio playback Original-merge: 344cc8b97baf5026d0c95824d5b5ee2522a7c284 Merged-by: Bond-009 <bond.009@outlook.com> Backported-by: Bond_009 <bond.009@outlook.com>
2025-02-03Backport pull request #13288 from jellyfin/release-10.10.zShadowghost
Fix DTS in HLS Original-merge: cea0c9594220778658c30acf640108c26191706e Merged-by: crobibero <cody@robibe.ro> Backported-by: Bond_009 <bond.009@outlook.com>
2025-02-03Backport pull request #13209 from jellyfin/release-10.10.zgnattu
Transcode to audio codec satisfied other conditions when copy check failed. Original-merge: 8aa41d59041c792571530c514dd6d21ba22a1881 Merged-by: crobibero <cody@robibe.ro> Backported-by: Bond_009 <bond.009@outlook.com>
2025-01-22Remove useless checks and dead codeBond_009
2024-11-03Backport pull request #12931 from jellyfin/release-10.10.zgnattu
Set AudioCodec when building stream Original-merge: a1658839998374eb61663c4681c34f192e00c80c Merged-by: nielsvanvelzen <nielsvanvelzen@users.noreply.github.com> Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-10-04Fix allow inputContainer to be null for Live TV (#12770)joshjryan
2024-09-22Fix DeviceProfile.Id should be nullable (#12679)Niels van Velzen
2024-09-22Let HLS Controller decide if subtitle should be burn ingnattu
Previously, we predicted whether the subtitle should be burned in with transcode reasons, but that was not accurate because the actual transcoding codec is only determined after the client has requested the stream. This pass through the option to the `DynamicHlsController` to handle the subtitle burn-in during the actual transcoding process. Now the client should be responsible to conditionally load the subtitle when this option is enabled.
2024-09-17Apply review suggestionsShadowghost
2024-09-17Rework PR 6203Shadowghost
2024-09-14Improve direct profile rankingDmitry Lyzo
2024-09-14Revert "Return more precise transcoding reasons"gnattu
This reverts commit de8bb15c Signed-off-by: gnattu <gnattuoc@me.com>
2024-09-13Improve readabilitygnattu
Signed-off-by: gnattu <gnattuoc@me.com>
2024-09-13Return more precise transcoding reasonsgnattu
Using the first profile's reason is somewhat arbitrary, as many clients' first profile may not be the most compatible one. For instance, browsers often set WebM as the first profile, which doesn’t support common codecs like H.264 and AAC by design. This causes `VideoCodecNotSupported` and `AudioCodecNotSupported` to be returned, even if the browser supports those codecs. Only use those reasons when all profiles indicate that the codec is not supported. Signed-off-by: gnattu <gnattuoc@me.com>
2024-09-12Add option to always burn in subtitles if transcoding is triggered (#12430)gnattu
2024-09-09Add audio ranking for transcoding profiles (#12546)Dmitry Lyzo
2024-09-09Extract condition from Where clause to eliminate extra filtering (#12614)Dmitry Lyzo
2024-09-07Make Live TV compatibility profiles customizable (#12529)gnattu
2024-09-07Backport #12562 and #12521 (#12602)gnattu
Co-authored-by: Dmitry Lyzo <56478732+dmitrylyzo@users.noreply.github.com> Co-authored-by: Nyanmisaka <nst799610810@gmail.com>
2024-09-07Add MediaStream.ReferenceFrameRate for problematic video files (#12603)gnattu
Co-authored-by: Nyanmisaka <nst799610810@gmail.com>
2024-08-26Add SubContainer support to CodecProfilegnattu
Currently, when specifying codec profiles, the client can only specify profiles applied to direct containers, with no way to apply a profile specifically to HLS or a specific HLS container. This limitation is not suitable for more complex client codec support scenarios. To address this, a SubContainer field is added to CodecProfile. The client can now specify the main container as "hls" to apply the profile exclusively to HLS streams. Additionally, the SubContainer field allows the profile to be applied to a specific HLS container. Currently, this is only used in StreamBuilder for HLS streams. Further changes may be required to extend its usage. Signed-off-by: gnattu <gnattuoc@me.com>
2024-08-25Backport pull request #12499 from jellyfin/release-10.9.zdmitrylyzo
Apply all codec conditions Original-merge: fff4477a933a4b580fb255348191e8ddcba661a7 Merged-by: crobibero <cody@robibe.ro> Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-08-01Enable more analyser rules as errorsBond_009
Also deduplicates a bit of code inside of SeasonPathParser and adds some more tests
2024-07-29Check MaxAudioChannels for directAudioStream candidates (#12319)gnattu
* Check MaxAudioChannels for directAudioStream candidates The current stream builder logic does not check the channel limit when determining if the audio stream can be directly used, and this can cause some undesired effects: - A high channel count surround sound stream might be picked even if a stereo one exists when the user requires stereo audio. - The user's preferred audio codec might not be respected during the downmix because the requested codec is now forced to be the same as the original source. Signed-off-by: gnattu <gnattuoc@me.com> * Fix unit test Signed-off-by: gnattu <gnattuoc@me.com> * Set correct transcode reason and target channels for unit test Signed-off-by: gnattu <gnattuoc@me.com> * Match old stream selection behavior Signed-off-by: gnattu <gnattuoc@me.com> * Fix reason matching Signed-off-by: gnattu <gnattuoc@me.com> --------- Signed-off-by: gnattu <gnattuoc@me.com>
2024-07-21Merge pull request #11492 from jellyfin/better-vbr-settingsBond-009
Add better audio VBR settings
2024-07-18Merge pull request #11399 from jellyfin/audio-remuxCody Robibero
2024-07-18Use string.Equalsgnattu
Co-authored-by: Bond-009 <bond.009@outlook.com>
2024-07-18Don't check the misleading options.EnableDirectStream for direct stream ↵gnattu
availability Signed-off-by: gnattu <gnattuoc@me.com>
2024-07-17Add EnableAudioVbrEncoding to TranscodingProfilegnattu
This will allow the client selectively disable VBR audio when it causes problems. Signed-off-by: gnattu <gnattuoc@me.com>
2024-07-17Make comment bettergnattu
Signed-off-by: gnattu <gnattuoc@me.com>
2024-07-17Correctly set bitrate limit for remuxinggnattu
Signed-off-by: gnattu <gnattuoc@me.com>
2024-07-17Allow clients to send audio container override for HLSgnattu
This will improve flexibility due to overcome the complex compatibility situation of HLS Signed-off-by: gnattu <gnattuoc@me.com>
2024-07-17feat: add audio remux to UniversalAudioControllergnattu
Signed-off-by: gnattu <gnattuoc@me.com>
2024-05-16Add remuxing support for VP9gnattu
Add VP9 as a valid HLS format to enable remuxing. This is useful when audio processing is required, but the VP9 video can be passed as-is to avoid unnecessary video transcoding. No VP9 encoder is enabled and should not be enabled. AV1 and HEVC should be preferred over VP9 if video transcoding is required. Signed-off-by: gnattu <gnattuoc@me.com>
2024-03-15chore: remove repetitive wordsstandstaff
Signed-off-by: standstaff <zhengxingru@yeah.net>
2024-03-08Lowercase MediaStreamProtocol for backwards compatibilityCody Robibero
2024-03-04Add MediaStreamProtocol enum (#10153)Niels van Velzen
* Add MediaStreamProtocol enum * Add default handling for enum during deserialization --------- Co-authored-by: Cody Robibero <cody@robibe.ro>
2024-02-05Add EqualsAny for VideoCodecTag conditionnyanmisaka
Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2024-01-17Use helper function to compare guid (#10825)Cody Robibero
2023-11-15Address review commentBond_009
2023-11-14Fix warningsBond_009
2023-10-08Remove conditional access when it is known to be not nullStepan Goremykin
2023-09-12Merge pull request #10056 from Bond-009/nullable2Bond-009
2023-08-22== null -> is nullBond_009
2023-07-29Enable nullable for more filesBond_009