From 3d22ae432dd83c1c83684fe681c58a29f7a66eb4 Mon Sep 17 00:00:00 2001 From: rankun Date: Fri, 23 Nov 2018 13:12:08 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B7=A8=E5=B9=B3=E5=8F=B0=E5=87=86=E5=A4=87?= =?UTF-8?q?=EF=BC=9A=E8=B0=83=E6=95=B4=E7=9B=AE=E5=BD=95=E7=BB=93=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- QtScrcpy/QtScrcpy.pro | 43 +++++++++++++----- QtScrcpy/videoform.cpp | 10 ++-- output/{ => win}/debug/AdbWinApi.dll | Bin output/{ => win}/debug/AdbWinUsbApi.dll | Bin output/{ => win}/debug/adb.exe | Bin .../bin => output/win/debug}/avcodec-58.dll | Bin .../bin => output/win/debug}/avformat-58.dll | Bin .../bin => output/win/debug}/avutil-56.dll | Bin output/{ => win}/debug/scrcpy-server.jar | Bin .../bin => output/win/debug}/swresample-3.dll | Bin .../bin => output/win/debug}/swscale-5.dll | Bin output/{ => win}/release/AdbWinApi.dll | Bin output/{ => win}/release/AdbWinUsbApi.dll | Bin output/{ => win}/release/adb.exe | Bin output/{debug => win/release}/avcodec-58.dll | Bin output/{debug => win/release}/avformat-58.dll | Bin output/{debug => win/release}/avutil-56.dll | Bin output/{ => win}/release/scrcpy-server.jar | Bin 48320 -> 48635 bytes .../{debug => win/release}/swresample-3.dll | Bin output/{debug => win/release}/swscale-5.dll | Bin .../ffmpeg/bin}/avcodec-58.dll | Bin .../ffmpeg/bin}/avformat-58.dll | Bin .../ffmpeg/bin}/avutil-56.dll | Bin .../ffmpeg/bin}/swresample-3.dll | Bin .../ffmpeg/bin}/swscale-5.dll | Bin .../ffmpeg/include/libavcodec/ac3_parser.h | 0 .../ffmpeg/include/libavcodec/adts_parser.h | 0 .../ffmpeg/include/libavcodec/avcodec.h | 0 .../ffmpeg/include/libavcodec/avdct.h | 0 .../ffmpeg/include/libavcodec/avfft.h | 0 .../ffmpeg/include/libavcodec/d3d11va.h | 0 .../ffmpeg/include/libavcodec/dirac.h | 0 .../ffmpeg/include/libavcodec/dv_profile.h | 0 .../ffmpeg/include/libavcodec/dxva2.h | 0 .../ffmpeg/include/libavcodec/jni.h | 0 .../ffmpeg/include/libavcodec/mediacodec.h | 0 .../ffmpeg/include/libavcodec/qsv.h | 0 .../ffmpeg/include/libavcodec/vaapi.h | 0 .../ffmpeg/include/libavcodec/vdpau.h | 0 .../ffmpeg/include/libavcodec/version.h | 0 .../ffmpeg/include/libavcodec/videotoolbox.h | 0 .../ffmpeg/include/libavcodec/vorbis_parser.h | 0 .../ffmpeg/include/libavcodec/xvmc.h | 0 .../ffmpeg/include/libavformat/avformat.h | 0 .../ffmpeg/include/libavformat/avio.h | 0 .../ffmpeg/include/libavformat/version.h | 0 .../ffmpeg/include/libavutil/adler32.h | 0 .../ffmpeg/include/libavutil/aes.h | 0 .../ffmpeg/include/libavutil/aes_ctr.h | 0 .../ffmpeg/include/libavutil/attributes.h | 0 .../ffmpeg/include/libavutil/audio_fifo.h | 0 .../ffmpeg/include/libavutil/avassert.h | 0 .../ffmpeg/include/libavutil/avconfig.h | 0 .../ffmpeg/include/libavutil/avstring.h | 0 .../ffmpeg/include/libavutil/avutil.h | 0 .../ffmpeg/include/libavutil/base64.h | 0 .../ffmpeg/include/libavutil/blowfish.h | 0 .../ffmpeg/include/libavutil/bprint.h | 0 .../ffmpeg/include/libavutil/bswap.h | 0 .../ffmpeg/include/libavutil/buffer.h | 0 .../ffmpeg/include/libavutil/camellia.h | 0 .../ffmpeg/include/libavutil/cast5.h | 0 .../ffmpeg/include/libavutil/channel_layout.h | 0 .../ffmpeg/include/libavutil/common.h | 0 .../ffmpeg/include/libavutil/cpu.h | 0 .../ffmpeg/include/libavutil/crc.h | 0 .../ffmpeg/include/libavutil/des.h | 0 .../ffmpeg/include/libavutil/dict.h | 0 .../ffmpeg/include/libavutil/display.h | 0 .../ffmpeg/include/libavutil/downmix_info.h | 0 .../include/libavutil/encryption_info.h | 0 .../ffmpeg/include/libavutil/error.h | 0 .../ffmpeg/include/libavutil/eval.h | 0 .../ffmpeg/include/libavutil/ffversion.h | 0 .../ffmpeg/include/libavutil/fifo.h | 0 .../ffmpeg/include/libavutil/file.h | 0 .../ffmpeg/include/libavutil/frame.h | 0 .../ffmpeg/include/libavutil/hash.h | 0 .../ffmpeg/include/libavutil/hmac.h | 0 .../ffmpeg/include/libavutil/hwcontext.h | 0 .../ffmpeg/include/libavutil/hwcontext_cuda.h | 0 .../include/libavutil/hwcontext_d3d11va.h | 0 .../ffmpeg/include/libavutil/hwcontext_drm.h | 0 .../include/libavutil/hwcontext_dxva2.h | 0 .../include/libavutil/hwcontext_mediacodec.h | 0 .../ffmpeg/include/libavutil/hwcontext_qsv.h | 0 .../include/libavutil/hwcontext_vaapi.h | 0 .../include/libavutil/hwcontext_vdpau.h | 0 .../libavutil/hwcontext_videotoolbox.h | 0 .../ffmpeg/include/libavutil/imgutils.h | 0 .../ffmpeg/include/libavutil/intfloat.h | 0 .../ffmpeg/include/libavutil/intreadwrite.h | 0 .../ffmpeg/include/libavutil/lfg.h | 0 .../ffmpeg/include/libavutil/log.h | 0 .../ffmpeg/include/libavutil/lzo.h | 0 .../ffmpeg/include/libavutil/macros.h | 0 .../libavutil/mastering_display_metadata.h | 0 .../ffmpeg/include/libavutil/mathematics.h | 0 .../ffmpeg/include/libavutil/md5.h | 0 .../ffmpeg/include/libavutil/mem.h | 0 .../ffmpeg/include/libavutil/motion_vector.h | 0 .../ffmpeg/include/libavutil/murmur3.h | 0 .../ffmpeg/include/libavutil/opt.h | 0 .../ffmpeg/include/libavutil/parseutils.h | 0 .../ffmpeg/include/libavutil/pixdesc.h | 0 .../ffmpeg/include/libavutil/pixelutils.h | 0 .../ffmpeg/include/libavutil/pixfmt.h | 0 .../ffmpeg/include/libavutil/random_seed.h | 0 .../ffmpeg/include/libavutil/rational.h | 0 .../ffmpeg/include/libavutil/rc4.h | 0 .../ffmpeg/include/libavutil/replaygain.h | 0 .../ffmpeg/include/libavutil/ripemd.h | 0 .../ffmpeg/include/libavutil/samplefmt.h | 0 .../ffmpeg/include/libavutil/sha.h | 0 .../ffmpeg/include/libavutil/sha512.h | 0 .../ffmpeg/include/libavutil/spherical.h | 0 .../ffmpeg/include/libavutil/stereo3d.h | 0 .../ffmpeg/include/libavutil/tea.h | 0 .../ffmpeg/include/libavutil/threadmessage.h | 0 .../ffmpeg/include/libavutil/time.h | 0 .../ffmpeg/include/libavutil/timecode.h | 0 .../ffmpeg/include/libavutil/timestamp.h | 0 .../ffmpeg/include/libavutil/tree.h | 0 .../ffmpeg/include/libavutil/twofish.h | 0 .../ffmpeg/include/libavutil/version.h | 0 .../ffmpeg/include/libavutil/xtea.h | 0 .../ffmpeg/include/libswresample/swresample.h | 0 .../ffmpeg/include/libswresample/version.h | 0 .../ffmpeg/include/libswscale/swscale.h | 0 .../ffmpeg/include/libswscale/version.h | 0 .../ffmpeg/lib/avcodec.lib | Bin .../ffmpeg/lib/avformat.lib | Bin .../ffmpeg/lib/avutil.lib | Bin .../ffmpeg/lib/swresample.lib | Bin .../ffmpeg/lib/swscale.lib | Bin 135 files changed, 39 insertions(+), 14 deletions(-) rename output/{ => win}/debug/AdbWinApi.dll (100%) rename output/{ => win}/debug/AdbWinUsbApi.dll (100%) rename output/{ => win}/debug/adb.exe (100%) rename {QtScrcpy/ffmpeg/bin => output/win/debug}/avcodec-58.dll (100%) rename {QtScrcpy/ffmpeg/bin => output/win/debug}/avformat-58.dll (100%) rename {QtScrcpy/ffmpeg/bin => output/win/debug}/avutil-56.dll (100%) rename output/{ => win}/debug/scrcpy-server.jar (100%) rename {QtScrcpy/ffmpeg/bin => output/win/debug}/swresample-3.dll (100%) rename {QtScrcpy/ffmpeg/bin => output/win/debug}/swscale-5.dll (100%) rename output/{ => win}/release/AdbWinApi.dll (100%) rename output/{ => win}/release/AdbWinUsbApi.dll (100%) rename output/{ => win}/release/adb.exe (100%) rename output/{debug => win/release}/avcodec-58.dll (100%) rename output/{debug => win/release}/avformat-58.dll (100%) rename output/{debug => win/release}/avutil-56.dll (100%) rename output/{ => win}/release/scrcpy-server.jar (51%) rename output/{debug => win/release}/swresample-3.dll (100%) rename output/{debug => win/release}/swscale-5.dll (100%) rename {output/release => third_party/ffmpeg/bin}/avcodec-58.dll (100%) rename {output/release => third_party/ffmpeg/bin}/avformat-58.dll (100%) rename {output/release => third_party/ffmpeg/bin}/avutil-56.dll (100%) rename {output/release => third_party/ffmpeg/bin}/swresample-3.dll (100%) rename {output/release => third_party/ffmpeg/bin}/swscale-5.dll (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavcodec/ac3_parser.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavcodec/adts_parser.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavcodec/avcodec.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavcodec/avdct.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavcodec/avfft.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavcodec/d3d11va.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavcodec/dirac.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavcodec/dv_profile.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavcodec/dxva2.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavcodec/jni.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavcodec/mediacodec.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavcodec/qsv.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavcodec/vaapi.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavcodec/vdpau.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavcodec/version.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavcodec/videotoolbox.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavcodec/vorbis_parser.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavcodec/xvmc.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavformat/avformat.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavformat/avio.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavformat/version.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavutil/adler32.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavutil/aes.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavutil/aes_ctr.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavutil/attributes.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavutil/audio_fifo.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavutil/avassert.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavutil/avconfig.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavutil/avstring.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavutil/avutil.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavutil/base64.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavutil/blowfish.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavutil/bprint.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavutil/bswap.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavutil/buffer.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavutil/camellia.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavutil/cast5.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavutil/channel_layout.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavutil/common.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavutil/cpu.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavutil/crc.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavutil/des.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavutil/dict.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavutil/display.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavutil/downmix_info.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavutil/encryption_info.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavutil/error.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavutil/eval.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavutil/ffversion.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavutil/fifo.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavutil/file.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavutil/frame.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavutil/hash.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavutil/hmac.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavutil/hwcontext.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavutil/hwcontext_cuda.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavutil/hwcontext_d3d11va.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavutil/hwcontext_drm.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavutil/hwcontext_dxva2.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavutil/hwcontext_mediacodec.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavutil/hwcontext_qsv.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavutil/hwcontext_vaapi.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavutil/hwcontext_vdpau.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavutil/hwcontext_videotoolbox.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavutil/imgutils.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavutil/intfloat.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavutil/intreadwrite.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavutil/lfg.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavutil/log.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavutil/lzo.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavutil/macros.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavutil/mastering_display_metadata.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavutil/mathematics.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavutil/md5.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavutil/mem.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavutil/motion_vector.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavutil/murmur3.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavutil/opt.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavutil/parseutils.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavutil/pixdesc.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavutil/pixelutils.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavutil/pixfmt.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavutil/random_seed.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavutil/rational.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavutil/rc4.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavutil/replaygain.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavutil/ripemd.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavutil/samplefmt.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavutil/sha.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavutil/sha512.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavutil/spherical.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavutil/stereo3d.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavutil/tea.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavutil/threadmessage.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavutil/time.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavutil/timecode.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavutil/timestamp.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavutil/tree.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavutil/twofish.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavutil/version.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libavutil/xtea.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libswresample/swresample.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libswresample/version.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libswscale/swscale.h (100%) rename {QtScrcpy => third_party}/ffmpeg/include/libswscale/version.h (100%) rename {QtScrcpy => third_party}/ffmpeg/lib/avcodec.lib (100%) rename {QtScrcpy => third_party}/ffmpeg/lib/avformat.lib (100%) rename {QtScrcpy => third_party}/ffmpeg/lib/avutil.lib (100%) rename {QtScrcpy => third_party}/ffmpeg/lib/swresample.lib (100%) rename {QtScrcpy => third_party}/ffmpeg/lib/swscale.lib (100%) diff --git a/QtScrcpy/QtScrcpy.pro b/QtScrcpy/QtScrcpy.pro index 1495035..7efc4e8 100644 --- a/QtScrcpy/QtScrcpy.pro +++ b/QtScrcpy/QtScrcpy.pro @@ -39,11 +39,25 @@ FORMS += \ dialog.ui \ videoform.ui -# 指定可执行程序输出目录 -CONFIG(debug, debug|release) { - DESTDIR = $$PWD/../output/debug -} else { - DESTDIR = $$PWD/../output/release +# *********************************************************** +# 输出目录 +# *********************************************************** +# Win平台下输出目录 +win32 { + CONFIG(debug, debug|release) { + DESTDIR = $$PWD/../output/win/debug + } else { + DESTDIR = $$PWD/../output/win/release + } +} + +# Mac os平台下输出目录 +macos { + CONFIG(debug, debug|release) { + DESTDIR = $$PWD/../output/mac/debug + } else { + DESTDIR = $$PWD/../output/mac/release + } } # 子工程 @@ -57,7 +71,7 @@ include ($$PWD/inputcontrol/inputcontrol.pri) # 附加包含路径 INCLUDEPATH += \ - $$PWD/ffmpeg/include \ + $$PWD/../third_party/ffmpeg/include \ $$PWD/common \ $$PWD/server \ $$PWD/adb \ @@ -66,12 +80,19 @@ INCLUDEPATH += \ $$PWD/android \ $$PWD/inputcontrol -# 依赖库 +# *********************************************************** +# 依赖模块 +# *********************************************************** LIBS += \ - -L$$PWD/ffmpeg/lib -lavcodec \ - -L$$PWD/ffmpeg/lib -lavformat \ - -L$$PWD/ffmpeg/lib -lavutil \ - -L$$PWD/ffmpeg/lib -lswscale + -L$$PWD/../third_party/ffmpeg/lib -lavcodec \ + -L$$PWD/../third_party/ffmpeg/lib -lavformat \ + -L$$PWD/../third_party/ffmpeg/lib -lavutil \ + -L$$PWD/../third_party/ffmpeg/lib -lswscale + +# Win平台下依赖模块 +win32 { + LIBS += -lUser32 +} RESOURCES += \ res.qrc diff --git a/QtScrcpy/videoform.cpp b/QtScrcpy/videoform.cpp index f48141c..4303d89 100644 --- a/QtScrcpy/videoform.cpp +++ b/QtScrcpy/videoform.cpp @@ -1,11 +1,13 @@ #include #include +#ifdef Q_OS_WIN32 +#include +#endif #include "videoform.h" #include "ui_videoform.h" -#include -#pragma comment(lib, "User32.lib") + VideoForm::VideoForm(const QString& serial, QWidget *parent) : QWidget(parent), @@ -19,8 +21,9 @@ VideoForm::VideoForm(const QString& serial, QWidget *parent) : ui->videoWidget->setMouseTracking(true); connect(&m_inputConvert, &InputConvertGame::grabCursor, this, [this](bool grab){ +#ifdef Q_OS_WIN32 if(grab) { - RECT mainRect; //windef.h中被定义 + RECT mainRect; mainRect.left = (LONG)this->geometry().left(); mainRect.right = (LONG)this->geometry().right(); mainRect.top = (LONG)this->geometry().top(); @@ -29,6 +32,7 @@ VideoForm::VideoForm(const QString& serial, QWidget *parent) : } else { ClipCursor(Q_NULLPTR); } +#endif }); m_server = new Server(); diff --git a/output/debug/AdbWinApi.dll b/output/win/debug/AdbWinApi.dll similarity index 100% rename from output/debug/AdbWinApi.dll rename to output/win/debug/AdbWinApi.dll diff --git a/output/debug/AdbWinUsbApi.dll b/output/win/debug/AdbWinUsbApi.dll similarity index 100% rename from output/debug/AdbWinUsbApi.dll rename to output/win/debug/AdbWinUsbApi.dll diff --git a/output/debug/adb.exe b/output/win/debug/adb.exe similarity index 100% rename from output/debug/adb.exe rename to output/win/debug/adb.exe diff --git a/QtScrcpy/ffmpeg/bin/avcodec-58.dll b/output/win/debug/avcodec-58.dll similarity index 100% rename from QtScrcpy/ffmpeg/bin/avcodec-58.dll rename to output/win/debug/avcodec-58.dll diff --git a/QtScrcpy/ffmpeg/bin/avformat-58.dll b/output/win/debug/avformat-58.dll similarity index 100% rename from QtScrcpy/ffmpeg/bin/avformat-58.dll rename to output/win/debug/avformat-58.dll diff --git a/QtScrcpy/ffmpeg/bin/avutil-56.dll b/output/win/debug/avutil-56.dll similarity index 100% rename from QtScrcpy/ffmpeg/bin/avutil-56.dll rename to output/win/debug/avutil-56.dll diff --git a/output/debug/scrcpy-server.jar b/output/win/debug/scrcpy-server.jar similarity index 100% rename from output/debug/scrcpy-server.jar rename to output/win/debug/scrcpy-server.jar diff --git a/QtScrcpy/ffmpeg/bin/swresample-3.dll b/output/win/debug/swresample-3.dll similarity index 100% rename from QtScrcpy/ffmpeg/bin/swresample-3.dll rename to output/win/debug/swresample-3.dll diff --git a/QtScrcpy/ffmpeg/bin/swscale-5.dll b/output/win/debug/swscale-5.dll similarity index 100% rename from QtScrcpy/ffmpeg/bin/swscale-5.dll rename to output/win/debug/swscale-5.dll diff --git a/output/release/AdbWinApi.dll b/output/win/release/AdbWinApi.dll similarity index 100% rename from output/release/AdbWinApi.dll rename to output/win/release/AdbWinApi.dll diff --git a/output/release/AdbWinUsbApi.dll b/output/win/release/AdbWinUsbApi.dll similarity index 100% rename from output/release/AdbWinUsbApi.dll rename to output/win/release/AdbWinUsbApi.dll diff --git a/output/release/adb.exe b/output/win/release/adb.exe similarity index 100% rename from output/release/adb.exe rename to output/win/release/adb.exe diff --git a/output/debug/avcodec-58.dll b/output/win/release/avcodec-58.dll similarity index 100% rename from output/debug/avcodec-58.dll rename to output/win/release/avcodec-58.dll diff --git a/output/debug/avformat-58.dll b/output/win/release/avformat-58.dll similarity index 100% rename from output/debug/avformat-58.dll rename to output/win/release/avformat-58.dll diff --git a/output/debug/avutil-56.dll b/output/win/release/avutil-56.dll similarity index 100% rename from output/debug/avutil-56.dll rename to output/win/release/avutil-56.dll diff --git a/output/release/scrcpy-server.jar b/output/win/release/scrcpy-server.jar similarity index 51% rename from output/release/scrcpy-server.jar rename to output/win/release/scrcpy-server.jar index 3dcf27dee50d00ec96a6f9d193d60f745594ae9b..b7ae945c4c67ec2b86d8bbbc9cad1296e3d1c285 100644 GIT binary patch delta 22656 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 delta 22656 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