#![allow(non_upper_case_globals)]
#![allow(non_camel_case_types)]
#![allow(non_snake_case)]
#![allow(deprecated)]
#[allow(unused_imports)]
use crate::averrors::OH_AVErrCode;
#[cfg(feature = "api-18")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-18")))]
#[repr(C)]
pub struct OH_AVRecorder {
_unused: [u8; 0],
}
#[cfg(feature = "api-18")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-18")))]
impl OH_AVRecorder_AudioSourceType {
pub const AVRECORDER_DEFAULT: OH_AVRecorder_AudioSourceType = OH_AVRecorder_AudioSourceType(0);
pub const AVRECORDER_MIC: OH_AVRecorder_AudioSourceType = OH_AVRecorder_AudioSourceType(1);
pub const AVRECORDER_VOICE_RECOGNITION: OH_AVRecorder_AudioSourceType =
OH_AVRecorder_AudioSourceType(2);
pub const AVRECORDER_VOICE_COMMUNICATION: OH_AVRecorder_AudioSourceType =
OH_AVRecorder_AudioSourceType(7);
pub const AVRECORDER_VOICE_MESSAGE: OH_AVRecorder_AudioSourceType =
OH_AVRecorder_AudioSourceType(10);
pub const AVRECORDER_CAMCORDER: OH_AVRecorder_AudioSourceType =
OH_AVRecorder_AudioSourceType(13);
}
#[repr(transparent)]
#[cfg(feature = "api-18")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-18")))]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct OH_AVRecorder_AudioSourceType(pub ::core::ffi::c_uint);
#[cfg(feature = "api-18")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-18")))]
impl OH_AVRecorder_VideoSourceType {
pub const AVRECORDER_SURFACE_YUV: OH_AVRecorder_VideoSourceType =
OH_AVRecorder_VideoSourceType(0);
pub const AVRECORDER_SURFACE_ES: OH_AVRecorder_VideoSourceType =
OH_AVRecorder_VideoSourceType(1);
}
#[repr(transparent)]
#[cfg(feature = "api-18")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-18")))]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct OH_AVRecorder_VideoSourceType(pub ::core::ffi::c_uint);
#[cfg(feature = "api-18")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-18")))]
impl OH_AVRecorder_CodecMimeType {
pub const AVRECORDER_VIDEO_AVC: OH_AVRecorder_CodecMimeType = OH_AVRecorder_CodecMimeType(2);
pub const AVRECORDER_AUDIO_AAC: OH_AVRecorder_CodecMimeType = OH_AVRecorder_CodecMimeType(3);
pub const AVRECORDER_AUDIO_MP3: OH_AVRecorder_CodecMimeType = OH_AVRecorder_CodecMimeType(4);
pub const AVRECORDER_AUDIO_G711MU: OH_AVRecorder_CodecMimeType = OH_AVRecorder_CodecMimeType(5);
pub const AVRECORDER_VIDEO_MPEG4: OH_AVRecorder_CodecMimeType = OH_AVRecorder_CodecMimeType(6);
pub const AVRECORDER_VIDEO_HEVC: OH_AVRecorder_CodecMimeType = OH_AVRecorder_CodecMimeType(8);
pub const AVRECORDER_AUDIO_AMR_NB: OH_AVRecorder_CodecMimeType = OH_AVRecorder_CodecMimeType(9);
pub const AVRECORDER_AUDIO_AMR_WB: OH_AVRecorder_CodecMimeType =
OH_AVRecorder_CodecMimeType(10);
}
#[repr(transparent)]
#[cfg(feature = "api-18")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-18")))]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct OH_AVRecorder_CodecMimeType(pub ::core::ffi::c_uint);
#[cfg(feature = "api-18")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-18")))]
impl OH_AVRecorder_ContainerFormatType {
pub const AVRECORDER_CFT_MPEG_4: OH_AVRecorder_ContainerFormatType =
OH_AVRecorder_ContainerFormatType(2);
pub const AVRECORDER_CFT_MPEG_4A: OH_AVRecorder_ContainerFormatType =
OH_AVRecorder_ContainerFormatType(6);
pub const AVRECORDER_CFT_AMR: OH_AVRecorder_ContainerFormatType =
OH_AVRecorder_ContainerFormatType(8);
pub const AVRECORDER_CFT_MP3: OH_AVRecorder_ContainerFormatType =
OH_AVRecorder_ContainerFormatType(9);
pub const AVRECORDER_CFT_WAV: OH_AVRecorder_ContainerFormatType =
OH_AVRecorder_ContainerFormatType(10);
#[cfg(feature = "api-20")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
pub const AVRECORDER_CFT_AAC: OH_AVRecorder_ContainerFormatType =
OH_AVRecorder_ContainerFormatType(11);
}
#[repr(transparent)]
#[cfg(feature = "api-18")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-18")))]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct OH_AVRecorder_ContainerFormatType(pub ::core::ffi::c_uint);
#[cfg(feature = "api-18")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-18")))]
impl OH_AVRecorder_State {
pub const AVRECORDER_IDLE: OH_AVRecorder_State = OH_AVRecorder_State(0);
pub const AVRECORDER_PREPARED: OH_AVRecorder_State = OH_AVRecorder_State(1);
pub const AVRECORDER_STARTED: OH_AVRecorder_State = OH_AVRecorder_State(2);
pub const AVRECORDER_PAUSED: OH_AVRecorder_State = OH_AVRecorder_State(3);
pub const AVRECORDER_STOPPED: OH_AVRecorder_State = OH_AVRecorder_State(4);
pub const AVRECORDER_RELEASED: OH_AVRecorder_State = OH_AVRecorder_State(5);
pub const AVRECORDER_ERROR: OH_AVRecorder_State = OH_AVRecorder_State(6);
}
#[repr(transparent)]
#[cfg(feature = "api-18")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-18")))]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct OH_AVRecorder_State(pub ::core::ffi::c_uint);
#[cfg(feature = "api-18")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-18")))]
impl OH_AVRecorder_StateChangeReason {
pub const AVRECORDER_USER: OH_AVRecorder_StateChangeReason = OH_AVRecorder_StateChangeReason(0);
pub const AVRECORDER_BACKGROUND: OH_AVRecorder_StateChangeReason =
OH_AVRecorder_StateChangeReason(1);
}
#[repr(transparent)]
#[cfg(feature = "api-18")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-18")))]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct OH_AVRecorder_StateChangeReason(pub ::core::ffi::c_uint);
#[cfg(feature = "api-18")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-18")))]
impl OH_AVRecorder_FileGenerationMode {
pub const AVRECORDER_APP_CREATE: OH_AVRecorder_FileGenerationMode =
OH_AVRecorder_FileGenerationMode(0);
pub const AVRECORDER_AUTO_CREATE_CAMERA_SCENE: OH_AVRecorder_FileGenerationMode =
OH_AVRecorder_FileGenerationMode(1);
}
#[repr(transparent)]
#[cfg(feature = "api-18")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-18")))]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct OH_AVRecorder_FileGenerationMode(pub ::core::ffi::c_uint);
#[cfg(feature = "api-18")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-18")))]
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OH_AVRecorder_Profile {
pub audioBitrate: i32,
pub audioChannels: i32,
pub audioCodec: OH_AVRecorder_CodecMimeType,
pub audioSampleRate: i32,
pub fileFormat: OH_AVRecorder_ContainerFormatType,
pub videoBitrate: i32,
pub videoCodec: OH_AVRecorder_CodecMimeType,
pub videoFrameWidth: i32,
pub videoFrameHeight: i32,
pub videoFrameRate: i32,
pub isHdr: bool,
pub enableTemporalScale: bool,
}
#[cfg(feature = "api-18")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-18")))]
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OH_AVRecorder_Location {
pub latitude: f32,
pub longitude: f32,
}
#[cfg(feature = "api-18")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-18")))]
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OH_AVRecorder_MetadataTemplate {
pub key: *mut ::core::ffi::c_char,
pub value: *mut ::core::ffi::c_char,
}
#[cfg(feature = "api-18")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-18")))]
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OH_AVRecorder_Metadata {
pub genre: *mut ::core::ffi::c_char,
pub videoOrientation: *mut ::core::ffi::c_char,
pub location: OH_AVRecorder_Location,
pub customInfo: OH_AVRecorder_MetadataTemplate,
}
#[cfg(feature = "api-18")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-18")))]
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OH_AVRecorder_Config {
pub audioSourceType: OH_AVRecorder_AudioSourceType,
pub videoSourceType: OH_AVRecorder_VideoSourceType,
pub profile: OH_AVRecorder_Profile,
pub url: *mut ::core::ffi::c_char,
pub fileGenerationMode: OH_AVRecorder_FileGenerationMode,
pub metadata: OH_AVRecorder_Metadata,
pub maxDuration: i32,
}
#[cfg(feature = "api-18")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-18")))]
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OH_AVRecorder_Range {
pub min: i32,
pub max: i32,
}
#[cfg(feature = "api-18")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-18")))]
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OH_AVRecorder_EncoderInfo {
pub mimeType: OH_AVRecorder_CodecMimeType,
pub type_: *mut ::core::ffi::c_char,
pub bitRate: OH_AVRecorder_Range,
pub frameRate: OH_AVRecorder_Range,
pub width: OH_AVRecorder_Range,
pub height: OH_AVRecorder_Range,
pub channels: OH_AVRecorder_Range,
pub sampleRate: *mut i32,
pub sampleRateLen: i32,
}
#[cfg(feature = "api-18")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-18")))]
pub type OH_AVRecorder_OnStateChange = ::core::option::Option<
unsafe extern "C" fn(
recorder: *mut OH_AVRecorder,
state: OH_AVRecorder_State,
reason: OH_AVRecorder_StateChangeReason,
userData: *mut ::core::ffi::c_void,
),
>;
#[cfg(feature = "api-18")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-18")))]
pub type OH_AVRecorder_OnError = ::core::option::Option<
unsafe extern "C" fn(
recorder: *mut OH_AVRecorder,
errorCode: i32,
errorMsg: *const ::core::ffi::c_char,
userData: *mut ::core::ffi::c_void,
),
>;