Cameron Gutman
04954f5242
Add handling for MotionEvent.FLAG_CANCELED
2022-06-08 20:35:46 -05:00
Cameron Gutman
9fc5496526
Use VibrationAttributes to bypass interruption policy
2022-06-08 20:26:36 -05:00
Cameron Gutman
e363d24b1c
Add PiP title and subtilte on Android 13
2022-06-08 20:04:12 -05:00
TacoTheDank
b5b3d81f00
Clean up flavors by using buildConfigField
2022-06-08 19:44:59 -05:00
Cameron Gutman
297ac64fde
Enable HEVC on all Shield TV devices
2022-06-06 17:29:47 -05:00
Cameron Gutman
d4490f0e17
Fix performance point check for Android M - P
2022-06-06 17:26:59 -05:00
Cameron Gutman
d04e7a3231
Enable HEVC on untested decoders if it's the only way to meet the performance target
2022-06-04 17:37:14 -05:00
Cameron Gutman
5b456aba27
Use a separate HandlerThread for Choreographer callbacks
2022-06-04 17:00:58 -05:00
Cameron Gutman
0c065dcc1f
Print vendor parameters on Android 12
2022-06-04 15:42:06 -05:00
Cameron Gutman
531f73329d
Quiet down excessive exception logging in debug builds
2022-06-04 15:33:12 -05:00
Cameron Gutman
6aac8e6be6
Use amazon.hardware.fire_tv feature to detect Fire TV devices
2022-06-03 19:03:56 -05:00
Cameron Gutman
0b18e8fdb4
Update decoder errata details
2022-06-03 01:39:39 -05:00
Cameron Gutman
19d8ae0f78
Revamp low latency option handling
...
- Introduce a tiered solution where we try progressively fewer options until one works
- Use vdec-lowlatency for all devices, since we know at least the Fire TV 3 supports it with an Amlogic SoC
- Enable HEVC on Fire TV 3 since vdec-lowlatency avoids the HEVC decoder bug
2022-06-03 01:04:11 -05:00
Cameron Gutman
d7ffb5dddc
Refactor decoder creation code to allow retries
2022-06-02 21:17:20 -05:00
Cameron Gutman
2859b73dfe
Add Amlogic low latency vendor-defined option
2022-06-02 21:02:43 -05:00
Cameron Gutman
6f9021a5e6
Add magic performance boost for MediaTek devices
2022-06-01 22:06:11 -05:00
Cameron Gutman
18c93abcb3
Submit fused IDR frames on decoders that support adaptive playback even if they are blocked from using it
2022-05-29 22:21:15 -05:00
Cameron Gutman
bd64dfb661
Submit codec config data with a timestamp of 0 like MediaCodec does with csd-0
2022-05-29 22:10:49 -05:00
Cameron Gutman
82619063ee
Plumb frame type information into the decoder
2022-05-29 21:58:28 -05:00
Cameron Gutman
5dbf18d66e
Fix miscounting IDR frames in video stats
2022-05-29 21:10:41 -05:00
Cameron Gutman
6a34ff2728
Rewrite AES pairing functions to avoid Play Store's ECB warning
...
ECB is safe in this context because it's encrypting one-time messages
using a one-time key. All input data going through encryptAes() is
either random or partially random and passed through a secure hashing
function (SHA-256 on modern GFE versions).
Message authentication is not a concern either, because it is performed
by the pairing process itself via RSA signature verification. Any
ciphertext tampering would cause signature verification to fail later in
the pairing process.
2022-05-29 14:38:56 -05:00
Cameron Gutman
81a3bbd5e8
Implement remote desktop optimized mouse mode
2022-05-28 16:38:22 -05:00
Cameron Gutman
1509a2a799
Fix default deadzone setting
2022-05-28 16:16:46 -05:00
Cameron Gutman
fc547b734f
Fix crashes caused by calling NvHTTP with a null address
2022-05-28 15:54:21 -05:00
Cameron Gutman
b3700b5a19
Plumb LiSendMouseMoveAsMousePositionEvent() into JNI
2022-05-28 15:21:58 -05:00
Cameron Gutman
286094ee33
Add dead zone configuration option
...
Fixes #1075
2022-05-28 15:12:58 -05:00
Cameron Gutman
8ffc3b80b2
Rework use of URLs in NvHTTP
...
- Fixes parsing inconsistencies between URI and HttpUrl
- Fixes a couple of serverinfo requests sent without uniqueid and UUID
- Avoids PairingManager having to look into NvHTTP internals
2022-05-22 16:47:45 -05:00
Cameron Gutman
08f8b6cb8e
Keep the SpinnerDialog visible while the connectivity test runs
2022-05-22 15:36:38 -05:00
Cameron Gutman
fb09c9692c
Fix handling of InterruptedExceptions
2022-05-22 15:31:06 -05:00
Cameron Gutman
4901b0c78f
Stop parallel polling threads when we find a working address
2022-05-22 14:56:28 -05:00
Cameron Gutman
0a2117241f
Wrap Choreographer calls to releaseOutputBuffer() in try/catch
2022-05-22 14:32:03 -05:00
Cameron Gutman
ac7c5c1064
Improve handling of required XML tags
2022-05-20 17:15:26 -05:00
Cameron Gutman
cdeda011a4
Temporarily disable in-app links until they are translated
2022-05-18 22:40:47 -05:00
Cameron Gutman
d4bd29b320
Properly deal with battery saver mode in capped FPS mode
2022-05-17 00:14:55 -05:00
Cameron Gutman
7f2f2056c3
Add in-app privacy policy link to comply with Google Play policies
...
Also added Setup Guide and Troubleshooting Guide links too.
2022-05-15 15:56:19 -05:00
Cameron Gutman
41ef292b82
Fix frame rate cap not taking effect with the unlock FPS option enabled
2022-05-14 21:19:51 -05:00
Cameron Gutman
aa60671c88
Return the selected refresh rate now that the capped FPS mode is not default
2022-05-14 20:53:42 -05:00
Cameron Gutman
f1ccba39e8
Don't raise refresh rate above stream FPS except in min latency mode
2022-05-14 20:53:07 -05:00
Cameron Gutman
226e580a30
Prevent microstutter in balanced mode when streaming at 60 FPS on a 120 Hz display
2022-05-14 20:08:41 -05:00
Cameron Gutman
c127af1e05
Rewrite polling logic to avoid needing to poll using a separate socket first
2022-05-14 18:14:37 -05:00
Cameron Gutman
dc85ddb3f9
Reintroduce option of using old frame pacing algorithm using capped FPS
2022-05-08 15:20:08 -05:00
Cameron Gutman
2203186527
Remove extra ViewGroup between OSC and StreamView
...
This allows touch events to be properly split
2022-05-08 14:39:32 -05:00
Cameron Gutman
8a63b61495
Avoid touchscreens when looking for pointer capture capable devices
2022-02-18 17:07:23 -06:00
Cameron Gutman
eb9e6443e2
Display frame pacing mode in crash logs
2022-02-18 17:00:21 -06:00
Cameron Gutman
362c466a16
Reintroduce never drop frames option
2022-02-18 16:04:49 -06:00
Cameron Gutman
c25faf6426
Replace frame pacing hack with Choreographer-based rendering
...
This mimics the frame pacing logic now present in the iOS client.
2022-02-17 23:48:02 -06:00
Cameron Gutman
c0f8001627
Ignore relative mouse inputs from non-mouse tools
...
Apparently this can happen for the SPen on Android 12
2022-02-12 19:50:59 -06:00
Cameron Gutman
f39bf61b04
Try to wake the host PC when connecting via the ShortcutTrampoline
...
Fixes #1024
2022-02-12 18:35:12 -06:00
Cameron Gutman
7552181e24
Plumb setHdrMode callback into MediaCodecDecoderRenderer
2022-02-12 14:31:25 -06:00
Cameron Gutman
4b2e26050e
Only enable pointer capture if a compatible input device is connected
2022-02-12 14:21:19 -06:00