aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Dlna
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2014-04-08 22:12:17 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2014-04-08 22:12:17 -0400
commitd1a9d42eaf486b84e7d77ace69a9607fca76c317 (patch)
tree9d7d7c22ebd83062cca6a6e9ef368e5631b7c717 /MediaBrowser.Dlna
parent389d0ec7fdb05259a2b808b6733a1977f482268c (diff)
update translations
Diffstat (limited to 'MediaBrowser.Dlna')
-rw-r--r--MediaBrowser.Dlna/PlayTo/DidlBuilder.cs13
-rw-r--r--MediaBrowser.Dlna/Profiles/WindowsMediaCenterProfile.cs2
-rw-r--r--MediaBrowser.Dlna/Profiles/Xbox360Profile.cs2
-rw-r--r--MediaBrowser.Dlna/Profiles/XboxOneProfile.cs210
-rw-r--r--MediaBrowser.Dlna/Profiles/Xml/Xbox 360.xml2
-rw-r--r--MediaBrowser.Dlna/Profiles/Xml/Xbox One.xml58
6 files changed, 273 insertions, 14 deletions
diff --git a/MediaBrowser.Dlna/PlayTo/DidlBuilder.cs b/MediaBrowser.Dlna/PlayTo/DidlBuilder.cs
index 95622f3f7d..853064c606 100644
--- a/MediaBrowser.Dlna/PlayTo/DidlBuilder.cs
+++ b/MediaBrowser.Dlna/PlayTo/DidlBuilder.cs
@@ -105,7 +105,12 @@ namespace MediaBrowser.Dlna.PlayTo
return string.Empty;
}
- return string.Format(DIDL_VIDEO_RES, videostream.BitRate.HasValue ? videostream.BitRate.Value / 10 : 0, GetDurationString(dto), videostream.Width ?? 0, videostream.Height ?? 0, streamUrl);
+ return string.Format(DIDL_VIDEO_RES,
+ videostream.BitRate.HasValue ? videostream.BitRate.Value / 10 : 0,
+ GetDurationString(dto),
+ videostream.Width ?? 0,
+ videostream.Height ?? 0,
+ streamUrl);
}
private static string GetAudioDIDL(BaseItem dto, string streamUrl, IEnumerable<MediaStream> streams)
@@ -118,7 +123,11 @@ namespace MediaBrowser.Dlna.PlayTo
return string.Empty;
}
- return string.Format(DIDL_AUDIO_RES, audiostream.BitRate.HasValue ? audiostream.BitRate.Value / 10 : 16000, GetDurationString(dto), audiostream.SampleRate ?? 0, streamUrl);
+ return string.Format(DIDL_AUDIO_RES,
+ audiostream.BitRate.HasValue ? audiostream.BitRate.Value / 10 : 16000,
+ GetDurationString(dto),
+ audiostream.SampleRate ?? 0,
+ streamUrl);
}
private static string GetImageUrl(BaseItem dto, string serverAddress)
diff --git a/MediaBrowser.Dlna/Profiles/WindowsMediaCenterProfile.cs b/MediaBrowser.Dlna/Profiles/WindowsMediaCenterProfile.cs
index fe9a7e155a..f7251ece08 100644
--- a/MediaBrowser.Dlna/Profiles/WindowsMediaCenterProfile.cs
+++ b/MediaBrowser.Dlna/Profiles/WindowsMediaCenterProfile.cs
@@ -97,7 +97,7 @@ namespace MediaBrowser.Dlna.Profiles
{
new ProfileCondition
{
- Condition = ProfileConditionType.LessThanEqual,
+ Condition = ProfileConditionType.Equals,
Property = ProfileConditionValue.Has64BitOffsets,
Value = "false",
IsRequired = false
diff --git a/MediaBrowser.Dlna/Profiles/Xbox360Profile.cs b/MediaBrowser.Dlna/Profiles/Xbox360Profile.cs
index 5045301cb2..d3e9921d70 100644
--- a/MediaBrowser.Dlna/Profiles/Xbox360Profile.cs
+++ b/MediaBrowser.Dlna/Profiles/Xbox360Profile.cs
@@ -126,7 +126,7 @@ namespace MediaBrowser.Dlna.Profiles
{
new ProfileCondition
{
- Condition = ProfileConditionType.LessThanEqual,
+ Condition = ProfileConditionType.Equals,
Property = ProfileConditionValue.Has64BitOffsets,
Value = "false",
IsRequired = false
diff --git a/MediaBrowser.Dlna/Profiles/XboxOneProfile.cs b/MediaBrowser.Dlna/Profiles/XboxOneProfile.cs
index bce789f39d..d6e1a5f3be 100644
--- a/MediaBrowser.Dlna/Profiles/XboxOneProfile.cs
+++ b/MediaBrowser.Dlna/Profiles/XboxOneProfile.cs
@@ -9,6 +9,7 @@ namespace MediaBrowser.Dlna.Profiles
public XboxOneProfile()
{
Name = "Xbox One";
+ XDlnaDoc = "DMS-1.50";
Identification = new DeviceIdentification
{
@@ -28,8 +29,9 @@ namespace MediaBrowser.Dlna.Profiles
{
Container = "ts",
VideoCodec = "h264",
- AudioCodec = "aac",
- Type = DlnaProfileType.Video
+ AudioCodec = "ac3",
+ Type = DlnaProfileType.Video,
+ EstimateContentLength = true
}
};
@@ -37,17 +39,217 @@ namespace MediaBrowser.Dlna.Profiles
{
new DirectPlayProfile
{
- Container = "mp3,wma",
+ Container = "ts",
+ VideoCodec = "h264",
+ AudioCodec = "ac3",
+ Type = DlnaProfileType.Video
+ },
+ new DirectPlayProfile
+ {
+ Container = "avi",
+ VideoCodec = "mpeg4",
+ AudioCodec = "ac3,mp3",
+ Type = DlnaProfileType.Video
+ },
+ new DirectPlayProfile
+ {
+ Container = "avi",
+ VideoCodec = "h264",
+ AudioCodec = "aac",
+ Type = DlnaProfileType.Video
+ },
+ new DirectPlayProfile
+ {
+ Container = "mp4,mov,mkv",
+ VideoCodec = "h264,mpeg4",
+ AudioCodec = "aac,ac3",
+ Type = DlnaProfileType.Video
+ },
+ new DirectPlayProfile
+ {
+ Container = "asf",
+ VideoCodec = "wmv2,wmv3,vc1",
+ AudioCodec = "wmav2,wmapro",
+ Type = DlnaProfileType.Video
+ },
+ new DirectPlayProfile
+ {
+ Container = "asf",
+ AudioCodec = "wmav2,wmapro,wmavoice",
Type = DlnaProfileType.Audio
+ },
+ new DirectPlayProfile
+ {
+ Container = "mp3",
+ AudioCodec = "mp3",
+ Type = DlnaProfileType.Audio
+ },
+ new DirectPlayProfile
+ {
+ Container = "jpeg",
+ Type = DlnaProfileType.Photo
}
};
+ ContainerProfiles = new[]
+ {
+ new ContainerProfile
+ {
+ Type = DlnaProfileType.Video,
+ Container = "mp4,mov",
+
+ Conditions = new []
+ {
+ new ProfileCondition
+ {
+ Condition = ProfileConditionType.Equals,
+ Property = ProfileConditionValue.Has64BitOffsets,
+ Value = "false",
+ IsRequired = false
+ }
+ }
+ }
+ };
+
+ CodecProfiles = new[]
+ {
+ new CodecProfile
+ {
+ Type = CodecType.Video,
+ Codec = "mpeg4",
+ Conditions = new []
+ {
+ new ProfileCondition
+ {
+ Condition = ProfileConditionType.LessThanEqual,
+ Property = ProfileConditionValue.Width,
+ Value = "1920"
+ },
+ new ProfileCondition
+ {
+ Condition = ProfileConditionType.LessThanEqual,
+ Property = ProfileConditionValue.Height,
+ Value = "1080"
+ },
+ new ProfileCondition
+ {
+ Condition = ProfileConditionType.LessThanEqual,
+ Property = ProfileConditionValue.VideoFramerate,
+ Value = "30",
+ IsRequired = false
+ },
+ new ProfileCondition
+ {
+ Condition = ProfileConditionType.LessThanEqual,
+ Property = ProfileConditionValue.VideoBitrate,
+ Value = "5120000",
+ IsRequired = false
+ }
+ }
+ },
+
+ new CodecProfile
+ {
+ Type = CodecType.Video,
+ Codec = "h264",
+ Conditions = new []
+ {
+ new ProfileCondition
+ {
+ Condition = ProfileConditionType.LessThanEqual,
+ Property = ProfileConditionValue.Width,
+ Value = "1920"
+ },
+ new ProfileCondition
+ {
+ Condition = ProfileConditionType.LessThanEqual,
+ Property = ProfileConditionValue.Height,
+ Value = "1080"
+ }
+ }
+ },
+
+ new CodecProfile
+ {
+ Type = CodecType.Video,
+ Codec = "wmv2,wmv3,vc1",
+ Conditions = new []
+ {
+ new ProfileCondition
+ {
+ Condition = ProfileConditionType.LessThanEqual,
+ Property = ProfileConditionValue.Width,
+ Value = "1920"
+ },
+ new ProfileCondition
+ {
+ Condition = ProfileConditionType.LessThanEqual,
+ Property = ProfileConditionValue.Height,
+ Value = "1080"
+ },
+ new ProfileCondition
+ {
+ Condition = ProfileConditionType.LessThanEqual,
+ Property = ProfileConditionValue.VideoFramerate,
+ Value = "30",
+ IsRequired = false
+ },
+ new ProfileCondition
+ {
+ Condition = ProfileConditionType.LessThanEqual,
+ Property = ProfileConditionValue.VideoBitrate,
+ Value = "15360000",
+ IsRequired = false
+ }
+ }
+ },
+
+ new CodecProfile
+ {
+ Type = CodecType.VideoAudio,
+ Codec = "ac3,wmav2,wmapro",
+ Conditions = new []
+ {
+ new ProfileCondition
+ {
+ Condition = ProfileConditionType.LessThanEqual,
+ Property = ProfileConditionValue.AudioChannels,
+ Value = "6",
+ IsRequired = false
+ }
+ }
+ },
+
+ new CodecProfile
+ {
+ Type = CodecType.VideoAudio,
+ Codec = "aac",
+ Conditions = new []
+ {
+ new ProfileCondition
+ {
+ Condition = ProfileConditionType.LessThanEqual,
+ Property = ProfileConditionValue.AudioChannels,
+ Value = "2",
+ IsRequired = false
+ },
+ new ProfileCondition
+ {
+ Condition = ProfileConditionType.Equals,
+ Property = ProfileConditionValue.AudioProfile,
+ Value = "lc",
+ IsRequired = false
+ }
+ }
+ }
+ };
+
ResponseProfiles = new[]
{
new ResponseProfile
{
Container = "avi",
- MimeType = "video/x-msvideo",
+ MimeType = "video/avi",
Type = DlnaProfileType.Video
}
};
diff --git a/MediaBrowser.Dlna/Profiles/Xml/Xbox 360.xml b/MediaBrowser.Dlna/Profiles/Xml/Xbox 360.xml
index ddbe7af429..a2b3a3b29e 100644
--- a/MediaBrowser.Dlna/Profiles/Xml/Xbox 360.xml
+++ b/MediaBrowser.Dlna/Profiles/Xml/Xbox 360.xml
@@ -40,7 +40,7 @@
<ContainerProfiles>
<ContainerProfile type="Video" container="mp4,mov">
<Conditions>
- <ProfileCondition condition="LessThanEqual" property="Has64BitOffsets" value="false" isRequired="false" />
+ <ProfileCondition condition="Equals" property="Has64BitOffsets" value="false" isRequired="false" />
</Conditions>
</ContainerProfile>
<ContainerProfile type="Photo">
diff --git a/MediaBrowser.Dlna/Profiles/Xml/Xbox One.xml b/MediaBrowser.Dlna/Profiles/Xml/Xbox One.xml
index aa2081dc0d..9ceeb2c6c1 100644
--- a/MediaBrowser.Dlna/Profiles/Xml/Xbox One.xml
+++ b/MediaBrowser.Dlna/Profiles/Xml/Xbox One.xml
@@ -16,21 +16,69 @@
<IgnoreTranscodeByteRangeRequests>false</IgnoreTranscodeByteRangeRequests>
<EnableAlbumArtInDidl>false</EnableAlbumArtInDidl>
<SupportedMediaTypes>Audio,Photo,Video</SupportedMediaTypes>
+ <XDlnaDoc>DMS-1.50</XDlnaDoc>
<ProtocolInfo>DLNA</ProtocolInfo>
<TimelineOffsetSeconds>0</TimelineOffsetSeconds>
<RequiresPlainVideoItems>false</RequiresPlainVideoItems>
<RequiresPlainFolders>false</RequiresPlainFolders>
<DirectPlayProfiles>
- <DirectPlayProfile container="mp3,wma" type="Audio" />
+ <DirectPlayProfile container="ts" audioCodec="ac3" videoCodec="h264" type="Video" />
+ <DirectPlayProfile container="avi" audioCodec="ac3,mp3" videoCodec="mpeg4" type="Video" />
+ <DirectPlayProfile container="avi" audioCodec="aac" videoCodec="h264" type="Video" />
+ <DirectPlayProfile container="mp4,mov,mkv" audioCodec="aac,ac3" videoCodec="h264,mpeg4" type="Video" />
+ <DirectPlayProfile container="asf" audioCodec="wmav2,wmapro" videoCodec="wmv2,wmv3,vc1" type="Video" />
+ <DirectPlayProfile container="asf" audioCodec="wmav2,wmapro,wmavoice" type="Audio" />
+ <DirectPlayProfile container="mp3" audioCodec="mp3" type="Audio" />
+ <DirectPlayProfile container="jpeg" type="Photo" />
</DirectPlayProfiles>
<TranscodingProfiles>
<TranscodingProfile container="mp3" type="Audio" audioCodec="mp3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" />
- <TranscodingProfile container="ts" type="Video" videoCodec="h264" audioCodec="aac" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" />
+ <TranscodingProfile container="ts" type="Video" videoCodec="h264" audioCodec="ac3" estimateContentLength="true" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" />
</TranscodingProfiles>
- <ContainerProfiles />
- <CodecProfiles />
+ <ContainerProfiles>
+ <ContainerProfile type="Video" container="mp4,mov">
+ <Conditions>
+ <ProfileCondition condition="Equals" property="Has64BitOffsets" value="false" isRequired="false" />
+ </Conditions>
+ </ContainerProfile>
+ </ContainerProfiles>
+ <CodecProfiles>
+ <CodecProfile type="Video" codec="mpeg4">
+ <Conditions>
+ <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
+ <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
+ <ProfileCondition condition="LessThanEqual" property="VideoFramerate" value="30" isRequired="false" />
+ <ProfileCondition condition="LessThanEqual" property="VideoBitrate" value="5120000" isRequired="false" />
+ </Conditions>
+ </CodecProfile>
+ <CodecProfile type="Video" codec="h264">
+ <Conditions>
+ <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
+ <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
+ </Conditions>
+ </CodecProfile>
+ <CodecProfile type="Video" codec="wmv2,wmv3,vc1">
+ <Conditions>
+ <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
+ <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
+ <ProfileCondition condition="LessThanEqual" property="VideoFramerate" value="30" isRequired="false" />
+ <ProfileCondition condition="LessThanEqual" property="VideoBitrate" value="15360000" isRequired="false" />
+ </Conditions>
+ </CodecProfile>
+ <CodecProfile type="VideoAudio" codec="ac3,wmav2,wmapro">
+ <Conditions>
+ <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="6" isRequired="false" />
+ </Conditions>
+ </CodecProfile>
+ <CodecProfile type="VideoAudio" codec="aac">
+ <Conditions>
+ <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="2" isRequired="false" />
+ <ProfileCondition condition="Equals" property="AudioProfile" value="lc" isRequired="false" />
+ </Conditions>
+ </CodecProfile>
+ </CodecProfiles>
<ResponseProfiles>
- <ResponseProfile container="avi" type="Video" mimeType="video/x-msvideo">
+ <ResponseProfile container="avi" type="Video" mimeType="video/avi">
<Conditions />
</ResponseProfile>
</ResponseProfiles>