CodecBase
Overview
The CodecBase module provides the variables, attributes, and functions for basic audio and video multiplexing, demultiplexing, encoding, and decoding.
System capability: SystemCapability.Multimedia.Media.CodecBase
Since: 9
Files
| Name | Description |
|---|---|
| avcodec_audio_channel_layout.h | Declares the enums used for audio codec channel layouts. |
| native_avcodec_base.h | Declares the native APIs used for basic audio and video multiplexing, demultiplexing, encoding, and decoding. |
Media Codec Formats
The table below lists the media codec formats. The type is a constant string.
| Name | Description |
|---|---|
| OH_AVCODEC_MIMETYPE_AUDIO_AAC | MIME type of the AAC audio codec. |
| OH_AVCODEC_MIMETYPE_AUDIO_FLAC | MIME type of the FLAC audio codec. |
| OH_AVCODEC_MIMETYPE_AUDIO_OPUS | MIME type of the Opus audio codec. (This specification is not available yet.) |
| OH_AVCODEC_MIMETYPE_AUDIO_G711MU | MIME type of the G.711 mu-law audio codec. |
| OH_AVCODEC_MIMETYPE_AUDIO_G711A | MIME type of the G.711 a-law audio decoder. |
| OH_AVCODEC_MIMETYPE_AUDIO_RAW | MIME type of raw audio streams. |
| OH_AVCODEC_MIMETYPE_AUDIO_VORBIS | MIME type of the Vorbis audio decoder. |
| OH_AVCODEC_MIMETYPE_AUDIO_MPEG | MIME type of the MP3 audio codec. |
| OH_AVCODEC_MIMETYPE_AUDIO_VIVID | MIME type of the Audio Vivid audio decoder. (This specification is not available yet.) |
| OH_AVCODEC_MIMETYPE_AUDIO_AMR_NB | MIME type of the AMR-NB audio decoder. |
| OH_AVCODEC_MIMETYPE_AUDIO_AMR_WB | MIME type of the AMR-WB audio decoder. |
| OH_AVCODEC_MIMETYPE_AUDIO_APE | MIME type of the APE audio decoder. |
| OH_AVCODEC_MIMETYPE_AUDIO_ALAC | MIME type of the Apple Lossless Audio Codec (ALAC) audio decoder. |
| OH_AVCODEC_MIMETYPE_AUDIO_AC3 | MIME type of the Dolby Audio Coding 3 (AC 3) audio decoder. |
| OH_AVCODEC_MIMETYPE_AUDIO_EAC3 | MIME type of the Enhanced AC-3 (EAC3) audio decoder. |
| OH_AVCODEC_MIMETYPE_AUDIO_WMAV1 | MIME type of the Windows Media Audio (WMA) V1 audio decoder. |
| OH_AVCODEC_MIMETYPE_AUDIO_WMAV2 | MIME type of the WMA V2 audio decoder. |
| OH_AVCODEC_MIMETYPE_AUDIO_WMAPRO | MIME type of the WMA Pro audio decoder. |
| OH_AVCODEC_MIMETYPE_AUDIO_GSM | MIME type of the Global System for Mobile Communications (GSM) audio decoder. |
| OH_AVCODEC_MIMETYPE_AUDIO_GSM_MS | MIME type of the GSM Microsoft variant (MS) audio decoder. |
| OH_AVCODEC_MIMETYPE_AUDIO_TWINVQ | MIME type of the Transform-domain Weighted Interleave Vector Quantization (TWINVQ) audio decoder. This specification is supported since API version 23. |
| OH_AVCODEC_MIMETYPE_AUDIO_ILBC | MIME type of the Internet Low Bitrate Codec (ILBC) audio decoder. This specification is supported since API version 23. |
| OH_AVCODEC_MIMETYPE_AUDIO_TRUEHD | MIME type of the True High Definition (TRUEHD) audio decoder. This specification is supported since API version 23. |
| OH_AVCODEC_MIMETYPE_AUDIO_DVAUDIO | MIME type of the DVAUDIO (Digital Video Audio) audio decoder. This specification is supported since API version 23. |
| OH_AVCODEC_MIMETYPE_AUDIO_DTS | MIME type of the DTS (Digital Theater Systems) audio decoder. This specification is supported since API version 23. |
| OH_AVCODEC_MIMETYPE_AUDIO_COOK | MIME type of the Cook (RealAudio Cook) audio decoder. This specification is supported since API version 23. |
| OH_AVCODEC_MIMETYPE_VIDEO_VVC | MIME type of the VVC (H.266) video codec. |
| OH_AVCODEC_MIMETYPE_VIDEO_HEVC | MIME type of the HEVC (H.265) video codec. |
| OH_AVCODEC_MIMETYPE_VIDEO_AVC | MIME type of the AVC (H.264) video codec. |
| OH_AVCODEC_MIMETYPE_VIDEO_H263 | MIME type of the H.263 video codec. |
| OH_AVCODEC_MIMETYPE_VIDEO_VC1 | MIME type of the VC-1 video codec. This specification is supported since API version 22. |
| OH_AVCODEC_MIMETYPE_VIDEO_MSVIDEO1 | MIME type of the Microsoft Video 1 (MSVIDEO1) video codec. This specification is supported since API version 22. |
| OH_AVCODEC_MIMETYPE_VIDEO_WMV3 | MIME type of the WMV3 video codec. This specification is supported since API version 22. |
| OH_AVCODEC_MIMETYPE_VIDEO_MJPEG | MIME type of the Motion JPEG (MJPEG) video codec. This specification is supported since API version 22. |
| OH_AVCODEC_MIMETYPE_VIDEO_MPEG4 | MIME type of the MPEG4 video encoder, which is used only for multiplexing MPEG4 video streams. (It is deprecated from API version 11.) |
| OH_AVCODEC_MIMETYPE_VIDEO_MPEG4_PART2 | MIME type of the MPEG4 Part 2 video codec. |
| OH_AVCODEC_MIMETYPE_VIDEO_MPEG2 | MIME type of the MPEG2 video codec. |
| OH_AVCODEC_MIMETYPE_VIDEO_AV1 | MIME type of the AV1 video codec. This specification is supported since API version 23. |
| OH_AVCODEC_MIMETYPE_VIDEO_VP9 | MIME type of the VP9 video codec. This specification is supported since API version 23. |
| OH_AVCODEC_MIMETYPE_VIDEO_VP8 | MIME type of the VP8 video codec. This specification is supported since API version 23. |
| OH_AVCODEC_MIMETYPE_VIDEO_RV30 | MIME type of the RV30 video codec. This specification is supported since API version 23. |
| OH_AVCODEC_MIMETYPE_VIDEO_RV40 | MIME type of the RV40 video codec. This specification is supported since API version 23. |
| OH_AVCODEC_MIMETYPE_VIDEO_WVC1 | MIME type of the WVC1 video codec. This specification is supported since API version 23. |
| OH_AVCODEC_MIMETYPE_VIDEO_DVVIDEO | MIME type of the DVVIDEO (Digital Video) video codec. Supports DV NTSC, DV PAL, and DVCPRO HD. This specification is supported since API version 23. |
| OH_AVCODEC_MIMETYPE_VIDEO_RAWVIDEO | MIME type of the RAWVIDEO video codec. This specification is supported since API version 23. |
| OH_AVCODEC_MIMETYPE_VIDEO_MPEG1 | MIME type of the MPEG1 video codec. This specification is supported since API version 23. |
| OH_AVCODEC_MIMETYPE_VIDEO_CINEPAK | MIME type of the Cinepak video codec. This key is supported since API version 24. |
| OH_AVCODEC_MIMETYPE_IMAGE_JPG | MIME type of the JPG image encoder, which is used only for multiplexing JPG covers. |
| OH_AVCODEC_MIMETYPE_IMAGE_PNG | MIME type of the PNG image encoder, which is used only for multiplexing PNG covers. |
| OH_AVCODEC_MIMETYPE_IMAGE_BMP | MIME type of the BMP image encoder, which is used only for multiplexing BMP covers. |
| OH_AVCODEC_MIMETYPE_SUBTITLE_WEBVTT | MIME type of the WEBVTT subtitle demuxer. |
| OH_AVCODEC_MIMETYPE_SUBTITLE_SRT | MIME type of the SRT subtitle demuxer. |
Media Data Key-Value Pairs
The tables below list the key-value pairs used to describe media data. The key type is a constant string, and the value type can be int32_t, int64_t, float, double, char *, or uint8_t *.
The OH_AVFormat API is used to configure or query parameters.
Key-Value Pairs Dedicated for Capability Query
| Name | Description |
|---|---|
| OH_FEATURE_PROPERTY_KEY_VIDEO_ENCODER_MAX_LTR_FRAME_COUNT | Maximum number of long-term reference (LTR) frames obtained during video encoding. The value type is int32_t. |
Common Key-value Pairs of Audio and Video
| Name | Description |
|---|---|
| OH_MD_KEY_CODEC_CONFIG | Codec-specific data. In the case of video, data carried in SPS/PPS is transferred. In the case of audio, data carried in extraData is transferred. The value type is uint8_t*. This key is optional. (This key is not supported yet for the video codec.) |
| OH_MD_MAX_INPUT_BUFFER_COUNT | Maximum number of input buffers. The value type is int32_t. This key is optional. |
| OH_MD_MAX_OUTPUT_BUFFER_COUNT | Maximum number of output buffers. The value type is int32_t. This key is optional. |
| OH_MD_KEY_BITRATE | Bit rate. The value type is int64_t. This key is used in audio and video encoding scenarios. It is optional in video encoding scenarios. |
| OH_MD_KEY_PROFILE | Encoding grading. The value type is int32_t. For details, see OH_AVCProfile, OH_HEVCProfile, and OH_AACProfile. This key is optional. |
| OH_MD_KEY_MAX_INPUT_SIZE | Maximum size of an input stream to decode. The value type is int32_t. This key is optional. |
| OH_MD_KEY_ENABLE_SYNC_MODE | Enabled status of audio/video codec synchronization. The value type is int32_t. 1 if enabled, 0 otherwise. This key is optional. By default, the feature is disabled. The key is used in the configuration phase. |
Key-Value Pairs Dedicated for Video
| Name | Description |
|---|---|
| OH_ED_KEY_TIME_STAMP | Surface buffer timestamp. The value is of the int64_t type. This key is optional. (It is deprecated from API version 14.) |
| OH_ED_KEY_EOS | End of stream for the surface buffer. The value type is int32_t. This key is optional. (It is deprecated from API version 14.) |
| OH_MD_KEY_WIDTH | Video width. The value type is int32_t. |
| OH_MD_KEY_HEIGHT | Video height. The value type is int32_t. |
| OH_MD_KEY_PIXEL_FORMAT | Video pixel format. The value type is int32_t. For details, see OH_AVPixelFormat. |
| OH_MD_KEY_FRAME_RATE | Video frame rate. The value type is double. This key is optional. |
| OH_MD_KEY_RANGE_FLAG | Video YUV value range flag. The value type is int32_t. The value 1 means a full range, and 0 means a limited range. This key is optional. |
| OH_MD_KEY_COLOR_PRIMARIES | Video primary colors. The value type is int32_t. For details, see OH_ColorPrimary. The value complies with Table 2 in H.273. This key is optional. |
| OH_MD_KEY_TRANSFER_CHARACTERISTICS | Video transfer characteristics. The value type is int32_t. For details, see OH_TransferCharacteristic. The value complies with Table 3 in H.273. This key is optional. |
| OH_MD_KEY_MATRIX_COEFFICIENTS | Video matrix coefficients. The value type is int32_t. For details, see OH_MatrixCoefficient. The value complies with Table 4 in H.273. This key is optional. |
| OH_MD_KEY_VIDEO_STRIDE | Stride of the video frame. The value type is int32_t. This key is optional. |
| OH_MD_KEY_VIDEO_SLICE_HEIGHT | Height of the video frame. The value type is int32_t. This key is optional. |
| OH_MD_KEY_VIDEO_PIC_WIDTH | Width of the video frame. The value type is int32_t. This key is optional. |
| OH_MD_KEY_VIDEO_PIC_HEIGHT | Height of the video frame. The value type is int32_t. This key is optional. |
| OH_MD_KEY_VIDEO_ENABLE_LOW_LATENCY | Enabled status of low-latency video codec. The value type is int32_t. 1 if enabled, 0 otherwise. This key is optional. By default, the feature is disabled. The key is used in the configuration phase. |
| OH_MD_KEY_VIDEO_ENCODE_BITRATE_MODE | Video encoding bit rate mode. The value type is int32_t. For details, see OH_BitrateMode. This key is optional. |
| OH_MD_KEY_QUALITY | Required encoding quality. The value type is int32_t. This key applies only to encoders configured in constant quality mode. This key is optional. |
| OH_MD_KEY_REQUEST_I_FRAME | Request for immediate encoding of I-frames. The value type is int32_t. This key is optional. |
| OH_MD_KEY_I_FRAME_INTERVAL | Key frame interval, in milliseconds. The value type is int32_t. This key is optional and is used only for video encoding. |
| OH_MD_KEY_VIDEO_ENCODER_ENABLE_TEMPORAL_SCALABILITY | Enabled status of temporal scalability. The value type is int32_t. 1 if enabled, 0 otherwise. This key is optional and used only for video encoding. By default, this feature is disabled. The key is used in the configuration phase. |
| OH_MD_KEY_VIDEO_ENCODER_TEMPORAL_GOP_SIZE | Size of a temporal image group. The value type is int32_t. This key is valid only when temporal scalability is enabled. This key is optional and used only in the configuration phase of video encoding. |
| OH_MD_KEY_VIDEO_ENCODER_TEMPORAL_GOP_REFERENCE_MODE | Reference mode in a temporal image group. The value type is int32_t. For details, see OH_TemporalGopReferenceMode. This key is valid only when temporal scalability is enabled. This key is optional and used only in the configuration phase of video encoding. |
| OH_MD_KEY_VIDEO_ENCODER_TEMPORAL_LAYER_ID | Temporal layer ID in a group of pictures (GOP). The value type is int32_t. Currently, this key is used only to query the temporal layer ID carried in AVBuffer output by the encoder. The procedure is as follows: 1. Use OH_AVCodecOnNewOutputBuffer or OH_VideoEncoder_GetOutputBuffer to obtain the buffer instance (AVBuffer). 2. Use OH_AVBuffer_GetParameter to obtain the parameter instance (OH_AVFormat), which does not contain basic properties. 3. Use OH_AVFormat_GetIntValue and this key to obtain the temporal layer ID of the corresponding frame. Since: 26.0.0 |
| OH_MD_KEY_VIDEO_ENCODER_LTR_FRAME_COUNT | Number of LTR frames. The value type is int32_t. The value must be within the supported value range. This key is optional and is used only for video encoding. |
| OH_MD_KEY_VIDEO_ENCODER_PER_FRAME_MARK_LTR | Whether the current frame is marked as an LTR frame. The value type is int32_t. 1 if marked, 0 otherwise. This key is optional and is used only for video encoding. |
| OH_MD_KEY_VIDEO_ENCODER_PER_FRAME_USE_LTR | POC number of the LTR frame referenced by the current frame. The value type is int32_t. This key is optional and is used only for video encoding. |
| OH_MD_KEY_VIDEO_PER_FRAME_IS_LTR | Whether the frame corresponding to the stream output from the current OH_AVBuffer is marked as an LTR frame. The value type is int32_t. 1 if marked, 0 otherwise. This key is optional and used only for video encoding. The default value is 0. |
| OH_MD_KEY_VIDEO_PER_FRAME_POC | POC number of the frame. The value type is int32_t. This key is optional and is used only for video encoding. |
| OH_MD_KEY_VIDEO_ENCODER_QP_MAX | Maximum Quantization Parameter (QP) allowed by the video encoder. The value type is int32_t. This key is optional and is used only for video encoding. |
| OH_MD_KEY_VIDEO_ENCODER_QP_MIN | Minimum QP allowed by the video encoder. The value type is int32_t. This key is optional and is used only for video encoding. |
| OH_MD_KEY_VIDEO_ENCODER_QP_AVERAGE | Average QP of video frames. The value type is int32_t. This key is optional and is used only for video encoding. |
| OH_MD_KEY_VIDEO_ENCODER_MSE | Mean Squared Error (MSE) of video frames. The value type is double. This key is optional and is used only for video encoding. |
| OH_MD_KEY_VIDEO_ENCODER_REPEAT_PREVIOUS_FRAME_AFTER | Duration (in milliseconds) for which the last frame will be resubmitted repeatedly, if no new frame is available after the previous frame is submitted to the encoder. The value type is int32_t. This key is used only in the configuration phase of video encoding in surface mode. |
| OH_MD_KEY_VIDEO_ENCODER_REPEAT_PREVIOUS_MAX_COUNT | Maximum number of times the encoder can repeat encoding the previous frame when no new frame is available. The value type is int32_t. This key takes effect only when OH_MD_KEY_VIDEO_ENCODER_REPEAT_PREVIOUS_FRAME_AFTER is available and is used only in the configuration phase. |
| OH_MD_KEY_VIDEO_DECODER_OUTPUT_COLOR_SPACE | Output color space of the video decoder. The value type is int32_t. The supported value is OH_COLORSPACE_BT709_LIMIT. |
| OH_MD_KEY_ROTATION | Rotation angle of the surface, with a clockwise direction. The value type is int32_t, and the value range is {0, 90, 180, 270}. The default value is 0. This key is optional and is used only for video decoding in surface mode This key is optional. |
| OH_MD_KEY_SCALING_MODE | Video scaling mode. The value type is int32_t. For details, see OH_ScalingMode. This key is optional and is used only for video decoding in surface mode. You are advised to set the scaling mode by calling OH_NativeWindow_NativeWindowSetScalingModeV2. (It is deprecated from API version 14.) |
| OH_MD_KEY_VIDEO_CROP_TOP | Y-coordinate of the top edge of the crop rectangle. The value type is int32_t. This key is optional and is used only for video decoding. |
| OH_MD_KEY_VIDEO_CROP_BOTTOM | Y-coordinate of the bottom edge of the crop rectangle. The value type is int32_t. This key is optional and is used only for video decoding. |
| OH_MD_KEY_VIDEO_CROP_LEFT | X-coordinate of the left edge of the crop rectangle. The value type is int32_t. This key is optional and is used only for video decoding. |
| OH_MD_KEY_VIDEO_CROP_RIGHT | X-coordinate of the right edge of the crop rectangle. The value type is int32_t. This key is optional and is used only for video decoding. |
| OH_MD_KEY_VIDEO_DECODER_OUTPUT_ENABLE_VRR | Whether the decoder enables the video variable frame rate feature. The value type is int32_t. This key is optional and is used only for video decoding. |
| OH_MD_KEY_SQR_FACTOR | Quality parameter in SQR mode. The value range is [0, 51] (same as the QP value in encoding). A smaller value indicates a higher output bit rate and better quality. The value type is int32_t. This key is optional and is used only for video encoding. |
| OH_MD_KEY_MAX_BITRATE | Maximum bit rate in SQR mode. The value range can be obtained by calling OH_AVCapability_GetEncoderBitrateRange and is the same as that of OH_MD_KEY_BITRATE. The unit is bit/s. The value type is int64_t. This key is optional and is used only for video encoding. |
| OH_MD_KEY_VIDEO_ENCODER_ROI_PARAMS | ROI encoding parameters, including the ROI area and deltaQp. The value type is char *. This key is optional and is used only for video encoding. |
| OH_MD_KEY_VIDEO_ENCODER_ENABLE_PTS_BASED_RATECONTROL | Key for enabling the PTS-based bit rate control mode. The value type is int32_t. 1 to enable, 0 otherwise. This key is optional and used only for video encoding. The default value is 0. If this feature is enabled, each video frame must contain PTS information and be sent to the encoder. It is used in the configuration phase. |
| OH_MD_KEY_VIDEO_ENCODER_ENABLE_B_FRAME | Key for enabling bidirectional predictive frame (B-frame) encoding. The value type is int32_t. 1 to enable, 0 otherwise. This key is optional and used only for video encoding. The default value is 0. If enabled, the video encoder uses B-frame encoding, resulting in a decoding sequence different from the display sequence. For a device that does not support B-frame encoding, the configured key does not take effect. To check the device capability, use the OH_AVCapability_IsFeatureSupported API and the enumerated value OH_AVCapabilityFeature.VIDEO_ENCODER_B_FRAME. This key is used only by calling OH_VideoEncoder_Configure. |
| OH_MD_KEY_VIDEO_ENCODER_MAX_B_FRAMES | Pointer to the key that describes the maximum number of consecutive B-frames supported by the video encoder. The value type is int32_t. Note: This key is used only to query the encoder capability. The usage specifications are as follows: 1. To check whether the feature is supported, use the OH_AVCapability_IsFeatureSupported API and the enumerated value OH_AVCapabilityFeature.VIDEO_ENCODER_B_FRAME. 2. Obtain the OH_AVFormat pointer through the OH_AVCapability_GetFeatureProperties API and the enumerated value OH_AVCapabilityFeature.VIDEO_ENCODER_B_FRAME. 3. Obtain the maximum number of B-frames through the OH_AVFormat_GetIntValue API and this key. |
| OH_MD_KEY_VIDEO_DECODER_BLANK_FRAME_ON_SHUTDOWN | Pointer to the key that specifies whether to output blank frames when the video decoder is disabled. The value type is int32_t. 1 to output, 0 otherwise. The default value is 0. If this parameter is set to a non-zero value, the value 1 is used. This key is optional and is used only for video decoding in surface mode. After this feature is enabled, the video decoder outputs blank frames (usually black) when the OH_VideoDecoder_Stop or OH_VideoDecoder_Destroy API is called. This mechanism prevents frozen frames caused by sudden termination of the decoder. |
| OH_MD_KEY_VIDEO_NATIVE_BUFFER_FORMAT | Pointer to the key that is used to query the native buffer pixel format in video encoding and decoding. The value type is int32_t. For details, see the pixel formats defined in OH_NativeBuffer_Format. This key is used in the following scenarios: 1. Video decoding: Call OH_VideoDecoder_GetOutputDescription or OH_AVCodecOnStreamChanged to obtain the current output format from the returned OH_AVFormat object. 2. Video encoding: Call OH_VideoEncoder_GetInputDescription to obtain the current input format from the returned OH_AVFormat object. |
Key-Value Pairs Dedicated for Audio
| Name | Description |
|---|---|
| OH_MD_KEY_AUDIO_SAMPLE_FORMAT | Original audio format. The value type is int32_t. For details, see OH_BitsPerSample. |
| OH_MD_KEY_AUD_CHANNEL_COUNT | Number of audio channels. The value type is int32_t. |
| OH_MD_KEY_AUD_SAMPLE_RATE | Audio sampling rate. The value type is int32_t. |
| OH_MD_KEY_AUDIO_COMPRESSION_LEVEL | Audio codec compression level. The value type is int32_t type. This key is used only for audio encoding. This key is optional. |
| OH_MD_KEY_CHANNEL_LAYOUT | Required encoding channel layout. The value type is int64_t. This key applies only to encoders. For details, see OH_AudioChannelLayout. |
| OH_MD_KEY_BITS_PER_CODED_SAMPLE | Number of bits per sample. The value type is int32_t. This key is optional. In versions earlier than API version 20, this parameter must be set to 1 for FLAC encoding. Otherwise, OH_AudioCodec_Configure returns the error code AV_ERR_INVALID_VAL. However, this parameter has no actual effect and does not affect the encoding result. Starting from API version 20, you do not need to set it anymore. |
| OH_MD_KEY_SBR | AAC SBR format. The value type is int32_t. This key applies to AAC encoders. This key is optional. |
| OH_MD_KEY_COMPLIANCE_LEVEL | FLAC compliance level. The value type is int32_t. This key is used only for audio encoding. This key is optional. |
| OH_MD_KEY_AAC_IS_ADTS | AAC format, which can be ADTS or LATM. The value type is int32_t. This key applies to AAC decoders. This key is optional. |
| OH_MD_KEY_IDENTIFICATION_HEADER | Vorbis identification header. The value type is uint8_t*. This key applies only to Vorbis decoders. This key is optional. |
| OH_MD_KEY_SETUP_HEADER | Vorbis setup header. The value type is uint8_t*. This key applies only to Vorbis decoders. This key is optional. |
| OH_MD_KEY_AUDIO_OBJECT_NUMBER | Number of audio objects. The value type is int32_t. This key is used only for Audio Vivid decoding. This key is optional. |
| OH_MD_KEY_AUDIO_VIVID_METADATA | Audio Vivid metadata. The value type is uint8_t*. This key is used only for Audio Vivid decoding. This key is optional. |
| OH_MD_KEY_BLOCK_ALIGN | Size of the audio data block, in bytes. The value type is int32_t. This key is supported since API version 22 and must be configured only for WMAV1, WMAV2, and WMA PRO decoding. |
| OH_MD_KEY_ENABLE_BUFFER_SKIP_SAMPLES | Key for enabling OH_MD_KEY_BUFFER_SKIP_SAMPLES_INFO in the audio decoder. The value type is int32_t. 1 to enable, 0 otherwise. The default value is 0. If this parameter is set to a value other than 1, the value 0 is used. This key is optional. It is for the audio decoder only. This key is supported since API version 24. |
Key-Value Pairs Dedicated for Multiplexing and Demultiplexing
| Name | Description |
|---|---|
| OH_MD_KEY_VIDEO_IS_HDR_VIVID | Whether the video track in a media file is HDR Vivid. The value type is int32_t. This key is used for both multiplexing and demultiplexing. This key is optional. |
| OH_MD_KEY_START_TIME | Start time of the first frame in a media file, measured in microseconds. The value type is int64_t. This key is optional. |
| OH_MD_KEY_TRACK_START_TIME | Start time of the track, measured in microseconds. The value type is int64_t. This key is optional. |
| OH_MD_KEY_TRACK_TYPE | Track type in a media file. The value type is int32_t. For details, see OH_MediaType. This key is optional. |
| OH_MD_KEY_DURATION | Duration in a media file. The value type is int64_t. This key is optional. |
| OH_MD_KEY_TITLE | Title of a media file . The value type is char *. This key is optional. |
| OH_MD_KEY_ARTIST | Artist. The value type is char *. This key is optional. |
| OH_MD_KEY_ALBUM | Album media file. The value type is char *. This key is optional. |
| OH_MD_KEY_ALBUM_ARTIST | Album artist. The value type is char *. This key is optional. |
| OH_MD_KEY_DATE | Date of a media file, for example, 2024. The value type is char *. This key is optional. |
| OH_MD_KEY_COMMENT | Comment of a media file. The value type is char *. This key is optional. |
| OH_MD_KEY_GENRE | Genre in a media file. The value type is char *. This key is optional. |
| OH_MD_KEY_COPYRIGHT | Copyright of a media file. The value type is char *. This key is optional. |
| OH_MD_KEY_LANGUAGE | Language of a media file. The value type is char *. This key is optional. |
| OH_MD_KEY_DESCRIPTION | Description of a media file. The value type is char *. This key is optional. |
| OH_MD_KEY_LYRICS | Lyrics in a media file. The value type is char *. This key is optional. |
| OH_MD_KEY_TRACK_COUNT | Number of tracks in a media file. The value type is int32_t. This key is optional. |
| OH_MD_KEY_BUFFER_DURATION | Duration corresponding to the audio, video, or subtitle sample carried in AVBuffer, in microseconds. The value type is int64_t. This key is optional. |
| OH_MD_KEY_DECODING_TIMESTAMP | Decoding timestamp corresponding to the audio, video, or subtitle sample carried in AVBuffer, in microseconds. The value type is int64_t. This key is optional. |
| OH_MD_KEY_CODEC_MIME | MIME type of the codec. The value type is char *. This key is optional. |
| OH_MD_KEY_VIDEO_SAR | Aspect ratio of the sample. The value type is double. |
| OH_MD_KEY_CREATION_TIME | Media file creation time metadata. The value type is char *. |
| OH_MD_KEY_REFERENCE_TRACK_IDS | Reference relationship between media file tracks. The value type is int32_t*. |
| OH_MD_KEY_TRACK_REFERENCE_TYPE | Auxiliary track type of a media file. The value type is char *. |
| OH_MD_KEY_TRACK_DESCRIPTION | Auxiliary track description of a media file. The value type is char *. |
| OH_MD_KEY_BUFFER_SKIP_SAMPLES_INFO | Key carried in the OH_AVBuffer, which is supported only by demultiplexing. This key may be carried in the start and end frames of the audio output of demultiplexing. This key corresponds to a 10-byte uint8_t[] array, which records the number of audio samples to skip after decoding in the audio file metadata. The structure is as follows: 1. Bytes 0-3 (uint32_t, little-endian): number of samples to skip from the beginning of this frame. 2. Bytes 4-7 (uint32_t, little-endian): number of samples to skip from the end of this frame (must not exceed the frame's total sample count). 3. Bytes 8-9: reserved. The default output is 0. This key is supported since API version 23. |
| OH_MD_KEY_LATITUDE | Latitude key. The value is of the float type, and the value range is [-90.0, 90.0]. It indicates the latitude in geographic location information. This key is supported since API version 24. |
| OH_MD_KEY_LONGITUDE | Longitude key. The value is of the float type, and the value range is [-180.0, 180.0]. It indicates the longitude in geographic location information. This key is supported since API version 24. |
| OH_MD_KEY_ALTITUDE | Altitude key. The value is of the float type. This key is optional. It indicates the altitude in geographic location information. This key is supported since API version 24. |