Romain Vimont
1a9429f3c7
Improve bug report template
...
Insert a code block to (hopefully) increase the chances that users
format their terminal output.
2020-05-06 22:26:43 +02:00
Romain Vimont
0b4e484da0
Add a note about multi-display limitation
...
Secondary display mirroring is read-only before Android 10.
2020-05-06 22:21:33 +02:00
Romain Vimont
4e9e712312
Update links to v1.13 in README and BUILD
2020-04-29 22:56:26 +02:00
Romain Vimont
9babe26805
Bump version to 1.13
2020-04-29 22:24:08 +02:00
Romain Vimont
76567e684a
Upgrade SDL (2.0.12) for Windows
...
Include the latest version of SDL in Windows releases.
2020-04-27 21:45:15 +02:00
Romain Vimont
b55ca127f8
Upgrade FFmpeg (4.2.2) for Windows
...
Include the latest version of FFmpeg in Windows releases.
2020-04-27 21:45:15 +02:00
Romain Vimont
a12b938234
Merge branch 'master' into dev
2020-04-27 21:44:59 +02:00
Romain Vimont
a14840a515
Fix typo in comments
2020-04-24 23:01:58 +02:00
Romain Vimont
8581d6850b
Stabilize auto-resize
...
The window dimensions are integers, so resizing to fit the content may
not be exact.
When computing the optimal size, it could cause to reduce alternatively
the width and height by few pixels, making the "optimal size" unstable.
To avoid this problem, check if the optimal size is already correct
either by keeping the width or the height.
2020-04-24 22:52:02 +02:00
Romain Vimont
92cb3a6661
Improve resizing workaround
...
Call the same method as when the event is received on the event loop, so
that the behavior is the same in both cases.
2020-04-24 21:36:25 +02:00
Romain Vimont
561ede444e
Mention Ubuntu 20.04 package
...
Ubuntu 20.04 has been released today, and scrcpy is available in their
repositories: <https://packages.ubuntu.com/focal/scrcpy >
2020-04-23 16:36:48 +02:00
Romain Vimont
3c9ae99dda
Move rotation coordinates to screen
...
Move the window-to-frame coordinates conversion from the input manager
to the screen.
This will allow to apply more screen-related transformations without
impacting the input manager.
2020-04-18 02:15:22 +02:00
Romain Vimont
44f720e4a4
Log new size on auto-resize request
...
On "resize to fit" and "resize to pixel-perfect", log the new size.
2020-04-18 02:15:22 +02:00
Romain Vimont
14ead499fd
Fix touch coordinates on rotated display
...
The touch coordinates were not rotated.
2020-04-17 18:17:12 +02:00
Romain Vimont
94a7f1a0f8
Disable input events when necessary
...
Disable input events on secondary displays before Android 10, even if
FLAG_PRESENTATION is not set.
Refs #1288 <https://github.com/Genymobile/scrcpy/issues/1288 >
2020-04-16 20:54:00 +02:00
Romain Vimont
cc22f4622a
Mention mipmapping in FAQ
2020-04-15 17:39:51 +02:00
Romain Vimont
11a61b2cb3
Add option --no-mipmaps
...
Add an option to disable trilinear filtering even if mipmapping is
available.
2020-04-15 17:39:51 +02:00
Romain Vimont
bea7658807
Enable trilinear filtering for OpenGL
...
Improve downscaling quality if mipmapping is available.
Suggested-by: Giumo Clanjor (哆啦比猫/兰威举) <cjxgm2@gmail.com >
Fixes #40 <https://github.com/Genymobile/scrcpy/issues/40 >
Ref: <https://github.com/Genymobile/scrcpy/issues/40#issuecomment-591917787 >
2020-04-15 17:39:51 +02:00
Romain Vimont
8a9b20b27e
Add --render-driver command-line option
...
Add an option to set a render driver hint (SDL_HINT_RENDER_DRIVER).
2020-04-15 17:39:51 +02:00
Romain Vimont
d62eb2b11c
Fix typo in README
2020-04-15 09:57:59 +02:00
Romain Vimont
eb8f7a1f28
Require Meson 0.48 to get rid of warnings
...
Debian buster (stable) provides Meson 0.49, which is also available in
stretch (oldstable) backports. It's time to abandon Meson 0.37.
Ref: 20b3f101a4
2020-04-13 22:47:03 +02:00
Romain Vimont
270d0bf639
Rename max length constant for text injection
...
To avoid confusion with the max text size for clipboard, rename the
constant limiting the text injection length.
2020-04-13 19:38:43 +02:00
Romain Vimont
95fa1a69e4
Workaround compiler warning
...
Some compilers warns on uninitialized value in impossible case:
warning: variable 'result' is used uninitialized whenever switch
default is taken [-Wsometimes-uninitialized]
2020-04-13 16:33:21 +02:00
Romain Vimont
ea46d3ab68
Add missing include string.h
...
Include <string.h> for strdup() and strtok_r().
2020-04-13 16:33:21 +02:00
Romain Vimont
7eb16ce364
Fix log format warning
...
The expression port + 1 is promoted to int, but printed as uint16_t.
2020-04-13 16:33:19 +02:00
Romain Vimont
927d655ff6
Simplify ScreenEncoder
...
Do not handle iFrameInterval field and parameter, it is never used
dynamically.
2020-04-12 02:09:28 +02:00
Romain Vimont
ee2894779a
Remove unused lockedVideoOrientation field
...
During PR #1151 , this field has been moved to ScreenInfo, but has not
been removed from ScreenEncoder.
2020-04-12 02:08:16 +02:00
Romain Vimont
1c6207f8ce
Merge branch 'master' into dev
2020-04-12 00:31:57 +02:00
Romain Vimont
ab52b36895
Reorder options in alphabetical order
2020-04-11 14:31:14 +02:00
Romain Vimont
9f4735ede3
Fix double click on rotated display
...
A double-click outside the device content (in the black borders) resizes
so that black borders are removed. But the display rotation was not
taken into account to detect the content.
Use the content size instead of the frame size to fix the issue.
Ref: <https://github.com/Genymobile/scrcpy/issues/898#issuecomment-610993695 >
2020-04-08 16:37:33 +02:00
Romain Vimont
6295c1a110
Remap event positions on rotated display
...
If the display is rotated, the position of clicks must be adapted.
2020-04-08 14:27:25 +02:00
Romain Vimont
f3fba3c4b9
Store rotated content size
...
This avoids to compute it every time from the frame size.
2020-04-08 14:12:54 +02:00
Romain Vimont
f07d21f050
Suppress DiscouragedPrivateApi lint warning
2020-04-08 12:09:24 +02:00
Romain Vimont
a8fd4aec9a
Remove --fullscreen validation
...
Many options are meaningless if --no-display is set.
We don't want to validate all possible combinations, so don't make an
exception for --fullscreen.
2020-04-08 12:09:24 +02:00
Romain Vimont
cbde7b964a
Improve documentation for consistency
...
Make --lock-video-orientation documentation consistent with that of
--rotation.
2020-04-08 12:09:24 +02:00
Romain Vimont
28c71c528f
Add --rotation command-line option
...
In addition to Ctrl+Left and Ctrl+Right shortcuts, add a command-line
parameter to set the initial rotation.
2020-04-08 12:09:22 +02:00
Romain Vimont
d48b375a1d
Add shortcuts to rotate display
...
Add Ctrl+Left and Ctrl+Right shortcuts to rotate the display (the
content of the scrcpy window).
Contrary to --lock-video-orientation, the rotation has no impact on
recording, and can be changed dynamically (and immediately).
Fixes #218 <https://github.com/Genymobile/scrcpy/issues/218 >
2020-04-08 12:02:26 +02:00
Romain Vimont
fd63e7eb5a
Format shortcut documentation
...
For consistency, start the descriptions with a capital letter.
2020-04-08 12:02:15 +02:00
Romain Vimont
cdd8edbbb6
Add a note about prebuilt server in BUILD.md
...
Mention that it works with a matching client version.
2020-04-07 23:06:33 +02:00
Romain Vimont
9b9e717c41
Explain master and dev branches in BUILD
...
People may not guess that `master` is not the development branch.
2020-04-07 10:43:20 +02:00
Romain Vimont
15e4da08a3
Improve "low quality" section in FAQ
2020-04-07 10:37:19 +02:00
Romain Vimont
2afbfc2c75
Add Android device and version in issue template
2020-04-03 21:29:09 +02:00
Romain Vimont
2cf022491f
Add issue templates
...
Closes #1157 <https://github.com/Genymobile/scrcpy/issues/1157 >
2020-04-03 18:51:18 +02:00
Romain Vimont
54ccccd883
Replace SDL_Atomic by stdatomic from C11
...
There is no reason to use SDL atomics.
2020-04-02 21:05:26 +02:00
Romain Vimont
bea1c11f8e
Do not log success on failure
...
If calling the private API does not work, an exception is printed. In
that case, do not log that the action succeeded.
2020-04-02 21:05:26 +02:00
Romain Vimont
94e1696869
Do not warn on terminating the server
...
If the server is already dead, terminating it fails. This is expected.
2020-04-02 21:05:26 +02:00
Romain Vimont
a346bb80f4
Do not block on accept() if server died
...
The server may die before connecting to the client. In that case, the
client was blocked indefinitely (until Ctrl+C) on accept().
To avoid the problem, close the server socket once the server process is
dead.
2020-04-02 21:05:26 +02:00
Romain Vimont
d421741a83
Wait server from a separate thread
...
Create a thread just to wait for the server process exit.
This paves the way to simply wake up a blocking accept() in a portable
way.
2020-04-02 21:05:26 +02:00
Romain Vimont
64d5edce92
Refactor server_start() error handling
...
This avoids cleanup duplication.
2020-04-02 21:05:26 +02:00
Romain Vimont
5031b2c8ff
Remove MagicNumber checkstyle
...
There are a lot of "magic numbers" that we really don't want to extract
as a constant.
Until now, many @SuppressWarnings annotations were added, but it makes
no sense to check for magic number if we silent the warnings everywhere.
2020-03-28 22:08:16 +01:00
Romain Vimont
4adf5fde6d
Log device details on server start
2020-03-28 15:52:02 +01:00
Romain Vimont
e050cfdcd6
Fix static_assert() parameters
...
In C11, static_assert() expects a message.
2020-03-27 14:01:56 +01:00
Romain Vimont
dc7c677728
Accept negative window position
...
It seems to work on some window managers.
Fixes #1242 <https://github.com/Genymobile/scrcpy/issues/1242 >
2020-03-26 22:52:41 +01:00
Romain Vimont
3504c0016b
Add tests for control message length
...
This will avoid regressions for #1245 .
<https://github.com/Genymobile/scrcpy/issues/1245 >
2020-03-26 22:48:01 +01:00
Romain Vimont
89d1602185
Fix expected message length for touch events
...
The expected length for a touch event control message was incorrect. As
a consequence, a BufferUnderflowException could occur.
Fixes #1245 <https://github.com/Genymobile/scrcpy/issues/1245 >
2020-03-26 22:45:43 +01:00
Romain Vimont
566ba766af
Remove unused constant
...
It has not been removed when mouse and touch events have been merged.
2020-03-26 22:43:53 +01:00
Romain Vimont
7bb91638ad
Improve FAQ
2020-03-19 19:22:58 +01:00
Romain Vimont
600df37753
Mention AutoAdb in README
2020-03-19 19:16:08 +01:00
Romain Vimont
902b99174d
Fix server debugger for Android >= 9
...
Add a compilation flag to select the debugger method to use:
- old: Android < 9
- new: Android >= 9
See <https://github.com/Genymobile/scrcpy/issues/1187#issuecomment-599075661 >
2020-03-19 19:15:43 +01:00
Romain Vimont
24ade6ad77
Simplify Chocolatey documentation
2020-03-14 17:07:20 +01:00
Romain Vimont
ae2d094362
Handle locked video orientation from ScreenInfo
...
Centralize video size management in ScreenInfo.
This allows to always send the correct initial video size to the client
if the video orientation is locked.
2020-03-08 10:38:31 +01:00
Romain Vimont
c5f5d1e456
Rename "rotation" to "device rotation"
...
This paves the way to reduce confusion in ScreenInfo when it will handle
locked video orientation.
2020-03-04 22:15:10 +01:00
Romain Vimont
63286424bb
Compute all screen info from ScreenInfo
...
Screen information was partially initialized from Device. Move this
initialization to ScreenInfo.
2020-03-04 22:15:10 +01:00
Romain Vimont
da18c9cdab
Remove useles import
2020-03-04 22:15:10 +01:00
Romain Vimont
c396758b4e
Remove link to Windows 32 bits release
...
Binaries created with MinGW (even a simple Hello World) are detected as
malware by some anti-virus. For some reason, only the 32 bits version of
scrcpy is impacted.
Since users should use the 64 bits version by default anyway, remove the
link to the 32 bits version from the main page.
The 32 bits release is still available in the "releases" tab.
See <https://github.com/Genymobile/scrcpy/issues/1102 >
2020-03-03 21:39:27 +01:00
Romain Vimont
ef56cc6ff7
Retrieve screen info once
...
The method getScreenInfo() is synchronized, and the result may change
between calls.
Call it once and store the result in a local variable.
2020-02-27 21:24:37 +01:00
Romain Vimont
c0f428eb05
Merge branch 'master' into dev
2020-02-27 21:24:32 +01:00
Romain Vimont
4794ca8ae7
Use linear filtering
...
Anisotropic filtering makes no sense for scrcpy use case.
This (semantically) reverts 9e328ef98b .
2020-02-25 12:20:18 +01:00
Romain Vimont
1144f64214
Indicate that -s can also be used for TCP/IP
2020-02-06 18:42:08 +01:00
Romain Vimont
39356602ed
Mention scrcpy Debian package in README
2020-01-19 16:19:51 +01:00
Romain Vimont
0fb22c3e98
Happy new year 2020!
2020-01-19 16:04:20 +01:00
Romain Vimont
96bd2c974d
Do not report workarounds errors
...
Some workarounds are needed on some devices. But applying them may cause
exceptions on other devices, where they are not necessary anyway.
Do not report these errors in release builds.
Closes #994 <https://github.com/Genymobile/scrcpy/issues/994 >
2020-01-19 15:52:24 +01:00
Romain Vimont
dc7fcf3c7a
Accept port range
...
Accept a range of ports to listen to, so that it does not fail if
another instance of scrcpy is currently starting.
The range can be passed via the command line:
scrcpy -p 27183:27186
scrcpy -p 27183 # implicitly 27183:27183, as before
The default is 27183:27199.
Closes #951 <https://github.com/Genymobile/scrcpy/issues/951 >
2020-01-18 17:21:00 +01:00
Romain Vimont
2a3a9d4ea9
Add util function to parse a list of integers
...
This will help parsing arguments like '1234:5678' into a list of
integers.
2020-01-18 17:21:00 +01:00
Romain Vimont
ca0031cbde
Refactor server tunnel initialization
...
Start the server socket in enable_tunnel() directly.
For the caller point of view, enabling the tunnel opens a port (either
the server socket locally or the "adb forward" process).
2020-01-18 17:21:00 +01:00
Romain Vimont
d1a9a76cc6
Reorder functions
...
Move functions so that they can be called from enable_tunnel() (in the
following commit).
2020-01-18 17:21:00 +01:00
Romain Vimont
a8ceaf5284
Fix include order
2020-01-17 21:00:14 +01:00
Romain Vimont
83d48267a7
Accept --max-fps before Android 10
...
KEY_MAX_FPS_TO_ENCODER existed privately before Android 10:
<https://github.com/Genymobile/scrcpy/issues/488#issuecomment-567321437 >
2019-12-19 11:52:09 +01:00
Romain Vimont
db6252e52b
Simplify net.c
...
The platform-specific code for net.c was implemented in sys/*/net.c.
But the differences are quite limited, so use ifdef-blocks in the single
net.c instead.
2019-12-15 22:04:09 +01:00
Romain Vimont
229eeb24a2
Merge pull request #1002 into dev
...
Fix utf-8 char path in windows
<https://github.com/Genymobile/scrcpy/pull/1002 >
2019-12-15 13:24:17 +01:00
Romain Vimont
7d5845196e
Fix memory leak on portable builds
...
The function get_server_path() sometimes returned an owned string,
sometimes a non-owned string.
Always return an allocated (owned) string, and free it after usage.
2019-12-14 18:23:25 +01:00
Romain Vimont
31bd95022b
Update links to v1.12.1 in README and BUILD
2019-12-10 17:59:44 +01:00
Romain Vimont
4687a0ebac
Bump version to 1.12.1
2019-12-10 10:07:48 +01:00
Romain Vimont
6965d051ae
Limit bitrate range to 31 bits integer
...
A proper solution could be to use "long long" instead (guaranteed to be
at least 64 bits), but it adds its own problems (e.g. "%lld" is not
supported as a printf format on all platforms).
In practice, we don't need such high values, so keep it simple.
Fixes #995 <https://github.com/Genymobile/scrcpy/issues/995 >
2019-12-10 09:28:27 +01:00
Romain Vimont
71df3175bd
Update links to v1.12 in README and BUILD
2019-12-09 23:52:26 +01:00
Romain Vimont
a0f8e7fd9f
Bump version to 1.12
2019-12-09 23:24:43 +01:00
Romain Vimont
e4cebc8d4c
Do not build tests in release mode
...
Assertions would not be executed.
And as a side effect, it causes "unused variable" warnings.
2019-12-09 23:24:39 +01:00
Romain Vimont
ba1b36758e
Define SDL_MAIN_HANDLED in all tests
...
Each test defines its own main() function. If this flag is not set, then
SDL redefines it to SDL_main(), causing compilation failures.
2019-12-09 23:24:39 +01:00
Romain Vimont
ad92a192b5
Fix meson.build codestyle
2019-12-09 23:00:55 +01:00
Romain Vimont
81a8e503e5
Describe screen rotation shortcut in README
2019-12-09 22:51:27 +01:00
Romain Vimont
242e57d69b
Merge branch 'master' into dev
2019-12-09 22:37:20 +01:00
Romain Vimont
024c2f7e6b
Configure log priority early
...
The log priority must be configured before parsing command-line
arguments, in order to get logs as expected.
2019-12-09 22:31:14 +01:00
Romain Vimont
1eae139b6e
Add missing consts
...
String parsing functions should not be able to modify their input.
2019-12-09 22:30:48 +01:00
Romain Vimont
419c869c9c
Use ARRAY_LEN() macro in tests
2019-12-09 20:59:11 +01:00
Romain Vimont
929bf48c7e
Add tests for command-line parsing
2019-12-08 23:19:01 +01:00
Romain Vimont
d950383b72
Move command-line parsing to a separate file
2019-12-08 23:18:57 +01:00
Romain Vimont
61274a7cdb
Factorize integer argument parsing
...
Add util functions for integer parsing (with tests), and factorize
integer argument parsing to avoid code duplication.
2019-12-08 21:19:53 +01:00
Romain Vimont
64bcac9157
Refuse to push a non-regular file server
...
If SCRCPY_SERVER_PATH points to a directory, then a directory will be
pushed to /data/local/tmp/scrcpy-server.jar.
When executing it, app_process will just abort and leave the directory
on the device, causing scrcpy to always fail.
To avoid the problem, check that the server is a regular file before
pushing it.
Closes #956 <https://github.com/Genymobile/scrcpy/issues/956 >
2019-12-05 21:07:11 +01:00
Romain Vimont
3259c60b22
Fix test compilation on mingw
...
Including SDL2/SDL.h redefines main to SDL_main by default.
2019-12-05 21:06:49 +01:00
Romain Vimont
e0b117de13
Fix checkstyle warning
2019-12-05 21:05:45 +01:00