#![allow(non_upper_case_globals)]
#![allow(non_camel_case_types)]
#![allow(non_snake_case)]
#![allow(deprecated)]
#[cfg(feature = "api-12")]
use crate::avcodec_base::OH_AVDataSource;
#[cfg(feature = "api-20")]
use crate::avcodec_base::OH_AVDataSourceExt;
#[allow(unused_imports)]
use crate::averrors::OH_AVErrCode;
use crate::avformat::OH_AVFormat;
#[repr(C)]
pub struct OH_AVSource {
_unused: [u8; 0],
}
extern "C" {
#[cfg(feature = "api-12")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
pub fn OH_AVSource_CreateWithDataSource(dataSource: *mut OH_AVDataSource) -> *mut OH_AVSource;
#[cfg(feature = "api-20")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
pub fn OH_AVSource_CreateWithDataSourceExt(
dataSource: *mut OH_AVDataSourceExt,
userData: *mut ::core::ffi::c_void,
) -> *mut OH_AVSource;
pub fn OH_AVSource_CreateWithURI(uri: *mut ::core::ffi::c_char) -> *mut OH_AVSource;
pub fn OH_AVSource_CreateWithFD(fd: i32, offset: i64, size: i64) -> *mut OH_AVSource;
pub fn OH_AVSource_Destroy(source: *mut OH_AVSource) -> OH_AVErrCode;
pub fn OH_AVSource_GetSourceFormat(source: *mut OH_AVSource) -> *mut OH_AVFormat;
pub fn OH_AVSource_GetTrackFormat(
source: *mut OH_AVSource,
trackIndex: u32,
) -> *mut OH_AVFormat;
#[cfg(feature = "api-18")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-18")))]
pub fn OH_AVSource_GetCustomMetadataFormat(source: *mut OH_AVSource) -> *mut OH_AVFormat;
}