72 Commits

Author SHA1 Message Date
21pages
34c7c25908
update hwcodec, add windows ffmpeg vram encoding (#7876)
* windows add ffmpeg vram encoding
* windows add missing nvenc and qsv ram encoding, linux add vaapi, current codec table:  https://github.com/21pages/hwcodec?tab=readme-ov-file#codec

Signed-off-by: 21pages <pages21@163.com>
2024-05-01 00:07:09 +08:00
21pages
4252b5e273
enable ffmpeg native h26x software decoders for all platforms (#7750)
* enable ffmpeg native h26x software decoders for all platforms

* h26x software decoders depend on hwcodec feature, so all platforms
  enable it, software h26x decoders are always available like vpx, no available check and no option
* ffmpeg:
	- build: mac arm64 build ffmpeg with my m1, others build with ci
	- version: win/linux use ffmpeg release/5.1, becaues higher version require higher nvidia driver,  other platforms use release/7.0
* test:
	- ios not test.
	- android: sometimes the screen will appear blurry, but it will recover after a while.
	- arm64 linux: test a example of hwcodec repo

Signed-off-by: 21pages <pages21@163.com>

* check hwcodec only when enabled and immediately when clicked enabled

Signed-off-by: 21pages <pages21@163.com>

---------

Signed-off-by: 21pages <pages21@163.com>
2024-04-18 13:12:45 +08:00
21pages
98df2b111e
hwcodec uses one repository (#7701)
* update hwcodec, gpucodec repo is merged to hwcodec

Signed-off-by: 21pages <pages21@163.com>

* rename gpucodec.rs to vram.rs

Signed-off-by: 21pages <pages21@163.com>

* rename all gpucodec to vram, because vram is a feature of hwcodec

Signed-off-by: 21pages <pages21@163.com>

* use one check process and one config file

* set check encode image size to 720p

Signed-off-by: 21pages <pages21@163.com>

---------

Signed-off-by: 21pages <pages21@163.com>
2024-04-12 17:26:24 +08:00
21pages
71d7398ae7
video handler holds only one decoder of the current codec format (#6939)
1. For example: when receiving h264 video frames, only 1 decoder is created, vram > ram
2. For creation and decoding failed:
  * Remove real_supported_decodings, this will update real existing decoders, replace it with the "mark_unsupported" vector. After creating the decoder failure, marks the codec as unsupported and updates supported decoding to the controlled side
  *  Add `fail_counter` in the decoder. When decoding 10 consecutive frames failed, adding codec type to 'mark_unsupported' vector
  *  The controlled end always ignores the unavailability of VP9

Signed-off-by: 21pages <pages21@163.com>
2024-01-22 20:01:17 +08:00
RustDesk
804f035a87
Revert "disable ffmpeg ram codec temporarily" (#6928) 2024-01-20 17:20:08 +08:00
21pages
267342e7e6
disable ffmpeg ram codec temporarily (#6927)
Signed-off-by: 21pages <pages21@163.com>
2024-01-20 17:19:30 +08:00
21pages
89150317e1
add zero copy mode hareware codec for windows (#6778)
Signed-off-by: 21pages <pages21@163.com>
2024-01-02 16:58:10 +08:00
RustDesk
ebb14af488
Revert "use fullrange by default for yuv420p if supported (#6655)" (#6656)
This reverts commit 80afa98d667db773d9451aa1ecc9c1d53d2a5828.
2023-12-11 22:46:32 +08:00
21pages
80afa98d66
use fullrange by default for yuv420p if supported (#6655)
1. Explicitly specify the color space as bt601
2. Use fullrange by default for yuv420p if supported
3. Use the pix_fmt space range format to identify codec capabilities, make i444 proto field deprecated, and cause the non-release version of 444 true color to fail.

Signed-off-by: 21pages <pages21@163.com>
2023-12-11 22:31:01 +08:00
21pages
9847fc5c77 fix exceeding max allowed thread count, thread count <= available memory / 2
Signed-off-by: 21pages <pages21@163.com>
2023-11-19 11:36:23 +08:00
21pages
f05f86dc80 444
Signed-off-by: 21pages <pages21@163.com>
2023-10-30 18:46:56 +08:00
21pages
9ce58115ab set timeout of hwcodec check to 30s
Signed-off-by: 21pages <pages21@163.com>
2023-10-23 16:12:49 +08:00
dignow
013d307bcd feat, multi_flutter_ui_sessions
Signed-off-by: dignow <linlong1265@gmail.com>
2023-10-14 12:26:24 +08:00
21pages
9905695699 enable keyframe interval when recording
Signed-off-by: 21pages <pages21@163.com>
2023-08-07 21:32:36 +08:00
21pages
2c619cbe41 quite if config file not found, remove HW_CODEC_CONFIG, option env LIBGL_ALWAYS_SOFTWARE=1
Signed-off-by: 21pages <pages21@163.com>
2023-07-30 12:42:23 +08:00
21pages
61a48b5367 fix IDTextEditingController extra character
Signed-off-by: 21pages <pages21@163.com>
2023-07-29 13:47:59 +08:00
21pages
0a29fa87f0 remove System::new_all in hwcodec check
Signed-off-by: 21pages <pages21@163.com>
2023-07-29 11:41:44 +08:00
21pages
02456280d4 fix win cpu monitor run once
Signed-off-by: 21pages <pages21@163.com>
2023-07-24 14:54:15 +08:00
21pages
31b3c5d721 codec thread count depending on cpu condition
Signed-off-by: 21pages <pages21@163.com>
2023-07-23 20:00:52 +08:00
21pages
2133f91089 codec set quality seperately and refactor network delay
Signed-off-by: 21pages <pages21@163.com>
2023-07-23 19:54:42 +08:00
21pages
ec34470284 clear hwcodec config rather than remove
Signed-off-by: 21pages <pages21@163.com>
2023-07-16 09:59:46 +08:00
RustDesk
bc5d8ad040
Merge pull request #4421 from 21pages/hwcodec-nv12
hwcodec use nv12
2023-05-19 14:38:40 +08:00
21pages
9cce0798b6 set hw_pixfmt nv12 and wait more time for check porcess
Signed-off-by: 21pages <pages21@163.com>
2023-05-19 12:03:16 +08:00
fufesou
fc50a3e49d set fmt and stride to private in ImageRgb
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-04-28 12:35:46 +08:00
fufesou
6b1645f44d set width,height,stride together with the rgba data for rendering
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-04-28 11:44:52 +08:00
21pages
be2e26e758 delete RustDesk_hwcodec.toml on every check
Signed-off-by: 21pages <pages21@163.com>
2023-04-04 21:21:00 +08:00
21pages
c842650c11 vp8
Signed-off-by: 21pages <pages21@163.com>
2023-04-03 12:22:36 +08:00
RustDesk
83b7518897
Revert "vp8" 2023-04-01 10:13:39 +08:00
21pages
78748271ac vp8
Signed-off-by: 21pages <pages21@163.com>
2023-03-31 22:32:34 +08:00
21pages
54a809f499 set hwcodec key frame interval to max
Signed-off-by: 21pages <pages21@163.com>
2023-03-30 20:08:34 +08:00
fufesou
c845ddf510 fix build
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-03-28 10:52:43 +08:00
fufesou
eebddb2206 format
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-03-28 08:22:46 +08:00
fufesou
8af20489bd log::error
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-03-28 08:21:47 +08:00
fufesou
a1d1c8270f log
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-03-28 08:20:19 +08:00
fufesou
ee1fbb0a76 fix build
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-03-27 23:29:28 +08:00
fufesou
947c7dbb97 try wait hw check config subprocess
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-03-27 22:56:48 +08:00
rustdesk
6ad3064ef9 fix ci 2023-03-23 17:02:55 +08:00
rustdesk
6ec4d6d9ca fix ci 2023-03-03 14:34:47 +08:00
rustdesk
b8941c15c0 refactor DST_STRIDE_RGBA 2023-03-03 14:02:49 +08:00
RustDesk
29abda56df
Revert "Fix/macos texture stride align" 2023-03-03 13:18:34 +08:00
fufesou
c419819c0f rename all stride_align to stride
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-03-03 10:58:48 +08:00
fufesou
5aa97faedd Fix stride align
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-03-03 10:01:58 +08:00
fufesou
77c4a14845 flutter texture render, mid commit
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-02-23 17:06:51 +08:00
21pages
4beacf93d7 kill check-hwcodec-config process
Signed-off-by: 21pages <pages21@163.com>
2023-02-21 16:34:24 +08:00
Josh Soref
6ca852363e spelling: control
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2023-01-09 12:58:33 -05:00
Josh Soref
185ff9e91e spelling: available
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2023-01-09 12:58:33 -05:00
21pages
72594c7e0e remove hwcodec log
Signed-off-by: 21pages <pages21@163.com>
2022-12-13 21:30:08 +08:00
21pages
d08eb0441c log
Signed-off-by: 21pages <pages21@163.com>
2022-12-13 16:25:05 +08:00
21pages
e58f2186ec don't new hwcodec decoders if option disabled
Signed-off-by: 21pages <pages21@163.com>
2022-12-13 14:58:41 +08:00
21pages
eff5dd2e03 ensure first mux frame is key frame
Signed-off-by: 21pages <pages21@163.com>
2022-09-22 09:57:52 +08:00