aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Model/Dlna
AgeCommit message (Collapse)Author
2025-11-27Merge pull request #13977 from sususu98/fix/strm-local-subtitle-urlNiels van Velzen
refactor(StreamInfo): reorganize subtitle URL logic and conditions
2025-06-15Use square root scaling for high framerate videos' bitrate requirements (#14314)v10.11.0-rc2gnattu
2025-04-24style: fix return statement indentation in StreamInfo.cssususu98
2025-04-24Style: Fix indentation in StreamInfo.cssususu98
2025-04-23refactor(StreamInfo): reorganize subtitle URL logic and conditionssususu98
# Conflicts: # MediaBrowser.Model/Dlna/StreamInfo.cs
2025-04-08Only reselect audio streams when user preference is respected (#13832)gnattu
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
2025-03-30Fix StreamInfo.ToUrl (#13808)Tim Eisele
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-28Remove useless checks and dead code (#13405)Bond-009
* Remove useless checks and dead code * Enable adaptive bitrate streaming again * Disable adaptive bitrate streaming by default
2025-01-25chore: fix spellingJosh Soref
* a * acceleration * addition * altogether * api clients * artist * associated * bandwidth * cannot * capabilities * case-insensitive * case-sensitive * configuration * delimiter * dependent * diacritics * directors * enable * explicitly * filters * finish * have * hierarchy * implicit * include * information * into * its * keepalive * localization * macos * manual * matching * metadata * nonexistent * options * overridden * parsed * parser * playback * preferring * processes * processing * provider * ratings * retrieval * running * segments * separate * should * station * subdirectories * superseded * supported * system * than * the * throws * transpose * valid * was link: forum or chat rooms Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-01-22Remove useless checks and dead codeBond_009
2025-01-11Prefer ApiKey over api_key in generated URL's (#13342)Niels van Velzen
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-21Better bitrate and resolution normalization (#12644)gnattu
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-26fix typognattu
Signed-off-by: gnattu <gnattuoc@me.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-17Default EnableAudioVbrEncoding to true in TranscodingProfilegnattu
This will match the old behavior when user takes no action for clients 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>