v7.1.1.1
This commit is contained in:
@@ -1,14 +1,17 @@
|
||||
|
||||
# v7.1.1.1 Beta (????-??-??)
|
||||
# v7.1.1.1 Beta (2024-07-20)
|
||||
|
||||
- Korean, Russian and Turkish translation added, Japanese translation fixed. Thanks to the translation team!
|
||||
- Action/Workflow/Auto build fix and update.
|
||||
- New default bindings and menu items for select.lua which is a new simple mpv built-in command palette script.
|
||||
In the context menu select.lua features can be found under `View > On Screen Menu`.
|
||||
https://github.com/mpv-player/mpv/blob/master/player/lua/select.lua
|
||||
- The helper script 'Tools\update-mpv-and-libmpv.ps1' no longer uses command line arguments,
|
||||
it uses now the Path environment variable to find mpv and mpv.net.
|
||||
- Fix loading of DVD ISO files.
|
||||
- New PowerShell script 'Tools\release-mpv.net.ps1' used to releases mpv.net on GitHub.
|
||||
- Fix DVD ISO file support.
|
||||
- MediaInfo updated to version v24.6.
|
||||
- New ARM64 support.
|
||||
- New zhongfly libmpv x64 build.
|
||||
- New Andarwinux libmpv ARM64 build.
|
||||
|
||||
|
||||
# v7.1.1.0 (2024-02-03)
|
||||
|
||||
@@ -11,9 +11,9 @@
|
||||
<UseWindowsForms>true</UseWindowsForms>
|
||||
<ApplicationIcon>mpv-icon.ico</ApplicationIcon>
|
||||
<Product>mpv.net</Product>
|
||||
<FileVersion>7.1.1.0</FileVersion>
|
||||
<AssemblyVersion>7.1.1.0</AssemblyVersion>
|
||||
<InformationalVersion>7.1.1.0</InformationalVersion>
|
||||
<FileVersion>7.1.1.1</FileVersion>
|
||||
<AssemblyVersion>7.1.1.1</AssemblyVersion>
|
||||
<InformationalVersion>7.1.1.1</InformationalVersion>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
|
||||
@@ -78,19 +78,13 @@ public class AppClass
|
||||
}
|
||||
|
||||
public static string About => "Copyright (C) 2000-2024 mpv.net/mpv/mplayer\n" +
|
||||
$"{AppInfo.Product} {AppInfo.Version}" + GetLastWriteTime(Environment.ProcessPath!) + "\n" +
|
||||
$"{AppInfo.Product} v{AppInfo.Version}" + GetLastWriteTime(Environment.ProcessPath!) + "\n" +
|
||||
$"{Player.GetPropertyString("mpv-version")}" + GetLastWriteTime(Folder.Startup + "libmpv-2.dll") + "\n" +
|
||||
$"ffmpeg {Player.GetPropertyString("ffmpeg-version")}\n" + "GPL v2 License";
|
||||
$"ffmpeg {Player.GetPropertyString("ffmpeg-version")}\n" +
|
||||
$"MediaInfo v{FileVersionInfo.GetVersionInfo(Folder.Startup + "MediaInfo.dll").FileVersion}" +
|
||||
$"{GetLastWriteTime(Folder.Startup + "MediaInfo.dll")}" + "\n" + "GPL v2 License";
|
||||
|
||||
static string GetLastWriteTime(string path)
|
||||
{
|
||||
if (IsStoreVersion)
|
||||
return "";
|
||||
|
||||
return $" ({File.GetLastWriteTime(path).ToShortDateString()})";
|
||||
}
|
||||
|
||||
static bool IsStoreVersion => Folder.Startup.Contains("FrankSkare.mpvnet");
|
||||
static string GetLastWriteTime(string path) => $" ({File.GetLastWriteTime(path).ToShortDateString()})";
|
||||
|
||||
void Player_Initialized()
|
||||
{
|
||||
|
||||
@@ -12,7 +12,7 @@ AppPublisher=Frank Skare (stax76)
|
||||
ArchitecturesInstallIn64BitMode=x64
|
||||
Compression=lzma2
|
||||
DefaultDirName={autopf}\{#MyAppName}
|
||||
OutputBaseFilename=mpv.net-v{#MyAppVersion}-setup
|
||||
OutputBaseFilename=mpv.net-v{#MyAppVersion}-setup-x64
|
||||
OutputDir=E:\Desktop
|
||||
DefaultGroupName={#MyAppName}
|
||||
SetupIconFile=..\..\MpvNet.Windows\mpv-icon.ico
|
||||
@@ -25,4 +25,4 @@ Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
|
||||
|
||||
[Files]
|
||||
Source: "{#MyAppSourceDir}\{#MyAppExeName}"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "{#MyAppSourceDir}\*"; DestDir: "{app}"; Excludes: "win-x64"; Flags: ignoreversion recursesubdirs createallsubdirs;
|
||||
Source: "{#MyAppSourceDir}\*"; DestDir: "{app}"; Excludes: "win-x64,win-arm64"; Flags: ignoreversion recursesubdirs createallsubdirs;
|
||||
|
||||
114
src/Tools/release-mpv.net.ps1
Normal file
114
src/Tools/release-mpv.net.ps1
Normal file
@@ -0,0 +1,114 @@
|
||||
|
||||
<#
|
||||
|
||||
Script that releases mpv.net on GitHub.
|
||||
|
||||
Needs 2 positional CLI arguments:
|
||||
1. Directory where the mpv.net source code is located.
|
||||
2. Directory of the output files, for instance the desktop dir.
|
||||
|
||||
Dependencies:
|
||||
7zip installation found at: 'C:\Program Files\7-Zip\7z.exe'.
|
||||
Inno Setup compiler installation found at: 'C:\Program Files (x86)\Inno Setup 6\ISCC.exe'.
|
||||
GitHub CLI https://cli.github.com
|
||||
|
||||
#>
|
||||
|
||||
# Stop when the first error occurs
|
||||
$ErrorActionPreference = 'Stop'
|
||||
|
||||
function DeleteDir($path) {
|
||||
if (Test-Path $path) {
|
||||
Remove-Item $path -Recurse
|
||||
}
|
||||
}
|
||||
|
||||
# Throw error if the file/dir don't exist
|
||||
function Test($path) {
|
||||
if (-not (Test-Path $path)) {
|
||||
throw $path
|
||||
}
|
||||
return $path
|
||||
}
|
||||
|
||||
# Variables
|
||||
$SourceDir = Test $args[0]
|
||||
$OutputRootDir = Test $args[1]
|
||||
|
||||
Test (Join-Path $SourceDir 'MpvNet.sln')
|
||||
|
||||
$7zFile = Test 'C:\Program Files\7-Zip\7z.exe'
|
||||
$InnoSetupCompiler = Test 'C:\Program Files (x86)\Inno Setup 6\ISCC.exe'
|
||||
|
||||
$ReleaseNotes = "- [.NET Desktop Runtime 6.0](https://dotnet.microsoft.com/en-us/download/dotnet/6.0)`n- [Changelog](https://github.com/mpvnet-player/mpv.net/blob/main/docs/changelog.md)"
|
||||
$Repo = 'github.com/mpvnet-player/mpv.net'
|
||||
|
||||
# Dotnet Publish
|
||||
$PublishDir64 = Join-Path $SourceDir 'MpvNet.Windows\bin\Debug\win-x64\publish\'
|
||||
$PublishDirARM64 = Join-Path $SourceDir 'MpvNet.Windows\bin\Debug\win-arm64\publish\'
|
||||
$ProjectFile = Test (Join-Path $SourceDir 'MpvNet.Windows\MpvNet.Windows.csproj')
|
||||
dotnet publish $ProjectFile --self-contained false --configuration Debug --runtime win-x64
|
||||
dotnet publish $ProjectFile --self-contained false --configuration Debug --runtime win-arm64
|
||||
$PublishedExeFile64 = Test ($PublishDir64 + 'mpvnet.exe')
|
||||
|
||||
# Create OutputName
|
||||
$VersionInfo = [Diagnostics.FileVersionInfo]::GetVersionInfo($PublishedExeFile64)
|
||||
$IsBeta = $VersionInfo.FilePrivatePart -ne 0
|
||||
$BetaString = if ($IsBeta) { '-beta' } else { '' }
|
||||
$VersionName = $VersionInfo.FileVersion
|
||||
$OutputName64 = 'mpv.net-v' + $VersionName + $BetaString + '-portable-x64'
|
||||
$OutputNameARM64 = 'mpv.net-v' + $VersionName + $BetaString + '-portable-ARM64'
|
||||
|
||||
# Create OutputFolder
|
||||
$OutputDir64 = Join-Path $OutputRootDir ($OutputName64 + '\')
|
||||
$OutputDirARM64 = Join-Path $OutputRootDir ($OutputNameARM64 + '\')
|
||||
DeleteDir $OutputDir64
|
||||
DeleteDir $OutputDirARM64
|
||||
mkdir $OutputDir64
|
||||
mkdir $OutputDirARM64
|
||||
|
||||
# Copy Files
|
||||
Copy-Item ($PublishDir64 + '*') $OutputDir64
|
||||
Copy-Item ($PublishDirARM64 + '*') $OutputDirARM64
|
||||
$BinDirX64 = Test (Join-Path $SourceDir 'MpvNet.Windows\bin\Debug\')
|
||||
$BinDirARM64 = Test (Join-Path $SourceDir 'MpvNet.Windows\bin\Debug\win-arm64\')
|
||||
$ExtraFiles = 'mpvnet.com', 'libmpv-2.dll', 'MediaInfo.dll'
|
||||
$ExtraFiles | ForEach-Object { Copy-Item ($BinDirX64 + $_) ($OutputDir64 + $_) }
|
||||
$ExtraFiles | ForEach-Object { Copy-Item ($BinDirARM64 + $_) ($OutputDirARM64 + $_) }
|
||||
$LocaleDir = Test (Join-Path $SourceDir 'MpvNet.Windows\bin\Debug\Locale\')
|
||||
Copy-Item $LocaleDir ($OutputDir64 + 'Locale') -Recurse
|
||||
Copy-Item $LocaleDir ($OutputDirARM64 + 'Locale') -Recurse
|
||||
|
||||
# Pack
|
||||
$ZipOutputFile64 = Join-Path $OutputRootDir ($OutputName64 + '.zip')
|
||||
$ZipOutputFileARM64 = Join-Path $OutputRootDir ($OutputNameARM64 + '.zip')
|
||||
& $7zFile a -tzip -mx9 $ZipOutputFile64 -r ($OutputDir64 + '*')
|
||||
if ($LastExitCode) { throw $LastExitCode }
|
||||
& $7zFile a -tzip -mx9 $ZipOutputFileARM64 -r ($OutputDirARM64 + '*')
|
||||
if ($LastExitCode) { throw $LastExitCode }
|
||||
Test $ZipOutputFile64
|
||||
Test $ZipOutputFileARM64
|
||||
|
||||
# Inno Setup
|
||||
''; ''
|
||||
$InnoSetupScript = Test (Join-Path $SourceDir 'Setup\Inno\inno-setup.iss')
|
||||
& $InnoSetupCompiler $InnoSetupScript
|
||||
if ($LastExitCode) { throw $LastExitCode }
|
||||
$SetupFile = Test (Join-Path $OutputRootDir "mpv.net-v$VersionName-setup-x64.exe")
|
||||
|
||||
if ($IsBeta) {
|
||||
$NewSetupFile = Join-Path $OutputRootDir "mpv.net-v$VersionName-beta-setup-x64.exe"
|
||||
Move-Item $SetupFile $NewSetupFile
|
||||
$SetupFile = $NewSetupFile
|
||||
}
|
||||
|
||||
# Release
|
||||
$Title = 'v' + $VersionName + $BetaString
|
||||
|
||||
if ($BetaString) {
|
||||
gh release create $Title -t $Title -n $ReleaseNotes --repo $Repo --prerelease $ZipOutputFile64 $ZipOutputFileARM64 $SetupFile
|
||||
} else {
|
||||
gh release create $Title -t $Title -n $ReleaseNotes --repo $Repo $ZipOutputFile64 $ZipOutputFileARM64 $SetupFile
|
||||
}
|
||||
|
||||
if ($LastExitCode) { throw $LastExitCode }
|
||||
@@ -1,91 +0,0 @@
|
||||
|
||||
<#
|
||||
|
||||
Updates mpv and libmpv used by mpv.net.
|
||||
It uses the Path environment variable to find mpv and mpv.net.
|
||||
Files are downloaded from github.com/zhongfly/mpv-winbuild.
|
||||
Requires 7zip being installed at 'C:\Program Files\7-Zip\7z.exe'.
|
||||
|
||||
#>
|
||||
|
||||
$Zip7Path = 'C:\Program Files\7-Zip\7z.exe'
|
||||
|
||||
# Stop when the first error occurs
|
||||
$ErrorActionPreference = 'Stop'
|
||||
|
||||
# Throw exception if file or folder does not exist
|
||||
function Test($path) {
|
||||
if (-not (Test-Path $path)) {
|
||||
throw $path
|
||||
}
|
||||
return $path
|
||||
}
|
||||
|
||||
# Download file to temp dir and return file path
|
||||
function Download($pattern) {
|
||||
$api = "https://api.github.com/repos/zhongfly/mpv-winbuild/releases/latest"
|
||||
$json = Invoke-WebRequest $api -MaximumRedirection 0 -ErrorAction Ignore -UseBasicParsing | ConvertFrom-Json
|
||||
$filename = ($json.assets | Where-Object { $_.name -Match $pattern }).name
|
||||
$path = Join-Path $env:TEMP $filename
|
||||
$link = ($json.assets | Where-Object { $_.name -Match $pattern }).browser_download_url
|
||||
Invoke-WebRequest -Uri $link -UserAgent "mpv-win-updater" -OutFile $path
|
||||
return Test $path
|
||||
}
|
||||
|
||||
function Unpack($archieveFile, $outputRootDir) {
|
||||
$outputDir = Join-Path $outputRootDir $archieveFile.BaseName
|
||||
if (Test-Path $outputDir) { Remove-Item $outputDir -Recurse }
|
||||
$process = Start-Process (Test $Zip7Path) @('x', $archieveFile.FullName, "-o$outputDir") -NoNewWindow -Wait
|
||||
if ($process.ExitCode) { throw $process.ExitCode }
|
||||
return Test $outputDir
|
||||
}
|
||||
|
||||
function UpdateLibmpv($targetFolder) {
|
||||
if ($targetFolder -eq 'no') { return }
|
||||
$archiveFile = Get-Item (Download "mpv-dev-x86_64-[0-9]{8}")
|
||||
$archiveDir = Unpack $archiveFile $env:TEMP
|
||||
Copy-Item $archiveDir\libmpv-2.dll (Test $targetFolder) -Force
|
||||
Remove-Item $archiveFile.FullName
|
||||
Remove-Item $archiveDir -Recurse
|
||||
}
|
||||
|
||||
function UpdateMpv($targetFolder) {
|
||||
if ($targetFolder -eq 'no') { return }
|
||||
$archiveFile = Get-Item (Download "mpv-x86_64-[0-9]{8}")
|
||||
$archiveDir = Unpack $archiveFile $env:TEMP
|
||||
Copy-Item "$archiveDir\*" $targetFolder -Force -Recurse
|
||||
Remove-Item $archiveFile.FullName
|
||||
Remove-Item $archiveDir -Recurse
|
||||
}
|
||||
|
||||
# Update mpv
|
||||
|
||||
$MpvLocations = @() + (cmd /c where mpv.exe)
|
||||
|
||||
if ($MpvLocations.Length -gt 0) {
|
||||
$mpvDir = Split-Path ($MpvLocations[0])
|
||||
''; 'mpv found at:'; $mpvDir
|
||||
$result = Read-Host 'Update mpv? [y/n]'
|
||||
|
||||
if ($result -eq 'y') {
|
||||
UpdateMpv $mpvDir
|
||||
}
|
||||
} else {
|
||||
'mpv location not found.'
|
||||
}
|
||||
|
||||
# Update libmpv used by mpv.net
|
||||
|
||||
$MpvNetLocations = @() + (cmd /c where mpvnet.exe)
|
||||
|
||||
if ($MpvNetLocations.Length -gt 0) {
|
||||
$mpvNetDir = Split-Path ($MpvNetLocations[0])
|
||||
''; 'mpv.net found at:'; $mpvNetDir
|
||||
$result = Read-Host 'Update libmpv? [y/n]'
|
||||
|
||||
if ($result -eq 'y') {
|
||||
UpdateLibmpv $mpvNetDir
|
||||
}
|
||||
} else {
|
||||
'mpv.net location not found.'
|
||||
}
|
||||
104
src/Tools/update-mpv.ps1
Normal file
104
src/Tools/update-mpv.ps1
Normal file
@@ -0,0 +1,104 @@
|
||||
|
||||
<#
|
||||
|
||||
Updates mpv (x64) and libmpv (x64 , ARM64).
|
||||
|
||||
Files are downloaded from:
|
||||
x64: github.com/zhongfly/mpv-winbuild
|
||||
ARM64: github.com/Andarwinux/mpv-winbuild
|
||||
|
||||
Requires 7zip being installed at 'C:\Program Files\7-Zip\7z.exe'.
|
||||
|
||||
Needs 3 positional CLI arguments:
|
||||
1. Directory where mpv x64 is located. To skip pass '-'.
|
||||
2. Directory where libmpv x64 is located. To skip pass '-'.
|
||||
3. Directory where libmpv ARM64 is located. To skip pass '-'.
|
||||
#>
|
||||
|
||||
$7ZipPath = 'C:\Program Files\7-Zip\7z.exe'
|
||||
|
||||
$MpvDirX64 = $args[0]
|
||||
$LibmpvDirX64 = $args[1]
|
||||
$LibmpvDirARM64 = $args[2]
|
||||
|
||||
# Stop when the first error occurs
|
||||
$ErrorActionPreference = 'Stop'
|
||||
|
||||
# Throw exception if file or folder does not exist
|
||||
function Test($path) {
|
||||
if (-not (Test-Path $path)) {
|
||||
throw $path
|
||||
}
|
||||
return $path
|
||||
}
|
||||
|
||||
# Download file to temp dir and return file path
|
||||
function Download($apiURL, $pattern) {
|
||||
$json = Invoke-WebRequest $apiURL -MaximumRedirection 0 -ErrorAction Ignore -UseBasicParsing | ConvertFrom-Json
|
||||
$filename = ($json.assets | Where-Object { $_.name -Match $pattern }).name
|
||||
$path = Join-Path $env:TEMP $filename
|
||||
$link = ($json.assets | Where-Object { $_.name -Match $pattern }).browser_download_url
|
||||
Invoke-WebRequest -Uri $link -UserAgent "mpv-win-updater" -OutFile $path
|
||||
return Test $path
|
||||
}
|
||||
|
||||
# Unpack archive
|
||||
function Unpack($archieveFile, $outputRootDir) {
|
||||
$outputDir = Join-Path $outputRootDir $archieveFile.BaseName
|
||||
if (Test-Path $outputDir) { Remove-Item $outputDir -Recurse }
|
||||
$process = Start-Process (Test $7ZipPath) @('x', $archieveFile.FullName, "-o$outputDir") -NoNewWindow -Wait
|
||||
if ($process.ExitCode) { throw $process.ExitCode }
|
||||
return Test $outputDir
|
||||
}
|
||||
|
||||
# Update mpv x64
|
||||
|
||||
if (Test-Path (Join-Path $MpvDirX64 'mpv.exe')) {
|
||||
$apiURL = "https://api.github.com/repos/zhongfly/mpv-winbuild/releases/latest"
|
||||
$archiveFile = Get-Item (Download $apiURL "mpv-x86_64-[0-9]{8}")
|
||||
$archiveDir = Unpack $archiveFile $env:TEMP
|
||||
Remove-Item "$MpvDirX64\*" -Force -Recurse
|
||||
Copy-Item "$archiveDir\*" $MpvDirX64 -Force -Recurse
|
||||
Remove-Item $archiveFile.FullName
|
||||
Remove-Item $archiveDir -Recurse
|
||||
} else {
|
||||
"mpv x64 location not found:`n$MpvDirX64"
|
||||
}
|
||||
|
||||
# Update libmpv x64
|
||||
|
||||
if (Test-Path (Join-Path $LibmpvDirX64 'libmpv-2.dll')) {
|
||||
$apiURL = "https://api.github.com/repos/zhongfly/mpv-winbuild/releases/latest"
|
||||
$archiveFile = Get-Item (Download $apiURL "mpv-dev-x86_64-[0-9]{8}")
|
||||
$archiveDir = Unpack $archiveFile $env:TEMP
|
||||
Copy-Item $archiveDir\libmpv-2.dll $LibmpvDirX64 -Force
|
||||
Remove-Item $archiveFile.FullName
|
||||
Remove-Item $archiveDir -Recurse
|
||||
} else {
|
||||
"libmpv x64 location not found:`n$LibmpvDirX64"
|
||||
}
|
||||
|
||||
# Update libmpv ARM64
|
||||
|
||||
if (Test-Path (Join-Path $LibmpvDirARM64 'libmpv-2.dll')) {
|
||||
$apiURL = "https://api.github.com/repos/Andarwinux/mpv-winbuild/releases/latest"
|
||||
$archiveFile = Get-Item (Download $apiURL "mpv-dev-aarch64-[0-9]{8}")
|
||||
$archiveDir = Unpack $archiveFile $env:TEMP
|
||||
Copy-Item $archiveDir\libmpv-2.dll $LibmpvDirARM64 -Force
|
||||
Remove-Item $archiveFile.FullName
|
||||
Remove-Item $archiveDir -Recurse
|
||||
} else {
|
||||
"libmpv ARM64 location not found:`n$LibmpvDirARM64"
|
||||
}
|
||||
|
||||
if (Test-Path (Join-Path $MpvDirX64 'mpv.exe')) {
|
||||
Get-Item (Join-Path $MpvDirX64 'mpv.exe')
|
||||
}
|
||||
|
||||
if (Test-Path (Join-Path $LibmpvDirX64 'libmpv-2.dll')) {
|
||||
Get-Item (Join-Path $LibmpvDirX64 'libmpv-2.dll')
|
||||
}
|
||||
|
||||
if (Test-Path (Join-Path $LibmpvDirARM64 'libmpv-2.dll')) {
|
||||
Get-Item (Join-Path $LibmpvDirARM64 'libmpv-2.dll')
|
||||
}
|
||||
Reference in New Issue
Block a user