aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs
diff options
context:
space:
mode:
authorCody Robibero <cody@robibe.ro>2022-06-15 15:27:07 -0600
committerJoshua Boniface <joshua@boniface.me>2022-06-29 01:26:14 -0400
commita168040cc8c0067c35801ec0469af80729c03487 (patch)
tree338879426fbe5c01a318ee12f72f652d81362885 /MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs
parent5b0af106c2f7f4c7a7ea3f5b200e1b98441a5e17 (diff)
Merge pull request #7941 from jellyfin/fix-overflow
(cherry picked from commit fd4ffc6ba3317987856629088b759db8c1128ecd) Signed-off-by: Joshua Boniface <joshua@boniface.me>
Diffstat (limited to 'MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs')
-rw-r--r--MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs10
1 files changed, 7 insertions, 3 deletions
diff --git a/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs b/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs
index 1755b872f..04778e699 100644
--- a/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs
+++ b/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs
@@ -1893,7 +1893,7 @@ namespace MediaBrowser.Controller.MediaEncoding
return request.EnableAutoStreamCopy;
}
- public int? GetVideoBitrateParamValue(BaseEncodingJobOptions request, MediaStream videoStream, string outputVideoCodec)
+ public int GetVideoBitrateParamValue(BaseEncodingJobOptions request, MediaStream videoStream, string outputVideoCodec)
{
var bitrate = request.VideoBitRate;
@@ -1925,7 +1925,8 @@ namespace MediaBrowser.Controller.MediaEncoding
}
}
- return bitrate;
+ // Cap the max target bitrate to intMax/2 to satisify the bufsize=bitrate*2.
+ return Math.Min(bitrate ?? 0, int.MaxValue / 2);
}
private int GetMinBitrate(int sourceBitrate, int requestedBitrate)
@@ -2272,7 +2273,10 @@ namespace MediaBrowser.Controller.MediaEncoding
int audioStreamIndex = FindIndex(state.MediaSource.MediaStreams, state.AudioStream);
if (state.AudioStream.IsExternal)
{
- bool hasExternalGraphicsSubs = state.SubtitleStream != null && state.SubtitleStream.IsExternal && !state.SubtitleStream.IsTextSubtitleStream;
+ bool hasExternalGraphicsSubs = state.SubtitleStream != null
+ && state.SubtitleDeliveryMethod == SubtitleDeliveryMethod.Encode
+ && state.SubtitleStream.IsExternal
+ && !state.SubtitleStream.IsTextSubtitleStream;
int externalAudioMapIndex = hasExternalGraphicsSubs ? 2 : 1;
args += string.Format(