mirror of
https://github.com/moonlight-stream/moonlight-qt.git
synced 2026-10-27 06:20:05 +00:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
12526bfca4 | ||
|
|
3e2c344140 | ||
|
|
33730dd584 | ||
|
|
1cb03b1882 | ||
|
|
2f0a6db414 | ||
|
|
a42328d971 | ||
|
|
96ff51d598 | ||
|
|
7c3d3af681 | ||
|
|
6942bca5a7 | ||
|
|
9eac9a190e | ||
|
|
40e4fbd9a6 | ||
|
|
7b6996ed80 | ||
|
|
ef2827a9d8 | ||
|
|
dbf98ce3a6 |
No files matched your search
@@ -8,6 +8,7 @@ You can follow development on our [Discord server](https://discord.gg/6ERtzFY).
|
|||||||
|
|
||||||
[](https://ci.appveyor.com/project/cgutman/moonlight-qt/branch/master)
|
[](https://ci.appveyor.com/project/cgutman/moonlight-qt/branch/master)
|
||||||
[](https://travis-ci.org/moonlight-stream/moonlight-qt)
|
[](https://travis-ci.org/moonlight-stream/moonlight-qt)
|
||||||
|
[](https://github.com/moonlight-stream/moonlight-qt/releases)
|
||||||
|
|
||||||
## Features
|
## Features
|
||||||
- Hardware accelerated video decoding on Windows, Mac, and Linux
|
- Hardware accelerated video decoding on Windows, Mac, and Linux
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ RichPresenceManager::RichPresenceManager(StreamingPreferences& prefs, QString ga
|
|||||||
DiscordRichPresence discordPresence = {};
|
DiscordRichPresence discordPresence = {};
|
||||||
discordPresence.state = stateStr.data();
|
discordPresence.state = stateStr.data();
|
||||||
discordPresence.startTimestamp = time(nullptr);
|
discordPresence.startTimestamp = time(nullptr);
|
||||||
|
discordPresence.largeImageKey = "icon";
|
||||||
Discord_UpdatePresence(&discordPresence);
|
Discord_UpdatePresence(&discordPresence);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -33,6 +33,19 @@
|
|||||||
</screenshots>
|
</screenshots>
|
||||||
|
|
||||||
<releases>
|
<releases>
|
||||||
|
<release version="1.1.1" date="2019-09-29">
|
||||||
|
<description>
|
||||||
|
<p>Bugfixes:</p>
|
||||||
|
<ul>
|
||||||
|
<li>Improved reliability of public IP address detection</li>
|
||||||
|
<li>Fixed connecting to a host PC with multiple network connections</li>
|
||||||
|
<li>Fixed a hang after exiting a full-screen stream with GNOME on Wayland</li>
|
||||||
|
<li>Fixed gamepad hotplugging</li>
|
||||||
|
<li>Updated to SDL 2.0.10</li>
|
||||||
|
<li>Updated to Qt 5.13.1</li>
|
||||||
|
</ul>
|
||||||
|
</description>
|
||||||
|
</release>
|
||||||
<release version="1.1.0" date="2019-08-05">
|
<release version="1.1.0" date="2019-08-05">
|
||||||
<description>
|
<description>
|
||||||
<p>New features:</p>
|
<p>New features:</p>
|
||||||
|
|||||||
@@ -151,6 +151,8 @@ CenteredGridView {
|
|||||||
text: model.name
|
text: model.name
|
||||||
width: appIcon.width
|
width: appIcon.width
|
||||||
height: model.running ? 175 : appIcon.height
|
height: model.running ? 175 : appIcon.height
|
||||||
|
leftPadding: 20
|
||||||
|
rightPadding: 20
|
||||||
anchors.left: appIcon.left
|
anchors.left: appIcon.left
|
||||||
anchors.right: appIcon.right
|
anchors.right: appIcon.right
|
||||||
anchors.bottom: appIcon.bottom
|
anchors.bottom: appIcon.bottom
|
||||||
|
|||||||
+1
-1
@@ -239,7 +239,7 @@ ApplicationWindow {
|
|||||||
|
|
||||||
ToolTip.delay: 1000
|
ToolTip.delay: 1000
|
||||||
ToolTip.timeout: 3000
|
ToolTip.timeout: 3000
|
||||||
ToolTip.visible: hovered
|
ToolTip.visible: hovered || visible
|
||||||
|
|
||||||
// Invisible until we get a callback notifying us that
|
// Invisible until we get a callback notifying us that
|
||||||
// an update is available
|
// an update is available
|
||||||
|
|||||||
@@ -55,8 +55,9 @@ IAudioRenderer* Session::createAudioRenderer(const POPUS_MULTISTREAM_CONFIGURATI
|
|||||||
TRY_INIT_RENDERER(SLAudioRenderer, opusConfig)
|
TRY_INIT_RENDERER(SLAudioRenderer, opusConfig)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef Q_OS_LINUX
|
#if !defined(Q_OS_WIN32) && !defined(Q_OS_DARWIN)
|
||||||
// Linux defaults to SDL and fall backs to libsoundio
|
// Linux defaults to SDL due to persistent glitching issues under libsoundio.
|
||||||
|
// Platforms that libsoundio doesn't support also default to SDL.
|
||||||
TRY_INIT_RENDERER(SdlAudioRenderer, opusConfig)
|
TRY_INIT_RENDERER(SdlAudioRenderer, opusConfig)
|
||||||
#ifdef HAVE_SOUNDIO
|
#ifdef HAVE_SOUNDIO
|
||||||
TRY_INIT_RENDERER(SoundIoAudioRenderer, opusConfig)
|
TRY_INIT_RENDERER(SoundIoAudioRenderer, opusConfig)
|
||||||
|
|||||||
@@ -1024,8 +1024,12 @@ void Session::exec(int displayOriginX, int displayOriginY)
|
|||||||
// This prevents the mouse from becoming trapped inside
|
// This prevents the mouse from becoming trapped inside
|
||||||
// Moonlight when it's halted at a debug break.
|
// Moonlight when it's halted at a debug break.
|
||||||
if (m_Preferences->windowMode != StreamingPreferences::WM_WINDOWED) {
|
if (m_Preferences->windowMode != StreamingPreferences::WM_WINDOWED) {
|
||||||
|
// HACK: This doesn't work on Wayland until we render a frame, so
|
||||||
|
// just don't do it for now.
|
||||||
|
if (strcmp(SDL_GetCurrentVideoDriver(), "wayland") != 0) {
|
||||||
m_InputHandler->setCaptureActive(true);
|
m_InputHandler->setCaptureActive(true);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Stop text input. SDL enables it by default
|
// Stop text input. SDL enables it by default
|
||||||
@@ -1268,6 +1272,25 @@ DispatchDeferredCleanup:
|
|||||||
m_VideoDecoder = nullptr;
|
m_VideoDecoder = nullptr;
|
||||||
SDL_AtomicUnlock(&m_DecoderLock);
|
SDL_AtomicUnlock(&m_DecoderLock);
|
||||||
|
|
||||||
|
if (strcmp(SDL_GetCurrentVideoDriver(), "wayland") == 0) {
|
||||||
|
// HACK: SDL (as of 2.0.10) has a bug that causes Mutter not to destroy the window
|
||||||
|
// surface when in full-screen unless we render more frames after we request
|
||||||
|
// to exit full-screen. The amount of frames required is variable but 500 ms
|
||||||
|
// of frames seems sufficient in my testing.
|
||||||
|
SDL_SetWindowFullscreen(m_Window, 0);
|
||||||
|
SDL_Renderer* renderer = SDL_CreateRenderer(m_Window, -1, SDL_RENDERER_PRESENTVSYNC);
|
||||||
|
if (renderer != nullptr) {
|
||||||
|
SDL_SetRenderDrawColor(renderer, 0, 0, 0, SDL_ALPHA_OPAQUE);
|
||||||
|
for (int i = 0; i < 10; i++)
|
||||||
|
{
|
||||||
|
SDL_RenderClear(renderer);
|
||||||
|
SDL_RenderPresent(renderer);
|
||||||
|
SDL_Delay(50);
|
||||||
|
}
|
||||||
|
SDL_DestroyRenderer(renderer);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// This must be called after the decoder is deleted, because
|
// This must be called after the decoder is deleted, because
|
||||||
// the renderer may want to interact with the window
|
// the renderer may want to interact with the window
|
||||||
SDL_DestroyWindow(m_Window);
|
SDL_DestroyWindow(m_Window);
|
||||||
|
|||||||
@@ -68,13 +68,6 @@ bool SdlRenderer::prepareDecoderContext(AVCodecContext*)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
int SdlRenderer::getDecoderCapabilities()
|
|
||||||
{
|
|
||||||
// The FFmpeg CPU decoder can handle reference frame invalidation,
|
|
||||||
// but only for H.264.
|
|
||||||
return CAPABILITY_REFERENCE_FRAME_INVALIDATION_AVC;
|
|
||||||
}
|
|
||||||
|
|
||||||
void SdlRenderer::notifyOverlayUpdated(Overlay::OverlayType type)
|
void SdlRenderer::notifyOverlayUpdated(Overlay::OverlayType type)
|
||||||
{
|
{
|
||||||
// Construct the required font to render the overlay
|
// Construct the required font to render the overlay
|
||||||
|
|||||||
@@ -11,7 +11,6 @@ public:
|
|||||||
virtual bool initialize(PDECODER_PARAMETERS params) override;
|
virtual bool initialize(PDECODER_PARAMETERS params) override;
|
||||||
virtual bool prepareDecoderContext(AVCodecContext* context) override;
|
virtual bool prepareDecoderContext(AVCodecContext* context) override;
|
||||||
virtual void renderFrame(AVFrame* frame) override;
|
virtual void renderFrame(AVFrame* frame) override;
|
||||||
virtual int getDecoderCapabilities() override;
|
|
||||||
virtual void notifyOverlayUpdated(Overlay::OverlayType) override;
|
virtual void notifyOverlayUpdated(Overlay::OverlayType) override;
|
||||||
virtual bool isRenderThreadSupported() override;
|
virtual bool isRenderThreadSupported() override;
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -1 +1 @@
|
|||||||
1.1.0
|
1.1.1
|
||||||
Submodule moonlight-common-c/moonlight-common-c updated: a9780361a3...7de68207f0.
@@ -8,7 +8,7 @@ fail()
|
|||||||
}
|
}
|
||||||
|
|
||||||
if [ "$BUILD_CONFIG" != "Debug" ] && [ "$BUILD_CONFIG" != "Release" ]; then
|
if [ "$BUILD_CONFIG" != "Debug" ] && [ "$BUILD_CONFIG" != "Release" ]; then
|
||||||
fail "Invalid build configuration"
|
fail "Invalid build configuration - expected 'Debug' or 'Release'"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
[ "$SIGNING_KEY" == "" ] || git diff-index --quiet HEAD -- || fail "Signed release builds must not have unstaged changes!"
|
[ "$SIGNING_KEY" == "" ] || git diff-index --quiet HEAD -- || fail "Signed release builds must not have unstaged changes!"
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
rem Run from Qt command prompt with working directory set to root of repo
|
|
||||||
|
|
||||||
setlocal enableDelayedExpansion
|
|
||||||
@echo off
|
@echo off
|
||||||
|
setlocal enableDelayedExpansion
|
||||||
|
|
||||||
|
rem Run from Qt command prompt with working directory set to root of repo
|
||||||
|
|
||||||
set BUILD_CONFIG=%1
|
set BUILD_CONFIG=%1
|
||||||
set ARCH=%2
|
set ARCH=%2
|
||||||
@@ -25,7 +25,7 @@ if /I "%BUILD_CONFIG%"=="debug" (
|
|||||||
exit /b 1
|
exit /b 1
|
||||||
)
|
)
|
||||||
) else (
|
) else (
|
||||||
echo Invalid build configuration
|
echo Invalid build configuration - expected 'debug' or 'release'
|
||||||
exit /b 1
|
exit /b 1
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
@@ -33,17 +33,13 @@ if /I "%BUILD_CONFIG%"=="debug" (
|
|||||||
|
|
||||||
if /I "%ARCH%" NEQ "x86" (
|
if /I "%ARCH%" NEQ "x86" (
|
||||||
if /I "%ARCH%" NEQ "x64" (
|
if /I "%ARCH%" NEQ "x64" (
|
||||||
echo Invalid build architecture
|
echo Invalid build architecture - expected 'x86' or 'x64'
|
||||||
exit /b 1
|
exit /b 1
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
set VS_PATH=%ProgramFiles(x86)%\Microsoft Visual Studio\2017\Community
|
|
||||||
set SIGNTOOL_PARAMS=sign /tr http://timestamp.digicert.com /td sha256 /fd sha256 /sha1 1B3C676E831A94EC0327C3347EB32C68C26B3A67 /v
|
set SIGNTOOL_PARAMS=sign /tr http://timestamp.digicert.com /td sha256 /fd sha256 /sha1 1B3C676E831A94EC0327C3347EB32C68C26B3A67 /v
|
||||||
|
|
||||||
call "%VS_PATH%\VC\Auxiliary\Build\vcvarsall.bat" %ARCH%
|
|
||||||
if !ERRORLEVEL! NEQ 0 goto Error
|
|
||||||
|
|
||||||
set BUILD_ROOT=%cd%\build
|
set BUILD_ROOT=%cd%\build
|
||||||
set SOURCE_ROOT=%cd%
|
set SOURCE_ROOT=%cd%
|
||||||
set BUILD_FOLDER=%BUILD_ROOT%\build-%ARCH%-%BUILD_CONFIG%
|
set BUILD_FOLDER=%BUILD_ROOT%\build-%ARCH%-%BUILD_CONFIG%
|
||||||
@@ -52,6 +48,16 @@ set INSTALLER_FOLDER=%BUILD_ROOT%\installer-%ARCH%-%BUILD_CONFIG%
|
|||||||
set SYMBOLS_FOLDER=%BUILD_ROOT%\symbols-%ARCH%-%BUILD_CONFIG%
|
set SYMBOLS_FOLDER=%BUILD_ROOT%\symbols-%ARCH%-%BUILD_CONFIG%
|
||||||
set /p VERSION=<%SOURCE_ROOT%\app\version.txt
|
set /p VERSION=<%SOURCE_ROOT%\app\version.txt
|
||||||
|
|
||||||
|
rem Find Visual Studio and run vcvarsall.bat
|
||||||
|
set VSWHERE="%SOURCE_ROOT%\scripts\vswhere.exe"
|
||||||
|
for /f "usebackq delims=" %%i in (`%VSWHERE% -latest -property installationPath`) do (
|
||||||
|
call "%%i\VC\Auxiliary\Build\vcvarsall.bat" %ARCH%
|
||||||
|
)
|
||||||
|
if !ERRORLEVEL! NEQ 0 goto Error
|
||||||
|
|
||||||
|
rem Find VC redistributable DLLs
|
||||||
|
for /f "usebackq delims=" %%i in (`%VSWHERE% -latest -find VC\Redist\MSVC\*\%ARCH%\Microsoft.VC*.CRT`) do set VC_REDIST_DLL_PATH=%%i
|
||||||
|
|
||||||
echo Cleaning output directories
|
echo Cleaning output directories
|
||||||
rmdir /s /q %DEPLOY_FOLDER%
|
rmdir /s /q %DEPLOY_FOLDER%
|
||||||
rmdir /s /q %BUILD_FOLDER%
|
rmdir /s /q %BUILD_FOLDER%
|
||||||
@@ -164,7 +170,6 @@ if "%SIGN%"=="1" (
|
|||||||
)
|
)
|
||||||
|
|
||||||
echo Building bundle
|
echo Building bundle
|
||||||
set VCREDIST_INSTALLER=%VCToolsRedistDir%vcredist_%ARCH%.exe
|
|
||||||
rem Bundles are always x86 binaries
|
rem Bundles are always x86 binaries
|
||||||
msbuild %SOURCE_ROOT%\wix\MoonlightSetup\MoonlightSetup.wixproj /p:Configuration=%BUILD_CONFIG% /p:Platform=x86
|
msbuild %SOURCE_ROOT%\wix\MoonlightSetup\MoonlightSetup.wixproj /p:Configuration=%BUILD_CONFIG% /p:Platform=x86
|
||||||
if !ERRORLEVEL! NEQ 0 goto Error
|
if !ERRORLEVEL! NEQ 0 goto Error
|
||||||
@@ -187,7 +192,8 @@ ren %INSTALLER_FOLDER%\MoonlightSetup.exe MoonlightSetup-%ARCH%-%VERSION%.exe
|
|||||||
echo Building portable package
|
echo Building portable package
|
||||||
rem This must be done after WiX harvesting and signing, since the VCRT dlls are MS signed
|
rem This must be done after WiX harvesting and signing, since the VCRT dlls are MS signed
|
||||||
rem and should not be harvested for inclusion in the full installer
|
rem and should not be harvested for inclusion in the full installer
|
||||||
copy "%VCToolsRedistDir%%ARCH%\Microsoft.VC141.CRT\*.dll" %DEPLOY_FOLDER%
|
copy "%VC_REDIST_DLL_PATH%\*.dll" %DEPLOY_FOLDER%
|
||||||
|
if !ERRORLEVEL! NEQ 0 goto Error
|
||||||
rem This file tells Moonlight that it's a portable installation
|
rem This file tells Moonlight that it's a portable installation
|
||||||
echo. > %DEPLOY_FOLDER%\portable.dat
|
echo. > %DEPLOY_FOLDER%\portable.dat
|
||||||
if !ERRORLEVEL! NEQ 0 goto Error
|
if !ERRORLEVEL! NEQ 0 goto Error
|
||||||
|
|||||||
Binary file not shown.
@@ -86,7 +86,7 @@
|
|||||||
InstallCondition="VCRedist_Present = 2"
|
InstallCondition="VCRedist_Present = 2"
|
||||||
Vital="yes"
|
Vital="yes"
|
||||||
Compressed="yes"
|
Compressed="yes"
|
||||||
SourceFile="$(env.VCREDIST_INSTALLER)"
|
SourceFile="$(env.VCToolsRedistDir)vcredist_$(env.ARCH).exe"
|
||||||
InstallCommand="/install /quiet /norestart">
|
InstallCommand="/install /quiet /norestart">
|
||||||
<!-- Newer version installed is fine -->
|
<!-- Newer version installed is fine -->
|
||||||
<ExitCode Value="1638" Behavior="success" />
|
<ExitCode Value="1638" Behavior="success" />
|
||||||
|
|||||||
Reference in new issue
Block a user