mirror of
https://github.com/rustdesk/rustdesk.git
synced 2026-03-07 20:30:08 +03:00
Eliminate build warnings from the Scrap crate (#13383)
* Updated build.rs to tell RustC that dxgi, quartz and x11 are expected configurations.
Added lifetime annotations to various methods in common/aom.rs and common/vpxcodec.rs.
Updated common/vpx.rs to allow unused_imports in the generated bindings.
Updated dxgi/mag.rs to allow non_snake_case identifiers like "dwFilterMode".
* Added lifetime annotations to methods in common/hwcodec.rs and common/vram.rs.
* Switched syntax for the rustc-check-cfg directive emitted by build.rs in the scrap crate to use syntax compatible with Rust toolchain version 1.75. The double-colon syntax requires 1.77 or newer, but the older single-colon syntax works fine on newer versions for this directive.
* Update libs/scrap/build.rs
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Revert apparently-erroneous AI suggestion. It's usually pretty good, but not always right it seems. :-)
This reverts commit bf862b13f6.
* Removed redundant configuration directives from libs/scrap/build.rs.
---------
Co-authored-by: RustDesk <71636191+rustdesk@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
This commit is contained in:
@@ -227,24 +227,12 @@ fn ffmpeg() {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
|
// in this crate, these are also valid configurations
|
||||||
|
println!("cargo:rustc-check-cfg=cfg(dxgi,quartz,x11)");
|
||||||
|
|
||||||
// there is problem with cfg(target_os) in build.rs, so use our workaround
|
// there is problem with cfg(target_os) in build.rs, so use our workaround
|
||||||
let target_os = std::env::var("CARGO_CFG_TARGET_OS").unwrap();
|
let target_os = std::env::var("CARGO_CFG_TARGET_OS").unwrap();
|
||||||
|
|
||||||
// We check if is macos, because macos uses rust 1.8.1.
|
|
||||||
// `cargo::rustc-check-cfg` is new with Cargo 1.80.
|
|
||||||
// No need to run `cargo version` to get the version here, because:
|
|
||||||
// The following lines are used to suppress the lint warnings.
|
|
||||||
// warning: unexpected `cfg` condition name: `quartz`
|
|
||||||
if cfg!(target_os = "macos") {
|
|
||||||
if target_os != "ios" {
|
|
||||||
println!("cargo::rustc-check-cfg=cfg(android)");
|
|
||||||
println!("cargo::rustc-check-cfg=cfg(dxgi)");
|
|
||||||
println!("cargo::rustc-check-cfg=cfg(quartz)");
|
|
||||||
println!("cargo::rustc-check-cfg=cfg(x11)");
|
|
||||||
// ^^^^^^^^^^^^^^^^^^^^^^ new with Cargo 1.80
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// note: all link symbol names in x86 (32-bit) are prefixed wth "_".
|
// note: all link symbol names in x86 (32-bit) are prefixed wth "_".
|
||||||
// run "rustup show" to show current default toolchain, if it is stable-x86-pc-windows-msvc,
|
// run "rustup show" to show current default toolchain, if it is stable-x86-pc-windows-msvc,
|
||||||
// please install x64 toolchain by "rustup toolchain install stable-x86_64-pc-windows-msvc",
|
// please install x64 toolchain by "rustup toolchain install stable-x86_64-pc-windows-msvc",
|
||||||
|
|||||||
@@ -287,7 +287,7 @@ impl EncoderApi for AomEncoder {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl AomEncoder {
|
impl AomEncoder {
|
||||||
pub fn encode(&mut self, ms: i64, data: &[u8], stride_align: usize) -> Result<EncodeFrames> {
|
pub fn encode<'a>(&'a mut self, ms: i64, data: &[u8], stride_align: usize) -> Result<EncodeFrames<'a>> {
|
||||||
let bpp = if self.i444 { 24 } else { 12 };
|
let bpp = if self.i444 { 24 } else { 12 };
|
||||||
if data.len() < self.width * self.height * bpp / 8 {
|
if data.len() < self.width * self.height * bpp / 8 {
|
||||||
return Err(Error::FailedCall("len not enough".to_string()));
|
return Err(Error::FailedCall("len not enough".to_string()));
|
||||||
@@ -461,7 +461,7 @@ impl AomDecoder {
|
|||||||
Ok(Self { ctx })
|
Ok(Self { ctx })
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn decode(&mut self, data: &[u8]) -> Result<DecodeFrames> {
|
pub fn decode<'a>(&'a mut self, data: &[u8]) -> Result<DecodeFrames<'a>> {
|
||||||
call_aom!(aom_codec_decode(
|
call_aom!(aom_codec_decode(
|
||||||
&mut self.ctx,
|
&mut self.ctx,
|
||||||
data.as_ptr(),
|
data.as_ptr(),
|
||||||
@@ -476,7 +476,7 @@ impl AomDecoder {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// Notify the decoder to return any pending frame
|
/// Notify the decoder to return any pending frame
|
||||||
pub fn flush(&mut self) -> Result<DecodeFrames> {
|
pub fn flush<'a>(&'a mut self) -> Result<DecodeFrames<'a>> {
|
||||||
call_aom!(aom_codec_decode(
|
call_aom!(aom_codec_decode(
|
||||||
&mut self.ctx,
|
&mut self.ctx,
|
||||||
ptr::null(),
|
ptr::null(),
|
||||||
|
|||||||
@@ -364,7 +364,7 @@ impl HwRamDecoder {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
pub fn decode(&mut self, data: &[u8]) -> ResultType<Vec<HwRamDecoderImage>> {
|
pub fn decode<'a>(&'a mut self, data: &[u8]) -> ResultType<Vec<HwRamDecoderImage<'a>>> {
|
||||||
match self.decoder.decode(data) {
|
match self.decoder.decode(data) {
|
||||||
Ok(v) => Ok(v.iter().map(|f| HwRamDecoderImage { frame: f }).collect()),
|
Ok(v) => Ok(v.iter().map(|f| HwRamDecoderImage { frame: f }).collect()),
|
||||||
Err(e) => Err(anyhow!(e)),
|
Err(e) => Err(anyhow!(e)),
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
#![allow(non_upper_case_globals)]
|
#![allow(non_upper_case_globals)]
|
||||||
#![allow(improper_ctypes)]
|
#![allow(improper_ctypes)]
|
||||||
#![allow(dead_code)]
|
#![allow(dead_code)]
|
||||||
|
#![allow(unused_imports)]
|
||||||
|
|
||||||
impl Default for vpx_codec_enc_cfg {
|
impl Default for vpx_codec_enc_cfg {
|
||||||
fn default() -> Self {
|
fn default() -> Self {
|
||||||
|
|||||||
@@ -231,7 +231,7 @@ impl EncoderApi for VpxEncoder {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl VpxEncoder {
|
impl VpxEncoder {
|
||||||
pub fn encode(&mut self, pts: i64, data: &[u8], stride_align: usize) -> Result<EncodeFrames> {
|
pub fn encode<'a>(&'a mut self, pts: i64, data: &[u8], stride_align: usize) -> Result<EncodeFrames<'a>> {
|
||||||
let bpp = if self.i444 { 24 } else { 12 };
|
let bpp = if self.i444 { 24 } else { 12 };
|
||||||
if data.len() < self.width * self.height * bpp / 8 {
|
if data.len() < self.width * self.height * bpp / 8 {
|
||||||
return Err(Error::FailedCall("len not enough".to_string()));
|
return Err(Error::FailedCall("len not enough".to_string()));
|
||||||
@@ -268,7 +268,7 @@ impl VpxEncoder {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// Notify the encoder to return any pending packets
|
/// Notify the encoder to return any pending packets
|
||||||
pub fn flush(&mut self) -> Result<EncodeFrames> {
|
pub fn flush<'a>(&'a mut self) -> Result<EncodeFrames<'a>> {
|
||||||
call_vpx!(vpx_codec_encode(
|
call_vpx!(vpx_codec_encode(
|
||||||
&mut self.ctx,
|
&mut self.ctx,
|
||||||
ptr::null(),
|
ptr::null(),
|
||||||
@@ -473,7 +473,7 @@ impl VpxDecoder {
|
|||||||
/// The `data` slice is sent to the decoder
|
/// The `data` slice is sent to the decoder
|
||||||
///
|
///
|
||||||
/// It matches a call to `vpx_codec_decode`.
|
/// It matches a call to `vpx_codec_decode`.
|
||||||
pub fn decode(&mut self, data: &[u8]) -> Result<DecodeFrames> {
|
pub fn decode<'a>(&'a mut self, data: &[u8]) -> Result<DecodeFrames<'a>> {
|
||||||
call_vpx!(vpx_codec_decode(
|
call_vpx!(vpx_codec_decode(
|
||||||
&mut self.ctx,
|
&mut self.ctx,
|
||||||
data.as_ptr(),
|
data.as_ptr(),
|
||||||
@@ -489,7 +489,7 @@ impl VpxDecoder {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// Notify the decoder to return any pending frame
|
/// Notify the decoder to return any pending frame
|
||||||
pub fn flush(&mut self) -> Result<DecodeFrames> {
|
pub fn flush<'a>(&'a mut self) -> Result<DecodeFrames<'a>> {
|
||||||
call_vpx!(vpx_codec_decode(
|
call_vpx!(vpx_codec_decode(
|
||||||
&mut self.ctx,
|
&mut self.ctx,
|
||||||
ptr::null(),
|
ptr::null(),
|
||||||
|
|||||||
@@ -367,7 +367,7 @@ impl VRamDecoder {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
pub fn decode(&mut self, data: &[u8]) -> ResultType<Vec<VRamDecoderImage>> {
|
pub fn decode<'a>(&'a mut self, data: &[u8]) -> ResultType<Vec<VRamDecoderImage<'a>>> {
|
||||||
match self.decoder.decode(data) {
|
match self.decoder.decode(data) {
|
||||||
Ok(v) => Ok(v.iter().map(|f| VRamDecoderImage { frame: f }).collect()),
|
Ok(v) => Ok(v.iter().map(|f| VRamDecoderImage { frame: f }).collect()),
|
||||||
Err(e) => Err(anyhow!(e)),
|
Err(e) => Err(anyhow!(e)),
|
||||||
|
|||||||
@@ -1,4 +1,6 @@
|
|||||||
// logic from webrtc -- https://github.com/shiguredo/libwebrtc/blob/main/modules/desktop_capture/win/screen_capturer_win_magnifier.cc
|
// logic from webrtc -- https://github.com/shiguredo/libwebrtc/blob/main/modules/desktop_capture/win/screen_capturer_win_magnifier.cc
|
||||||
|
#![allow(non_snake_case)]
|
||||||
|
|
||||||
use lazy_static;
|
use lazy_static;
|
||||||
use std::{
|
use std::{
|
||||||
ffi::CString,
|
ffi::CString,
|
||||||
|
|||||||
Reference in New Issue
Block a user