Merge pull request #536 from studycwq/support-android-12

升级scrcpy-server到最新1.21支持Android12
This commit is contained in:
Barry 2022-01-05 15:02:03 +08:00 committed by GitHub
commit 1dced51f0b
7 changed files with 24 additions and 24 deletions

View file

@ -13,7 +13,7 @@ on:
jobs: jobs:
build: build:
name: Build name: Build
runs-on: macos-latest runs-on: macos-10.15
strategy: strategy:
matrix: matrix:
qt-ver: [5.15.1] qt-ver: [5.15.1]

View file

@ -300,14 +300,14 @@ void Device::startServer()
// support wireless connect, example: // support wireless connect, example:
//m_server->start("192.168.0.174:5555", 27183, m_maxSize, m_bitRate, ""); //m_server->start("192.168.0.174:5555", 27183, m_maxSize, m_bitRate, "");
// only one devices, serial can be null // only one devices, serial can be null
// mark: crop input format: "width:height:x:y" or - for no crop, for example: "100:200:0:0" // mark: crop input format: "width:height:x:y" or "" for no crop, for example: "100:200:0:0"
Server::ServerParams params; Server::ServerParams params;
params.serial = m_params.serial; params.serial = m_params.serial;
params.localPort = m_params.localPort; params.localPort = m_params.localPort;
params.maxSize = m_params.maxSize; params.maxSize = m_params.maxSize;
params.bitRate = m_params.bitRate; params.bitRate = m_params.bitRate;
params.maxFps = m_params.maxFps; params.maxFps = m_params.maxFps;
params.crop = "-"; params.crop = "";
params.control = true; params.control = true;
params.useReverse = m_params.useReverse; params.useReverse = m_params.useReverse;
params.lockVideoOrientation = m_params.lockVideoOrientation; params.lockVideoOrientation = m_params.lockVideoOrientation;

View file

@ -142,27 +142,27 @@ bool Server::execute()
args << "/"; // unused; args << "/"; // unused;
args << "com.genymobile.scrcpy.Server"; args << "com.genymobile.scrcpy.Server";
args << Config::getInstance().getServerVersion(); args << Config::getInstance().getServerVersion();
args << Config::getInstance().getLogLevel(); args << QString("log_level=%1").arg(Config::getInstance().getLogLevel());
args << QString::number(m_params.maxSize); args << QString("max_size=%1").arg(QString::number(m_params.maxSize));
args << QString::number(m_params.bitRate); args << QString("bit_rate=%1").arg(QString::number(m_params.bitRate));
args << QString::number(m_params.maxFps); args << QString("max_fps=%1").arg(QString::number(m_params.maxFps));
args << QString::number(m_params.lockVideoOrientation); args << QString("lock_video_orientation=%1").arg(QString::number(m_params.lockVideoOrientation));
args << (m_tunnelForward ? "true" : "false"); args << QString("tunnel_forward=%1").arg((m_tunnelForward ? "true" : "false"));
if (m_params.crop.isEmpty()) { if (m_params.crop.isEmpty()) {
args << "-"; args << "crop=";
} else { } else {
args << m_params.crop; args << QString("crop=%1").arg(m_params.crop);
} }
args << "true"; // always send frame meta (packet boundaries + timestamp) args << "send_frame_meta=true"; // always send frame meta (packet boundaries + timestamp)
args << (m_params.control ? "true" : "false"); args << QString("control=%1").arg((m_params.control ? "true" : "false"));
args << "0"; // display id args << "display_id=0"; // display id
args << "false"; // show touch args << "show_touches=false"; // show touch
args << (m_params.stayAwake ? "true" : "false"); // stay awake args << QString("stay_awake=%1").arg((m_params.stayAwake ? "true" : "false")); // stay awake
// code option // code option
// https://github.com/Genymobile/scrcpy/commit/080a4ee3654a9b7e96c8ffe37474b5c21c02852a // https://github.com/Genymobile/scrcpy/commit/080a4ee3654a9b7e96c8ffe37474b5c21c02852a
// <https://d.android.com/reference/android/media/MediaFormat> // <https://d.android.com/reference/android/media/MediaFormat>
args << Config::getInstance().getCodecOptions(); args << QString("codec_options=%1").arg(Config::getInstance().getCodecOptions());
args << Config::getInstance().getCodecName(); args << QString("encoder_name=%1").arg(Config::getInstance().getCodecName());
#ifdef SERVER_DEBUGGER #ifdef SERVER_DEBUGGER
qInfo("Server debugger waiting for a client on device port " SERVER_DEBUGGER_PORT "..."); qInfo("Server debugger waiting for a client on device port " SERVER_DEBUGGER_PORT "...");
@ -176,7 +176,7 @@ bool Server::execute()
#endif #endif
// adb -s P7C0218510000537 shell CLASSPATH=/data/local/tmp/scrcpy-server app_process / com.genymobile.scrcpy.Server 0 8000000 false // adb -s P7C0218510000537 shell CLASSPATH=/data/local/tmp/scrcpy-server app_process / com.genymobile.scrcpy.Server 0 8000000 false
// mark: crop input format: "width:height:x:y" or - for no crop, for example: "100:200:0:0" // mark: crop input format: "width:height:x:y" or "" for no crop, for example: "100:200:0:0"
// 这条adb命令是阻塞运行的m_serverProcess进程不会退出了 // 这条adb命令是阻塞运行的m_serverProcess进程不会退出了
m_serverProcess.execute(m_params.serial, args); m_serverProcess.execute(m_params.serial, args);
return true; return true;

View file

@ -31,7 +31,7 @@ public:
quint16 maxSize = 720; // 视频分辨率 quint16 maxSize = 720; // 视频分辨率
quint32 bitRate = 8000000; // 视频比特率 quint32 bitRate = 8000000; // 视频比特率
quint32 maxFps = 60; // 视频最大帧率 quint32 maxFps = 60; // 视频最大帧率
QString crop = "-"; // 视频裁剪 QString crop = ""; // 视频裁剪
bool control = true; // 安卓端是否接收键鼠控制 bool control = true; // 安卓端是否接收键鼠控制
bool useReverse = true; // true:先使用adb reverse失败后自动使用adb forwardfalse:直接使用adb forward bool useReverse = true; // true:先使用adb reverse失败后自动使用adb forwardfalse:直接使用adb forward
int lockVideoOrientation = -1; // 是否锁定视频方向 int lockVideoOrientation = -1; // 是否锁定视频方向

View file

@ -15,7 +15,7 @@
#define COMMON_PUSHFILE_DEF "/sdcard/" #define COMMON_PUSHFILE_DEF "/sdcard/"
#define COMMON_SERVER_VERSION_KEY "ServerVersion" #define COMMON_SERVER_VERSION_KEY "ServerVersion"
#define COMMON_SERVER_VERSION_DEF "1.17" #define COMMON_SERVER_VERSION_DEF "1.21"
#define COMMON_SERVER_PATH_KEY "ServerPath" #define COMMON_SERVER_PATH_KEY "ServerPath"
#define COMMON_SERVER_PATH_DEF "/data/local/tmp/scrcpy-server.jar" #define COMMON_SERVER_PATH_DEF "/data/local/tmp/scrcpy-server.jar"

View file

@ -10,7 +10,7 @@ RenderExpiredFrames=0
# 视频解码方式:-1 自动0 软解1 dx硬解2 opengl硬解 # 视频解码方式:-1 自动0 软解1 dx硬解2 opengl硬解
UseDesktopOpenGL=-1 UseDesktopOpenGL=-1
# scrcpy-server的版本号不要修改 # scrcpy-server的版本号不要修改
ServerVersion=1.17 ServerVersion=1.21
# scrcpy-server推送到安卓设备的路径 # scrcpy-server推送到安卓设备的路径
ServerPath=/data/local/tmp/scrcpy-server.jar ServerPath=/data/local/tmp/scrcpy-server.jar
# 自定义adb路径例如D:/android/tools/adb.exe # 自定义adb路径例如D:/android/tools/adb.exe
@ -18,10 +18,10 @@ AdbPath=
# 编码选项 "-"表示默认 # 编码选项 "-"表示默认
# 例如 CodecOptions="profile=1,level=2" # 例如 CodecOptions="profile=1,level=2"
# 更多编码选项参考 https://d.android.com/reference/android/media/MediaFormat # 更多编码选项参考 https://d.android.com/reference/android/media/MediaFormat
CodecOptions="-" CodecOptions=""
# 指定编码器名称必须是H.264编码器 # 指定编码器名称必须是H.264编码器
# 例如 CodecName="OMX.qcom.video.encoder.avc" # 例如 CodecName="OMX.qcom.video.encoder.avc"
CodecName="-" CodecName="OMX.qcom.video.encoder.avc"
# Set the log level (debug, info, warn, error) # Set the log level (debug, info, warn, error)
LogLevel=info LogLevel=info

Binary file not shown.