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*。