1 /* 2 * Copyright (C) 2023 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16 #ifndef NATIVE_AVCODEC_BASE_H 17 #define NATIVE_AVCODEC_BASE_H 18 19 #include <stdint.h> 20 #include <stdio.h> 21 #include "native_avbuffer.h" 22 #include "native_avmemory.h" 23 24 #ifdef __cplusplus 25 extern "C" { 26 #endif 27 28 typedef struct NativeWindow OHNativeWindow; 29 typedef struct OH_AVCodec OH_AVCodec; 30 31 /** 32 * @brief When an error occurs in the running of the OH_AVCodec instance, the function pointer will be called 33 * to report specific error information. 34 * @syscap SystemCapability.Multimedia.Media.CodecBase 35 * @param codec OH_AVCodec instance 36 * @param errorCode specific error code 37 * @param userData User specific data 38 * @since 9 39 * @version 1.0 40 */ 41 typedef void (*OH_AVCodecOnError)(OH_AVCodec *codec, int32_t errorCode, void *userData); 42 43 /** 44 * @brief When the output stream changes, the function pointer will be called to report the new stream description 45 * information. It should be noted that the life cycle of the OH_AVFormat pointer 46 * is only valid when the function pointer is called, and it is forbidden to continue to access after the call ends. 47 * @syscap SystemCapability.Multimedia.Media.CodecBase 48 * @param codec OH_AVCodec instance 49 * @param format New output stream description information 50 * @param userData User specific data 51 * @since 9 52 * @version 1.0 53 */ 54 typedef void (*OH_AVCodecOnStreamChanged)(OH_AVCodec *codec, OH_AVFormat *format, void *userData); 55 56 /** 57 * @brief When OH_AVCodec needs new input data during the running process, 58 * the function pointer will be called and carry an available Buffer to fill in the new input data. 59 * @syscap SystemCapability.Multimedia.Media.CodecBase 60 * @param codec OH_AVCodec instance 61 * @param index The index corresponding to the newly available input buffer. 62 * @param data New available input buffer. 63 * @param userData User specific data 64 * @deprecated since 11 65 * @useinstead OH_AVCodecOnNeedInputBuffer 66 * @since 9 67 * @version 1.0 68 */ 69 typedef void (*OH_AVCodecOnNeedInputData)(OH_AVCodec *codec, uint32_t index, OH_AVMemory *data, void *userData); 70 71 /** 72 * @brief When new output data is generated during the operation of OH_AVCodec, the function pointer will be 73 * called and carry a Buffer containing the new output data. It should be noted that the life cycle of the 74 * OH_AVCodecBufferAttr pointer is only valid when the function pointer is called. , which prohibits continued 75 * access after the call ends. 76 * @syscap SystemCapability.Multimedia.Media.CodecBase 77 * @param codec OH_AVCodec instance 78 * @param index The index corresponding to the new output Buffer. 79 * @param data Buffer containing the new output data 80 * @param attr The description of the new output Buffer, please refer to {@link OH_AVCodecBufferAttr} 81 * @param userData specified data 82 * @deprecated since 11 83 * @useinstead OH_AVCodecOnNewOutputBuffer 84 * @since 9 85 * @version 1.0 86 */ 87 typedef void (*OH_AVCodecOnNewOutputData)(OH_AVCodec *codec, uint32_t index, OH_AVMemory *data, 88 OH_AVCodecBufferAttr *attr, void *userData); 89 90 /** 91 * @brief When OH_AVCodec needs new input data during the running process, 92 * the function pointer will be called and carry an available Buffer to fill in the new input data. 93 * @syscap SystemCapability.Multimedia.Media.CodecBase 94 * @param codec OH_AVCodec instance 95 * @param index The index corresponding to the newly available input buffer. 96 * @param buffer New available input buffer. 97 * @param userData User specific data 98 * @since 11 99 */ 100 typedef void (*OH_AVCodecOnNeedInputBuffer)(OH_AVCodec *codec, uint32_t index, OH_AVBuffer *buffer, void *userData); 101 102 /** 103 * @brief When new output data is generated during the operation of OH_AVCodec, the function pointer will be 104 * called and carry a Buffer containing the new output data. 105 * @syscap SystemCapability.Multimedia.Media.CodecBase 106 * @param codec OH_AVCodec instance 107 * @param index The index corresponding to the new output Buffer. 108 * @param buffer Buffer containing the new output buffer. 109 * @param userData specified data 110 * @since 11 111 */ 112 typedef void (*OH_AVCodecOnNewOutputBuffer)(OH_AVCodec *codec, uint32_t index, OH_AVBuffer *buffer, void *userData); 113 114 /** 115 * @brief A collection of all asynchronous callback function pointers in OH_AVCodec. Register an instance of this 116 * structure to the OH_AVCodec instance, and process the information reported through the callback to ensure the 117 * normal operation of OH_AVCodec. 118 * @syscap SystemCapability.Multimedia.Media.CodecBase 119 * @param onError Monitor OH_AVCodec operation errors, refer to {@link OH_AVCodecOnError} 120 * @param onStreamChanged Monitor codec stream information, refer to {@link OH_AVCodecOnStreamChanged} 121 * @param onNeedInputData Monitoring codec requires input data, refer to {@link OH_AVCodecOnNeedInputData} 122 * @param onNeedOutputData Monitor codec to generate output data, refer to {@link OH_AVCodecOnNewOutputData} 123 * @deprecated since 11 124 * @useinstead OH_AVCodecCallback 125 * @since 9 126 * @version 1.0 127 */ 128 typedef struct OH_AVCodecAsyncCallback { 129 OH_AVCodecOnError onError; 130 OH_AVCodecOnStreamChanged onStreamChanged; 131 OH_AVCodecOnNeedInputData onNeedInputData; 132 OH_AVCodecOnNewOutputData onNeedOutputData; 133 } OH_AVCodecAsyncCallback; 134 135 /** 136 * @brief A collection of all asynchronous callback function pointers in OH_AVCodec. Register an instance of this 137 * structure to the OH_AVCodec instance, and process the information reported through the callback to ensure the 138 * normal operation of OH_AVCodec. 139 * @syscap SystemCapability.Multimedia.Media.CodecBase 140 * @param onError Monitor OH_AVCodec operation errors, refer to {@link OH_AVCodecOnError} 141 * @param onStreamChanged Monitor codec stream information, refer to {@link OH_AVCodecOnStreamChanged} 142 * @param onNeedInputBuffer Monitoring codec requires input buffer, refer to {@link OH_AVCodecOnNeedInputBuffer} 143 * @param onNewOutputBuffer Monitor codec to generate output buffer, refer to {@link OH_AVCodecOnNewOutputBuffer} 144 * @since 11 145 */ 146 typedef struct OH_AVCodecCallback { 147 OH_AVCodecOnError onError; 148 OH_AVCodecOnStreamChanged onStreamChanged; 149 OH_AVCodecOnNeedInputBuffer onNeedInputBuffer; 150 OH_AVCodecOnNewOutputBuffer onNewOutputBuffer; 151 } OH_AVCodecCallback; 152 153 /** 154 * @brief Enumerates the MIME types of audio and video codecs 155 * @syscap SystemCapability.Multimedia.Media.CodecBase 156 * @since 9 157 * @version 1.0 158 */ 159 extern const char *OH_AVCODEC_MIMETYPE_VIDEO_AVC; 160 extern const char *OH_AVCODEC_MIMETYPE_AUDIO_AAC; 161 162 /** 163 * @brief Enumerates the MIME types of audio and video codecs 164 * @syscap SystemCapability.Multimedia.Media.CodecBase 165 * @since 10 166 */ 167 extern const char *OH_AVCODEC_MIMETYPE_AUDIO_FLAC; 168 extern const char *OH_AVCODEC_MIMETYPE_AUDIO_VORBIS; 169 extern const char *OH_AVCODEC_MIMETYPE_AUDIO_MPEG; 170 extern const char *OH_AVCODEC_MIMETYPE_VIDEO_HEVC; 171 172 /** 173 * @brief Enumerates the types of audio and video muxer 174 * @syscap SystemCapability.Multimedia.Media.CodecBase 175 * @deprecated since 11 176 * @since 10 177 */ 178 extern const char *OH_AVCODEC_MIMETYPE_VIDEO_MPEG4; 179 180 /** 181 * @brief Enumerates the types of audio and video muxer 182 * @syscap SystemCapability.Multimedia.Media.CodecBase 183 * @since 10 184 */ 185 extern const char *OH_AVCODEC_MIMETYPE_IMAGE_JPG; 186 extern const char *OH_AVCODEC_MIMETYPE_IMAGE_PNG; 187 extern const char *OH_AVCODEC_MIMETYPE_IMAGE_BMP; 188 189 /** 190 * @brief Enumerates the MIME types of audio codecs 191 * @syscap SystemCapability.Multimedia.Media.CodecBase 192 * @since 11 193 */ 194 extern const char *OH_AVCODEC_MIMETYPE_AUDIO_VIVID; 195 extern const char *OH_AVCODEC_MIMETYPE_AUDIO_AMR_NB; 196 extern const char *OH_AVCODEC_MIMETYPE_AUDIO_AMR_WB; 197 extern const char *OH_AVCODEC_MIMETYPE_AUDIO_OPUS; 198 extern const char *OH_AVCODEC_MIMETYPE_AUDIO_G711MU; 199 200 /** 201 * @brief The extra data's key of surface Buffer 202 * @syscap SystemCapability.Multimedia.Media.CodecBase 203 * @since 9 204 * @version 1.0 205 */ 206 /* Key for timeStamp in surface's extraData, value type is int64 */ 207 extern const char *OH_ED_KEY_TIME_STAMP; 208 /* Key for endOfStream in surface's extraData, value type is bool */ 209 extern const char *OH_ED_KEY_EOS; 210 211 /** 212 * @brief Provides the uniform key for storing the media description. 213 * @syscap SystemCapability.Multimedia.Media.CodecBase 214 * @since 9 215 * @version 1.0 216 */ 217 /* Key for track type, value type is uint8_t, see @OH_MediaType. */ 218 extern const char *OH_MD_KEY_TRACK_TYPE; 219 /* Key for codec mime type, value type is string. */ 220 extern const char *OH_MD_KEY_CODEC_MIME; 221 /* Key for duration, value type is int64_t. */ 222 extern const char *OH_MD_KEY_DURATION; 223 /* Key for bitrate, value type is int64_t. */ 224 extern const char *OH_MD_KEY_BITRATE; 225 /* Key for max input size, value type is uint32_t */ 226 extern const char *OH_MD_KEY_MAX_INPUT_SIZE; 227 /* Key for video width, value type is uint32_t */ 228 extern const char *OH_MD_KEY_WIDTH; 229 /* Key for video height, value type is uint32_t */ 230 extern const char *OH_MD_KEY_HEIGHT; 231 /* Key for video pixel format, value type is int32_t, see @OH_AVPixelFormat */ 232 extern const char *OH_MD_KEY_PIXEL_FORMAT; 233 /* key for audio raw format, value type is uint32_t , see @AudioSampleFormat */ 234 extern const char *OH_MD_KEY_AUDIO_SAMPLE_FORMAT; 235 /* Key for video frame rate, value type is double. */ 236 extern const char *OH_MD_KEY_FRAME_RATE; 237 /* video encode bitrate mode, the value type is int32_t, see @OH_VideoEncodeBitrateMode */ 238 extern const char *OH_MD_KEY_VIDEO_ENCODE_BITRATE_MODE; 239 /* encode profile, the value type is number. see @OH_AVCProfile, OH_HEVCProfile, OH_AACProfile. */ 240 extern const char *OH_MD_KEY_PROFILE; 241 /* Key for audio channel count, value type is uint32_t */ 242 extern const char *OH_MD_KEY_AUD_CHANNEL_COUNT; 243 /* Key for audio sample rate, value type is uint32_t */ 244 extern const char *OH_MD_KEY_AUD_SAMPLE_RATE; 245 /* Key for the interval of key frame. value type is int32_t, the unit is milliseconds. */ 246 extern const char *OH_MD_KEY_I_FRAME_INTERVAL; 247 /* Key of the surface rotation angle. value type is int32_t: should be {0, 90, 180, 270}, default is 0. */ 248 extern const char *OH_MD_KEY_ROTATION; 249 250 /** 251 * @brief Provides the uniform key for storing the media description. 252 * @syscap SystemCapability.Multimedia.Media.CodecBase 253 * @since 10 254 */ 255 /* Key for video YUV value range flag, value type is boolean */ 256 extern const char *OH_MD_KEY_RANGE_FLAG; 257 /* Key for video color primaries, value type is int32_t, see @OH_ColorPrimary */ 258 extern const char *OH_MD_KEY_COLOR_PRIMARIES; 259 /* Key for video transfer characteristics, value type is int32_t, see @OH_TransferCharacteristic */ 260 extern const char *OH_MD_KEY_TRANSFER_CHARACTERISTICS; 261 /* Key for video matrix coefficients, value type is int32_t, see @OH_MatrixCoefficient */ 262 extern const char *OH_MD_KEY_MATRIX_COEFFICIENTS; 263 /* Key for the request an I-Frame immediately, value type is boolean */ 264 extern const char *OH_MD_KEY_REQUEST_I_FRAME; 265 /* Key for the desired encoding quality, value type is uint32_t, this key is only 266 * supported for encoders that are configured in constant quality mode */ 267 extern const char *OH_MD_KEY_QUALITY; 268 /* Key of the codec specific data. value type is a uint8_t pointer */ 269 extern const char *OH_MD_KEY_CODEC_CONFIG; 270 /* source format Key for title, value type is string */ 271 extern const char *OH_MD_KEY_TITLE; 272 /* source format Key for artist, value type is string */ 273 extern const char *OH_MD_KEY_ARTIST; 274 /* source format Key for album, value type is string */ 275 extern const char *OH_MD_KEY_ALBUM; 276 /* source format Key for album artist, value type is string */ 277 extern const char *OH_MD_KEY_ALBUM_ARTIST; 278 /* source format Key for date, value type is string */ 279 extern const char *OH_MD_KEY_DATE; 280 /* source format Key for comment, value type is string */ 281 extern const char *OH_MD_KEY_COMMENT; 282 /* source format Key for genre, value type is string */ 283 extern const char *OH_MD_KEY_GENRE; 284 /* source format Key for copyright, value type is string */ 285 extern const char *OH_MD_KEY_COPYRIGHT; 286 /* source format Key for language, value type is string */ 287 extern const char *OH_MD_KEY_LANGUAGE; 288 /* source format Key for description, value type is string */ 289 extern const char *OH_MD_KEY_DESCRIPTION; 290 /* source format Key for lyrics, value type is string */ 291 extern const char *OH_MD_KEY_LYRICS; 292 /* source format Key for track count, value type is uint32_t */ 293 extern const char *OH_MD_KEY_TRACK_COUNT; 294 /* Key for the desired encoding channel layout, value type is int64_t, this key is only supported for encoders */ 295 extern const char *OH_MD_KEY_CHANNEL_LAYOUT; 296 /* Key for bits per coded sample, value type is uint32_t, supported for flac encoder, see @OH_BitsPerSample */ 297 extern const char *OH_MD_KEY_BITS_PER_CODED_SAMPLE; 298 /* Key for the aac format, value type is uint32_t, supported for aac decoder */ 299 extern const char *OH_MD_KEY_AAC_IS_ADTS; 300 /* Key for aac sbr mode, value type is uint32_t, supported for aac encoder */ 301 extern const char *OH_MD_KEY_SBR; 302 /* Key for flac compliance level, value type is int32_t */ 303 extern const char *OH_MD_KEY_COMPLIANCE_LEVEL; 304 /* Key for vorbis identification header, value type is a uint8_t pointer, supported only for vorbis decoder */ 305 extern const char *OH_MD_KEY_IDENTIFICATION_HEADER; 306 /* Key for vorbis setup header, value type is a uint8_t pointer, supported only for vorbis decoder */ 307 extern const char *OH_MD_KEY_SETUP_HEADER; 308 /* Key for video scale type, value type is int32_t, see @OH_ScalingMode */ 309 extern const char *OH_MD_KEY_SCALING_MODE; 310 /* Key for max input buffer count, value type is int32_t */ 311 extern const char *OH_MD_MAX_INPUT_BUFFER_COUNT; 312 /* Key for max output buffer count, value type is int32_t */ 313 extern const char *OH_MD_MAX_OUTPUT_BUFFER_COUNT; 314 315 /** 316 * @brief Provides the uniform key for storing the media description. 317 * @syscap SystemCapability.Multimedia.Media.CodecBase 318 * @since 11 319 */ 320 /* Key for audio codec compression level, value type is uint32_t */ 321 extern const char *OH_MD_KEY_AUDIO_COMPRESSION_LEVEL; 322 /* Key of the video is hdr vivid. value type is bool */ 323 extern const char *OH_MD_KEY_VIDEO_IS_HDR_VIVID; 324 /* Key for number of audio objects. value type is int32_t */ 325 extern const char *OH_MD_KEY_AUDIO_OBJECT_NUMBER; 326 /* Key for meta data of audio vivid. value type is a uint8_t pointer */ 327 extern const char *OH_MD_KEY_AUDIO_VIVID_METADATA; 328 329 /** 330 * @brief Media type. 331 * @syscap SystemCapability.Multimedia.Media.CodecBase 332 * @since 9 333 * @version 1.0 334 */ 335 typedef enum OH_MediaType { 336 /* track is audio. */ 337 MEDIA_TYPE_AUD = 0, 338 /* track is video. */ 339 MEDIA_TYPE_VID = 1, 340 } OH_MediaType; 341 342 /** 343 * @brief AAC Profile 344 * @syscap SystemCapability.Multimedia.Media.CodecBase 345 * @since 9 346 * @version 1.0 347 */ 348 typedef enum OH_AACProfile { 349 AAC_PROFILE_LC = 0, 350 } OH_AACProfile; 351 352 /** 353 * @brief AVC Profile 354 * @syscap SystemCapability.Multimedia.Media.CodecBase 355 * @since 9 356 * @version 1.0 357 */ 358 typedef enum OH_AVCProfile { 359 AVC_PROFILE_BASELINE = 0, 360 AVC_PROFILE_HIGH = 4, 361 AVC_PROFILE_MAIN = 8, 362 } OH_AVCProfile; 363 364 /** 365 * @brief HEVC Profile 366 * @syscap SystemCapability.Multimedia.Media.CodecBase 367 * @since 10 368 */ 369 typedef enum OH_HEVCProfile { 370 HEVC_PROFILE_MAIN = 0, 371 HEVC_PROFILE_MAIN_10 = 1, 372 HEVC_PROFILE_MAIN_STILL = 2, 373 HEVC_PROFILE_MAIN_10_HDR10 = 3, 374 HEVC_PROFILE_MAIN_10_HDR10_PLUS = 4, 375 } OH_HEVCProfile; 376 377 /** 378 * @brief Enumerates the muxer output file format 379 * @syscap SystemCapability.Multimedia.Media.CodecBase 380 * @since 10 381 */ 382 typedef enum OH_AVOutputFormat { 383 AV_OUTPUT_FORMAT_DEFAULT = 0, 384 AV_OUTPUT_FORMAT_MPEG_4 = 2, 385 AV_OUTPUT_FORMAT_M4A = 6, 386 } OH_AVOutputFormat; 387 388 /** 389 * @brief Seek Mode 390 * @syscap SystemCapability.Multimedia.Media.CodecBase 391 * @since 10 392 */ 393 typedef enum OH_AVSeekMode { 394 /* seek to sync sample after the time */ 395 SEEK_MODE_NEXT_SYNC = 0, 396 /* seek to sync sample before the time */ 397 SEEK_MODE_PREVIOUS_SYNC, 398 /* seek to sync sample closest to time */ 399 SEEK_MODE_CLOSEST_SYNC, 400 } OH_AVSeekMode; 401 402 /** 403 * @brief Scaling Mode 404 * @syscap SystemCapability.Multimedia.Media.CodecBase 405 * @since 10 406 */ 407 typedef enum OH_ScalingMode { 408 SCALING_MODE_SCALE_TO_WINDOW = 1, 409 SCALING_MODE_SCALE_CROP = 2, 410 } OH_ScalingMode; 411 412 /** 413 * @brief enum Audio Bits Per Coded Sample 414 * @syscap SystemCapability.Multimedia.Media.CodecBase 415 * @since 10 416 */ 417 typedef enum OH_BitsPerSample { 418 SAMPLE_U8 = 0, 419 SAMPLE_S16LE = 1, 420 SAMPLE_S24LE = 2, 421 SAMPLE_S32LE = 3, 422 SAMPLE_F32LE = 4, 423 SAMPLE_U8P = 5, 424 SAMPLE_S16P = 6, 425 SAMPLE_S24P = 7, 426 SAMPLE_S32P = 8, 427 SAMPLE_F32P = 9, 428 INVALID_WIDTH = -1 429 } OH_BitsPerSample; 430 431 /** 432 * @brief Color Primary 433 * @syscap SystemCapability.Multimedia.Media.CodecBase 434 * @since 10 435 */ 436 typedef enum OH_ColorPrimary { 437 COLOR_PRIMARY_BT709 = 1, 438 COLOR_PRIMARY_UNSPECIFIED = 2, 439 COLOR_PRIMARY_BT470_M = 4, 440 COLOR_PRIMARY_BT601_625 = 5, 441 COLOR_PRIMARY_BT601_525 = 6, 442 COLOR_PRIMARY_SMPTE_ST240 = 7, 443 COLOR_PRIMARY_GENERIC_FILM = 8, 444 COLOR_PRIMARY_BT2020 = 9, 445 COLOR_PRIMARY_SMPTE_ST428 = 10, 446 COLOR_PRIMARY_P3DCI = 11, 447 COLOR_PRIMARY_P3D65 = 12, 448 } OH_ColorPrimary; 449 450 /** 451 * @brief Transfer Characteristic 452 * @syscap SystemCapability.Multimedia.Media.CodecBase 453 * @since 10 454 */ 455 typedef enum OH_TransferCharacteristic { 456 TRANSFER_CHARACTERISTIC_BT709 = 1, 457 TRANSFER_CHARACTERISTIC_UNSPECIFIED = 2, 458 TRANSFER_CHARACTERISTIC_GAMMA_2_2 = 4, 459 TRANSFER_CHARACTERISTIC_GAMMA_2_8 = 5, 460 TRANSFER_CHARACTERISTIC_BT601 = 6, 461 TRANSFER_CHARACTERISTIC_SMPTE_ST240 = 7, 462 TRANSFER_CHARACTERISTIC_LINEAR = 8, 463 TRANSFER_CHARACTERISTIC_LOG = 9, 464 TRANSFER_CHARACTERISTIC_LOG_SQRT = 10, 465 TRANSFER_CHARACTERISTIC_IEC_61966_2_4 = 11, 466 TRANSFER_CHARACTERISTIC_BT1361 = 12, 467 TRANSFER_CHARACTERISTIC_IEC_61966_2_1 = 13, 468 TRANSFER_CHARACTERISTIC_BT2020_10BIT = 14, 469 TRANSFER_CHARACTERISTIC_BT2020_12BIT = 15, 470 TRANSFER_CHARACTERISTIC_PQ = 16, 471 TRANSFER_CHARACTERISTIC_SMPTE_ST428 = 17, 472 TRANSFER_CHARACTERISTIC_HLG = 18, 473 } OH_TransferCharacteristic; 474 475 /** 476 * @brief Matrix Coefficient 477 * @syscap SystemCapability.Multimedia.Media.CodecBase 478 * @since 10 479 */ 480 typedef enum OH_MatrixCoefficient { 481 MATRIX_COEFFICIENT_IDENTITY = 0, 482 MATRIX_COEFFICIENT_BT709 = 1, 483 MATRIX_COEFFICIENT_UNSPECIFIED = 2, 484 MATRIX_COEFFICIENT_FCC = 4, 485 MATRIX_COEFFICIENT_BT601_625 = 5, 486 MATRIX_COEFFICIENT_BT601_525 = 6, 487 MATRIX_COEFFICIENT_SMPTE_ST240 = 7, 488 MATRIX_COEFFICIENT_YCGCO = 8, 489 MATRIX_COEFFICIENT_BT2020_NCL = 9, 490 MATRIX_COEFFICIENT_BT2020_CL = 10, 491 MATRIX_COEFFICIENT_SMPTE_ST2085 = 11, 492 MATRIX_COEFFICIENT_CHROMATICITY_NCL = 12, 493 MATRIX_COEFFICIENT_CHROMATICITY_CL = 13, 494 MATRIX_COEFFICIENT_ICTCP = 14, 495 } OH_MatrixCoefficient; 496 497 #ifdef __cplusplus 498 } 499 #endif 500 501 #endif // NATIVE_AVCODEC_BASE_H 502