• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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