native_avcodec_base.h

概述

声明运行音视频编解码通用的结构体、字符常量、枚举。

起始版本:

9

相关模块:

CodecBase

汇总

结构体

名称 描述
OH_AVCodecBufferAttr 定义OH_AVCodec的缓冲区描述信息。
OH_AVCodecAsyncCallback OH_AVCodec中所有异步回调函数指针的集合。

类型定义

名称 描述
OH_AVCodecBufferFlags 枚举OH_AVCodec缓冲区标记的类别。
OH_AVOutputFormat 枚举封装器的输出文件格式。
OH_AVCodecBufferAttr 定义OH_AVCodec的缓冲区描述信息。
(*OH_AVCodecOnError) (OH_AVCodec *codec, int32_t errorCode, void *userData) 当OH_AVCodec实例运行出错时,会调用来上报具体的错误信息的函数指针。
(*OH_AVCodecOnStreamChanged) (OH_AVCodec *codec, OH_AVFormat *format, void *userData) 当输出流发生变化时,将调用此函数指针报告新的流描述信息。
(*OH_AVCodecOnNeedInputData) (OH_AVCodec *codec, uint32_t index, OH_AVMemory *data, void *userData) 当OH_AVCodec在运行过程中需要新的输入数据时,将调用此函数指针,并携带可用的缓冲区来填充新的输入数据。
(*OH_AVCodecOnNewOutputData) (OH_AVCodec *codec, uint32_t index, OH_AVMemory *data, OH_AVCodecBufferAttr *attr, void *userData) 当OH_AVCodec运行过程中生成新的输出数据时,将调用此函数指针,并携带包含新输出数据的缓冲区。
OH_AVCodecAsyncCallback OH_AVCodec中所有异步回调函数指针的集合。
OH_MediaType 媒体类型。
OH_AVCProfile AVC Profile枚举。
OH_HEVCProfile HEVC Profile枚举。
OH_AACProfile AAC Profile枚举。
OH_AVSeekMode 跳转模式。
OH_ColorPrimary 原色。
OH_TransferCharacteristic 转移特性。
OH_MatrixCoefficient 矩阵系数。
OH_BitsPerSample 枚举每个编码样本的音频位数。

枚举

名称 描述
OH_AVCodecBufferFlags {
    AVCODEC_BUFFER_FLAGS_NONE = 0,
    AVCODEC_BUFFER_FLAGS_EOS = 1 << 0,
    AVCODEC_BUFFER_FLAGS_SYNC_FRAME = 1 << 1,
    AVCODEC_BUFFER_FLAGS_INCOMPLETE_FRAME = 1 << 2,
    AVCODEC_BUFFER_FLAGS_CODEC_DATA = 1 << 3
}
枚举OH_AVCodec缓冲区标记的类别。
OH_AVOutputFormat {
    AV_OUTPUT_FORMAT_DEFAULT = 0,
    AV_OUTPUT_FORMAT_MPEG_4 = 2,
    AV_OUTPUT_FORMAT_M4A = 6
}
枚举封装器的输出文件格式。
OH_MediaType {
    MEDIA_TYPE_AUD = 0,
    MEDIA_TYPE_VID = 1
}
媒体类型。
OH_AVCProfile {
    AVC_PROFILE_BASELINE = 0,
    AVC_PROFILE_HIGH = 4,
    AVC_PROFILE_MAIN = 8
}
AVC Profile枚举。
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 Profile枚举。
OH_AACProfile {
    AAC_PROFILE_LC = 0
}
AAC Profile枚举。
OH_AVSeekMode {
    SEEK_MODE_NEXT_SYNC = 0,
    SEEK_MODE_PREVIOUS_SYNC,
    SEEK_MODE_CLOSEST_SYNC
}
跳转模式。
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
}
矩阵系数。
OH_BitsPerSample {
    SAMPLE_U8 = 0,
    SAMPLE_S16LE = 1,
    SAMPLE_S24LE = 2,
    SAMPLE_S32LE = 3,
    SAMPLE_F32LE = 4,i
    SAMPLE_U8P = 5,
    SAMPLE_S16P = 6,
    SAMPLE_S24P = 7,
    SAMPLE_S32P = 8,
    SAMPLE_F32P = 9,
    INVALID_WIDTH = -1
}
枚举每个编码样本的音频位数。

变量

名称 描述
OH_AVCodecBufferAttr::pts 此缓冲区的显示时间戳(以微秒为单位)
OH_AVCodecBufferAttr::size 缓冲区中包含的数据的大小(以字节为单位)
OH_AVCodecBufferAttr::offset 此缓冲区中有效数据的起始偏移量
OH_AVCodecBufferAttr::flags 此缓冲区具有的标志,也是多个OH_AVCodecBufferFlags的组合。
OH_AVCodecAsyncCallback::onError 监控编解码器操作错误,请参见OH_AVCodecOnError
OH_AVCodecAsyncCallback::onStreamChanged 监控编解码器流变化,请参见OH_AVCodecOnStreamChanged
OH_AVCodecAsyncCallback::onNeedInputData 监控编解码器需要输入数据,请参见OH_AVCodecOnNeedInputData
OH_AVCodecAsyncCallback::onNeedOutputData 监控编解码器已生成输出数据,请参见OH_AVCodecOnNewOutputData
*OH_AVCODEC_MIMETYPE_VIDEO_AVC AVC视频编解码器的MIME类型。
*OH_AVCODEC_MIMETYPE_AUDIO_AAC AAC音频编解码器的MIME类型。
*OH_AVCODEC_MIMETYPE_VIDEO_MPEG4 MPEG4视频编解码器的MIME类型。
*OH_AVCODEC_MIMETYPE_VIDEO_HEVC HEVC视频编解码器的MIME类型。
*OH_AVCODEC_MIMETYPE_AUDIO_MPEG MPEG音频编解码器的MIME类型。
*OH_AVCODEC_MIMETYPE_IMAGE_JPG JPG图片编解码器的MIME类型。
*OH_AVCODEC_MIMETYPE_IMAGE_PNG PNG图片编解码器的MIME类型。
*OH_AVCODEC_MIMETYPE_IMAGE_BMP BMP图片编解码器的MIME类型。
*OH_AVCODEC_MIMETYPE_AUDIO_FLAC FLAC音频编解码器的MIME类型。
*OH_AVCODEC_MIMETYPE_AUDIO_VORBIS VORBIS音频编解码器的MIME类型。
*OH_ED_KEY_TIME_STAMP 表面的额外数据中时间戳的键,值类型为int64
*OH_ED_KEY_EOS 表面的额外数据中流结束符的键,值类型为bool
*OH_MD_KEY_TRACK_TYPE 提供统一容器,用于存储媒体描述。
*OH_MD_KEY_CODEC_MIME 编解码器mime类型的键,值类型为字符串。
*OH_MD_KEY_DURATION 持续时间键,值类型为int64_t。
*OH_MD_KEY_BITRATE 比特率的键,值类型为uint32_t。
*OH_MD_KEY_MAX_INPUT_SIZE 最大输入大小的键,值类型为uint32_t
*OH_MD_KEY_WIDTH 视频宽度的键,值类型为uint32_t
*OH_MD_KEY_HEIGHT 视频高度键,值类型为uint32_t
*OH_MD_KEY_PIXEL_FORMAT 视频像素格式的键,值类型为int32_t,具体见OH_AVPixelFormat
*OH_MD_KEY_RANGE_FLAG 视频YUV取值范围标志的键,值类型为bool
*OH_MD_KEY_COLOR_PRIMARIES 视频颜色原色键, 值类型为int32_t
*OH_MD_KEY_TRANSFER_CHARACTERISTICS 视频转移特性的键,值类型为int32_t
*OH_MD_KEY_MATRIX_COEFFICIENTS 视频矩阵系数的键,值类型为int32_t
*OH_MD_KEY_AUDIO_SAMPLE_FORMAT 音频原始格式的键,值类型为uint32_t
*OH_MD_KEY_FRAME_RATE 视频帧率的键,值类型为双精度浮点。
*OH_MD_KEY_VIDEO_ENCODE_BITRATE_MODE 视频编码码率模式,值类型为int32_t,具体见OH_VideoEncodeBitrateMode
*OH_MD_KEY_PROFILE 编码模板,值类型为数字,具体见OH_AVCProfileOH_AACProfileCodecBase
*OH_MD_KEY_AUD_CHANNEL_COUNT 音频通道计数键,值类型为uint32_t
*OH_MD_KEY_AUD_SAMPLE_RATE 音频采样率键,值类型为uint32_t
*OH_MD_KEY_I_FRAME_INTERVAL 关键帧间隔的键,值类型为int32_t,单位为毫秒。
*OH_MD_KEY_ROTATION 表面旋转角度的键。值类型为int32_t:应为{0, 90, 180, 270},默认值为0。
*OH_MD_KEY_CODEC_CONFIG 编解码器特定数据的键,值类型为uint8_t*。
*OH_MD_KEY_REQUEST_I_FRAME 请求立即编码I帧的键。值类型为布尔值
*OH_MD_KEY_QUALITY 所需编码质量的键。值类型为uint32_t,此键仅适用于配置在恒定质量模式下的编码器
*OH_MD_KEY_CHANNEL_LAYOUT 所需编码通道布局的键。值类型为int64_t,此键仅适用于编码器。
*OH_MD_KEY_BITS_PER_CODED_SAMPLE 每个编码样本位数的键,值类型为uint32_t,支持flac编码器。
*OH_MD_KEY_AAC_IS_ADTS aac格式的键,值类型为uint32_t,aac解码器支持。
*OH_MD_KEY_SBR aac sbr模式的键,值类型为uint32_t,aac编码器支持。
*OH_MD_KEY_COMPLIANCE_LEVEL flac合规性级别的键,值类型为int32_t。
*OH_MD_KEY_IDENTIFICATION_HEADER vorbis标识头的键,值类型为uint8_t*,仅vorbis解码器支持。
*OH_MD_KEY_SETUP_HEADER vorbis设置头的键,值类型为uint8_t*,仅vorbis解码器支持。
*OH_MD_KEY_TITLE 源格式标题的键,值类型为字符串
*OH_MD_KEY_ARTIST 艺术家的源格式Key,值类型为字符串
*OH_MD_KEY_ALBUM 相册的源格式键,值类型为字符串
*OH_MD_KEY_ALBUM_ARTIST 源格式专辑_artist的键,值类型为字符串
*OH_MD_KEY_DATE 源格式日期的键,值类型为字符串
*OH_MD_KEY_COMMENT 源格式注释的键,值类型为字符串
*OH_MD_KEY_GENRE 源格式类型的键,值类型为字符串
*OH_MD_KEY_COPYRIGHT 源格式版权的键,值类型为字符串
*OH_MD_KEY_LANGUAGE 源格式语言的键,值类型为字符串
*OH_MD_KEY_DESCRIPTION 源格式描述的键,值类型为字符串
*OH_MD_KEY_LYRICS 源格式歌词的键,值类型为字符串
*OH_MD_KEY_TRACK_COUNT 源格式轨道计数的键,值类型为uint32_t
*OH_MD_MAX_INPUT_BUFFER_COUNT 输入buffer的最大个数,值类型为int32_t
*OH_MD_MAX_OUTPUT_BUFFER_COUNT 输出buffer的最大个数,值类型为int32_t