|
@@ -771,10 +771,17 @@ namespace MediaBrowser.Model.Dlna
|
|
|
|
|
|
private void BuildStreamVideoItem(StreamInfo playlistItem, VideoOptions options, MediaSourceInfo item, MediaStream videoStream, MediaStream audioStream, IEnumerable<MediaStream> candidateAudioStreams, string container, string videoCodec, string audioCodec)
|
|
private void BuildStreamVideoItem(StreamInfo playlistItem, VideoOptions options, MediaSourceInfo item, MediaStream videoStream, MediaStream audioStream, IEnumerable<MediaStream> candidateAudioStreams, string container, string videoCodec, string audioCodec)
|
|
{
|
|
{
|
|
- // prefer matching video codecs
|
|
|
|
var videoCodecs = ContainerProfile.SplitValue(videoCodec);
|
|
var videoCodecs = ContainerProfile.SplitValue(videoCodec);
|
|
var directVideoCodec = ContainerProfile.ContainsContainer(videoCodecs, videoStream?.Codec) ? videoStream?.Codec : null;
|
|
var directVideoCodec = ContainerProfile.ContainsContainer(videoCodecs, videoStream?.Codec) ? videoStream?.Codec : null;
|
|
- playlistItem.VideoCodecs = directVideoCodec != null ? new[] { directVideoCodec } : videoCodecs;
|
|
|
|
|
|
+ if (directVideoCodec != null)
|
|
|
|
+ {
|
|
|
|
+ // merge directVideoCodec to videoCodecs
|
|
|
|
+ videoCodecs = videoCodecs != null && videoCodecs.Length > 0
|
|
|
|
+ ? videoCodecs.Union(new[] { directVideoCodec }).ToArray()
|
|
|
|
+ : new[] { directVideoCodec };
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ playlistItem.VideoCodecs = videoCodecs;
|
|
|
|
|
|
// copy video codec options as a starting point, this applies to transcode and direct-stream
|
|
// copy video codec options as a starting point, this applies to transcode and direct-stream
|
|
playlistItem.MaxFramerate = videoStream?.AverageFrameRate;
|
|
playlistItem.MaxFramerate = videoStream?.AverageFrameRate;
|