Skip to content

Commit

Permalink
MP1-4869: Add ffmpeg x64 support for 64 bit OS (thx @regeszter)
Browse files Browse the repository at this point in the history
  • Loading branch information
andrewjswan committed Sep 21, 2020
1 parent 3d050ad commit 2aa7959
Show file tree
Hide file tree
Showing 5 changed files with 78 additions and 3 deletions.
61 changes: 61 additions & 0 deletions Tools/InstallationScripts/include/x64.nsh
@@ -0,0 +1,61 @@
; ---------------------
; x64.nsh
; ---------------------
;
; A few simple macros to handle installations on x64 machines.
;
; RunningX64 checks if the installer is running on a 64-bit OS.
; IsWow64 checks if the installer is a 32-bit application running on a 64-bit OS.
;
; ${If} ${RunningX64}
; MessageBox MB_OK "running on x64"
; ${EndIf}
;
; DisableX64FSRedirection disables file system redirection.
; EnableX64FSRedirection enables file system redirection.
;
; SetOutPath $SYSDIR
; ${DisableX64FSRedirection}
; File some.dll # extracts to C:\Windows\System32
; ${EnableX64FSRedirection}
; File some.dll # extracts to C:\Windows\SysWOW64
;

!ifndef ___X64__NSH___
!define ___X64__NSH___

!include LogicLib.nsh


!define IsWow64 `"" IsWow64 ""`
!macro _IsWow64 _a _b _t _f
!insertmacro _LOGICLIB_TEMP
System::Call kernel32::GetCurrentProcess()p.s
System::Call kernel32::IsWow64Process(ps,*i0s)
Pop $_LOGICLIB_TEMP
!insertmacro _!= $_LOGICLIB_TEMP 0 `${_t}` `${_f}`
!macroend


!define RunningX64 `"" RunningX64 ""`
!macro _RunningX64 _a _b _t _f
!if ${NSIS_PTR_SIZE} > 4
!insertmacro LogicLib_JumpToBranch `${_t}` `${_f}`
!else
!insertmacro _IsWow64 `${_a}` `${_b}` `${_t}` `${_f}`
!endif
!macroend


!define DisableX64FSRedirection "!insertmacro DisableX64FSRedirection"
!macro DisableX64FSRedirection
System::Call kernel32::Wow64EnableWow64FsRedirection(i0)
!macroend

!define EnableX64FSRedirection "!insertmacro EnableX64FSRedirection"
!macro EnableX64FSRedirection
System::Call kernel32::Wow64EnableWow64FsRedirection(i1)
!macroend


!endif # !___X64__NSH___
7 changes: 6 additions & 1 deletion TvEngine3/TVLibrary/Setup/setup.nsi
Expand Up @@ -126,6 +126,7 @@ Var frominstall
!include "${git_InstallScripts}\pages\AddRemovePage.nsh"
!include "${git_InstallScripts}\pages\UninstallModePage.nsh"

!include "${git_InstallScripts}\include\x64.nsh"

#---------------------------------------------------------------------------
# INSTALLER INTERFACE settings
Expand Down Expand Up @@ -555,7 +556,11 @@ ${MementoSection} "MediaPortal TV Server" SecServer
File "${git_ROOT}\Packages\MediaInfo.Wrapper.20.8.0\lib\net40\MediaInfo.Wrapper.dll"

; thumbnail software
File "${git_ROOT}\Packages\FFmpeg.Win32.Static.4.1.1.1\ffmpeg\ffmpeg.exe"
${If} ${RunningX64}
File "${git_ROOT}\Packages\FFmpeg.Win64.Static.4.1.1.1\ffmpeg\ffmpeg.exe"
${Else}
File "${git_ROOT}\Packages\FFmpeg.Win32.Static.4.1.1.1\ffmpeg\ffmpeg.exe"
${EndIf}
File "${git_TVServer}\TvThumbnails\bin\x86\${BUILD_TYPE}\TvThumbnails.dll"


Expand Down
4 changes: 3 additions & 1 deletion mediaportal/Core/Core.csproj
Expand Up @@ -1704,9 +1704,11 @@ xcopy "$(TargetDir)core.*" "$(SolutionDir)MediaPortal.Application\bin\$(Configur
<Error Condition="!Exists('..\..\Packages\MediaInfo.Native.20.8.1\build\MediaInfo.Native.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\Packages\MediaInfo.Native.20.8.1\build\MediaInfo.Native.targets'))" />
<Error Condition="!Exists('..\..\Packages\FFmpeg.Win32.Static.4.1.1.1\build\FFmpeg.Win32.Static.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\Packages\FFmpeg.Win32.Static.4.1.1.1\build\FFmpeg.Win32.Static.targets'))" />
<Error Condition="!Exists('..\..\Packages\Sqlite.3.33.0\build\Sqlite.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\Packages\Sqlite.3.33.0\build\Sqlite.targets'))" />
<Error Condition="!Exists('..\..\Packages\FFmpeg.Win64.Static.4.1.1.1\build\FFmpeg.Win64.Static.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\Packages\FFmpeg.Win64.Static.4.1.1.1\build\FFmpeg.Win64.Static.targets'))" />
</Target>
<Import Project="..\..\Packages\BASSCombined.2.4.15\build\basscombined.targets" Condition="Exists('..\..\Packages\BASSCombined.2.4.15\build\basscombined.targets')" />
<Import Project="..\..\Packages\MediaInfo.Native.20.8.1\build\MediaInfo.Native.targets" Condition="Exists('..\..\Packages\MediaInfo.Native.20.8.1\build\MediaInfo.Native.targets')" />
<Import Project="..\..\Packages\FFmpeg.Win32.Static.4.1.1.1\build\FFmpeg.Win32.Static.targets" Condition="Exists('..\..\Packages\FFmpeg.Win32.Static.4.1.1.1\build\FFmpeg.Win32.Static.targets')" />
<Import Project="..\..\Packages\Sqlite.3.33.0\build\Sqlite.targets" Condition="Exists('..\..\Packages\Sqlite.3.33.0\build\Sqlite.targets')" />
<Import Project="..\..\Packages\FFmpeg.Win64.Static.4.1.1.1\build\FFmpeg.Win64.Static.targets" Condition="Exists('..\..\Packages\FFmpeg.Win64.Static.4.1.1.1\build\FFmpeg.Win64.Static.targets')" />
<Import Project="..\..\Packages\FFmpeg.Win32.Static.4.1.1.1\build\FFmpeg.Win32.Static.targets" Condition="Exists('..\..\Packages\FFmpeg.Win32.Static.4.1.1.1\build\FFmpeg.Win32.Static.targets')" />
</Project>
1 change: 1 addition & 0 deletions mediaportal/Core/packages.config
Expand Up @@ -5,6 +5,7 @@
<package id="BassRegistration" version="2.4.14.1" targetFramework="net40" />
<package id="CSCore" version="1.2.1.2" targetFramework="net40" />
<package id="FFmpeg.Win32.Static" version="4.1.1.1" targetFramework="net40" />
<package id="FFmpeg.Win64.Static" version="4.1.1.1" targetFramework="net40" />
<package id="MediaInfo.Native" version="20.8.1" targetFramework="net40" />
<package id="MediaInfo.Wrapper" version="20.8.0" targetFramework="net40" />
<package id="MediaPortal.TagLib" version="2.1.0.2" targetFramework="net40" />
Expand Down
8 changes: 7 additions & 1 deletion mediaportal/Setup/setup.nsi
Expand Up @@ -135,6 +135,8 @@ Var PREVIOUS_KEYMAPSETTINGS
!include "${git_InstallScripts}\include\FontReg.nsh"
!include "${git_InstallScripts}\include\FontName.nsh"

!include "${git_InstallScripts}\include\x64.nsh"

!ifndef GIT_BUILD
!include "${git_InstallScripts}\pages\AddRemovePage.nsh"
!endif
Expand Down Expand Up @@ -578,7 +580,11 @@ Section "MediaPortal core files (required)" SecCore
File "${git_MP}\WindowPlugins\Common.GUIPlugins\bin\${BUILD_TYPE}\Common.GUIPlugins.dll"
; ffmpeg
SetOutPath "$MPdir.Base\MovieThumbnailer"
File "${git_ROOT}\Packages\FFmpeg.Win32.Static.4.1.1.1\ffmpeg\ffmpeg.exe"
${If} ${RunningX64}
File "${git_ROOT}\Packages\FFmpeg.Win64.Static.4.1.1.1\ffmpeg\ffmpeg.exe"
${Else}
File "${git_ROOT}\Packages\FFmpeg.Win32.Static.4.1.1.1\ffmpeg\ffmpeg.exe"
${EndIf}
; NuGet binaries MediaInfo
SetOutPath "$MPdir.Base\"
File "${git_ROOT}\Packages\MediaInfo.Native.20.8.1\build\native\x86\MediaInfo.dll"
Expand Down

0 comments on commit 2aa7959

Please sign in to comment.