Skip to content
This repository has been archived by the owner on Dec 20, 2023. It is now read-only.

支持优先AV1解码 #842

Merged
merged 1 commit into from
Mar 18, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions src/App/Resources/Converter/PreferCodecConverter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,9 @@ public object Convert(object value, Type targetType, object parameter, string la
case PreferCodec.H264:
result = resourceToolkit.GetLocaleString(LanguageNames.H264);
break;
case PreferCodec.Av1:
result = resourceToolkit.GetLocaleString(LanguageNames.Av1);
break;
default:
break;
}
Expand Down
5 changes: 4 additions & 1 deletion src/App/Resources/Strings/zh-CN/Resources.resw
Original file line number Diff line number Diff line change
Expand Up @@ -183,6 +183,9 @@
<data name="AutoPlayWhenLoaded" xml:space="preserve">
<value>加载完成后自动播放</value>
</data>
<data name="Av1" xml:space="preserve">
<value>AV1</value>
</data>
<data name="AvBvConverter" xml:space="preserve">
<value>AV/BV 互转</value>
</data>
Expand Down Expand Up @@ -920,7 +923,7 @@ BV号以 BV 开头,是一串英文数字混合的编号, 如 BV1JL4y1875w</v
<value>解码器偏好</value>
</data>
<data name="PreferCodecDescription" xml:space="preserve">
<value>优先选择该编码的视频流,HEVC/H.265需要额外安装解码器</value>
<value>优先选择该编码的视频流,HEVC/H.265 和 AV1 需要额外安装解码器</value>
</data>
<data name="PreferHighQuality" xml:space="preserve">
<value>画质优先</value>
Expand Down
2 changes: 1 addition & 1 deletion src/Lib/Lib.Uwp/PlayerProvider/PlayerProvider.Extension.cs
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ private async Task<PlayerInformation> InternalGetDashAsync(string cid, string ai
{ Query.Fnver, "0" },
{ Query.Cid, cid.ToString() },
{ Query.Fourk, "1" },
{ Query.Fnval, "16" },
{ Query.Fnval, "4048" },
{ Query.Qn, "64" },
{ Query.OType, "json" },
};
Expand Down
1 change: 1 addition & 0 deletions src/Models/Models.Enums/App/LanguageNames.cs
Original file line number Diff line number Diff line change
Expand Up @@ -432,6 +432,7 @@ public enum LanguageNames
ScreenshotFolder,
CopyToClipboardAfterScreenshot,
OpenFileAfterScreenshot,
Av1,
#pragma warning restore SA1602 // Enumeration items should be documented
}
}
5 changes: 5 additions & 0 deletions src/Models/Models.Enums/App/PreferCodec.cs
Original file line number Diff line number Diff line change
Expand Up @@ -21,5 +21,10 @@ public enum PreferCodec
/// FLV.
/// </summary>
Flv,

/// <summary>
/// AV1.
/// </summary>
Av1,
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ private async Task InitializeOnlineDashVideoAsync()
httpClient.DefaultRequestHeaders.Add("User-Agent", ServiceConstants.DefaultUserAgentString);
var mpdStr = await _fileToolkit.ReadPackageFile(AppConstants.DashVideoMPDFile);

var videos = _videoList.Where(p => p.CodecId == GetPreferCodecId()).ToList();
var videos = _videoList.Where(p => p.Codecs.Contains(GetPreferCodecId())).ToList();
if (videos.Count == 0)
{
videos = _videoList;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -592,13 +592,16 @@ private void InitializeTimer()
}
}

private int GetPreferCodecId()
private string GetPreferCodecId()
{
var id = 7;
var id = "avc";
switch (PreferCodec)
{
case PreferCodec.H265:
id = 12;
id = "hev";
break;
case PreferCodec.Av1:
id = "av01";
break;
default:
break;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -434,7 +434,7 @@ public async Task ChangeFormatAsync(int formatId)
}
else
{
var tempVideo = conditionStreams.Where(p => p.CodecId == preferCodecId).FirstOrDefault();
var tempVideo = conditionStreams.Where(p => p.Codecs.Contains(preferCodecId)).FirstOrDefault(p => p.Id == formatId);
if (tempVideo == null)
{
tempVideo = conditionStreams.First();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -154,6 +154,7 @@ private void PreferCodecInit()
{
PreferCodec.H264,
PreferCodec.H265,
PreferCodec.Av1,
};
}

Expand Down