native_avcodec_base.h
概述
声明用于音视频封装、解封装、编解码基础功能的Native API。
库: libnative_media_codecbase.so
起始版本: 9
相关模块:CodecBase
汇总
结构体
名称 | 描述 |
---|---|
struct OH_AVCodecAsyncCallback | OH_AVCodec中所有异步回调函数指针的集合。 |
struct OH_AVCodecCallback | OH_AVCodec中所有异步回调函数指针的集合。 |
类型定义
名称 | 描述 |
---|---|
typedef void(* OH_AVCodecOnError) (OH_AVCodec *codec, int32_t errorCode, void *userData) | 当OH_AVCodec实例运行出错时,会调用来上报具体的错误信息的函数指针。 |
typedef void(* OH_AVCodecOnStreamChanged) (OH_AVCodec *codec, OH_AVFormat *format, void *userData) | 当输出码流发生变化时,将调用此函数指针报告新的流描述信息。 |
typedef void(* OH_AVCodecOnNeedInputData) (OH_AVCodec *codec, uint32_t index, OH_AVMemory *data, void *userData) | 当OH_AVCodec在运行过程中需要新的输入数据时,将调用此函数指针,并携带可用的缓冲区来填充新的输入数据。 |
typedef void(* OH_AVCodecOnNewOutputData) (OH_AVCodec *codec, uint32_t index, OH_AVMemory *data, OH_AVCodecBufferAttr *attr, void *userData) | 当OH_AVCodec运行过程中生成新的输出数据时,将调用此函数指针,并携带包含新输出数据的缓冲区。 |
typedef void(* OH_AVCodecOnNeedInputBuffer) (OH_AVCodec *codec, uint32_t index, OH_AVBuffer *buffer, void *userData) | 当OH_AVCodec在运行过程中需要新的输入数据时,将调用此函数指针,并携带可用的缓冲区来填充新的输入数据。 |
typedef void(* OH_AVCodecOnNewOutputBuffer) (OH_AVCodec *codec, uint32_t index, OH_AVBuffer *buffer, void *userData) | 当OH_AVCodec运行过程中生成新的输出数据时,将调用此函数指针,并携带包含新输出数据的缓冲区。 |
typedef struct OH_AVCodecAsyncCallback OH_AVCodecAsyncCallback | OH_AVCodec中所有异步回调函数指针的集合。 |
typedef struct OH_AVCodecCallback OH_AVCodecCallback | OH_AVCodec中所有异步回调函数指针的集合。 |
typedef enum OH_MediaType OH_MediaType | 媒体类型。 |
typedef enum OH_AACProfile OH_AACProfile | AAC配置。 |
typedef enum OH_AVCProfile OH_AVCProfile | AVC配置。 |
typedef enum OH_HEVCProfile OH_HEVCProfile | HEVC配置。 |
typedef enum OH_AVOutputFormat OH_AVOutputFormat | 枚举封装器的输出文件格式。 |
typedef enum OH_AVSeekMode OH_AVSeekMode | 跳转模式。 |
typedef enum OH_ScalingMode OH_ScalingMode | 缩放模式。 |
typedef enum OH_BitsPerSample OH_BitsPerSample | 枚举每个编码样本的音频位数。 |
typedef enum OH_ColorPrimary OH_ColorPrimary | 色域。 |
typedef enum OH_TransferCharacteristic OH_TransferCharacteristic | 转移特性。 |
typedef enum OH_MatrixCoefficient OH_MatrixCoefficient | 矩阵系数。 |
枚举
名称 | 描述 |
---|---|
OH_MediaType { MEDIA_TYPE_AUD = 0, MEDIA_TYPE_VID = 1 } |
媒体类型。 |
OH_AACProfile { AAC_PROFILE_LC = 0 } | AAC配置。 |
OH_AVCProfile { AVC_PROFILE_BASELINE = 0, AVC_PROFILE_HIGH = 4, AVC_PROFILE_MAIN = 8 } |
AVC配置。 |
OH_HEVCProfile { HEVC_PROFILE_MAIN = 0, HEVC_PROFILE_MAIN_10 = 1, HEVC_PROFILE_MAIN_STILL = 2, HEVC_PROFILE_MAIN_10_HDR10 = 3, HEVC_PROFILE_MAIN_10_HDR10_PLUS = 4 } |
HEVC配置。 |
OH_AVOutputFormat { AV_OUTPUT_FORMAT_DEFAULT = 0, AV_OUTPUT_FORMAT_MPEG_4 = 2, AV_OUTPUT_FORMAT_M4A = 6 } |
枚举封装器的输出文件格式。 |
OH_AVSeekMode { SEEK_MODE_NEXT_SYNC = 0, SEEK_MODE_PREVIOUS_SYNC, SEEK_MODE_CLOSEST_SYNC } |
跳转模式。 |
OH_ScalingMode { SCALING_MODE_SCALE_TO_WINDOW = 1, SCALING_MODE_SCALE_CROP = 2 } |
缩放模式。 |
OH_BitsPerSample { SAMPLE_U8 = 0, SAMPLE_S16LE = 1, SAMPLE_S24LE = 2, SAMPLE_S32LE = 3, SAMPLE_F32LE = 4, SAMPLE_U8P = 5, SAMPLE_S16P = 6, SAMPLE_S24P = 7, SAMPLE_S32P = 8, SAMPLE_F32P = 9, INVALID_WIDTH = -1 } |
枚举每个编码样本的音频位数。 |
OH_ColorPrimary { COLOR_PRIMARY_BT709 = 1, COLOR_PRIMARY_UNSPECIFIED = 2, COLOR_PRIMARY_BT470_M = 4, COLOR_PRIMARY_BT601_625 = 5, COLOR_PRIMARY_BT601_525 = 6, COLOR_PRIMARY_SMPTE_ST240 = 7, COLOR_PRIMARY_GENERIC_FILM = 8, COLOR_PRIMARY_BT2020 = 9, COLOR_PRIMARY_SMPTE_ST428 = 10, COLOR_PRIMARY_P3DCI = 11, COLOR_PRIMARY_P3D65 = 12 } |
色域。 |
OH_TransferCharacteristic { TRANSFER_CHARACTERISTIC_BT709 = 1, TRANSFER_CHARACTERISTIC_UNSPECIFIED = 2, TRANSFER_CHARACTERISTIC_GAMMA_2_2 = 4, TRANSFER_CHARACTERISTIC_GAMMA_2_8 = 5, TRANSFER_CHARACTERISTIC_BT601 = 6, TRANSFER_CHARACTERISTIC_SMPTE_ST240 = 7, TRANSFER_CHARACTERISTIC_LINEAR = 8, TRANSFER_CHARACTERISTIC_LOG = 9, TRANSFER_CHARACTERISTIC_LOG_SQRT = 10, TRANSFER_CHARACTERISTIC_IEC_61966_2_4 = 11, TRANSFER_CHARACTERISTIC_BT1361 = 12, TRANSFER_CHARACTERISTIC_IEC_61966_2_1 = 13, TRANSFER_CHARACTERISTIC_BT2020_10BIT = 14, TRANSFER_CHARACTERISTIC_BT2020_12BIT = 15, TRANSFER_CHARACTERISTIC_PQ = 16, TRANSFER_CHARACTERISTIC_SMPTE_ST428 = 17, TRANSFER_CHARACTERISTIC_HLG = 18 } |
转移特性。 |
OH_MatrixCoefficient { MATRIX_COEFFICIENT_IDENTITY = 0, MATRIX_COEFFICIENT_BT709 = 1, MATRIX_COEFFICIENT_UNSPECIFIED = 2, MATRIX_COEFFICIENT_FCC = 4, MATRIX_COEFFICIENT_BT601_625 = 5, MATRIX_COEFFICIENT_BT601_525 = 6, MATRIX_COEFFICIENT_SMPTE_ST240 = 7, MATRIX_COEFFICIENT_YCGCO = 8, MATRIX_COEFFICIENT_BT2020_NCL = 9, MATRIX_COEFFICIENT_BT2020_CL = 10, MATRIX_COEFFICIENT_SMPTE_ST2085 = 11, MATRIX_COEFFICIENT_CHROMATICITY_NCL = 12, MATRIX_COEFFICIENT_CHROMATICITY_CL = 13, MATRIX_COEFFICIENT_ICTCP = 14 } |
矩阵系数。 |
变量
名称 | 描述 |
---|---|
const char * OH_AVCODEC_MIMETYPE_VIDEO_AVC | AVC(H.264)视频编解码器的MIME类型。 |
const char * OH_AVCODEC_MIMETYPE_AUDIO_AAC | AAC音频编解码器的MIME类型。 |
const char * OH_AVCODEC_MIMETYPE_AUDIO_FLAC | FLAC音频编解码器的MIME类型。 |
const char * OH_AVCODEC_MIMETYPE_AUDIO_VORBIS | VORBIS音频解码器的MIME类型。 |
const char * OH_AVCODEC_MIMETYPE_AUDIO_MPEG | MP3音频解码器的MIME类型。 |
const char * OH_AVCODEC_MIMETYPE_VIDEO_HEVC | HEVC(H.265)视频编解码器的MIME类型。 |
const char * OH_AVCODEC_MIMETYPE_VIDEO_MPEG4 | MPEG4视频编码的MIME类型,仅用于封装MPEG4视频码流使用。 |
const char * OH_AVCODEC_MIMETYPE_IMAGE_JPG | JPG图片编码的MIME类型,仅用于封装JPG封面时使用。 |
const char * OH_AVCODEC_MIMETYPE_IMAGE_PNG | PNG图片编码的MIME类型,仅用于封装PNG封面时使用。 |
const char * OH_AVCODEC_MIMETYPE_IMAGE_BMP | BMP图片编码的MIME类型,仅用于封装BMP封面时使用。 |
const char * OH_AVCODEC_MIMETYPE_AUDIO_VIVID | AudioVivid音频解码器的MIME类型。(此规格暂未开放) |
const char * OH_AVCODEC_MIMETYPE_AUDIO_AMR_NB | AMR_NB音频解码器的MIME类型。 |
const char * OH_AVCODEC_MIMETYPE_AUDIO_AMR_WB | AMR_WB音频解码器的MIME类型。 |
const char * OH_AVCODEC_MIMETYPE_AUDIO_OPUS | OPUS音频编解码器的MIME类型。(此规格暂未开放) |
const char * OH_AVCODEC_MIMETYPE_AUDIO_G711MU | G711MU音频编解码器的MIME类型。 |
const char * OH_ED_KEY_TIME_STAMP | 表面的额外数据中时间戳的键,值类型为int64。 |
const char * OH_ED_KEY_EOS | 表面的额外数据中流结束符的键,值类型为bool。 |
const char * OH_MD_KEY_TRACK_TYPE | 曲目类型的键,值类型为uint8_t,请参见OH_MediaType。 |
const char * OH_MD_KEY_CODEC_MIME | 编解码器mime类型的键,值类型为string。 |
const char * OH_MD_KEY_DURATION | 持续时间键,值类型为int64_t。 |
const char * OH_MD_KEY_BITRATE | 比特率的键,值类型为int64_t。 |
const char * OH_MD_KEY_MAX_INPUT_SIZE | 最大输入大小的键,值类型为uint32_t。 |
const char * OH_MD_KEY_WIDTH | 视频宽度的键,值类型为uint32_t。 |
const char * OH_MD_KEY_HEIGHT | 视频高度键,值类型为uint32_t。 |
const char * OH_MD_KEY_PIXEL_FORMAT | 视频像素格式的键,值类型为int32_t,请参见OH_AVPixelFormat。 |
const char * OH_MD_KEY_AUDIO_SAMPLE_FORMAT | 音频原始格式的键,值类型为uint32_t,请参见OH_BitsPerSample。 |
const char * OH_MD_KEY_FRAME_RATE | 视频帧率的键,值类型为double。 |
const char * OH_MD_KEY_VIDEO_ENCODE_BITRATE_MODE | 视频编码码率模式,值类型为int32_t,请参见OH_VideoEncodeBitrateMode。 |
const char * OH_MD_KEY_PROFILE | 编码档次,值类型为int32_t请参见OH_HEVCProfile, OH_AACProfile。 |
const char * OH_MD_KEY_AUD_CHANNEL_COUNT | 音频通道计数键,值类型为uint32_t。 |
const char * OH_MD_KEY_AUD_SAMPLE_RATE | 音频采样率键,值类型为uint32_t。 |
const char * OH_MD_KEY_I_FRAME_INTERVAL | 关键帧间隔的键,值类型为int32_t,单位为毫秒。 |
const char * OH_MD_KEY_ROTATION | 表面旋转角度的键。值类型为int32_t:应为{0, 90, 180, 270},默认值为0。 |
const char * OH_MD_KEY_RANGE_FLAG | 视频YUV值域标志的键,值类型为bool,true表示full range,false表示limited range。 |
const char * OH_MD_KEY_COLOR_PRIMARIES | 视频色域的键, 值类型为int32_t, 请参见OH_ColorPrimary,遵循H.273标准Table2。 |
const char * OH_MD_KEY_TRANSFER_CHARACTERISTICS | 视频传递函数的键,值类型为int32_t,请参见OH_TransferCharacteristic,遵循H.273标准Table3。 |
const char * OH_MD_KEY_MATRIX_COEFFICIENTS | 视频矩阵系数的键,值类型为int32_t,请参见OH_MatrixCoefficient,遵循H.273标准Table4。 |
const char * OH_MD_KEY_REQUEST_I_FRAME | 请求立即编码I帧的键。值类型为bool。 |
const char * OH_MD_KEY_QUALITY | 所需编码质量的键。值类型为uint32_t,此键仅适用于配置在恒定质量模式下的编码器。 |
const char * OH_MD_KEY_CODEC_CONFIG | 编解码器特定数据的键,值类型为uint8_t*。 |
const char * OH_MD_KEY_TITLE | 源格式标题的键,值类型为string。 |
const char * OH_MD_KEY_ARTIST | 艺术家的源格式键,值类型为string。 |
const char * OH_MD_KEY_ALBUM | 相册的源格式键,值类型为string。 |
const char * OH_MD_KEY_ALBUM_ARTIST | 相册艺术家的键,值类型为string。 |
const char * OH_MD_KEY_DATE | 源格式日期的键,值类型为string。 |
const char * OH_MD_KEY_COMMENT | 源格式注释的键,值类型为string。 |
const char * OH_MD_KEY_GENRE | 源格式类型的键,值类型为string。 |
const char * OH_MD_KEY_COPYRIGHT | 源格式版权的键,值类型为string。 |
const char * OH_MD_KEY_LANGUAGE | 源格式语言的键,值类型为string。 |
const char * OH_MD_KEY_DESCRIPTION | 源格式描述的键,值类型为string。 |
const char * OH_MD_KEY_LYRICS | 源格式歌词的键,值类型为string。 |
const char * OH_MD_KEY_TRACK_COUNT | 源格式轨道数量的键,值类型为uint32_t。 |
const char * OH_MD_KEY_CHANNEL_LAYOUT | 所需编码通道布局的键。值类型为int64_t,此键仅适用于编码器。 |
const char * OH_MD_KEY_BITS_PER_CODED_SAMPLE | 每个编码样本位数的键,值类型为uint32_t,支持flac编码器,请参见OH_BitsPerSample。 |
const char * OH_MD_KEY_AAC_IS_ADTS | aac格式的键,值类型为uint32_t,aac解码器支持。 |
const char * OH_MD_KEY_SBR | aac sbr模式的键,值类型为uint32_t,aac编码器支持。 |
const char * OH_MD_KEY_COMPLIANCE_LEVEL | flac合规性级别的键,值类型为int32_t。 |
const char * OH_MD_KEY_IDENTIFICATION_HEADER | vorbis标识头的键,值类型为uint8_t*,仅vorbis解码器支持。 |
const char * OH_MD_KEY_SETUP_HEADER | vorbis设置头的键,值类型为uint8_t*,仅vorbis解码器支持。 |
const char * OH_MD_KEY_SCALING_MODE | 视频表面尺度类型, 值类型为int32_t, 请参见OH_ScalingMode。 |
const char * OH_MD_MAX_INPUT_BUFFER_COUNT | 最大输入缓冲区个数的键, 值类型为int32_t。 |
const char * OH_MD_MAX_OUTPUT_BUFFER_COUNT | 最大输出缓冲区个数的键, 值类型int32_t。 |
const char * OH_MD_KEY_AUDIO_COMPRESSION_LEVEL | 音频编解码压缩水平的键,值类型为uint32_t。 |
const char * OH_MD_KEY_VIDEO_IS_HDR_VIVID | 查询是否是hdr vivid的键,值类型为bool。 |
const char * OH_MD_KEY_AUDIO_OBJECT_NUMBER | 音频对象数目的键. 值类型为int32_t。 |
const char * OH_MD_KEY_AUDIO_VIVID_METADATA | audio vivid元数据的键,值类型为uint8_t*。 |