aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Api/Playback/BaseStreamingService.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Api/Playback/BaseStreamingService.cs')
-rw-r--r--MediaBrowser.Api/Playback/BaseStreamingService.cs24
1 files changed, 9 insertions, 15 deletions
diff --git a/MediaBrowser.Api/Playback/BaseStreamingService.cs b/MediaBrowser.Api/Playback/BaseStreamingService.cs
index f09b9f684..3e5da5b53 100644
--- a/MediaBrowser.Api/Playback/BaseStreamingService.cs
+++ b/MediaBrowser.Api/Playback/BaseStreamingService.cs
@@ -264,30 +264,24 @@ namespace MediaBrowser.Api.Playback
}
// If a max width was requested
- if (request.MaxWidth.HasValue && !request.MaxHeight.HasValue)
+ if (request.MaxWidth.HasValue && (!request.MaxHeight.HasValue || state.VideoStream == null))
{
return isH264Output ?
string.Format(" -vf \"scale=min(iw\\,{0}):trunc(ow/a/2)*2{1}\"", request.MaxWidth.Value, assSubtitleParam) :
string.Format(" -vf \"scale=min(iw\\,{0}):-1{1}\"", request.MaxWidth.Value, assSubtitleParam);
}
+ if (state.VideoStream == null)
+ {
+ // No way to figure this out
+ return string.Empty;
+ }
+
// Need to perform calculations manually
// Try to account for bad media info
- var currentHeight = request.MaxHeight ?? request.Height ?? 0;
- var currentWidth = request.MaxWidth ?? request.Width ?? 0;
-
- if (state.VideoStream != null)
- {
- if (state.VideoStream.Height.HasValue)
- {
- currentHeight = state.VideoStream.Height.Value;
- }
- if (state.VideoStream.Width.HasValue)
- {
- currentWidth = state.VideoStream.Width.Value;
- }
- }
+ var currentHeight = state.VideoStream.Height ?? request.MaxHeight ?? request.Height ?? 0;
+ var currentWidth = state.VideoStream.Width ?? request.MaxWidth ?? request.Width ?? 0;
var outputSize = DrawingUtils.Resize(currentWidth, currentHeight, request.Width, request.Height, request.MaxWidth, request.MaxHeight);