allow set config err for android
Signed-off-by: 21pages <pages21@163.com>
This commit is contained in:
parent
a11dee30ae
commit
1ae2ebaa8c
@ -128,9 +128,9 @@ fn find_package(name: &str) -> Vec<PathBuf> {
|
|||||||
let no_pkg_config_var_name = format!("NO_PKG_CONFIG_{name}");
|
let no_pkg_config_var_name = format!("NO_PKG_CONFIG_{name}");
|
||||||
println!("cargo:rerun-if-env-changed={no_pkg_config_var_name}");
|
println!("cargo:rerun-if-env-changed={no_pkg_config_var_name}");
|
||||||
if cfg!(all(target_os = "linux", feature = "linux-pkg-config"))
|
if cfg!(all(target_os = "linux", feature = "linux-pkg-config"))
|
||||||
&& std::env::var(no_pkg_config_var_name).as_deref() != Ok("1") {
|
&& std::env::var(no_pkg_config_var_name).as_deref() != Ok("1")
|
||||||
|
{
|
||||||
link_pkg_config(name)
|
link_pkg_config(name)
|
||||||
} else if let Ok(vcpkg_root) = std::env::var("VCPKG_ROOT") {
|
} else if let Ok(vcpkg_root) = std::env::var("VCPKG_ROOT") {
|
||||||
vec![link_vcpkg(vcpkg_root.into(), name)]
|
vec![link_vcpkg(vcpkg_root.into(), name)]
|
||||||
} else {
|
} else {
|
||||||
|
@ -11,12 +11,14 @@ use crate::{common::GoogleImage, generate_call_macro, generate_call_ptr_macro, E
|
|||||||
use hbb_common::{
|
use hbb_common::{
|
||||||
anyhow::{anyhow, Context},
|
anyhow::{anyhow, Context},
|
||||||
bytes::Bytes,
|
bytes::Bytes,
|
||||||
|
log,
|
||||||
message_proto::{EncodedVideoFrame, EncodedVideoFrames, Message, VideoFrame},
|
message_proto::{EncodedVideoFrame, EncodedVideoFrames, Message, VideoFrame},
|
||||||
ResultType,
|
ResultType,
|
||||||
};
|
};
|
||||||
use std::{ptr, slice};
|
use std::{ptr, slice};
|
||||||
|
|
||||||
generate_call_macro!(call_aom);
|
generate_call_macro!(call_aom, false);
|
||||||
|
generate_call_macro!(call_aom_allow_err, true);
|
||||||
generate_call_ptr_macro!(call_aom_ptr);
|
generate_call_ptr_macro!(call_aom_ptr);
|
||||||
|
|
||||||
impl Default for aom_codec_enc_cfg_t {
|
impl Default for aom_codec_enc_cfg_t {
|
||||||
@ -145,7 +147,7 @@ mod webrtc {
|
|||||||
use aome_enc_control_id::*;
|
use aome_enc_control_id::*;
|
||||||
macro_rules! call_ctl {
|
macro_rules! call_ctl {
|
||||||
($ctx:expr, $av1e:expr, $arg:expr) => {{
|
($ctx:expr, $av1e:expr, $arg:expr) => {{
|
||||||
call_aom!(aom_codec_control($ctx, $av1e as i32, $arg));
|
call_aom_allow_err!(aom_codec_control($ctx, $av1e as i32, $arg));
|
||||||
}};
|
}};
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -168,6 +170,7 @@ mod webrtc {
|
|||||||
} else {
|
} else {
|
||||||
AV1E_SET_TILE_COLUMNS
|
AV1E_SET_TILE_COLUMNS
|
||||||
};
|
};
|
||||||
|
// Failed on android
|
||||||
call_ctl!(ctx, tile_set, (cfg.g_threads as f64 * 1.0f64).log2().ceil());
|
call_ctl!(ctx, tile_set, (cfg.g_threads as f64 * 1.0f64).log2().ceil());
|
||||||
call_ctl!(ctx, AV1E_SET_ROW_MT, 1);
|
call_ctl!(ctx, AV1E_SET_ROW_MT, 1);
|
||||||
call_ctl!(ctx, AV1E_SET_ENABLE_OBMC, 0);
|
call_ctl!(ctx, AV1E_SET_ENABLE_OBMC, 0);
|
||||||
|
@ -205,21 +205,25 @@ pub type Result<T> = std::result::Result<T, Error>;
|
|||||||
|
|
||||||
#[macro_export]
|
#[macro_export]
|
||||||
macro_rules! generate_call_macro {
|
macro_rules! generate_call_macro {
|
||||||
($func_name:ident) => {
|
($func_name:ident, $allow_err:expr) => {
|
||||||
macro_rules! $func_name {
|
macro_rules! $func_name {
|
||||||
($x:expr) => {{
|
($x:expr) => {{
|
||||||
let result = unsafe { $x };
|
let result = unsafe { $x };
|
||||||
let result_int = unsafe { std::mem::transmute::<_, i32>(result) };
|
let result_int = unsafe { std::mem::transmute::<_, i32>(result) };
|
||||||
if result_int != 0 {
|
if result_int != 0 {
|
||||||
return Err(crate::Error::FailedCall(format!(
|
let message = format!(
|
||||||
"errcode={} {}:{}:{}:{}",
|
"errcode={} {}:{}:{}:{}",
|
||||||
result_int,
|
result_int,
|
||||||
module_path!(),
|
module_path!(),
|
||||||
file!(),
|
file!(),
|
||||||
line!(),
|
line!(),
|
||||||
column!()
|
column!()
|
||||||
))
|
);
|
||||||
.into());
|
if $allow_err {
|
||||||
|
log::warn!("Failed to call {}, {}", stringify!($func_name), message);
|
||||||
|
} else {
|
||||||
|
return Err(crate::Error::FailedCall(message).into());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
result
|
result
|
||||||
}};
|
}};
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
// https://github.com/rust-av/vpx-rs/blob/master/src/decoder.rs
|
// https://github.com/rust-av/vpx-rs/blob/master/src/decoder.rs
|
||||||
|
|
||||||
use hbb_common::anyhow::{anyhow, Context};
|
use hbb_common::anyhow::{anyhow, Context};
|
||||||
|
use hbb_common::log;
|
||||||
use hbb_common::message_proto::{EncodedVideoFrame, EncodedVideoFrames, Message, VideoFrame};
|
use hbb_common::message_proto::{EncodedVideoFrame, EncodedVideoFrames, Message, VideoFrame};
|
||||||
use hbb_common::ResultType;
|
use hbb_common::ResultType;
|
||||||
|
|
||||||
@ -15,7 +16,7 @@ use hbb_common::bytes::Bytes;
|
|||||||
use std::os::raw::{c_int, c_uint};
|
use std::os::raw::{c_int, c_uint};
|
||||||
use std::{ptr, slice};
|
use std::{ptr, slice};
|
||||||
|
|
||||||
generate_call_macro!(call_vpx);
|
generate_call_macro!(call_vpx, false);
|
||||||
generate_call_ptr_macro!(call_vpx_ptr);
|
generate_call_ptr_macro!(call_vpx_ptr);
|
||||||
|
|
||||||
#[derive(Copy, Clone, Debug, PartialEq, Eq, Hash)]
|
#[derive(Copy, Clone, Debug, PartialEq, Eq, Hash)]
|
||||||
|
Loading…
x
Reference in New Issue
Block a user