Cameron Gutman
|
c6638a7154
|
Add support for 10-bit output in full-screen with DXVA2
|
2020-01-14 17:12:55 -08:00 |
|
Cameron Gutman
|
4abebe3aec
|
Hide the Qt cursor when streaming
|
2020-01-11 02:06:08 -08:00 |
|
Cameron Gutman
|
5aed8f928a
|
Add V4L2M2M support using SDL renderer
Note: This requires FFmpeg master to work, since it depends on:
https://github.com/FFmpeg/FFmpeg/commit/d61cf1b1ebc2477749d7d7825a072400ed24af9
|
2020-01-10 20:52:16 -08:00 |
|
Cameron Gutman
|
1313c7b3bf
|
Enable HDR as an experimental option
|
2019-12-30 18:05:43 -06:00 |
|
Cameron Gutman
|
e1603f0808
|
Explicitly use Rec 601 for VDPAU
|
2019-12-16 18:02:28 -08:00 |
|
Cameron Gutman
|
d4c2350d63
|
Fix DXVA2 rendering with the wrong colorspace on AMD GPUs
|
2019-12-15 13:29:19 -08:00 |
|
Cameron Gutman
|
5e5470ae12
|
Specify video transfer matrix for SLVideo
|
2019-12-15 11:27:47 -08:00 |
|
Cameron Gutman
|
6230a99360
|
Fix colorspace conversion with SDL as frontend renderer
|
2019-12-14 17:17:29 -08:00 |
|
Cameron Gutman
|
801adb6af7
|
Add colorspace support to VAAPI renderer
|
2019-12-14 16:58:04 -08:00 |
|
Cameron Gutman
|
8b9b96f422
|
Only enable slicing when CPU decoding
|
2019-12-14 15:34:48 -08:00 |
|
Cameron Gutman
|
160684f23e
|
Allow decoders to choose a desired colorspace
|
2019-12-14 15:25:56 -08:00 |
|
Cameron Gutman
|
88930a9de4
|
Optimize decoder capability checking
|
2019-12-14 15:20:44 -08:00 |
|
Cameron Gutman
|
af6b8c9b88
|
Update common-c with colorspace configuration support
|
2019-12-14 14:40:02 -08:00 |
|
Cameron Gutman
|
4832d8007b
|
Print joystick haptic capabilities to log
|
2019-12-13 18:43:35 -08:00 |
|
Cameron Gutman
|
c8b887fe32
|
Use the new SDL_GameControllerRumble() API on SDL 2.0.9 to fix rumble on HIDAPI gamepads
|
2019-12-07 16:17:01 -08:00 |
|
Cameron Gutman
|
3a6bf4d20b
|
Disable arbitrary audio duration for libsoundio until further testing is done
|
2019-12-03 19:00:43 -08:00 |
|
Cameron Gutman
|
5e2f32e3eb
|
Force remote streaming mode if connecting through a VPN
|
2019-12-01 21:50:36 -08:00 |
|
Cameron Gutman
|
0ccee9d806
|
Support arbitrary audio duration in libsoundio renderer
|
2019-12-01 19:43:22 -08:00 |
|
Cameron Gutman
|
5700272dc4
|
Improve low bandwidth audio performance for SDL and SLAudio and fix RTSP issues with broken PMTUD
|
2019-11-30 22:24:28 -06:00 |
|
Cameron Gutman
|
7e5a3925b3
|
Fix typo in channel mapping
|
2019-11-17 14:35:37 -08:00 |
|
Cameron Gutman
|
1febe32e73
|
Fix 5.1 channel mapping on Steam Link
|
2019-11-17 12:22:57 -08:00 |
|
Cameron Gutman
|
de7b973239
|
Plumb presentation time from server into AVFrame.pts field
|
2019-11-11 18:03:47 -08:00 |
|
Cameron Gutman
|
c20daa8867
|
Add compatibility checks for HEVC Main10 in VT backend
|
2019-11-05 18:36:43 -08:00 |
|
Cameron Gutman
|
5e57a7d5c0
|
Prevent SDL renderer from trying to render 10-bit output
|
2019-11-05 17:29:21 -08:00 |
|
Cameron Gutman
|
7c8d27700e
|
Add 10-bit output support to VDPAU renderer
|
2019-11-05 17:09:44 -08:00 |
|
Cameron Gutman
|
f8621be5ee
|
Add an HEVC Main10 test frame
|
2019-11-05 17:08:25 -08:00 |
|
Cameron Gutman
|
ca26fa2dd0
|
Add basic HEVC Main10 support in DXVA2 renderer
|
2019-11-04 22:57:12 -08:00 |
|
Cameron Gutman
|
2f0a6db414
|
Add hacks for SDL+Mutter interaction bugs
|
2019-09-29 21:05:31 -07:00 |
|
Cameron Gutman
|
96ff51d598
|
Use SDL audio for platforms that libsoundio doesn't support
|
2019-09-22 12:03:53 -07:00 |
|
Cameron Gutman
|
dbf98ce3a6
|
Require keyframes even for software H.264 decoding
|
2019-08-07 22:38:31 -07:00 |
|
Cameron Gutman
|
5288041da5
|
Prevent us from consuming more than 4 samples per write callback to bound latency
|
2019-08-03 12:47:44 -07:00 |
|
Cameron Gutman
|
5db5a088ea
|
Fix NVDEC artifacts if the renderer is delayed for a bit
|
2019-08-01 20:25:58 -07:00 |
|
Cameron Gutman
|
7acf91883a
|
Rework audio renderer selection to fall back and treat ML_AUDIO as a hard selection
|
2019-07-26 12:50:45 -04:00 |
|
Cameron Gutman
|
bcbd1a5b4b
|
Fix subsystem print in VAAPI
|
2019-07-07 15:41:26 -07:00 |
|
Cameron Gutman
|
6468efd7e4
|
Add VAAPI DRM support
|
2019-07-07 15:32:38 -07:00 |
|
Cameron Gutman
|
ea8b905f02
|
Missed a call to SDL_SetRelativeMouseMode
|
2019-07-02 22:39:09 -07:00 |
|
Cameron Gutman
|
16b301236b
|
Add a mouse capture fallback if SDL_SetRelativeMouseMode() fails
|
2019-07-02 22:17:38 -07:00 |
|
Cameron Gutman
|
024af89be3
|
Add an option to disable the gamepad mouse button toggle
|
2019-06-29 18:24:59 -07:00 |
|
Cameron Gutman
|
0a5051f959
|
Add Discord Rich Presence integration for Windows
|
2019-06-29 17:40:30 -07:00 |
|
Cameron Gutman
|
82b6b60b31
|
Take advantage of SDL 2.0.10 bugfixes and new APIs. Fixes #133
|
2019-06-29 16:08:04 -07:00 |
|
Cameron Gutman
|
1c225ed04d
|
Use CUDA acceleration if other hwaccels are unavailable
|
2019-06-26 21:54:29 -07:00 |
|
Cameron Gutman
|
612b738968
|
Use the preferred sw_format when reading frames back
|
2019-06-26 21:25:41 -07:00 |
|
Cameron Gutman
|
87356ef594
|
Add CUDA acceleration support
|
2019-06-26 21:02:33 -07:00 |
|
Cameron Gutman
|
524cc97f51
|
Use borderless windowed mode when toggling to full-screen from an initially windowed stream. Fixes #248
|
2019-06-23 13:29:57 -07:00 |
|
Cameron Gutman
|
fc849fb51a
|
Switch back to SDL for audio on Linux. Fixes #245
|
2019-06-23 13:16:00 -07:00 |
|
Cameron Gutman
|
c88651939a
|
Re-add latency bounding on the SDL audio renderer
|
2019-06-23 13:14:55 -07:00 |
|
Cameron Gutman
|
01254f67f0
|
Allow audio renderers to specify capabilities
|
2019-06-23 12:49:37 -07:00 |
|
Cameron Gutman
|
4f74fd5354
|
Fix uninitialized variables and a race condition with CVDisplayLinkStart()
|
2019-05-21 09:09:16 -07:00 |
|
Cameron Gutman
|
2682829bd3
|
Fix Steam Link audio latency cap
|
2019-05-20 23:57:27 -07:00 |
|
Cameron Gutman
|
30cfa2607d
|
Hide mouse cursor after streaming on Steam Link
|
2019-05-19 17:43:46 -07:00 |
|
Cameron Gutman
|
4c17f32a2e
|
Fix extra non-working gamepad appearing to the host
|
2019-05-19 13:24:06 -07:00 |
|
Cameron Gutman
|
674220087f
|
Finish mouse emulation support with overlay and bugfixes
|
2019-05-19 13:10:42 -07:00 |
|
Cameron Gutman
|
fc8d5d5799
|
Add gamepad mouse emulation support
|
2019-05-19 12:17:23 -07:00 |
|
Cameron Gutman
|
97fb30cdf1
|
Fix a few bugs in CVDisplayLink integration in VTRenderer
|
2019-05-19 09:52:59 -07:00 |
|
Cameron Gutman
|
b3ee7a635f
|
Cap queued audio at 40 ms on Steam Link
|
2019-05-11 19:09:59 -07:00 |
|
Cameron Gutman
|
c2b12868bb
|
Move DisplayLinkVsyncSource back into VTRenderer to reduce latency
|
2019-05-11 18:33:12 -07:00 |
|
Cameron Gutman
|
bdbb03e16f
|
Request 20 ms audio frames on Steam Link to reduce CPU overhead
|
2019-05-04 15:46:11 -07:00 |
|
Cameron Gutman
|
53138d7c16
|
Name threads for easier debugging
|
2019-05-03 21:18:58 -07:00 |
|
Cameron Gutman
|
18d1d35104
|
Use QByteArray::reserve() rather than reallocating each time we must resize
|
2019-05-02 22:54:18 -07:00 |
|
Cameron Gutman
|
99d9de35de
|
Add NV21 pixel format support to SDL renderer
|
2019-05-02 22:51:28 -07:00 |
|
Cameron Gutman
|
e6a48481a5
|
Restore the bulk submission optimization for Steam Link
|
2019-05-01 22:31:52 -07:00 |
|
Cameron Gutman
|
21f2b1224a
|
Decode directly into the audio renderer's buffer to avoid a copy
|
2019-05-01 21:27:41 -07:00 |
|
Cameron Gutman
|
27708b9ecb
|
Disable HIDAPI for Xbox gamepads on macOS
|
2019-04-28 18:45:56 -07:00 |
|
Cameron Gutman
|
dfb006d264
|
More Steam Link performance optimizations
|
2019-04-28 15:57:57 -07:00 |
|
Cameron Gutman
|
4f00f62674
|
Batch controller axis events for reduced CPU usage on Steam Link
|
2019-04-28 15:16:04 -07:00 |
|
Cameron Gutman
|
4f2fe5c988
|
Reduce polling rate on SL due to CPU performance limitations
|
2019-04-28 13:04:58 -07:00 |
|
Cameron Gutman
|
2bf552f801
|
Batch audio frames on Steam Link to save CPU cycles
|
2019-04-28 12:55:04 -07:00 |
|
Cameron Gutman
|
477fa8fedf
|
Add logging callbacks for SLAudio and SLVideo
|
2019-04-28 11:01:54 -07:00 |
|
Cameron Gutman
|
4e936193c7
|
Request a test frame for MMAL decoder
|
2019-04-24 21:31:52 -07:00 |
|
Cameron Gutman
|
082e330f9d
|
Partially revert fa4c0e82bd because we'll need Qt initialized first to detect Wayland
|
2019-04-21 17:43:38 -07:00 |
|
Cameron Gutman
|
8878c4a136
|
Use VAAPI decoder for AMD on Wayland
|
2019-04-21 15:33:21 -07:00 |
|
Cameron Gutman
|
00926bac81
|
Fix build warning in SDL renderer
|
2019-04-21 11:09:11 -07:00 |
|
Cameron Gutman
|
dba479774b
|
Add DRM renderer for Rockchip devices
|
2019-04-21 05:22:37 +00:00 |
|
Cameron Gutman
|
5c8a1e632b
|
Add support for rendering NV12 hwframes with SDL
|
2019-04-19 22:16:06 -07:00 |
|
Cameron Gutman
|
d65e29111f
|
Fix some codec selection bugs
|
2019-04-19 20:57:21 -07:00 |
|
Cameron Gutman
|
1dfca525cf
|
Refactor renderer initialization to reduce duplication and inconsistency
|
2019-04-18 20:02:14 -07:00 |
|
Cameron Gutman
|
e51ad1a68a
|
Fix use-after-free due to stale m_FrontendRenderer pointer. Fixes #214
|
2019-04-18 19:26:13 -07:00 |
|
Cameron Gutman
|
9c76700f74
|
Add MMAL renderer for Raspberry Pi
|
2019-04-16 01:20:21 -07:00 |
|
Cameron Gutman
|
773b1af6f1
|
Minor refactoring in preparation for non-hwaccel decoder support
|
2019-04-15 21:56:01 -07:00 |
|
Cameron Gutman
|
b8b633a6cc
|
Use SDL to render on Wayland for VAAPI
|
2019-04-12 22:54:21 -07:00 |
|
Cameron Gutman
|
ada2270bd1
|
Reduce code duplication in renderers
|
2019-04-12 22:12:53 -07:00 |
|
Cameron Gutman
|
25e5175c54
|
Refactor parameter passing to decoders and split backend/decode-only and frontend renderers
|
2019-04-11 22:27:20 -07:00 |
|
Cameron Gutman
|
00a1948b73
|
Treat AV_CODEC_CAP_HARDWARE codecs as hardware accelerated too
|
2019-04-09 21:50:22 -07:00 |
|
Cameron Gutman
|
859a5a5e0c
|
Allow a renderer to opt-out of the render thread and use that for SDL on OGL
|
2019-04-09 21:46:14 -07:00 |
|
Cameron Gutman
|
6783cf57da
|
TTF_OpenFontRW retains the SDL_RWops on success, so we must keep the font data around to back it
|
2019-04-09 21:26:47 -07:00 |
|
Cameron Gutman
|
905a0cdac1
|
Make GFE-reported errors more clear
|
2019-04-07 12:21:05 -07:00 |
|
Cameron Gutman
|
7c3f09c70c
|
Update poor connection behavior
|
2019-04-06 12:25:35 -07:00 |
|
Cameron Gutman
|
54383b84ec
|
Fix random deadlocks on window resize with the software decoder due to processing window messages off the render thread
|
2019-04-03 20:44:50 -07:00 |
|
Cameron Gutman
|
2d7dcb495c
|
Remove CAPABILITY_DIRECT_SUBMIT for the video decoder because it can block for significant time periods when D3D9 is reconfiguring display settings (and holding the D3D global lock)
This can cause false reports of packet loss.
|
2019-03-29 23:38:23 -07:00 |
|
Cameron Gutman
|
50f47f1ed5
|
Fix handling of screen saver after fa4c0e82bd and reset background events hint for UI after streaming
|
2019-03-26 21:11:24 -07:00 |
|
Cameron Gutman
|
cabbba2448
|
Move status update overlay to bottom left for SDL
|
2019-03-23 21:14:21 -07:00 |
|
Cameron Gutman
|
c48ed7bb0d
|
Fix undefined variable usage after 2703efedef
|
2019-03-23 20:25:19 -07:00 |
|
Cameron Gutman
|
fa4c0e82bd
|
Only initialize the video subsystem once per launch
|
2019-03-23 17:46:42 -07:00 |
|
Cameron Gutman
|
c0bf8b9c25
|
Remove redundant initializtion of SDL video
|
2019-03-23 14:26:08 -07:00 |
|
Cameron Gutman
|
c313f1a20b
|
Embed our data files inside the binary with QRC
|
2019-03-23 10:45:44 -07:00 |
|
Cameron Gutman
|
b7116657d9
|
Add SLAudio renderer for Steam Link
|
2019-03-22 23:08:10 -07:00 |
|
Cameron Gutman
|
2bf3f1b94b
|
Refactor Steam Link support files
|
2019-03-22 22:51:08 -07:00 |
|
Cameron Gutman
|
e95ff989b1
|
Allow DXVA2 renderer blacklists to be bypassed
|
2019-03-21 20:44:30 -07:00 |
|
Cameron Gutman
|
018e8999e2
|
Add connection status overlay for the VT renderer
|
2019-03-18 20:56:53 -07:00 |
|
Cameron Gutman
|
f624a1817e
|
Add preference and tweak connection warning
|
2019-03-18 20:21:52 -07:00 |
|
Cameron Gutman
|
202a643e5a
|
Fix size of the status update overlay on DXVA2
|
2019-03-17 15:12:25 -07:00 |
|
Cameron Gutman
|
c75b9c9221
|
Add connection status overlay for DXVA2 and SDL
|
2019-03-17 15:08:21 -07:00 |
|
Cameron Gutman
|
052194714a
|
Adjust thread priorities based on recent refactoring
|
2019-03-17 00:45:31 -07:00 |
|
Cameron Gutman
|
bf5d43d0cf
|
Use SDL_HINT_OVERRIDE for critical hints
|
2019-03-17 00:18:15 -07:00 |
|
Cameron Gutman
|
f2ac570949
|
Rebuild SDL2 (5dc13016cf) with USE_D3D9EX
|
2019-03-16 23:52:40 -07:00 |
|
Konstantin Budnikov
|
e32bc1a0a3
|
SDL_HapticRumblePlay rumble for gamepad without SDL_HAPTIC_LEFTRIGHT support (#181)
|
2019-02-20 19:22:38 -08:00 |
|
Cameron Gutman
|
e5a8b49c93
|
Limit the number of queued frames in Pacer to prevent excessive memory consumption if the renderer gets blocked for a while
|
2019-02-18 12:13:45 -08:00 |
|
Cameron Gutman
|
2a12b018da
|
Fix special key combos on non-QWERTY latin keyboards
|
2019-02-17 13:07:54 -08:00 |
|
Cameron Gutman
|
80a40ac5f9
|
Increase frame drop threshold
|
2019-02-16 23:13:35 -08:00 |
|
Cameron Gutman
|
a1956350b1
|
Rename pacing drop to jitter drop to be less confusing for users
|
2019-02-16 23:04:25 -08:00 |
|
Cameron Gutman
|
2c09875556
|
Fix input handler cleanup on startup failure
|
2019-02-16 01:39:31 -08:00 |
|
Cameron Gutman
|
ab4127f940
|
Use presence of a frame after rendering rather than render time for frame dropping
|
2019-02-15 22:44:52 -08:00 |
|
Cameron Gutman
|
f03d12b677
|
Use a separate render thread even with a V-Sync source
|
2019-02-15 22:09:50 -08:00 |
|
Cameron Gutman
|
81c6202582
|
Rename renderFrameAtVsync() to renderFrame() in preparation for further refactoring
|
2019-02-15 21:07:02 -08:00 |
|
Cameron Gutman
|
6cab2bec61
|
Don't trust VT to tell us whether decode is supported
|
2019-02-15 19:10:21 -08:00 |
|
Cameron Gutman
|
c2268b45f6
|
Merge pull request #177 from konst2/master
Fix hotkeys for non-latin keyboard layouts
|
2019-02-15 18:57:24 -08:00 |
|
Cameron Gutman
|
38b8a59fe5
|
Adjust overlay color for more contrast
|
2019-02-15 18:53:40 -08:00 |
|
Cameron Gutman
|
b1799009b3
|
Use the Path class to lookup ModeSeven.ttf
|
2019-02-15 18:13:36 -08:00 |
|
Cameron Gutman
|
f8e693a060
|
Drop samples to account for lost time reinitializing audio. Fixes #176
|
2019-02-14 22:32:54 -08:00 |
|
Cameron Gutman
|
aba806bc32
|
Implement debug overlay for VideoToolbox renderer
|
2019-02-13 20:55:52 -08:00 |
|
Cameron Gutman
|
b1fb3f2391
|
Set FFmpeg log level at debug until first frame is rendered
|
2019-02-13 18:34:59 -08:00 |
|
konst2
|
041e901c61
|
Fix hotkeys for non-latin keyboard layouts
|
2019-02-13 19:56:44 +03:00 |
|
Cameron Gutman
|
f83853c2fb
|
OverlayManager now manages font size for the overlays
|
2019-02-12 22:36:56 -08:00 |
|
Cameron Gutman
|
b878d64460
|
Check rumble controller number is within the supported range
|
2019-02-12 22:05:55 -08:00 |
|
Cameron Gutman
|
5397e8ae1a
|
Don't use SDL_GameControllerGetPlayerIndex() because the indexes may be non-contiguous (and wrong) on XInput
|
2019-02-12 22:04:05 -08:00 |
|
Cameron Gutman
|
46bd8ad83d
|
Add debug overlay for SDL renderer
|
2019-02-12 21:55:15 -08:00 |
|
Cameron Gutman
|
5788fa7204
|
Make OverlayManager own the overlay color setting
|
2019-02-12 20:39:10 -08:00 |
|
Cameron Gutman
|
d077c6450f
|
Split SdlRenderer from renderer.h
|
2019-02-12 19:58:36 -08:00 |
|
Cameron Gutman
|
feb5e3bc78
|
Fix SDL_WasInit asserts firing due to lifetime management issues with SdlInputHandler
|
2019-02-12 19:30:02 -08:00 |
|
Cameron Gutman
|
6ed512e762
|
Provide a renderer callback when the overlay data changes
|
2019-02-12 18:43:38 -08:00 |
|
Cameron Gutman
|
947970e07b
|
Shortcut decoder initialization when only using it for capability testing
|
2019-02-12 18:42:53 -08:00 |
|
Cameron Gutman
|
df567b405a
|
Minor bugfixes to haptics
|
2019-02-11 21:55:56 -08:00 |
|
MINICOM\mrb11
|
7b0596d9df
|
Add controller rumble support.
|
2019-02-11 21:39:55 -08:00 |
|
Cameron Gutman
|
4b7200ae69
|
Don't display the connection terminated dialog for intended disconnects
|
2019-02-10 02:19:37 -08:00 |
|
Cameron Gutman
|
d2002b6a62
|
Fix SOPS issues causing 720p60 settings on non-standard resolutions and FPS values
|
2019-02-09 20:37:11 -08:00 |
|
Cameron Gutman
|
1fd099db70
|
Log when StretchRect() fails
|
2019-02-09 18:47:57 -08:00 |
|
Cameron Gutman
|
2986a40c5a
|
Fix some gamepads working for UI navigation but not in game
|
2019-01-29 22:01:05 -08:00 |
|
Cameron Gutman
|
8bb6d4d0d9
|
Fix VDPAU scaling on AMD cards. Fixes #171
|
2019-01-29 20:52:41 -08:00 |
|
Cameron Gutman
|
21aad643f3
|
Use 32 pixel alignment for HEVC to fix Intel green line issue
|
2019-01-28 21:26:27 -08:00 |
|
Cameron Gutman
|
8687448966
|
Use StretchRect() on Intel GPUs or if VideoProcessBlt() fails
|
2019-01-28 19:18:43 -08:00 |
|
Cameron Gutman
|
4471a858db
|
Fix miscounted pacer dropped frames in non-pacing mode
|
2019-01-22 21:21:29 -08:00 |
|
Cameron Gutman
|
22e712af5a
|
Add v-sync text to stats overlay
|
2019-01-22 20:55:58 -08:00 |
|
Cameron Gutman
|
9799b82d53
|
Improve long render time logic
|
2019-01-22 20:55:35 -08:00 |
|
Cameron Gutman
|
78915e0b99
|
Use a separate render thread when not using frame pacing
|
2019-01-22 20:31:31 -08:00 |
|
Cameron Gutman
|
a4edd9d202
|
Submit frame directly from the decoder thread to avoid interference from the main thread
|
2019-01-21 20:27:37 -08:00 |
|
Cameron Gutman
|
7747624c80
|
Revert "Wake up main thread immediately after new frame is pushed"
This reverts commit aab7191a44 .
|
2019-01-21 20:10:13 -08:00 |
|
Cameron Gutman
|
aab7191a44
|
Wake up main thread immediately after new frame is pushed
|
2019-01-21 18:57:14 -08:00 |
|
Cameron Gutman
|
1f972b1828
|
Require several consecutive long render times to drop a frame
|
2019-01-21 17:58:42 -08:00 |
|
Cameron Gutman
|
58b77cf589
|
Fix inaccurate pacer drop and network drop percentages and add total FPS stat
|
2019-01-21 17:43:15 -08:00 |
|
Cameron Gutman
|
c064f87889
|
Drop a frame if the rendering time exceeds the v-sync period
|
2019-01-20 19:59:29 -08:00 |
|
Cameron Gutman
|
d6b4c8e7da
|
Avoid blocking decoding operations during Present calls
|
2019-01-20 14:08:53 -08:00 |
|
Cameron Gutman
|
b19c4bfc5d
|
Add performance overlay for DXVA2 renderer
|
2019-01-19 23:05:56 -08:00 |
|
Cameron Gutman
|
067f5e33aa
|
Increase audio buffer on Linux to 25 ms. Fixes #147. Fixes #157.
|
2019-01-06 13:49:20 -08:00 |
|
Cameron Gutman
|
52ef84873e
|
Remove excess latency control logic from SDL renderer, since it doesn't appear to work very well anyway
|
2019-01-06 13:28:43 -08:00 |
|
Cameron Gutman
|
c21ba5c808
|
Allow the audio renderer to be overriden by the ML_AUDIO environment variable
|
2019-01-06 13:28:05 -08:00 |
|
Cameron Gutman
|
11c7131875
|
Replace forgotten clamp to frameCountMax removed by e75dce2543
|
2019-01-03 18:49:18 -08:00 |
|
Cameron Gutman
|
e75dce2543
|
Remove one-sample-per-callback write logic to fix crackling at 44.1 KHz. Fixes #152
|
2019-01-03 17:23:29 -08:00 |
|
Cameron Gutman
|
dcfd3d3e48
|
Add a debug print for V-sync
|
2018-12-25 22:19:23 -08:00 |
|
Cameron Gutman
|
ec2c15946a
|
Update audio buffering parameters based on local testing
|
2018-12-25 21:45:15 -08:00 |
|
Cameron Gutman
|
d1640e3bb8
|
Audio latency tweaks and fix for PulseAudio with A2DP
|
2018-12-25 17:54:18 -08:00 |
|
Cameron Gutman
|
8612e6726d
|
Remove accidentally enabled debug prints
|
2018-12-25 14:05:55 -08:00 |
|
Cameron Gutman
|
14cb2e1999
|
Remove latency drop logic and replace by single frame writes
|
2018-12-25 14:05:17 -08:00 |
|
Cameron Gutman
|
cfabaf334e
|
Add frame pacing toggle
|
2018-12-25 12:57:00 -08:00 |
|
Cameron Gutman
|
c054536fab
|
Count Pacer delay in frame stats
|
2018-12-25 12:09:45 -08:00 |
|
Cameron Gutman
|
de3928cb4d
|
Reduce FPs on the unmapped gamepad dialog
|
2018-12-25 11:41:48 -08:00 |
|
Cameron Gutman
|
c6383f042c
|
Pin server cert to host during pairing
|
2018-12-21 18:08:07 -08:00 |
|
Cameron Gutman
|
8a5e3cdb76
|
Fix returning to app page when start fails
|
2018-12-05 22:17:26 -08:00 |
|
Cameron Gutman
|
c40174034c
|
Don't kill the app on the host when the session terminates unexpectedly
|
2018-12-05 20:17:00 -08:00 |
|
Cameron Gutman
|
5029c855f0
|
Simplify app quitting implementation a bit
|
2018-12-05 19:49:06 -08:00 |
|
Janne Hakonen
|
0ab07303c9
|
Add quit cli command and app quit option after stream session. Fixes #92 (#138)
* Add quit cli command and app quit option after stream session. Fixes #92
* Code review fixes.
|
2018-12-05 18:45:28 -08:00 |
|
Cameron Gutman
|
b97758ef46
|
Switch to libsoundio on Linux now that PA works reliably after d1fe752028
|
2018-11-28 00:13:04 -08:00 |
|
Cameron Gutman
|
d1fe752028
|
Fix busy looping in libsoundio audio renderer when no audio is playing
|
2018-11-27 23:43:31 -08:00 |
|
Cameron Gutman
|
065a6caee5
|
Use automatic remote streaming detection
|
2018-11-21 20:55:25 -08:00 |
|
Cameron Gutman
|
bf05088d70
|
Remove checks that rely on display modes because they can be inaccurate on machines when the monitor is off
|
2018-11-20 22:02:43 -08:00 |
|
Cameron Gutman
|
688c4a90d9
|
Use the raw display bounds not the usable display bounds for full-screen calculations
|
2018-11-18 23:10:30 -08:00 |
|
Cameron Gutman
|
d847b71c86
|
Fix host virtual gamepads being reconnected during stream startup and causing issues with multiple controllers. Fixes #108
|
2018-11-18 12:05:17 -08:00 |
|
Cameron Gutman
|
dfcc1ff899
|
Also print gamepad mapping on gamepad attach
|
2018-11-17 17:23:20 -08:00 |
|
Cameron Gutman
|
65562937f3
|
Print gamepad GUID string in logs
|
2018-11-17 17:10:52 -08:00 |
|
Cameron Gutman
|
25f70e570e
|
Add timer-based input batching for GFE 3.16
|
2018-11-15 20:52:07 -08:00 |
|
Cameron Gutman
|
789e52af57
|
Use SDL_GameControllerGetPlayerIndex() as a hint for picking player indexes
|
2018-11-03 13:04:34 -07:00 |
|
Cameron Gutman
|
76e5794203
|
Remove SetThreadExecutionState() call now that SDL_DisableScreenSaver() works on Windows
|
2018-11-03 12:44:14 -07:00 |
|
Cameron Gutman
|
e1fab22d98
|
Fix accidental removal of decoder deletion in previous commit
|
2018-10-31 18:49:37 -07:00 |
|
Cameron Gutman
|
cb5e58d465
|
Fix use-after-free caught by debug build of SDL2
|
2018-10-31 18:20:39 -07:00 |
|
Cameron Gutman
|
d5a1189053
|
Avoid VAAPI on AMD drivers due to a bad memory leak
|
2018-10-14 20:37:13 -07:00 |
|
Cameron Gutman
|
fd63aad3b8
|
Only avoid HEVC on GFE 3.10 and lower on macOS
|
2018-10-14 11:28:52 -07:00 |
|
Cameron Gutman
|
36f468a599
|
Fix window icon disappearing when toggling out of full-screen mode on Windows
|
2018-10-12 20:34:58 -07:00 |
|
Cameron Gutman
|
dfae69834a
|
Fix misleading debug print
|
2018-10-12 20:02:54 -07:00 |
|
Cameron Gutman
|
4f84843b00
|
Fixup H.264 SPS for VideoToolbox compatibility. Fixes #98
|
2018-10-12 17:59:53 -07:00 |
|
Cameron Gutman
|
1fc63a6529
|
Exclude libsoundio from Linux build
|
2018-10-06 18:24:34 -07:00 |
|
Cameron Gutman
|
e182445593
|
libsoundio audio renderer for Windows and Mac (#97)
|
2018-10-05 19:22:57 -07:00 |
|
Cameron Gutman
|
6661ca17c2
|
Fix keys being stuck after Moonlight loses focus or is quit via OS shortcut (Alt+Tab/Alt+F4)
|
2018-10-03 18:27:12 -07:00 |
|
Cameron Gutman
|
1b4e75f49e
|
Add support for sending X1 and X2 mouse buttons. Fixes #91
|
2018-10-03 17:56:42 -07:00 |
|
Cameron Gutman
|
9075f309ad
|
Disable annoying stream stats prints
|
2018-10-02 20:12:53 -07:00 |
|
Cameron Gutman
|
18d97e9f73
|
Fix errant touch events on macOS
|
2018-10-02 20:11:13 -07:00 |
|
Cameron Gutman
|
bccd118abb
|
Finish removal of auto audio option and rename the remaining options
|
2018-10-02 15:30:22 -07:00 |
|
Cameron Gutman
|
3dc049ee5f
|
Remove automatic audio configuration permanently due to brokenness and allow renderers to request reinitialization on demand
|
2018-10-02 01:21:42 -07:00 |
|
Cameron Gutman
|
a614a693e5
|
Revert "Fix surround sound channel mapping on ALSA" since it can be handled inside PortAudio
|
2018-10-02 01:09:13 -07:00 |
|
Cameron Gutman
|
8dddcd04d5
|
Remove IAudioRenderer::testAudio() and just use IAudioRenderer::prepareForPlayback() instead
|
2018-10-01 19:49:08 -07:00 |
|
Cameron Gutman
|
209b4a1b02
|
Fix surround sound channel mapping on ALSA
|
2018-10-01 18:46:16 -07:00 |
|
Cameron Gutman
|
c239d0814b
|
Move audio renderer destruction back off the main thread now that we're using atexit(SDL_Quit)
|
2018-09-30 18:09:12 -07:00 |
|
Cameron Gutman
|
f7789a1e4a
|
Add Select+Start+L1+R1 quit combo
|
2018-09-30 14:38:54 -07:00 |
|
Cameron Gutman
|
9fb0bffd61
|
Finish touch input support
|
2018-09-30 01:03:26 -07:00 |
|
Cameron Gutman
|
4a452a2467
|
Touch input WIP
|
2018-09-29 22:43:28 -07:00 |
|
Cameron Gutman
|
396d65b003
|
Fix typo in previous commit
|
2018-09-29 22:24:26 -07:00 |
|
Cameron Gutman
|
fa52e7c1b7
|
Fix audio device error with PA renderer (and constify some methods)
|
2018-09-29 22:19:41 -07:00 |
|
Cameron Gutman
|
6758d6c43e
|
Create MappingManager class to handle gamepad mappings (currently only saving custom mappings)
|
2018-09-29 20:33:45 -07:00 |
|
Cameron Gutman
|
4ad27670ec
|
Provide detection and help for unmapped gamepads. Fixes #70
|
2018-09-29 19:14:52 -07:00 |
|
Cameron Gutman
|
1ad072236d
|
Avoid calling Pa_IsStreamStopped() on each audio frame
|
2018-09-29 16:52:40 -07:00 |
|
Cameron Gutman
|
200b1c5095
|
Rename hpp -> h
|
2018-09-29 16:18:46 -07:00 |
|
Janne Hakonen
|
d14cfb577b
|
Add command line parameters. Fixes #30 (#89)
* Add command line parameters. Fixes #30
* Fixed compile errors
* Fixed code review findings
* Fixed code review findings, take 2
|
2018-09-29 14:06:55 -07:00 |
|
Cameron Gutman
|
4620fa5001
|
Retry serverinfo query for adding a PC if the request fails with ServiceUnavailableError. Fixes #88
|
2018-09-29 03:01:49 -07:00 |
|
Cameron Gutman
|
a0249b4337
|
Add video stats for performance overlay
|
2018-09-25 00:47:59 -07:00 |
|
Cameron Gutman
|
f2e40889b2
|
Performance tweaks to PortAudio renderer
|
2018-09-22 21:00:44 -07:00 |
|
Cameron Gutman
|
896b247bc0
|
Remove H.264 high performance preference and enable HEVC split encode
|
2018-09-22 20:27:02 -07:00 |
|
Cameron Gutman
|
605d52f160
|
Don't block in audio/video renderer callbacks while the renderer is being destroyed
|
2018-09-22 20:03:41 -07:00 |
|
Cameron Gutman
|
afb2b465a8
|
Avoid using direct submit for video decoding because FFmpeg can delay for a fairly significant period of time within avcodec_send_packet() and avcodec_receive_frame(), even for software decoding. This is particularly apparent when streaming well above hardware capabilities and leads to packet loss.
|
2018-09-22 19:30:13 -07:00 |
|
Cameron Gutman
|
b1de66d878
|
Directly use the AVBufferSampleDisplayLayer as the rendering view's layer to increase efficiency
|
2018-09-22 18:34:15 -07:00 |
|
Cameron Gutman
|
71b625081a
|
Switch to PortAudio for audio playback
|
2018-09-22 17:39:12 -07:00 |
|
Cameron Gutman
|
2cd4851601
|
Improve PortAudio channel autodetection algorithm to workaround PulseAudio issues
|
2018-09-22 16:51:45 -07:00 |
|
Cameron Gutman
|
14ec0259df
|
Switch back from Qt Multimedia to SDL for audio configuration detection. Qt is also broken, but just broken in a way that always reports stereo
|
2018-09-22 16:20:00 -07:00 |
|
Cameron Gutman
|
9f0617f6ee
|
Gracefully fall back to stereo audio if 5.1 doesn't work
|
2018-09-22 16:04:36 -07:00 |
|
Cameron Gutman
|
2c960059ee
|
Add PoC PortAudio audio renderer
|
2018-09-21 23:30:47 -07:00 |
|
Cameron Gutman
|
af9fb0e091
|
Fix GetVideoProcessorCaps() failure handling
|
2018-09-21 17:29:53 -07:00 |
|
Cameron Gutman
|
f96911e1ba
|
Use DXVA2_VideoProcProgressiveDevice since we don't need any fancy image processing or deinterlacing
|
2018-09-21 17:07:28 -07:00 |
|
Cameron Gutman
|
8a0089eb81
|
Print driver information in VDPAU and VAAPI renderers
|
2018-09-20 21:23:16 -07:00 |
|
Cameron Gutman
|
f4408473e6
|
Fix broken Alt+Tab behavior. Fixes #72
|
2018-09-16 11:21:15 -07:00 |
|
Cameron Gutman
|
04376ca047
|
Fix Clang format string signness mismatch warnings
|
2018-09-15 16:00:36 -07:00 |
|
Cameron Gutman
|
a2eece0f5c
|
Log audio buffer size
|
2018-09-15 13:27:57 -07:00 |
|
Cameron Gutman
|
a03279df3b
|
Fix errant mouse button event being sent on mouse capture
|
2018-09-14 22:09:45 -07:00 |
|
Cameron Gutman
|
bef6c2b665
|
Fix the underflow caused by the underflow fix :(
|
2018-09-14 21:03:06 -07:00 |
|
Cameron Gutman
|
8002c65693
|
Block Intel drivers earlier than 4836 from using HEVC due to artifacting issues. Fixes #32
|
2018-09-14 20:20:47 -07:00 |
|
Cameron Gutman
|
72afa55897
|
Add tip text to the StreamSegue telling users about the quit shortcut. Fixes #77
|
2018-09-14 19:11:06 -07:00 |
|
Cameron Gutman
|
eed9fca10c
|
Mass conversion of isNull() -> isEmpty()
|
2018-09-14 18:36:15 -07:00 |
|
Cameron Gutman
|
25d97e187a
|
Fix large mouse input delay on GFE 3.14.0 and earlier. Fixes #68
|
2018-09-14 18:35:28 -07:00 |
|
Cameron Gutman
|
7ca2ca8045
|
Print the GPU driver version on Windows
|
2018-09-13 14:54:30 -07:00 |
|
Cameron Gutman
|
7bc43c226d
|
Fix underflow in audio drop code
|
2018-09-13 14:09:03 -07:00 |
|
Cameron Gutman
|
da4697794d
|
Increase buffer size for glitch-free playback on macOS
|
2018-09-13 13:02:21 -07:00 |
|
Cameron Gutman
|
879c524658
|
Revert "Process Qt events in the SDL loop" to fix input issues on Windows and Mac
This reverts commit c8e00195ed .
|
2018-09-13 12:14:56 -07:00 |
|
Cameron Gutman
|
e3a8f010c3
|
Fixes for experimental Qt audio renderer
|
2018-09-13 12:00:51 -07:00 |
|
Cameron Gutman
|
f2f8f92172
|
Add gamepad mapping DB from https://github.com/gabomdq/SDL_GameControllerDB
|
2018-09-13 11:58:32 -07:00 |
|
Cameron Gutman
|
6e06174db6
|
Add experimental Qt audio renderer
|
2018-09-13 08:17:26 -07:00 |
|
Cameron Gutman
|
c8e00195ed
|
Process Qt events in the SDL loop
|
2018-09-13 08:03:06 -07:00 |
|
Cameron Gutman
|
64bc189010
|
Fixes to SDL audio renderer and autodetection support
|
2018-09-13 07:46:01 -07:00 |
|
Cameron Gutman
|
12496e4432
|
Refactor audio rendering into a separate class
|
2018-09-13 06:23:06 -07:00 |
|
Cameron Gutman
|
9e2fd67487
|
Add option to enable mouse acceleration for remote desktop usage
|
2018-09-09 13:21:11 -07:00 |
|
Cameron Gutman
|
9dcd856099
|
Blacklist Kepler GPUs for HEVC due to hybrid decode support present in some drivers
|
2018-09-09 10:48:01 -07:00 |
|
Cameron Gutman
|
cfbcc4093c
|
Reduce UI jank when transitioning to the stream segue
|
2018-09-09 10:17:32 -07:00 |
|
Cameron Gutman
|
4712080a1b
|
Fix centering of streaming window and size after toggling full-screen on Windows
|
2018-09-08 16:01:35 -07:00 |
|
Cameron Gutman
|
93c683be3a
|
Allow renderers that force V-sync on to run without it when streaming higher than the display refresh rate
|
2018-09-08 15:27:21 -07:00 |
|
Cameron Gutman
|
c9a7c15f98
|
Improve unsupported FPS options and performance
|
2018-09-08 15:09:46 -07:00 |
|
Cameron Gutman
|
64a08f0533
|
Allow higher than display refresh rate streaming with unsupported FPS option
|
2018-09-08 14:34:11 -07:00 |
|
Cameron Gutman
|
52c6455ca5
|
Avoid sending a click event on focus gain on Linux
|
2018-09-08 14:05:42 -07:00 |
|
Cameron Gutman
|
238681d72f
|
Merge pull request #67 from jhakonen/capture-on-activated-window
Capture mouse cursor when clicking inactive window
|
2018-09-08 14:01:27 -07:00 |
|
Janne Hakonen
|
300b53f28c
|
Capture mouse cursor when clicking inactive window
|
2018-09-08 16:39:20 +03:00 |
|
Janne Hakonen
|
3dabb1c891
|
Fixed < key in keyboard not working
|
2018-09-08 14:16:27 +03:00 |
|
Cameron Gutman
|
6a2b717ff1
|
Run in native resolution on Retina displays when streaming above scaled resolution
|
2018-09-07 01:12:18 -07:00 |
|
Cameron Gutman
|
475a39cb73
|
Recreate the decoder when moving to a new display to allow Pacer to get the new refresh rate
|
2018-09-06 19:42:53 -07:00 |
|
Cameron Gutman
|
4dba74e2f9
|
Fix handling of undefined and non-matching refresh rate
|
2018-09-06 19:16:59 -07:00 |
|
Cameron Gutman
|
587d783955
|
Use SDL_WINDOWPOS_CENTERED_DISPLAY() to fix incorrect positioning on multi-display system on macOS
|
2018-09-06 18:53:00 -07:00 |
|
Cameron Gutman
|
5da156b433
|
Prefer H.264 for higher decoding performance in very high load situations
|
2018-09-05 18:57:40 -07:00 |
|
Cameron Gutman
|
0d68faf40c
|
Remove unused parameter
|
2018-09-05 15:45:36 -07:00 |
|
Cameron Gutman
|
856318f947
|
Start the SDL window on the same display as the Qt UI was displayed on
|
2018-09-05 15:15:53 -07:00 |
|
Cameron Gutman
|
9a71b4c237
|
Improve mouse batching to only batch if the last event was less than 1 millisecond ago
|
2018-09-04 00:09:35 -07:00 |
|
Cameron Gutman
|
9aa487418f
|
Force V-Sync enabled for DXVA2 windowed with DWM composition enabled
|
2018-09-03 23:34:15 -07:00 |
|
Cameron Gutman
|
203b2fcaca
|
Batch mouse move events for high DPI mice
|
2018-09-04 00:37:21 -04:00 |
|
Cameron Gutman
|
dae21f2638
|
Detect native panel resolution on Retina displays. Fixes #59
|
2018-09-04 00:21:37 -04:00 |
|
Cameron Gutman
|
af6e99cbac
|
Select the highest full-screen refresh rate that our stream FPS evenly divides
|
2018-09-03 22:54:41 -04:00 |
|
Cameron Gutman
|
6d6acf4308
|
Fix release builds
|
2018-09-03 22:47:31 -04:00 |
|
Cameron Gutman
|
7dd4815edf
|
Allow selection between full-screen exclusive mode and borderless windowed mode
|
2018-09-03 22:17:34 -04:00 |
|
Cameron Gutman
|
2c068a99a3
|
Allow FFmpeg renderers to enforce V-sync being enabled or disabled
|
2018-09-03 20:57:09 -04:00 |
|
Cameron Gutman
|
fa93364ddd
|
Ensure the CVDisplayLink is synchronized to the display that our window is on
|
2018-09-03 20:19:24 -04:00 |
|
Cameron Gutman
|
9b1eef3f63
|
Pass AV_HWACCEL_FLAG_IGNORE_LEVEL for VDPAU per FFmpeg documentation recommendation
|
2018-09-03 17:06:21 -04:00 |
|
Cameron Gutman
|
ed6c07fd4b
|
Display all frames even if they are corrupt or missing references (as will happen during reference frame invalidation)
|
2018-09-02 18:45:29 -04:00 |
|
Cameron Gutman
|
5ad96f5287
|
Display a dialog when the connection is terminated by the remote PC
|
2018-09-02 18:34:10 -04:00 |
|
Janne Hakonen
|
b96ace7f04
|
Release mouse cursor when window focus is lost
|
2018-09-02 00:31:37 +03:00 |
|
Cameron Gutman
|
234a8dc3d5
|
Fix build with HAVE_SLVIDEO
|
2018-08-31 10:40:25 -04:00 |
|
Cameron Gutman
|
762fe92933
|
Allow streaming with no audio device. Fixes #52
|
2018-08-31 00:09:31 -04:00 |
|
Cameron Gutman
|
b7cbec0b1c
|
Pass RFI flags to decoder
|
2018-08-25 13:36:54 -07:00 |
|
Cameron Gutman
|
9be9934b8c
|
Add reference frame invalidation for the software decoder
|
2018-08-25 12:38:04 -07:00 |
|
Cameron Gutman
|
408f93732b
|
Fix 'invalid VADisplay' errors on renderer destruction
|
2018-08-25 11:21:52 -07:00 |
|
Cameron Gutman
|
7e560aa09e
|
Use MMCSS when streaming with the DXVA renderer
|
2018-08-21 00:53:41 -07:00 |
|
Cameron Gutman
|
7d9478b774
|
Fix FlipEx on Windows 7
|
2018-08-21 00:49:29 -07:00 |
|
Cameron Gutman
|
0fa0ab43c9
|
Fix broken Alt+Tab behavior on Windows
|
2018-08-20 22:48:48 -07:00 |
|
Cameron Gutman
|
f9cdd49d2e
|
Add settings option to disable V-sync for lowest possible latency on Windows
|
2018-08-20 22:25:19 -07:00 |
|
Cameron Gutman
|
7661f5a3d7
|
Use SetThreadExecutionState() to disable the screensaver since SDL doesn't currently call that. Fixes #46
|
2018-08-20 21:36:23 -07:00 |
|
Cameron Gutman
|
395f337bbb
|
Switch full-screen mode back to full-screen exclusive on Windows to reduce latency by 1 frame
|
2018-08-20 21:19:00 -07:00 |
|
Cameron Gutman
|
9e9fe2a2cf
|
Work around DWM bug on Windows 7 causing horrible performance
|
2018-08-20 21:17:25 -07:00 |
|
Cameron Gutman
|
5bf88cfe96
|
Fix Mac build
|
2018-08-20 18:57:11 -07:00 |
|
Cameron Gutman
|
f7d3c10c9d
|
Plumb the ability to disable V-sync through the video renderers
|
2018-08-20 18:19:42 -07:00 |
|
Cameron Gutman
|
6b395c816f
|
Allow Pacer to wait for frames up until a few ms before v-sync for better smoothness and lower latency
|
2018-08-20 17:53:35 -07:00 |
|
Cameron Gutman
|
d6e7173af0
|
Add a VsyncSource for renderers that already block for V-sync
|
2018-08-20 17:24:47 -07:00 |
|
Cameron Gutman
|
1a60484abc
|
Use hardware vertex processing if available
|
2018-08-19 22:45:17 -07:00 |
|
Cameron Gutman
|
62f765b2b4
|
Switch DXVA2 to IDirect3D9Ex APIs for more detailed control of rendering
|
2018-08-19 21:53:39 -07:00 |
|
Cameron Gutman
|
1b8c3aae73
|
Speed up resize/full-screen by avoiding excessive decoder resets
|
2018-08-19 01:19:23 -07:00 |
|
Cameron Gutman
|
845e84adb7
|
Avoid the test frame for DXVA2 and VT APIs to address flickering in full-screen on Win7
|
2018-08-19 00:59:04 -07:00 |
|
Cameron Gutman
|
c1b1719914
|
Recreate the VT decoder if the display layer fails. Minor fix to Path class.
|
2018-08-16 23:09:40 -07:00 |
|
Cameron Gutman
|
9fbdd794b9
|
Improve support for full-screen exclusive mode
|
2018-08-16 22:25:14 -07:00 |
|
Cameron Gutman
|
345e800abd
|
Always submit frames to Pacer if it's using a frame queue
|
2018-08-16 17:59:33 -07:00 |
|
Cameron Gutman
|
404eaa44e4
|
Implement frame pacing for Windows using D3DKMTWaitForVerticalBlankEvent
|
2018-08-16 01:29:53 -07:00 |
|
Cameron Gutman
|
8e257ab241
|
Remove unused function
|
2018-08-16 00:04:28 -07:00 |
|