ohos-media-sys 0.1.0

Raw Bindings to the media framework on OpenHarmony
Documentation
// automatically generated by rust-bindgen 0.71.1

#![allow(non_upper_case_globals)]
#![allow(non_camel_case_types)]
#![allow(non_snake_case)]
#![allow(deprecated)]
#[allow(unused_imports)]
use crate::averrors::OH_AVErrCode;
#[allow(unused_imports)]
use crate::avrecorder_base::{
    OH_AVRecorder, OH_AVRecorder_Config, OH_AVRecorder_EncoderInfo, OH_AVRecorder_OnError,
    OH_AVRecorder_OnStateChange,
};
use ohos_sys_opaque_types::OHNativeWindow;

extern "C" {
    /// Create a recorder
    ///
    /// Required System Capabilities: SystemCapability.Multimedia.Media.AVRecorder
    ///
    /// # Returns
    ///
    /// * Returns a pointer to an OH_AVRecorder instance for success, nullptr for failure
    ///
    /// Available since API-level: 18
    #[cfg(feature = "api-18")]
    #[cfg_attr(docsrs, doc(cfg(feature = "api-18")))]
    pub fn OH_AVRecorder_Create() -> *mut OH_AVRecorder;
    /// Prepare for recording with some parameters.
    ///
    /// Required System Capabilities: SystemCapability.Multimedia.Media.AVRecorder
    /// # Arguments
    ///
    /// * `recorder` - Pointer to an OH_AVRecorder instance
    ///
    /// * `config` - Pointer to an OH_AVRecorder_Config instance, see [`OH_AVRecorder_Config`]
    ///
    /// # Returns
    ///
    /// * Function result code.
    /// [`AV_ERR_OK`] if the execution is successful.
    /// [`AV_ERR_INVALID_VAL`] if input recorder is nullptr or recorder Prepare failed.
    ///
    /// Available since API-level: 18
    #[cfg(feature = "api-18")]
    #[cfg_attr(docsrs, doc(cfg(feature = "api-18")))]
    pub fn OH_AVRecorder_Prepare(
        recorder: *mut OH_AVRecorder,
        config: *mut OH_AVRecorder_Config,
    ) -> OH_AVErrCode;
    /// Get current recording parameters, it must be called after prepare.
    ///
    /// Required System Capabilities: SystemCapability.Multimedia.Media.AVRecorder
    /// # Arguments
    ///
    /// * `recorder` - Pointer to an OH_AVRecorder instance
    ///
    /// * `config` - Pointer to an OH_AVRecorder_Config instance, see [`OH_AVRecorder_Config`]
    ///
    /// # Returns
    ///
    /// * Function result code.
    /// [`AV_ERR_OK`] if the execution is successful.
    /// [`AV_ERR_INVALID_VAL`] if input recorder is nullptr or config is null.
    /// [`AV_ERR_NO_MEMORY`] failed to malloc memory.
    ///
    /// Available since API-level: 18
    #[cfg(feature = "api-18")]
    #[cfg_attr(docsrs, doc(cfg(feature = "api-18")))]
    pub fn OH_AVRecorder_GetAVRecorderConfig(
        recorder: *mut OH_AVRecorder,
        config: *mut *mut OH_AVRecorder_Config,
    ) -> OH_AVErrCode;
    /// Get input surface, it must be called between prepare completed and start.
    ///
    /// Required System Capabilities: SystemCapability.Multimedia.Media.AVRecorder
    /// # Arguments
    ///
    /// * `recorder` - Pointer to an OH_AVRecorder instance
    ///
    /// * `window` - Pointer to an OHNativeWindow instance, see [`OHNativeWindow`]
    ///
    /// # Returns
    ///
    /// * Function result code.
    /// [`AV_ERR_OK`] if the execution is successful.
    /// [`AV_ERR_INVALID_VAL`] if input recorder is nullptr.
    ///
    /// Available since API-level: 18
    #[cfg(feature = "api-18")]
    #[cfg_attr(docsrs, doc(cfg(feature = "api-18")))]
    pub fn OH_AVRecorder_GetInputSurface(
        recorder: *mut OH_AVRecorder,
        window: *mut *mut OHNativeWindow,
    ) -> OH_AVErrCode;
    /// Update the video orientation before recorder start.
    ///
    /// Required System Capabilities: SystemCapability.Multimedia.Media.AVRecorder
    /// # Arguments
    ///
    /// * `recorder` - Pointer to an OH_AVRecorder instance
    ///
    /// * `rotation` - angle, should be [0, 90, 180, 270]
    ///
    /// # Returns
    ///
    /// * Function result code.
    /// [`AV_ERR_OK`] if the execution is successful.
    /// [`AV_ERR_INVALID_VAL`] if input recorder is nullptr or update rotation failed.
    ///
    /// Available since API-level: 18
    #[cfg(feature = "api-18")]
    #[cfg_attr(docsrs, doc(cfg(feature = "api-18")))]
    pub fn OH_AVRecorder_UpdateRotation(
        recorder: *mut OH_AVRecorder,
        rotation: i32,
    ) -> OH_AVErrCode;
    /// Start AVRecorder.
    ///
    /// Required System Capabilities: SystemCapability.Multimedia.Media.AVRecorder
    /// # Arguments
    ///
    /// * `recorder` - Pointer to an OH_AVRecorder instance
    ///
    /// # Returns
    ///
    /// * Function result code.
    /// [`AV_ERR_OK`] if the execution is successful.
    /// [`AV_ERR_INVALID_VAL`] if input recorder is nullptr or recorder start failed.
    ///
    /// Available since API-level: 18
    #[cfg(feature = "api-18")]
    #[cfg_attr(docsrs, doc(cfg(feature = "api-18")))]
    pub fn OH_AVRecorder_Start(recorder: *mut OH_AVRecorder) -> OH_AVErrCode;
    /// Pause AVRecorder.
    ///
    /// Required System Capabilities: SystemCapability.Multimedia.Media.AVRecorder
    /// # Arguments
    ///
    /// * `recorder` - Pointer to an OH_AVRecorder instance
    ///
    /// # Returns
    ///
    /// * Function result code.
    /// [`AV_ERR_OK`] if the execution is successful.
    /// [`AV_ERR_INVALID_VAL`] if input recorder is nullptr or recorder pause failed.
    ///
    /// Available since API-level: 18
    #[cfg(feature = "api-18")]
    #[cfg_attr(docsrs, doc(cfg(feature = "api-18")))]
    pub fn OH_AVRecorder_Pause(recorder: *mut OH_AVRecorder) -> OH_AVErrCode;
    /// Resume AVRecorder.
    ///
    /// Required System Capabilities: SystemCapability.Multimedia.Media.AVRecorder
    /// # Arguments
    ///
    /// * `recorder` - Pointer to an OH_AVRecorder instance
    ///
    /// # Returns
    ///
    /// * Function result code.
    /// [`AV_ERR_OK`] if the execution is successful.
    /// [`AV_ERR_INVALID_VAL`] if input recorder is nullptr or recorder resume failed.
    ///
    /// Available since API-level: 18
    #[cfg(feature = "api-18")]
    #[cfg_attr(docsrs, doc(cfg(feature = "api-18")))]
    pub fn OH_AVRecorder_Resume(recorder: *mut OH_AVRecorder) -> OH_AVErrCode;
    /// Stop AVRecorder.
    ///
    /// Required System Capabilities: SystemCapability.Multimedia.Media.AVRecorder
    /// # Arguments
    ///
    /// * `recorder` - Pointer to an OH_AVRecorder instance
    ///
    /// # Returns
    ///
    /// * Function result code.
    /// [`AV_ERR_OK`] if the execution is successful.
    /// [`AV_ERR_INVALID_VAL`] if input recorder is nullptr or recorder stop failed.
    ///
    /// Available since API-level: 18
    #[cfg(feature = "api-18")]
    #[cfg_attr(docsrs, doc(cfg(feature = "api-18")))]
    pub fn OH_AVRecorder_Stop(recorder: *mut OH_AVRecorder) -> OH_AVErrCode;
    /// Reset AVRecorder.
    ///
    /// Required System Capabilities: SystemCapability.Multimedia.Media.AVRecorder
    /// # Arguments
    ///
    /// * `recorder` - Pointer to an OH_AVRecorder instance
    ///
    /// # Returns
    ///
    /// * Function result code.
    /// [`AV_ERR_OK`] if the execution is successful.
    /// [`AV_ERR_INVALID_VAL`] if input recorder is nullptr or recorder reset failed.
    ///
    /// Available since API-level: 18
    #[cfg(feature = "api-18")]
    #[cfg_attr(docsrs, doc(cfg(feature = "api-18")))]
    pub fn OH_AVRecorder_Reset(recorder: *mut OH_AVRecorder) -> OH_AVErrCode;
    /// Release AVRecorder.
    ///
    /// Required System Capabilities: SystemCapability.Multimedia.Media.AVRecorder
    /// # Arguments
    ///
    /// * `recorder` - Pointer to an OH_AVRecorder instance
    ///
    /// # Returns
    ///
    /// * Function result code.
    /// [`AV_ERR_OK`] if the execution is successful.
    /// [`AV_ERR_INVALID_VAL`] if input recorder is nullptr or recorder release failed.
    ///
    /// Available since API-level: 18
    #[cfg(feature = "api-18")]
    #[cfg_attr(docsrs, doc(cfg(feature = "api-18")))]
    pub fn OH_AVRecorder_Release(recorder: *mut OH_AVRecorder) -> OH_AVErrCode;
    /// Get available encoder and encoder info for AVRecorder.
    ///
    /// Required System Capabilities: SystemCapability.Multimedia.Media.AVRecorder
    /// # Arguments
    ///
    /// * `recorder` - Pointer to an OH_AVRecorder instance
    ///
    /// * `info` - Pointer to an OH_AVRecorder_EncoderInfo instance, see [`OH_AVRecorder_EncoderInfo`]
    ///
    /// * `length` - Length of available encoders
    ///
    /// # Returns
    ///
    /// * Function result code.
    /// [`AV_ERR_OK`] if the execution is successful.
    /// [`AV_ERR_INVALID_VAL`] if input recorder is nullptr.
    /// [`AV_ERR_NO_MEMORY`] failed to malloc memory.
    ///
    /// Available since API-level: 18
    #[cfg(feature = "api-18")]
    #[cfg_attr(docsrs, doc(cfg(feature = "api-18")))]
    pub fn OH_AVRecorder_GetAvailableEncoder(
        recorder: *mut OH_AVRecorder,
        info: *mut *mut OH_AVRecorder_EncoderInfo,
        length: *mut i32,
    ) -> OH_AVErrCode;
    /// Set the state callback function so that your application can respond to the
    /// state change events generated by the av recorder. This interface must be called before Start is called.
    ///
    /// Required System Capabilities: SystemCapability.Multimedia.Media.AVRecorder
    /// # Arguments
    ///
    /// * `recorder` - Pointer to an OH_AVRecorder instance
    ///
    /// * `callback` - State callback function, see [`OH_AVRecorder_OnStateChange`]
    ///
    /// * `userData` - Pointer to user specific data
    ///
    /// # Returns
    ///
    /// * Function result code.
    /// [`AV_ERR_OK`] if the execution is successful.
    /// [`AV_ERR_INVALID_VAL`] if input recorder is nullptr or input callback is nullptr.
    ///
    /// Available since API-level: 18
    #[cfg(feature = "api-18")]
    #[cfg_attr(docsrs, doc(cfg(feature = "api-18")))]
    pub fn OH_AVRecorder_SetStateCallback(
        recorder: *mut OH_AVRecorder,
        callback: OH_AVRecorder_OnStateChange,
        userData: *mut ::core::ffi::c_void,
    ) -> OH_AVErrCode;
    /// Set the error callback function so that your application can respond to the
    /// error events generated by the av recorder. This interface must be called before Start is called.
    ///
    /// Required System Capabilities: SystemCapability.Multimedia.Media.AVRecorder
    /// # Arguments
    ///
    /// * `recorder` - Pointer to an OH_AVRecorder instance
    ///
    /// * `callback` - Error callback function, see [`OH_AVRecorder_OnError`]
    ///
    /// * `userData` - Pointer to user specific data
    ///
    /// # Returns
    ///
    /// * Function result code.
    /// [`AV_ERR_OK`] if the execution is successful.
    /// [`AV_ERR_INVALID_VAL`] if input recorder is nullptr or input callback is nullptr.
    ///
    /// Available since API-level: 18
    #[cfg(feature = "api-18")]
    #[cfg_attr(docsrs, doc(cfg(feature = "api-18")))]
    pub fn OH_AVRecorder_SetErrorCallback(
        recorder: *mut OH_AVRecorder,
        callback: OH_AVRecorder_OnError,
        userData: *mut ::core::ffi::c_void,
    ) -> OH_AVErrCode;
    /// Set recorder configuration, if app want its recorder only to be muted instead of interrupted.
    ///
    /// # Arguments
    ///
    /// * `recorder` - Pointer to an OH_AVRecorder instance
    ///
    /// * `muteWhenInterrupted` - use `true` if application want to be muted instead of interrupted.
    ///
    /// # Returns
    ///
    /// * Function result code.
    /// [`AV_ERR_OK`] if the execution is successful.
    /// [`AV_ERR_INVALID_VAL`] if input recorder is nullptr.
    /// [`AV_ERR_INVALID_STATE`] function called in invalid state, only available before prepare state.
    ///
    /// Available since API-level: 20
    #[cfg(feature = "api-20")]
    #[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
    pub fn OH_AVRecorder_SetWillMuteWhenInterrupted(
        recorder: *mut OH_AVRecorder,
        muteWhenInterrupted: bool,
    ) -> OH_AVErrCode;
}