21 Commits

Author SHA1 Message Date
21pages
30bd4e1cef
update hwcodec, use ms as pts like vpx ()
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-06-20 13:57:56 +08:00
21pages
a7499c2de8
add ffmpeg mediacodec h264/h265 encode ()
* Check available when app start from kotlin via get codec info
* For latency free, repeat encode 10 frame at most when capture return WouldBlock
* For changing quality, kotlin support but jni doesn't support, rerun video service when quality is manualy
  changed
* 3 or 6 times bitrate for mediacodec because its quality is poor

Signed-off-by: 21pages <pages21@163.com>
2024-05-13 12:39:04 +08:00
21pages
34c7c25908
update hwcodec, add windows ffmpeg vram encoding ()
* 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
98df2b111e
hwcodec uses one repository ()
* 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 ()
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
21pages
89150317e1
add zero copy mode hareware codec for windows ()
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 ()" ()
This reverts commit 80afa98d667db773d9451aa1ecc9c1d53d2a5828.
2023-12-11 22:46:32 +08:00
21pages
80afa98d66
use fullrange by default for yuv420p if supported ()
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
f05f86dc80 444
Signed-off-by: 21pages <pages21@163.com>
2023-10-30 18:46:56 +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
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
633c80d5e4 Revert "vpx use webrtc parameter"
This reverts commit d23fd902d766cbcdf6e81d9ec7991a9e8eabbfe1.
2023-07-23 19:54:42 +08:00
21pages
d23fd902d7 vpx use webrtc parameter
Signed-off-by: 21pages <pages21@163.com>
2023-05-23 09:42:36 +08:00
21pages
e482dc3e2b aom encode/decode
Signed-off-by: 21pages <pages21@163.com>
2023-05-21 16:26:18 +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
0579ba5cfd opt benchmark code
Signed-off-by: 21pages <pages21@163.com>
2023-03-06 10:59:01 +08:00
21pages
b4aea69bdb codec benchmark
Signed-off-by: 21pages <pages21@163.com>
2023-03-03 22:12:54 +08:00