1f6603c60Sopenharmony_ci/*
2f6603c60Sopenharmony_ci * Copyright (c) 2023 Huawei Device Co., Ltd.
3f6603c60Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
4f6603c60Sopenharmony_ci * you may not use this file except in compliance with the License.
5f6603c60Sopenharmony_ci * You may obtain a copy of the License at
6f6603c60Sopenharmony_ci *
7f6603c60Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0
8f6603c60Sopenharmony_ci *
9f6603c60Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software
10f6603c60Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
11f6603c60Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12f6603c60Sopenharmony_ci * See the License for the specific language governing permissions and
13f6603c60Sopenharmony_ci * limitations under the License.
14f6603c60Sopenharmony_ci */
15f6603c60Sopenharmony_ci
16f6603c60Sopenharmony_ci#include "napi/native_api.h"
17f6603c60Sopenharmony_ci#include <condition_variable>
18f6603c60Sopenharmony_ci#include <js_native_api_types.h>
19f6603c60Sopenharmony_ci#include <multimedia/player_framework/native_avcodec_videoencoder.h>
20f6603c60Sopenharmony_ci#include <multimedia/player_framework/native_avcapability.h>
21f6603c60Sopenharmony_ci#include <multimedia/player_framework/native_avcodec_base.h>
22f6603c60Sopenharmony_ci#include <multimedia/player_framework/native_avformat.h>
23f6603c60Sopenharmony_ci#include <pthread.h>
24f6603c60Sopenharmony_ci#include <iostream>
25f6603c60Sopenharmony_ci#include <fstream>
26f6603c60Sopenharmony_ci
27f6603c60Sopenharmony_ci#define FAIL (-1)
28f6603c60Sopenharmony_ci#define SUCCESS 0
29f6603c60Sopenharmony_ci#define PARAM_0 0
30f6603c60Sopenharmony_ci#define PARAM_1 1
31f6603c60Sopenharmony_ci#define PARAM_2 2
32f6603c60Sopenharmony_ci#define PARAM_3 3
33f6603c60Sopenharmony_ci#define PARAM_4 4
34f6603c60Sopenharmony_ci#define PARAM_5 5
35f6603c60Sopenharmony_ci#define PARAM_6 6
36f6603c60Sopenharmony_ci#define PARAM_7 7
37f6603c60Sopenharmony_ciusing namespace std;
38f6603c60Sopenharmony_ci
39f6603c60Sopenharmony_ciconstexpr uint32_t DEFAULT_WIDTH = 320;
40f6603c60Sopenharmony_ci
41f6603c60Sopenharmony_ciconstexpr uint32_t DEFAULT_HEIGHT = 240;
42f6603c60Sopenharmony_ci
43f6603c60Sopenharmony_ciconstexpr OH_AVPixelFormat DEFAULT_PIXELFORMAT = AV_PIXEL_FORMAT_YUVI420;
44f6603c60Sopenharmony_ci
45f6603c60Sopenharmony_cistatic napi_value OHVideoEncoderCreateByMime(napi_env env, napi_callback_info info)
46f6603c60Sopenharmony_ci{
47f6603c60Sopenharmony_ci    int backParam = FAIL;
48f6603c60Sopenharmony_ci    OH_AVCodec *checkParam = nullptr;
49f6603c60Sopenharmony_ci    checkParam = OH_VideoEncoder_CreateByMime(OH_AVCODEC_MIMETYPE_VIDEO_AVC);
50f6603c60Sopenharmony_ci    if (checkParam != nullptr) {
51f6603c60Sopenharmony_ci        backParam = SUCCESS;
52f6603c60Sopenharmony_ci    }
53f6603c60Sopenharmony_ci    napi_value result = nullptr;
54f6603c60Sopenharmony_ci    OH_VideoEncoder_Destroy(checkParam);
55f6603c60Sopenharmony_ci    napi_create_int32(env, backParam, &result);
56f6603c60Sopenharmony_ci    return result;
57f6603c60Sopenharmony_ci}
58f6603c60Sopenharmony_ci
59f6603c60Sopenharmony_cistatic napi_value OHVideoEncoderCreateByMimeHEVC(napi_env env, napi_callback_info info)
60f6603c60Sopenharmony_ci{
61f6603c60Sopenharmony_ci    int backParam = FAIL;
62f6603c60Sopenharmony_ci    OH_AVCodec *checkParam = nullptr;
63f6603c60Sopenharmony_ci    checkParam = OH_VideoEncoder_CreateByMime(OH_AVCODEC_MIMETYPE_VIDEO_HEVC);
64f6603c60Sopenharmony_ci    if (checkParam != nullptr) {
65f6603c60Sopenharmony_ci        backParam = SUCCESS;
66f6603c60Sopenharmony_ci    }
67f6603c60Sopenharmony_ci    napi_value result = nullptr;
68f6603c60Sopenharmony_ci    OH_VideoEncoder_Destroy(checkParam);
69f6603c60Sopenharmony_ci    napi_create_int32(env, backParam, &result);
70f6603c60Sopenharmony_ci    return result;
71f6603c60Sopenharmony_ci}
72f6603c60Sopenharmony_ci
73f6603c60Sopenharmony_cistatic napi_value OHVideoEncoderCreateByMimeAbnormal(napi_env env, napi_callback_info info)
74f6603c60Sopenharmony_ci{
75f6603c60Sopenharmony_ci    int backParam = FAIL;
76f6603c60Sopenharmony_ci    OH_AVCodec *checkParam = nullptr;
77f6603c60Sopenharmony_ci    checkParam = OH_VideoEncoder_CreateByMime(nullptr);
78f6603c60Sopenharmony_ci    if (checkParam == nullptr) {
79f6603c60Sopenharmony_ci        backParam = SUCCESS;
80f6603c60Sopenharmony_ci    }
81f6603c60Sopenharmony_ci    napi_value result = nullptr;
82f6603c60Sopenharmony_ci    napi_create_int32(env, backParam, &result);
83f6603c60Sopenharmony_ci    return result;
84f6603c60Sopenharmony_ci}
85f6603c60Sopenharmony_ci
86f6603c60Sopenharmony_cistatic napi_value OHVideoEncoderCreateByName(napi_env env, napi_callback_info info)
87f6603c60Sopenharmony_ci{
88f6603c60Sopenharmony_ci    int backParam = FAIL;
89f6603c60Sopenharmony_ci    OH_AVCodec *checkParam = nullptr;
90f6603c60Sopenharmony_ci    OH_AVCapability *capability = OH_AVCodec_GetCapability(OH_AVCODEC_MIMETYPE_VIDEO_AVC, true);
91f6603c60Sopenharmony_ci    const char *codecName = OH_AVCapability_GetName(capability);
92f6603c60Sopenharmony_ci    checkParam = OH_VideoEncoder_CreateByName(codecName);
93f6603c60Sopenharmony_ci    if (checkParam != nullptr) {
94f6603c60Sopenharmony_ci        backParam = SUCCESS;
95f6603c60Sopenharmony_ci    }
96f6603c60Sopenharmony_ci    napi_value result = nullptr;
97f6603c60Sopenharmony_ci    OH_VideoEncoder_Destroy(checkParam);
98f6603c60Sopenharmony_ci    napi_create_int32(env, backParam, &result);
99f6603c60Sopenharmony_ci    return result;
100f6603c60Sopenharmony_ci}
101f6603c60Sopenharmony_ci
102f6603c60Sopenharmony_cistatic napi_value OHVideoEncoderCreateByNameHEVC(napi_env env, napi_callback_info info)
103f6603c60Sopenharmony_ci{
104f6603c60Sopenharmony_ci    int backParam = FAIL;
105f6603c60Sopenharmony_ci    OH_AVCodec *checkParam = nullptr;
106f6603c60Sopenharmony_ci    OH_AVCapability *capability = OH_AVCodec_GetCapability(OH_AVCODEC_MIMETYPE_VIDEO_HEVC, true);
107f6603c60Sopenharmony_ci    const char *codecName = OH_AVCapability_GetName(capability);
108f6603c60Sopenharmony_ci    checkParam = OH_VideoEncoder_CreateByName(codecName);
109f6603c60Sopenharmony_ci    if (checkParam != nullptr) {
110f6603c60Sopenharmony_ci        backParam = SUCCESS;
111f6603c60Sopenharmony_ci    }
112f6603c60Sopenharmony_ci    napi_value result = nullptr;
113f6603c60Sopenharmony_ci    OH_VideoEncoder_Destroy(checkParam);
114f6603c60Sopenharmony_ci    napi_create_int32(env, backParam, &result);
115f6603c60Sopenharmony_ci    return result;
116f6603c60Sopenharmony_ci}
117f6603c60Sopenharmony_ci
118f6603c60Sopenharmony_cistatic napi_value OHVideoEncoderCreateByNameAbnormal(napi_env env, napi_callback_info info)
119f6603c60Sopenharmony_ci{
120f6603c60Sopenharmony_ci    int backParam = FAIL;
121f6603c60Sopenharmony_ci    OH_AVCodec *checkParam = nullptr;
122f6603c60Sopenharmony_ci    OH_AVCapability *capability = OH_AVCodec_GetCapability(nullptr, true);
123f6603c60Sopenharmony_ci    const char *codecName = OH_AVCapability_GetName(capability);
124f6603c60Sopenharmony_ci    checkParam = OH_VideoEncoder_CreateByName(codecName);
125f6603c60Sopenharmony_ci    if (checkParam == nullptr) {
126f6603c60Sopenharmony_ci        backParam = SUCCESS;
127f6603c60Sopenharmony_ci    }
128f6603c60Sopenharmony_ci    napi_value result = nullptr;
129f6603c60Sopenharmony_ci    napi_create_int32(env, backParam, &result);
130f6603c60Sopenharmony_ci    return result;
131f6603c60Sopenharmony_ci}
132f6603c60Sopenharmony_ci
133f6603c60Sopenharmony_cistatic napi_value OHVideoEncoderDestroy(napi_env env, napi_callback_info info)
134f6603c60Sopenharmony_ci{
135f6603c60Sopenharmony_ci    int backParam = FAIL;
136f6603c60Sopenharmony_ci    napi_value result = nullptr;
137f6603c60Sopenharmony_ci    OH_AVCodec *videoEnc = nullptr;
138f6603c60Sopenharmony_ci    OH_AVErrCode checkParam;
139f6603c60Sopenharmony_ci    videoEnc = OH_VideoEncoder_CreateByMime(OH_AVCODEC_MIMETYPE_VIDEO_AVC);
140f6603c60Sopenharmony_ci    checkParam = OH_VideoEncoder_Destroy(videoEnc);
141f6603c60Sopenharmony_ci    if (checkParam == AV_ERR_OK) {
142f6603c60Sopenharmony_ci        backParam = SUCCESS;
143f6603c60Sopenharmony_ci    }
144f6603c60Sopenharmony_ci    videoEnc = nullptr;
145f6603c60Sopenharmony_ci    napi_create_int32(env, backParam, &result);
146f6603c60Sopenharmony_ci    return result;
147f6603c60Sopenharmony_ci}
148f6603c60Sopenharmony_ci
149f6603c60Sopenharmony_cistatic napi_value OHVideoEncoderDestroyHEVC(napi_env env, napi_callback_info info)
150f6603c60Sopenharmony_ci{
151f6603c60Sopenharmony_ci    int backParam = FAIL;
152f6603c60Sopenharmony_ci    napi_value result = nullptr;
153f6603c60Sopenharmony_ci    OH_AVCodec *videoEnc = nullptr;
154f6603c60Sopenharmony_ci    OH_AVErrCode checkParam;
155f6603c60Sopenharmony_ci    videoEnc = OH_VideoEncoder_CreateByMime(OH_AVCODEC_MIMETYPE_VIDEO_HEVC);
156f6603c60Sopenharmony_ci    checkParam = OH_VideoEncoder_Destroy(videoEnc);
157f6603c60Sopenharmony_ci    if (checkParam == AV_ERR_OK) {
158f6603c60Sopenharmony_ci        backParam = SUCCESS;
159f6603c60Sopenharmony_ci    }
160f6603c60Sopenharmony_ci    videoEnc = nullptr;
161f6603c60Sopenharmony_ci    napi_create_int32(env, backParam, &result);
162f6603c60Sopenharmony_ci    return result;
163f6603c60Sopenharmony_ci}
164f6603c60Sopenharmony_ci
165f6603c60Sopenharmony_cistatic napi_value OHVideoEncoderDestroyAbnormal(napi_env env, napi_callback_info info)
166f6603c60Sopenharmony_ci{
167f6603c60Sopenharmony_ci    int backParam = FAIL;
168f6603c60Sopenharmony_ci    napi_value result = nullptr;
169f6603c60Sopenharmony_ci    OH_AVCodec *videoEnc = nullptr;
170f6603c60Sopenharmony_ci    OH_AVErrCode checkParam;
171f6603c60Sopenharmony_ci    videoEnc = OH_VideoEncoder_CreateByMime(nullptr);
172f6603c60Sopenharmony_ci    checkParam = OH_VideoEncoder_Destroy(videoEnc);
173f6603c60Sopenharmony_ci    if (checkParam != AV_ERR_OK) {
174f6603c60Sopenharmony_ci        backParam = SUCCESS;
175f6603c60Sopenharmony_ci    }
176f6603c60Sopenharmony_ci    videoEnc = nullptr;
177f6603c60Sopenharmony_ci    napi_create_int32(env, backParam, &result);
178f6603c60Sopenharmony_ci    return result;
179f6603c60Sopenharmony_ci}
180f6603c60Sopenharmony_ci
181f6603c60Sopenharmony_cistatic void OnError(OH_AVCodec *codec, int32_t errorCode, void *userData)
182f6603c60Sopenharmony_ci{
183f6603c60Sopenharmony_ci    (void)codec;
184f6603c60Sopenharmony_ci    (void)errorCode;
185f6603c60Sopenharmony_ci    (void)userData;
186f6603c60Sopenharmony_ci}
187f6603c60Sopenharmony_ci
188f6603c60Sopenharmony_cistatic void OnStreamChanged(OH_AVCodec *codec, OH_AVFormat *format, void *userData)
189f6603c60Sopenharmony_ci{
190f6603c60Sopenharmony_ci    (void)codec;
191f6603c60Sopenharmony_ci    (void)format;
192f6603c60Sopenharmony_ci    (void)userData;
193f6603c60Sopenharmony_ci}
194f6603c60Sopenharmony_ci
195f6603c60Sopenharmony_cistatic void OnNeedInputData(OH_AVCodec *codec, uint32_t index, OH_AVMemory *mem, void *userData)
196f6603c60Sopenharmony_ci{
197f6603c60Sopenharmony_ci    (void)userData;
198f6603c60Sopenharmony_ci}
199f6603c60Sopenharmony_ci
200f6603c60Sopenharmony_cistatic void OnNeedOutputData(OH_AVCodec *codec, uint32_t index, OH_AVMemory *mem, OH_AVCodecBufferAttr *attr,
201f6603c60Sopenharmony_ci    void *userData)
202f6603c60Sopenharmony_ci{
203f6603c60Sopenharmony_ci    (void)userData;
204f6603c60Sopenharmony_ci}
205f6603c60Sopenharmony_ci
206f6603c60Sopenharmony_cistatic void OnNeedInputBuffer(OH_AVCodec *codec, uint32_t index, OH_AVBuffer *buffer, void *userData)
207f6603c60Sopenharmony_ci{
208f6603c60Sopenharmony_ci    (void)userData;
209f6603c60Sopenharmony_ci}
210f6603c60Sopenharmony_ci
211f6603c60Sopenharmony_cistatic void OnNeedOutputBuffer(OH_AVCodec *codec, uint32_t index, OH_AVBuffer *buffer, void *userData)
212f6603c60Sopenharmony_ci{
213f6603c60Sopenharmony_ci    (void)userData;
214f6603c60Sopenharmony_ci}
215f6603c60Sopenharmony_ci
216f6603c60Sopenharmony_cistatic napi_value OHVideoEncoderSetCallback(napi_env env, napi_callback_info info)
217f6603c60Sopenharmony_ci{
218f6603c60Sopenharmony_ci    int backParam = FAIL;
219f6603c60Sopenharmony_ci    napi_value result = nullptr;
220f6603c60Sopenharmony_ci    OH_AVCodec *videoEnc = nullptr;
221f6603c60Sopenharmony_ci    OH_AVErrCode checkParam;
222f6603c60Sopenharmony_ci    videoEnc = OH_VideoEncoder_CreateByMime(OH_AVCODEC_MIMETYPE_VIDEO_AVC);
223f6603c60Sopenharmony_ci    OH_AVCodecAsyncCallback callback = { &OnError, &OnStreamChanged, &OnNeedInputData, &OnNeedOutputData };
224f6603c60Sopenharmony_ci    checkParam = OH_VideoEncoder_SetCallback(videoEnc, callback, nullptr);
225f6603c60Sopenharmony_ci    if (checkParam == AV_ERR_OK) {
226f6603c60Sopenharmony_ci        backParam = SUCCESS;
227f6603c60Sopenharmony_ci    }
228f6603c60Sopenharmony_ci    OH_VideoEncoder_Destroy(videoEnc);
229f6603c60Sopenharmony_ci    napi_create_int32(env, backParam, &result);
230f6603c60Sopenharmony_ci    return result;
231f6603c60Sopenharmony_ci}
232f6603c60Sopenharmony_ci
233f6603c60Sopenharmony_cistatic napi_value OHVideoEncoderSetCallbackHEVC(napi_env env, napi_callback_info info)
234f6603c60Sopenharmony_ci{
235f6603c60Sopenharmony_ci    int backParam = FAIL;
236f6603c60Sopenharmony_ci    napi_value result = nullptr;
237f6603c60Sopenharmony_ci    OH_AVCodec *videoEnc = nullptr;
238f6603c60Sopenharmony_ci    OH_AVErrCode checkParam;
239f6603c60Sopenharmony_ci    videoEnc = OH_VideoEncoder_CreateByMime(OH_AVCODEC_MIMETYPE_VIDEO_HEVC);
240f6603c60Sopenharmony_ci    OH_AVCodecAsyncCallback callback = { &OnError, &OnStreamChanged, &OnNeedInputData, &OnNeedOutputData };
241f6603c60Sopenharmony_ci    checkParam = OH_VideoEncoder_SetCallback(videoEnc, callback, nullptr);
242f6603c60Sopenharmony_ci    if (checkParam == AV_ERR_OK) {
243f6603c60Sopenharmony_ci        backParam = SUCCESS;
244f6603c60Sopenharmony_ci    }
245f6603c60Sopenharmony_ci    OH_VideoEncoder_Destroy(videoEnc);
246f6603c60Sopenharmony_ci    napi_create_int32(env, backParam, &result);
247f6603c60Sopenharmony_ci    return result;
248f6603c60Sopenharmony_ci}
249f6603c60Sopenharmony_ci
250f6603c60Sopenharmony_cistatic napi_value OHVideoEncoderSetCallbackAbnormal(napi_env env, napi_callback_info info)
251f6603c60Sopenharmony_ci{
252f6603c60Sopenharmony_ci    int backParam = FAIL;
253f6603c60Sopenharmony_ci    napi_value result = nullptr;
254f6603c60Sopenharmony_ci    OH_AVCodec *videoEnc = nullptr;
255f6603c60Sopenharmony_ci    OH_AVErrCode checkParam;
256f6603c60Sopenharmony_ci    videoEnc = OH_VideoEncoder_CreateByMime(nullptr);
257f6603c60Sopenharmony_ci    OH_AVCodecAsyncCallback callback = { &OnError, &OnStreamChanged, &OnNeedInputData, &OnNeedOutputData };
258f6603c60Sopenharmony_ci    checkParam = OH_VideoEncoder_SetCallback(videoEnc, callback, nullptr);
259f6603c60Sopenharmony_ci    if (checkParam != AV_ERR_OK) {
260f6603c60Sopenharmony_ci        backParam = SUCCESS;
261f6603c60Sopenharmony_ci    }
262f6603c60Sopenharmony_ci    OH_VideoEncoder_Destroy(videoEnc);
263f6603c60Sopenharmony_ci    napi_create_int32(env, backParam, &result);
264f6603c60Sopenharmony_ci    return result;
265f6603c60Sopenharmony_ci}
266f6603c60Sopenharmony_ci
267f6603c60Sopenharmony_cistatic napi_value OHVideoEncoderRegisterCallback(napi_env env, napi_callback_info info)
268f6603c60Sopenharmony_ci{
269f6603c60Sopenharmony_ci    int backParam = FAIL;
270f6603c60Sopenharmony_ci    napi_value result = nullptr;
271f6603c60Sopenharmony_ci    OH_AVCodec *videoEnc = nullptr;
272f6603c60Sopenharmony_ci    OH_AVErrCode checkParam;
273f6603c60Sopenharmony_ci    videoEnc = OH_VideoEncoder_CreateByMime(OH_AVCODEC_MIMETYPE_VIDEO_AVC);
274f6603c60Sopenharmony_ci    OH_AVCodecCallback callback = { &OnError, &OnStreamChanged, &OnNeedInputBuffer, &OnNeedOutputBuffer };
275f6603c60Sopenharmony_ci    checkParam = OH_VideoEncoder_RegisterCallback(videoEnc, callback, nullptr);
276f6603c60Sopenharmony_ci    if (checkParam == AV_ERR_OK) {
277f6603c60Sopenharmony_ci        backParam = SUCCESS;
278f6603c60Sopenharmony_ci    }
279f6603c60Sopenharmony_ci    OH_VideoEncoder_Destroy(videoEnc);
280f6603c60Sopenharmony_ci    napi_create_int32(env, backParam, &result);
281f6603c60Sopenharmony_ci    return result;
282f6603c60Sopenharmony_ci}
283f6603c60Sopenharmony_ci
284f6603c60Sopenharmony_cistatic napi_value OHVideoEncoderRegisterCallbackHEVC(napi_env env, napi_callback_info info)
285f6603c60Sopenharmony_ci{
286f6603c60Sopenharmony_ci    int backParam = FAIL;
287f6603c60Sopenharmony_ci    napi_value result = nullptr;
288f6603c60Sopenharmony_ci    OH_AVCodec *videoEnc = nullptr;
289f6603c60Sopenharmony_ci    OH_AVErrCode checkParam;
290f6603c60Sopenharmony_ci    videoEnc = OH_VideoEncoder_CreateByMime(OH_AVCODEC_MIMETYPE_VIDEO_HEVC);
291f6603c60Sopenharmony_ci    OH_AVCodecCallback callback = { &OnError, &OnStreamChanged, &OnNeedInputBuffer, &OnNeedOutputBuffer };
292f6603c60Sopenharmony_ci    checkParam = OH_VideoEncoder_RegisterCallback(videoEnc, callback, nullptr);
293f6603c60Sopenharmony_ci    if (checkParam == AV_ERR_OK) {
294f6603c60Sopenharmony_ci        backParam = SUCCESS;
295f6603c60Sopenharmony_ci    }
296f6603c60Sopenharmony_ci    OH_VideoEncoder_Destroy(videoEnc);
297f6603c60Sopenharmony_ci    napi_create_int32(env, backParam, &result);
298f6603c60Sopenharmony_ci    return result;
299f6603c60Sopenharmony_ci}
300f6603c60Sopenharmony_ci
301f6603c60Sopenharmony_cistatic napi_value OHVideoEncoderRegisterCallbackAbnormal(napi_env env, napi_callback_info info)
302f6603c60Sopenharmony_ci{
303f6603c60Sopenharmony_ci    int backParam = FAIL;
304f6603c60Sopenharmony_ci    napi_value result = nullptr;
305f6603c60Sopenharmony_ci    OH_AVCodec *videoEnc = nullptr;
306f6603c60Sopenharmony_ci    OH_AVErrCode checkParam;
307f6603c60Sopenharmony_ci    videoEnc = OH_VideoEncoder_CreateByMime(nullptr);
308f6603c60Sopenharmony_ci    OH_AVCodecCallback callback = { &OnError, &OnStreamChanged, &OnNeedInputBuffer, &OnNeedOutputBuffer };
309f6603c60Sopenharmony_ci    checkParam = OH_VideoEncoder_RegisterCallback(videoEnc, callback, nullptr);
310f6603c60Sopenharmony_ci    if (checkParam != AV_ERR_OK) {
311f6603c60Sopenharmony_ci        backParam = SUCCESS;
312f6603c60Sopenharmony_ci    }
313f6603c60Sopenharmony_ci    OH_VideoEncoder_Destroy(videoEnc);
314f6603c60Sopenharmony_ci    napi_create_int32(env, backParam, &result);
315f6603c60Sopenharmony_ci    return result;
316f6603c60Sopenharmony_ci}
317f6603c60Sopenharmony_ci
318f6603c60Sopenharmony_cistatic napi_value OHVideoEncoderConfigure(napi_env env, napi_callback_info info)
319f6603c60Sopenharmony_ci{
320f6603c60Sopenharmony_ci    int backParam = FAIL;
321f6603c60Sopenharmony_ci    napi_value result = nullptr;
322f6603c60Sopenharmony_ci    OH_AVCodec *videoEnc = nullptr;
323f6603c60Sopenharmony_ci    OH_AVErrCode checkParam;
324f6603c60Sopenharmony_ci    OH_AVFormat *format = nullptr;
325f6603c60Sopenharmony_ci    format = OH_AVFormat_Create();
326f6603c60Sopenharmony_ci    OH_AVFormat_SetIntValue(format, OH_MD_KEY_WIDTH, DEFAULT_WIDTH);
327f6603c60Sopenharmony_ci    OH_AVFormat_SetIntValue(format, OH_MD_KEY_HEIGHT, DEFAULT_HEIGHT);
328f6603c60Sopenharmony_ci    OH_AVFormat_SetIntValue(format, OH_MD_KEY_PIXEL_FORMAT, DEFAULT_PIXELFORMAT);
329f6603c60Sopenharmony_ci    videoEnc = OH_VideoEncoder_CreateByMime(OH_AVCODEC_MIMETYPE_VIDEO_AVC);
330f6603c60Sopenharmony_ci    checkParam = OH_VideoEncoder_Configure(videoEnc, format);
331f6603c60Sopenharmony_ci    if (checkParam == AV_ERR_OK) {
332f6603c60Sopenharmony_ci        backParam = SUCCESS;
333f6603c60Sopenharmony_ci    }
334f6603c60Sopenharmony_ci    OH_VideoEncoder_Destroy(videoEnc);
335f6603c60Sopenharmony_ci    napi_create_int32(env, backParam, &result);
336f6603c60Sopenharmony_ci    return result;
337f6603c60Sopenharmony_ci}
338f6603c60Sopenharmony_ci
339f6603c60Sopenharmony_cistatic napi_value OHVideoEncoderConfigureHEVC(napi_env env, napi_callback_info info)
340f6603c60Sopenharmony_ci{
341f6603c60Sopenharmony_ci    int backParam = FAIL;
342f6603c60Sopenharmony_ci    napi_value result = nullptr;
343f6603c60Sopenharmony_ci    OH_AVCodec *videoEnc = nullptr;
344f6603c60Sopenharmony_ci    OH_AVErrCode checkParam;
345f6603c60Sopenharmony_ci    OH_AVFormat *format = nullptr;
346f6603c60Sopenharmony_ci    format = OH_AVFormat_Create();
347f6603c60Sopenharmony_ci    OH_AVFormat_SetIntValue(format, OH_MD_KEY_WIDTH, DEFAULT_WIDTH);
348f6603c60Sopenharmony_ci    OH_AVFormat_SetIntValue(format, OH_MD_KEY_HEIGHT, DEFAULT_HEIGHT);
349f6603c60Sopenharmony_ci    OH_AVFormat_SetIntValue(format, OH_MD_KEY_PIXEL_FORMAT, DEFAULT_PIXELFORMAT);
350f6603c60Sopenharmony_ci    videoEnc = OH_VideoEncoder_CreateByMime(OH_AVCODEC_MIMETYPE_VIDEO_HEVC);
351f6603c60Sopenharmony_ci    checkParam = OH_VideoEncoder_Configure(videoEnc, format);
352f6603c60Sopenharmony_ci    if (checkParam == AV_ERR_OK) {
353f6603c60Sopenharmony_ci        backParam = SUCCESS;
354f6603c60Sopenharmony_ci    }
355f6603c60Sopenharmony_ci    OH_VideoEncoder_Destroy(videoEnc);
356f6603c60Sopenharmony_ci    napi_create_int32(env, backParam, &result);
357f6603c60Sopenharmony_ci    return result;
358f6603c60Sopenharmony_ci}
359f6603c60Sopenharmony_ci
360f6603c60Sopenharmony_cistatic napi_value OHVideoEncoderConfigureAbnormal1(napi_env env, napi_callback_info info)
361f6603c60Sopenharmony_ci{
362f6603c60Sopenharmony_ci    int backParam = FAIL;
363f6603c60Sopenharmony_ci    napi_value result = nullptr;
364f6603c60Sopenharmony_ci    OH_AVCodec *videoEnc = nullptr;
365f6603c60Sopenharmony_ci    OH_AVErrCode checkParam;
366f6603c60Sopenharmony_ci    OH_AVFormat *format = nullptr;
367f6603c60Sopenharmony_ci    format = OH_AVFormat_Create();
368f6603c60Sopenharmony_ci    OH_AVFormat_SetIntValue(format, OH_MD_KEY_WIDTH, DEFAULT_WIDTH);
369f6603c60Sopenharmony_ci    OH_AVFormat_SetIntValue(format, OH_MD_KEY_HEIGHT, DEFAULT_HEIGHT);
370f6603c60Sopenharmony_ci    OH_AVFormat_SetIntValue(format, OH_MD_KEY_PIXEL_FORMAT, DEFAULT_PIXELFORMAT);
371f6603c60Sopenharmony_ci    videoEnc = OH_VideoEncoder_CreateByMime(OH_AVCODEC_MIMETYPE_VIDEO_AVC);
372f6603c60Sopenharmony_ci    checkParam = OH_VideoEncoder_Configure(videoEnc, nullptr);
373f6603c60Sopenharmony_ci    if (checkParam != AV_ERR_OK) {
374f6603c60Sopenharmony_ci        backParam = SUCCESS;
375f6603c60Sopenharmony_ci    }
376f6603c60Sopenharmony_ci    OH_VideoEncoder_Destroy(videoEnc);
377f6603c60Sopenharmony_ci    napi_create_int32(env, backParam, &result);
378f6603c60Sopenharmony_ci    return result;
379f6603c60Sopenharmony_ci}
380f6603c60Sopenharmony_ci
381f6603c60Sopenharmony_cistatic napi_value OHVideoEncoderConfigureAbnormal2(napi_env env, napi_callback_info info)
382f6603c60Sopenharmony_ci{
383f6603c60Sopenharmony_ci    int backParam = FAIL;
384f6603c60Sopenharmony_ci    napi_value result = nullptr;
385f6603c60Sopenharmony_ci    OH_AVCodec *videoEnc = nullptr;
386f6603c60Sopenharmony_ci    OH_AVErrCode checkParam;
387f6603c60Sopenharmony_ci    OH_AVFormat *format = nullptr;
388f6603c60Sopenharmony_ci    format = OH_AVFormat_Create();
389f6603c60Sopenharmony_ci    OH_AVFormat_SetIntValue(format, OH_MD_KEY_WIDTH, DEFAULT_WIDTH);
390f6603c60Sopenharmony_ci    OH_AVFormat_SetIntValue(format, OH_MD_KEY_HEIGHT, DEFAULT_HEIGHT);
391f6603c60Sopenharmony_ci    OH_AVFormat_SetIntValue(format, OH_MD_KEY_PIXEL_FORMAT, DEFAULT_PIXELFORMAT);
392f6603c60Sopenharmony_ci    videoEnc = OH_VideoEncoder_CreateByMime(OH_AVCODEC_MIMETYPE_VIDEO_AVC);
393f6603c60Sopenharmony_ci    checkParam = OH_VideoEncoder_Configure(nullptr, format);
394f6603c60Sopenharmony_ci    if (checkParam != AV_ERR_OK) {
395f6603c60Sopenharmony_ci        backParam = SUCCESS;
396f6603c60Sopenharmony_ci    }
397f6603c60Sopenharmony_ci    OH_VideoEncoder_Destroy(videoEnc);
398f6603c60Sopenharmony_ci    napi_create_int32(env, backParam, &result);
399f6603c60Sopenharmony_ci    return result;
400f6603c60Sopenharmony_ci}
401f6603c60Sopenharmony_ci
402f6603c60Sopenharmony_cistatic napi_value OHVideoEncoderConfigureAbnormal3(napi_env env, napi_callback_info info)
403f6603c60Sopenharmony_ci{
404f6603c60Sopenharmony_ci    int backParam = FAIL;
405f6603c60Sopenharmony_ci    napi_value result = nullptr;
406f6603c60Sopenharmony_ci    OH_AVCodec *videoEnc = nullptr;
407f6603c60Sopenharmony_ci    OH_AVErrCode checkParam;
408f6603c60Sopenharmony_ci    OH_AVFormat *format = nullptr;
409f6603c60Sopenharmony_ci    format = OH_AVFormat_Create();
410f6603c60Sopenharmony_ci    OH_AVFormat_SetIntValue(format, OH_MD_KEY_WIDTH, DEFAULT_WIDTH);
411f6603c60Sopenharmony_ci    OH_AVFormat_SetIntValue(format, OH_MD_KEY_HEIGHT, DEFAULT_HEIGHT);
412f6603c60Sopenharmony_ci    OH_AVFormat_SetIntValue(format, OH_MD_KEY_PIXEL_FORMAT, DEFAULT_PIXELFORMAT);
413f6603c60Sopenharmony_ci    videoEnc = OH_VideoEncoder_CreateByMime(OH_AVCODEC_MIMETYPE_VIDEO_AVC);
414f6603c60Sopenharmony_ci    checkParam = OH_VideoEncoder_Configure(nullptr, nullptr);
415f6603c60Sopenharmony_ci    if (checkParam != AV_ERR_OK) {
416f6603c60Sopenharmony_ci        backParam = SUCCESS;
417f6603c60Sopenharmony_ci    }
418f6603c60Sopenharmony_ci    OH_VideoEncoder_Destroy(videoEnc);
419f6603c60Sopenharmony_ci    napi_create_int32(env, backParam, &result);
420f6603c60Sopenharmony_ci    return result;
421f6603c60Sopenharmony_ci}
422f6603c60Sopenharmony_ci
423f6603c60Sopenharmony_cistatic napi_value OHVideoEncoderConfigureAbnormal4(napi_env env, napi_callback_info info)
424f6603c60Sopenharmony_ci{
425f6603c60Sopenharmony_ci    int backParam = FAIL;
426f6603c60Sopenharmony_ci    napi_value result = nullptr;
427f6603c60Sopenharmony_ci    OH_AVCodec *videoEnc = nullptr;
428f6603c60Sopenharmony_ci    OH_AVErrCode checkParam;
429f6603c60Sopenharmony_ci    OH_AVFormat *format = nullptr;
430f6603c60Sopenharmony_ci    format = OH_AVFormat_Create();
431f6603c60Sopenharmony_ci    OH_AVFormat_SetIntValue(format, OH_MD_KEY_WIDTH, DEFAULT_WIDTH);
432f6603c60Sopenharmony_ci    OH_AVFormat_SetIntValue(format, OH_MD_KEY_HEIGHT, DEFAULT_HEIGHT);
433f6603c60Sopenharmony_ci    OH_AVFormat_SetIntValue(format, OH_MD_KEY_PIXEL_FORMAT, DEFAULT_PIXELFORMAT);
434f6603c60Sopenharmony_ci    videoEnc = OH_VideoEncoder_CreateByMime(nullptr);
435f6603c60Sopenharmony_ci    checkParam = OH_VideoEncoder_Configure(videoEnc, format);
436f6603c60Sopenharmony_ci    if (checkParam != AV_ERR_OK) {
437f6603c60Sopenharmony_ci        backParam = SUCCESS;
438f6603c60Sopenharmony_ci    }
439f6603c60Sopenharmony_ci    OH_VideoEncoder_Destroy(videoEnc);
440f6603c60Sopenharmony_ci    napi_create_int32(env, backParam, &result);
441f6603c60Sopenharmony_ci    return result;
442f6603c60Sopenharmony_ci}
443f6603c60Sopenharmony_ci
444f6603c60Sopenharmony_cistatic napi_value OHVideoEncoderConfigureAbnormal5(napi_env env, napi_callback_info info)
445f6603c60Sopenharmony_ci{
446f6603c60Sopenharmony_ci    int backParam = FAIL;
447f6603c60Sopenharmony_ci    napi_value result = nullptr;
448f6603c60Sopenharmony_ci    OH_AVCodec *videoEnc = nullptr;
449f6603c60Sopenharmony_ci    OH_AVErrCode checkParam;
450f6603c60Sopenharmony_ci    OH_AVFormat *format = nullptr;
451f6603c60Sopenharmony_ci    format = OH_AVFormat_Create();
452f6603c60Sopenharmony_ci    OH_AVFormat_SetIntValue(format, OH_MD_KEY_WIDTH, DEFAULT_WIDTH);
453f6603c60Sopenharmony_ci    OH_AVFormat_SetIntValue(format, OH_MD_KEY_HEIGHT, DEFAULT_HEIGHT);
454f6603c60Sopenharmony_ci    OH_AVFormat_SetIntValue(format, OH_MD_KEY_PIXEL_FORMAT, DEFAULT_PIXELFORMAT);
455f6603c60Sopenharmony_ci    videoEnc = OH_VideoEncoder_CreateByMime(nullptr);
456f6603c60Sopenharmony_ci    checkParam = OH_VideoEncoder_Configure(videoEnc, nullptr);
457f6603c60Sopenharmony_ci    if (checkParam != AV_ERR_OK) {
458f6603c60Sopenharmony_ci        backParam = SUCCESS;
459f6603c60Sopenharmony_ci    }
460f6603c60Sopenharmony_ci    OH_VideoEncoder_Destroy(videoEnc);
461f6603c60Sopenharmony_ci    napi_create_int32(env, backParam, &result);
462f6603c60Sopenharmony_ci    return result;
463f6603c60Sopenharmony_ci}
464f6603c60Sopenharmony_ci
465f6603c60Sopenharmony_cistatic napi_value OHVideoEncoderConfigureAbnormal6(napi_env env, napi_callback_info info)
466f6603c60Sopenharmony_ci{
467f6603c60Sopenharmony_ci    int backParam = FAIL;
468f6603c60Sopenharmony_ci    napi_value result = nullptr;
469f6603c60Sopenharmony_ci    OH_AVCodec *videoEnc = nullptr;
470f6603c60Sopenharmony_ci    OH_AVErrCode checkParam;
471f6603c60Sopenharmony_ci    OH_AVFormat *format = nullptr;
472f6603c60Sopenharmony_ci    format = OH_AVFormat_Create();
473f6603c60Sopenharmony_ci    OH_AVFormat_SetIntValue(format, OH_MD_KEY_WIDTH, DEFAULT_WIDTH);
474f6603c60Sopenharmony_ci    OH_AVFormat_SetIntValue(format, OH_MD_KEY_HEIGHT, DEFAULT_HEIGHT);
475f6603c60Sopenharmony_ci    OH_AVFormat_SetIntValue(format, OH_MD_KEY_PIXEL_FORMAT, DEFAULT_PIXELFORMAT);
476f6603c60Sopenharmony_ci    videoEnc = OH_VideoEncoder_CreateByMime(nullptr);
477f6603c60Sopenharmony_ci    checkParam = OH_VideoEncoder_Configure(nullptr, format);
478f6603c60Sopenharmony_ci    if (checkParam != AV_ERR_OK) {
479f6603c60Sopenharmony_ci        backParam = SUCCESS;
480f6603c60Sopenharmony_ci    }
481f6603c60Sopenharmony_ci    OH_VideoEncoder_Destroy(videoEnc);
482f6603c60Sopenharmony_ci    napi_create_int32(env, backParam, &result);
483f6603c60Sopenharmony_ci    return result;
484f6603c60Sopenharmony_ci}
485f6603c60Sopenharmony_ci
486f6603c60Sopenharmony_cistatic napi_value OHVideoEncoderConfigureAbnormal7(napi_env env, napi_callback_info info)
487f6603c60Sopenharmony_ci{
488f6603c60Sopenharmony_ci    int backParam = FAIL;
489f6603c60Sopenharmony_ci    napi_value result = nullptr;
490f6603c60Sopenharmony_ci    OH_AVCodec *videoEnc = nullptr;
491f6603c60Sopenharmony_ci    OH_AVErrCode checkParam;
492f6603c60Sopenharmony_ci    OH_AVFormat *format = nullptr;
493f6603c60Sopenharmony_ci    format = OH_AVFormat_Create();
494f6603c60Sopenharmony_ci    OH_AVFormat_SetIntValue(format, OH_MD_KEY_WIDTH, DEFAULT_WIDTH);
495f6603c60Sopenharmony_ci    OH_AVFormat_SetIntValue(format, OH_MD_KEY_HEIGHT, DEFAULT_HEIGHT);
496f6603c60Sopenharmony_ci    OH_AVFormat_SetIntValue(format, OH_MD_KEY_PIXEL_FORMAT, DEFAULT_PIXELFORMAT);
497f6603c60Sopenharmony_ci    videoEnc = OH_VideoEncoder_CreateByMime(nullptr);
498f6603c60Sopenharmony_ci    checkParam = OH_VideoEncoder_Configure(nullptr, nullptr);
499f6603c60Sopenharmony_ci    if (checkParam != AV_ERR_OK) {
500f6603c60Sopenharmony_ci        backParam = SUCCESS;
501f6603c60Sopenharmony_ci    }
502f6603c60Sopenharmony_ci    OH_VideoEncoder_Destroy(videoEnc);
503f6603c60Sopenharmony_ci    napi_create_int32(env, backParam, &result);
504f6603c60Sopenharmony_ci    return result;
505f6603c60Sopenharmony_ci}
506f6603c60Sopenharmony_ci
507f6603c60Sopenharmony_cistatic napi_value OHVideoEncoderPrepare(napi_env env, napi_callback_info info)
508f6603c60Sopenharmony_ci{
509f6603c60Sopenharmony_ci    int backParam = FAIL;
510f6603c60Sopenharmony_ci    napi_value result = nullptr;
511f6603c60Sopenharmony_ci    OH_AVCodec *videoEnc = nullptr;
512f6603c60Sopenharmony_ci    OH_AVErrCode checkParam;
513f6603c60Sopenharmony_ci    OH_AVFormat *format = nullptr;
514f6603c60Sopenharmony_ci    format = OH_AVFormat_Create();
515f6603c60Sopenharmony_ci    OH_AVFormat_SetIntValue(format, OH_MD_KEY_WIDTH, DEFAULT_WIDTH);
516f6603c60Sopenharmony_ci    OH_AVFormat_SetIntValue(format, OH_MD_KEY_HEIGHT, DEFAULT_HEIGHT);
517f6603c60Sopenharmony_ci    OH_AVFormat_SetIntValue(format, OH_MD_KEY_PIXEL_FORMAT, DEFAULT_PIXELFORMAT);
518f6603c60Sopenharmony_ci    videoEnc = OH_VideoEncoder_CreateByMime(OH_AVCODEC_MIMETYPE_VIDEO_AVC);
519f6603c60Sopenharmony_ci    OH_VideoEncoder_Configure(videoEnc, format);
520f6603c60Sopenharmony_ci    checkParam = OH_VideoEncoder_Prepare(videoEnc);
521f6603c60Sopenharmony_ci    if (checkParam == AV_ERR_OK) {
522f6603c60Sopenharmony_ci        backParam = SUCCESS;
523f6603c60Sopenharmony_ci    }
524f6603c60Sopenharmony_ci    OH_VideoEncoder_Destroy(videoEnc);
525f6603c60Sopenharmony_ci    napi_create_int32(env, backParam, &result);
526f6603c60Sopenharmony_ci    return result;
527f6603c60Sopenharmony_ci}
528f6603c60Sopenharmony_ci
529f6603c60Sopenharmony_cistatic napi_value OHVideoEncoderPrepareHEVC(napi_env env, napi_callback_info info)
530f6603c60Sopenharmony_ci{
531f6603c60Sopenharmony_ci    int backParam = FAIL;
532f6603c60Sopenharmony_ci    napi_value result = nullptr;
533f6603c60Sopenharmony_ci    OH_AVCodec *videoEnc = nullptr;
534f6603c60Sopenharmony_ci    OH_AVErrCode checkParam;
535f6603c60Sopenharmony_ci    OH_AVFormat *format = nullptr;
536f6603c60Sopenharmony_ci    format = OH_AVFormat_Create();
537f6603c60Sopenharmony_ci    OH_AVFormat_SetIntValue(format, OH_MD_KEY_WIDTH, DEFAULT_WIDTH);
538f6603c60Sopenharmony_ci    OH_AVFormat_SetIntValue(format, OH_MD_KEY_HEIGHT, DEFAULT_HEIGHT);
539f6603c60Sopenharmony_ci    OH_AVFormat_SetIntValue(format, OH_MD_KEY_PIXEL_FORMAT, DEFAULT_PIXELFORMAT);
540f6603c60Sopenharmony_ci    videoEnc = OH_VideoEncoder_CreateByMime(OH_AVCODEC_MIMETYPE_VIDEO_HEVC);
541f6603c60Sopenharmony_ci    OH_VideoEncoder_Configure(videoEnc, format);
542f6603c60Sopenharmony_ci    checkParam = OH_VideoEncoder_Prepare(videoEnc);
543f6603c60Sopenharmony_ci    if (checkParam == AV_ERR_OK) {
544f6603c60Sopenharmony_ci        backParam = SUCCESS;
545f6603c60Sopenharmony_ci    }
546f6603c60Sopenharmony_ci    OH_VideoEncoder_Destroy(videoEnc);
547f6603c60Sopenharmony_ci    napi_create_int32(env, backParam, &result);
548f6603c60Sopenharmony_ci    return result;
549f6603c60Sopenharmony_ci}
550f6603c60Sopenharmony_ci
551f6603c60Sopenharmony_cistatic napi_value OHVideoEncoderPrepareAbnormal1(napi_env env, napi_callback_info info)
552f6603c60Sopenharmony_ci{
553f6603c60Sopenharmony_ci    int backParam = FAIL;
554f6603c60Sopenharmony_ci    napi_value result = nullptr;
555f6603c60Sopenharmony_ci    OH_AVCodec *videoEnc = nullptr;
556f6603c60Sopenharmony_ci    OH_AVErrCode checkParam;
557f6603c60Sopenharmony_ci    OH_AVFormat *format = nullptr;
558f6603c60Sopenharmony_ci    format = OH_AVFormat_Create();
559f6603c60Sopenharmony_ci    OH_AVFormat_SetIntValue(format, OH_MD_KEY_WIDTH, DEFAULT_WIDTH);
560f6603c60Sopenharmony_ci    OH_AVFormat_SetIntValue(format, OH_MD_KEY_HEIGHT, DEFAULT_HEIGHT);
561f6603c60Sopenharmony_ci    OH_AVFormat_SetIntValue(format, OH_MD_KEY_PIXEL_FORMAT, DEFAULT_PIXELFORMAT);
562f6603c60Sopenharmony_ci    videoEnc = OH_VideoEncoder_CreateByMime(OH_AVCODEC_MIMETYPE_VIDEO_AVC);
563f6603c60Sopenharmony_ci    OH_VideoEncoder_Configure(videoEnc, format);
564f6603c60Sopenharmony_ci    checkParam = OH_VideoEncoder_Prepare(nullptr);
565f6603c60Sopenharmony_ci    if (checkParam != AV_ERR_OK) {
566f6603c60Sopenharmony_ci        backParam = SUCCESS;
567f6603c60Sopenharmony_ci    }
568f6603c60Sopenharmony_ci    OH_VideoEncoder_Destroy(videoEnc);
569f6603c60Sopenharmony_ci    napi_create_int32(env, backParam, &result);
570f6603c60Sopenharmony_ci    return result;
571f6603c60Sopenharmony_ci}
572f6603c60Sopenharmony_ci
573f6603c60Sopenharmony_cistatic napi_value OHVideoEncoderPrepareAbnormal2(napi_env env, napi_callback_info info)
574f6603c60Sopenharmony_ci{
575f6603c60Sopenharmony_ci    int backParam = FAIL;
576f6603c60Sopenharmony_ci    napi_value result = nullptr;
577f6603c60Sopenharmony_ci    OH_AVCodec *videoEnc = nullptr;
578f6603c60Sopenharmony_ci    OH_AVErrCode checkParam;
579f6603c60Sopenharmony_ci    OH_AVFormat *format = nullptr;
580f6603c60Sopenharmony_ci    format = OH_AVFormat_Create();
581f6603c60Sopenharmony_ci    OH_AVFormat_SetIntValue(format, OH_MD_KEY_WIDTH, DEFAULT_WIDTH);
582f6603c60Sopenharmony_ci    OH_AVFormat_SetIntValue(format, OH_MD_KEY_HEIGHT, DEFAULT_HEIGHT);
583f6603c60Sopenharmony_ci    OH_AVFormat_SetIntValue(format, OH_MD_KEY_PIXEL_FORMAT, DEFAULT_PIXELFORMAT);
584f6603c60Sopenharmony_ci    videoEnc = OH_VideoEncoder_CreateByMime(OH_AVCODEC_MIMETYPE_VIDEO_AVC);
585f6603c60Sopenharmony_ci    OH_VideoEncoder_Configure(videoEnc, nullptr);
586f6603c60Sopenharmony_ci    checkParam = OH_VideoEncoder_Prepare(videoEnc);
587f6603c60Sopenharmony_ci    if (checkParam != AV_ERR_OK) {
588f6603c60Sopenharmony_ci        backParam = SUCCESS;
589f6603c60Sopenharmony_ci    }
590f6603c60Sopenharmony_ci    OH_VideoEncoder_Destroy(videoEnc);
591f6603c60Sopenharmony_ci    napi_create_int32(env, backParam, &result);
592f6603c60Sopenharmony_ci    return result;
593f6603c60Sopenharmony_ci}
594f6603c60Sopenharmony_ci
595f6603c60Sopenharmony_cistatic napi_value OHVideoEncoderPrepareAbnormal3(napi_env env, napi_callback_info info)
596f6603c60Sopenharmony_ci{
597f6603c60Sopenharmony_ci    int backParam = FAIL;
598f6603c60Sopenharmony_ci    napi_value result = nullptr;
599f6603c60Sopenharmony_ci    OH_AVCodec *videoEnc = nullptr;
600f6603c60Sopenharmony_ci    OH_AVErrCode checkParam;
601f6603c60Sopenharmony_ci    OH_AVFormat *format = nullptr;
602f6603c60Sopenharmony_ci    format = OH_AVFormat_Create();
603f6603c60Sopenharmony_ci    OH_AVFormat_SetIntValue(format, OH_MD_KEY_WIDTH, DEFAULT_WIDTH);
604f6603c60Sopenharmony_ci    OH_AVFormat_SetIntValue(format, OH_MD_KEY_HEIGHT, DEFAULT_HEIGHT);
605f6603c60Sopenharmony_ci    OH_AVFormat_SetIntValue(format, OH_MD_KEY_PIXEL_FORMAT, DEFAULT_PIXELFORMAT);
606f6603c60Sopenharmony_ci    videoEnc = OH_VideoEncoder_CreateByMime(OH_AVCODEC_MIMETYPE_VIDEO_AVC);
607f6603c60Sopenharmony_ci    OH_VideoEncoder_Configure(videoEnc, nullptr);
608f6603c60Sopenharmony_ci    checkParam = OH_VideoEncoder_Prepare(nullptr);
609f6603c60Sopenharmony_ci    if (checkParam != AV_ERR_OK) {
610f6603c60Sopenharmony_ci        backParam = SUCCESS;
611f6603c60Sopenharmony_ci    }
612f6603c60Sopenharmony_ci    OH_VideoEncoder_Destroy(videoEnc);
613f6603c60Sopenharmony_ci    napi_create_int32(env, backParam, &result);
614f6603c60Sopenharmony_ci    return result;
615f6603c60Sopenharmony_ci}
616f6603c60Sopenharmony_ci
617f6603c60Sopenharmony_cistatic napi_value OHVideoEncoderPrepareAbnormal4(napi_env env, napi_callback_info info)
618f6603c60Sopenharmony_ci{
619f6603c60Sopenharmony_ci    int backParam = FAIL;
620f6603c60Sopenharmony_ci    napi_value result = nullptr;
621f6603c60Sopenharmony_ci    OH_AVCodec *videoEnc = nullptr;
622f6603c60Sopenharmony_ci    OH_AVErrCode checkParam;
623f6603c60Sopenharmony_ci    OH_AVFormat *format = nullptr;
624f6603c60Sopenharmony_ci    format = OH_AVFormat_Create();
625f6603c60Sopenharmony_ci    OH_AVFormat_SetIntValue(format, OH_MD_KEY_WIDTH, DEFAULT_WIDTH);
626f6603c60Sopenharmony_ci    OH_AVFormat_SetIntValue(format, OH_MD_KEY_HEIGHT, DEFAULT_HEIGHT);
627f6603c60Sopenharmony_ci    OH_AVFormat_SetIntValue(format, OH_MD_KEY_PIXEL_FORMAT, DEFAULT_PIXELFORMAT);
628f6603c60Sopenharmony_ci    videoEnc = OH_VideoEncoder_CreateByMime(OH_AVCODEC_MIMETYPE_VIDEO_AVC);
629f6603c60Sopenharmony_ci    OH_VideoEncoder_Configure(nullptr, format);
630f6603c60Sopenharmony_ci    checkParam = OH_VideoEncoder_Prepare(videoEnc);
631f6603c60Sopenharmony_ci    if (checkParam == AV_ERR_OK) {
632f6603c60Sopenharmony_ci        backParam = SUCCESS;
633f6603c60Sopenharmony_ci    }
634f6603c60Sopenharmony_ci    OH_VideoEncoder_Destroy(videoEnc);
635f6603c60Sopenharmony_ci    napi_create_int32(env, backParam, &result);
636f6603c60Sopenharmony_ci    return result;
637f6603c60Sopenharmony_ci}
638f6603c60Sopenharmony_ci
639f6603c60Sopenharmony_cistatic napi_value OHVideoEncoderPrepareAbnormal5(napi_env env, napi_callback_info info)
640f6603c60Sopenharmony_ci{
641f6603c60Sopenharmony_ci    int backParam = FAIL;
642f6603c60Sopenharmony_ci    napi_value result = nullptr;
643f6603c60Sopenharmony_ci    OH_AVCodec *videoEnc = nullptr;
644f6603c60Sopenharmony_ci    OH_AVErrCode checkParam;
645f6603c60Sopenharmony_ci    OH_AVFormat *format = nullptr;
646f6603c60Sopenharmony_ci    format = OH_AVFormat_Create();
647f6603c60Sopenharmony_ci    OH_AVFormat_SetIntValue(format, OH_MD_KEY_WIDTH, DEFAULT_WIDTH);
648f6603c60Sopenharmony_ci    OH_AVFormat_SetIntValue(format, OH_MD_KEY_HEIGHT, DEFAULT_HEIGHT);
649f6603c60Sopenharmony_ci    OH_AVFormat_SetIntValue(format, OH_MD_KEY_PIXEL_FORMAT, DEFAULT_PIXELFORMAT);
650f6603c60Sopenharmony_ci    videoEnc = OH_VideoEncoder_CreateByMime(OH_AVCODEC_MIMETYPE_VIDEO_AVC);
651f6603c60Sopenharmony_ci    OH_VideoEncoder_Configure(nullptr, format);
652f6603c60Sopenharmony_ci    checkParam = OH_VideoEncoder_Prepare(nullptr);
653f6603c60Sopenharmony_ci    if (checkParam != AV_ERR_OK) {
654f6603c60Sopenharmony_ci        backParam = SUCCESS;
655f6603c60Sopenharmony_ci    }
656f6603c60Sopenharmony_ci    OH_VideoEncoder_Destroy(videoEnc);
657f6603c60Sopenharmony_ci    napi_create_int32(env, backParam, &result);
658f6603c60Sopenharmony_ci    return result;
659f6603c60Sopenharmony_ci}
660f6603c60Sopenharmony_ci
661f6603c60Sopenharmony_cistatic napi_value OHVideoEncoderPrepareAbnormal6(napi_env env, napi_callback_info info)
662f6603c60Sopenharmony_ci{
663f6603c60Sopenharmony_ci    int backParam = FAIL;
664f6603c60Sopenharmony_ci    napi_value result = nullptr;
665f6603c60Sopenharmony_ci    OH_AVCodec *videoEnc = nullptr;
666f6603c60Sopenharmony_ci    OH_AVErrCode checkParam;
667f6603c60Sopenharmony_ci    OH_AVFormat *format = nullptr;
668f6603c60Sopenharmony_ci    format = OH_AVFormat_Create();
669f6603c60Sopenharmony_ci    OH_AVFormat_SetIntValue(format, OH_MD_KEY_WIDTH, DEFAULT_WIDTH);
670f6603c60Sopenharmony_ci    OH_AVFormat_SetIntValue(format, OH_MD_KEY_HEIGHT, DEFAULT_HEIGHT);
671f6603c60Sopenharmony_ci    OH_AVFormat_SetIntValue(format, OH_MD_KEY_PIXEL_FORMAT, DEFAULT_PIXELFORMAT);
672f6603c60Sopenharmony_ci    videoEnc = OH_VideoEncoder_CreateByMime(OH_AVCODEC_MIMETYPE_VIDEO_AVC);
673f6603c60Sopenharmony_ci    OH_VideoEncoder_Configure(nullptr, nullptr);
674f6603c60Sopenharmony_ci    checkParam = OH_VideoEncoder_Prepare(videoEnc);
675f6603c60Sopenharmony_ci    if (checkParam == AV_ERR_OK) {
676f6603c60Sopenharmony_ci        backParam = SUCCESS;
677f6603c60Sopenharmony_ci    }
678f6603c60Sopenharmony_ci    OH_VideoEncoder_Destroy(videoEnc);
679f6603c60Sopenharmony_ci    napi_create_int32(env, backParam, &result);
680f6603c60Sopenharmony_ci    return result;
681f6603c60Sopenharmony_ci}
682f6603c60Sopenharmony_ci
683f6603c60Sopenharmony_cistatic napi_value OHVideoEncoderPrepareAbnormal7(napi_env env, napi_callback_info info)
684f6603c60Sopenharmony_ci{
685f6603c60Sopenharmony_ci    int backParam = FAIL;
686f6603c60Sopenharmony_ci    napi_value result = nullptr;
687f6603c60Sopenharmony_ci    OH_AVCodec *videoEnc = nullptr;
688f6603c60Sopenharmony_ci    OH_AVErrCode checkParam;
689f6603c60Sopenharmony_ci    OH_AVFormat *format = nullptr;
690f6603c60Sopenharmony_ci    format = OH_AVFormat_Create();
691f6603c60Sopenharmony_ci    OH_AVFormat_SetIntValue(format, OH_MD_KEY_WIDTH, DEFAULT_WIDTH);
692f6603c60Sopenharmony_ci    OH_AVFormat_SetIntValue(format, OH_MD_KEY_HEIGHT, DEFAULT_HEIGHT);
693f6603c60Sopenharmony_ci    OH_AVFormat_SetIntValue(format, OH_MD_KEY_PIXEL_FORMAT, DEFAULT_PIXELFORMAT);
694f6603c60Sopenharmony_ci    videoEnc = OH_VideoEncoder_CreateByMime(OH_AVCODEC_MIMETYPE_VIDEO_AVC);
695f6603c60Sopenharmony_ci    OH_VideoEncoder_Configure(nullptr, nullptr);
696f6603c60Sopenharmony_ci    checkParam = OH_VideoEncoder_Prepare(nullptr);
697f6603c60Sopenharmony_ci    if (checkParam != AV_ERR_OK) {
698f6603c60Sopenharmony_ci        backParam = SUCCESS;
699f6603c60Sopenharmony_ci    }
700f6603c60Sopenharmony_ci    OH_VideoEncoder_Destroy(videoEnc);
701f6603c60Sopenharmony_ci    napi_create_int32(env, backParam, &result);
702f6603c60Sopenharmony_ci    return result;
703f6603c60Sopenharmony_ci}
704f6603c60Sopenharmony_ci
705f6603c60Sopenharmony_cistatic napi_value OHVideoEncoderPrepareAbnormal8(napi_env env, napi_callback_info info)
706f6603c60Sopenharmony_ci{
707f6603c60Sopenharmony_ci    int backParam = FAIL;
708f6603c60Sopenharmony_ci    napi_value result = nullptr;
709f6603c60Sopenharmony_ci    OH_AVCodec *videoEnc = nullptr;
710f6603c60Sopenharmony_ci    OH_AVErrCode checkParam;
711f6603c60Sopenharmony_ci    OH_AVFormat *format = nullptr;
712f6603c60Sopenharmony_ci    format = OH_AVFormat_Create();
713f6603c60Sopenharmony_ci    OH_AVFormat_SetIntValue(format, OH_MD_KEY_WIDTH, DEFAULT_WIDTH);
714f6603c60Sopenharmony_ci    OH_AVFormat_SetIntValue(format, OH_MD_KEY_HEIGHT, DEFAULT_HEIGHT);
715f6603c60Sopenharmony_ci    OH_AVFormat_SetIntValue(format, OH_MD_KEY_PIXEL_FORMAT, DEFAULT_PIXELFORMAT);
716f6603c60Sopenharmony_ci    videoEnc = OH_VideoEncoder_CreateByMime(nullptr);
717f6603c60Sopenharmony_ci    OH_VideoEncoder_Configure(videoEnc, format);
718f6603c60Sopenharmony_ci    checkParam = OH_VideoEncoder_Prepare(videoEnc);
719f6603c60Sopenharmony_ci    if (checkParam != AV_ERR_OK) {
720f6603c60Sopenharmony_ci        backParam = SUCCESS;
721f6603c60Sopenharmony_ci    }
722f6603c60Sopenharmony_ci    OH_VideoEncoder_Destroy(videoEnc);
723f6603c60Sopenharmony_ci    napi_create_int32(env, backParam, &result);
724f6603c60Sopenharmony_ci    return result;
725f6603c60Sopenharmony_ci}
726f6603c60Sopenharmony_ci
727f6603c60Sopenharmony_cistatic napi_value OHVideoEncoderPrepareAbnormal9(napi_env env, napi_callback_info info)
728f6603c60Sopenharmony_ci{
729f6603c60Sopenharmony_ci    int backParam = FAIL;
730f6603c60Sopenharmony_ci    napi_value result = nullptr;
731f6603c60Sopenharmony_ci    OH_AVCodec *videoEnc = nullptr;
732f6603c60Sopenharmony_ci    OH_AVErrCode checkParam;
733f6603c60Sopenharmony_ci    OH_AVFormat *format = nullptr;
734f6603c60Sopenharmony_ci    format = OH_AVFormat_Create();
735f6603c60Sopenharmony_ci    OH_AVFormat_SetIntValue(format, OH_MD_KEY_WIDTH, DEFAULT_WIDTH);
736f6603c60Sopenharmony_ci    OH_AVFormat_SetIntValue(format, OH_MD_KEY_HEIGHT, DEFAULT_HEIGHT);
737f6603c60Sopenharmony_ci    OH_AVFormat_SetIntValue(format, OH_MD_KEY_PIXEL_FORMAT, DEFAULT_PIXELFORMAT);
738f6603c60Sopenharmony_ci    videoEnc = OH_VideoEncoder_CreateByMime(nullptr);
739f6603c60Sopenharmony_ci    OH_VideoEncoder_Configure(videoEnc, format);
740f6603c60Sopenharmony_ci    checkParam = OH_VideoEncoder_Prepare(nullptr);
741f6603c60Sopenharmony_ci    if (checkParam != AV_ERR_OK) {
742f6603c60Sopenharmony_ci        backParam = SUCCESS;
743f6603c60Sopenharmony_ci    }
744f6603c60Sopenharmony_ci    OH_VideoEncoder_Destroy(videoEnc);
745f6603c60Sopenharmony_ci    napi_create_int32(env, backParam, &result);
746f6603c60Sopenharmony_ci    return result;
747f6603c60Sopenharmony_ci}
748f6603c60Sopenharmony_ci
749f6603c60Sopenharmony_cistatic napi_value OHVideoEncoderPrepareAbnormal10(napi_env env, napi_callback_info info)
750f6603c60Sopenharmony_ci{
751f6603c60Sopenharmony_ci    int backParam = FAIL;
752f6603c60Sopenharmony_ci    napi_value result = nullptr;
753f6603c60Sopenharmony_ci    OH_AVCodec *videoEnc = nullptr;
754f6603c60Sopenharmony_ci    OH_AVErrCode checkParam;
755f6603c60Sopenharmony_ci    OH_AVFormat *format = nullptr;
756f6603c60Sopenharmony_ci    format = OH_AVFormat_Create();
757f6603c60Sopenharmony_ci    OH_AVFormat_SetIntValue(format, OH_MD_KEY_WIDTH, DEFAULT_WIDTH);
758f6603c60Sopenharmony_ci    OH_AVFormat_SetIntValue(format, OH_MD_KEY_HEIGHT, DEFAULT_HEIGHT);
759f6603c60Sopenharmony_ci    OH_AVFormat_SetIntValue(format, OH_MD_KEY_PIXEL_FORMAT, DEFAULT_PIXELFORMAT);
760f6603c60Sopenharmony_ci    videoEnc = OH_VideoEncoder_CreateByMime(nullptr);
761f6603c60Sopenharmony_ci    OH_VideoEncoder_Configure(videoEnc, nullptr);
762f6603c60Sopenharmony_ci    checkParam = OH_VideoEncoder_Prepare(videoEnc);
763f6603c60Sopenharmony_ci    if (checkParam != AV_ERR_OK) {
764f6603c60Sopenharmony_ci        backParam = SUCCESS;
765f6603c60Sopenharmony_ci    }
766f6603c60Sopenharmony_ci    OH_VideoEncoder_Destroy(videoEnc);
767f6603c60Sopenharmony_ci    napi_create_int32(env, backParam, &result);
768f6603c60Sopenharmony_ci    return result;
769f6603c60Sopenharmony_ci}
770f6603c60Sopenharmony_ci
771f6603c60Sopenharmony_cistatic napi_value OHVideoEncoderPrepareAbnormal11(napi_env env, napi_callback_info info)
772f6603c60Sopenharmony_ci{
773f6603c60Sopenharmony_ci    int backParam = FAIL;
774f6603c60Sopenharmony_ci    napi_value result = nullptr;
775f6603c60Sopenharmony_ci    OH_AVCodec *videoEnc = nullptr;
776f6603c60Sopenharmony_ci    OH_AVErrCode checkParam;
777f6603c60Sopenharmony_ci    OH_AVFormat *format = nullptr;
778f6603c60Sopenharmony_ci    format = OH_AVFormat_Create();
779f6603c60Sopenharmony_ci    OH_AVFormat_SetIntValue(format, OH_MD_KEY_WIDTH, DEFAULT_WIDTH);
780f6603c60Sopenharmony_ci    OH_AVFormat_SetIntValue(format, OH_MD_KEY_HEIGHT, DEFAULT_HEIGHT);
781f6603c60Sopenharmony_ci    OH_AVFormat_SetIntValue(format, OH_MD_KEY_PIXEL_FORMAT, DEFAULT_PIXELFORMAT);
782f6603c60Sopenharmony_ci    videoEnc = OH_VideoEncoder_CreateByMime(nullptr);
783f6603c60Sopenharmony_ci    OH_VideoEncoder_Configure(videoEnc, nullptr);
784f6603c60Sopenharmony_ci    checkParam = OH_VideoEncoder_Prepare(nullptr);
785f6603c60Sopenharmony_ci    if (checkParam != AV_ERR_OK) {
786f6603c60Sopenharmony_ci        backParam = SUCCESS;
787f6603c60Sopenharmony_ci    }
788f6603c60Sopenharmony_ci    OH_VideoEncoder_Destroy(videoEnc);
789f6603c60Sopenharmony_ci    napi_create_int32(env, backParam, &result);
790f6603c60Sopenharmony_ci    return result;
791f6603c60Sopenharmony_ci}
792f6603c60Sopenharmony_ci
793f6603c60Sopenharmony_cistatic napi_value OHVideoEncoderPrepareAbnormal12(napi_env env, napi_callback_info info)
794f6603c60Sopenharmony_ci{
795f6603c60Sopenharmony_ci    int backParam = FAIL;
796f6603c60Sopenharmony_ci    napi_value result = nullptr;
797f6603c60Sopenharmony_ci    OH_AVCodec *videoEnc = nullptr;
798f6603c60Sopenharmony_ci    OH_AVErrCode checkParam;
799f6603c60Sopenharmony_ci    OH_AVFormat *format = nullptr;
800f6603c60Sopenharmony_ci    format = OH_AVFormat_Create();
801f6603c60Sopenharmony_ci    OH_AVFormat_SetIntValue(format, OH_MD_KEY_WIDTH, DEFAULT_WIDTH);
802f6603c60Sopenharmony_ci    OH_AVFormat_SetIntValue(format, OH_MD_KEY_HEIGHT, DEFAULT_HEIGHT);
803f6603c60Sopenharmony_ci    OH_AVFormat_SetIntValue(format, OH_MD_KEY_PIXEL_FORMAT, DEFAULT_PIXELFORMAT);
804f6603c60Sopenharmony_ci    videoEnc = OH_VideoEncoder_CreateByMime(nullptr);
805f6603c60Sopenharmony_ci    OH_VideoEncoder_Configure(nullptr, format);
806f6603c60Sopenharmony_ci    checkParam = OH_VideoEncoder_Prepare(videoEnc);
807f6603c60Sopenharmony_ci    if (checkParam != AV_ERR_OK) {
808f6603c60Sopenharmony_ci        backParam = SUCCESS;
809f6603c60Sopenharmony_ci    }
810f6603c60Sopenharmony_ci    OH_VideoEncoder_Destroy(videoEnc);
811f6603c60Sopenharmony_ci    napi_create_int32(env, backParam, &result);
812f6603c60Sopenharmony_ci    return result;
813f6603c60Sopenharmony_ci}
814f6603c60Sopenharmony_ci
815f6603c60Sopenharmony_cistatic napi_value OHVideoEncoderPrepareAbnormal13(napi_env env, napi_callback_info info)
816f6603c60Sopenharmony_ci{
817f6603c60Sopenharmony_ci    int backParam = FAIL;
818f6603c60Sopenharmony_ci    napi_value result = nullptr;
819f6603c60Sopenharmony_ci    OH_AVCodec *videoEnc = nullptr;
820f6603c60Sopenharmony_ci    OH_AVErrCode checkParam;
821f6603c60Sopenharmony_ci    OH_AVFormat *format = nullptr;
822f6603c60Sopenharmony_ci    format = OH_AVFormat_Create();
823f6603c60Sopenharmony_ci    OH_AVFormat_SetIntValue(format, OH_MD_KEY_WIDTH, DEFAULT_WIDTH);
824f6603c60Sopenharmony_ci    OH_AVFormat_SetIntValue(format, OH_MD_KEY_HEIGHT, DEFAULT_HEIGHT);
825f6603c60Sopenharmony_ci    OH_AVFormat_SetIntValue(format, OH_MD_KEY_PIXEL_FORMAT, DEFAULT_PIXELFORMAT);
826f6603c60Sopenharmony_ci    videoEnc = OH_VideoEncoder_CreateByMime(nullptr);
827f6603c60Sopenharmony_ci    OH_VideoEncoder_Configure(nullptr, format);
828f6603c60Sopenharmony_ci    checkParam = OH_VideoEncoder_Prepare(nullptr);
829f6603c60Sopenharmony_ci    if (checkParam != AV_ERR_OK) {
830f6603c60Sopenharmony_ci        backParam = SUCCESS;
831f6603c60Sopenharmony_ci    }
832f6603c60Sopenharmony_ci    OH_VideoEncoder_Destroy(videoEnc);
833f6603c60Sopenharmony_ci    napi_create_int32(env, backParam, &result);
834f6603c60Sopenharmony_ci    return result;
835f6603c60Sopenharmony_ci}
836f6603c60Sopenharmony_ci
837f6603c60Sopenharmony_cistatic napi_value OHVideoEncoderPrepareAbnormal14(napi_env env, napi_callback_info info)
838f6603c60Sopenharmony_ci{
839f6603c60Sopenharmony_ci    int backParam = FAIL;
840f6603c60Sopenharmony_ci    napi_value result = nullptr;
841f6603c60Sopenharmony_ci    OH_AVCodec *videoEnc = nullptr;
842f6603c60Sopenharmony_ci    OH_AVErrCode checkParam;
843f6603c60Sopenharmony_ci    OH_AVFormat *format = nullptr;
844f6603c60Sopenharmony_ci    format = OH_AVFormat_Create();
845f6603c60Sopenharmony_ci    OH_AVFormat_SetIntValue(format, OH_MD_KEY_WIDTH, DEFAULT_WIDTH);
846f6603c60Sopenharmony_ci    OH_AVFormat_SetIntValue(format, OH_MD_KEY_HEIGHT, DEFAULT_HEIGHT);
847f6603c60Sopenharmony_ci    OH_AVFormat_SetIntValue(format, OH_MD_KEY_PIXEL_FORMAT, DEFAULT_PIXELFORMAT);
848f6603c60Sopenharmony_ci    videoEnc = OH_VideoEncoder_CreateByMime(nullptr);
849f6603c60Sopenharmony_ci    OH_VideoEncoder_Configure(nullptr, nullptr);
850f6603c60Sopenharmony_ci    checkParam = OH_VideoEncoder_Prepare(videoEnc);
851f6603c60Sopenharmony_ci    if (checkParam != AV_ERR_OK) {
852f6603c60Sopenharmony_ci        backParam = SUCCESS;
853f6603c60Sopenharmony_ci    }
854f6603c60Sopenharmony_ci    OH_VideoEncoder_Destroy(videoEnc);
855f6603c60Sopenharmony_ci    napi_create_int32(env, backParam, &result);
856f6603c60Sopenharmony_ci    return result;
857f6603c60Sopenharmony_ci}
858f6603c60Sopenharmony_ci
859f6603c60Sopenharmony_cistatic napi_value OHVideoEncoderPrepareAbnormal15(napi_env env, napi_callback_info info)
860f6603c60Sopenharmony_ci{
861f6603c60Sopenharmony_ci    int backParam = FAIL;
862f6603c60Sopenharmony_ci    napi_value result = nullptr;
863f6603c60Sopenharmony_ci    OH_AVCodec *videoEnc = nullptr;
864f6603c60Sopenharmony_ci    OH_AVErrCode checkParam;
865f6603c60Sopenharmony_ci    OH_AVFormat *format = nullptr;
866f6603c60Sopenharmony_ci    format = OH_AVFormat_Create();
867f6603c60Sopenharmony_ci    OH_AVFormat_SetIntValue(format, OH_MD_KEY_WIDTH, DEFAULT_WIDTH);
868f6603c60Sopenharmony_ci    OH_AVFormat_SetIntValue(format, OH_MD_KEY_HEIGHT, DEFAULT_HEIGHT);
869f6603c60Sopenharmony_ci    OH_AVFormat_SetIntValue(format, OH_MD_KEY_PIXEL_FORMAT, DEFAULT_PIXELFORMAT);
870f6603c60Sopenharmony_ci    videoEnc = OH_VideoEncoder_CreateByMime(nullptr);
871f6603c60Sopenharmony_ci    OH_VideoEncoder_Configure(nullptr, nullptr);
872f6603c60Sopenharmony_ci    checkParam = OH_VideoEncoder_Prepare(nullptr);
873f6603c60Sopenharmony_ci    if (checkParam != AV_ERR_OK) {
874f6603c60Sopenharmony_ci        backParam = SUCCESS;
875f6603c60Sopenharmony_ci    }
876f6603c60Sopenharmony_ci    OH_VideoEncoder_Destroy(videoEnc);
877f6603c60Sopenharmony_ci    napi_create_int32(env, backParam, &result);
878f6603c60Sopenharmony_ci    return result;
879f6603c60Sopenharmony_ci}
880f6603c60Sopenharmony_ci
881f6603c60Sopenharmony_cistatic napi_value OHVideoEncoderStart(napi_env env, napi_callback_info info)
882f6603c60Sopenharmony_ci{
883f6603c60Sopenharmony_ci    size_t argc = PARAM_6;
884f6603c60Sopenharmony_ci    napi_value args[PARAM_6] = {nullptr};
885f6603c60Sopenharmony_ci    napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
886f6603c60Sopenharmony_ci    int firstParam;
887f6603c60Sopenharmony_ci    int secondParam;
888f6603c60Sopenharmony_ci    int thirdParam;
889f6603c60Sopenharmony_ci    int fourthParam;
890f6603c60Sopenharmony_ci    int fifthParam;
891f6603c60Sopenharmony_ci    int sixthParam;
892f6603c60Sopenharmony_ci    const char *mimeType = nullptr;
893f6603c60Sopenharmony_ci    napi_get_value_int32(env, args[PARAM_0], &firstParam);
894f6603c60Sopenharmony_ci    napi_get_value_int32(env, args[PARAM_1], &secondParam);
895f6603c60Sopenharmony_ci    napi_get_value_int32(env, args[PARAM_2], &thirdParam);
896f6603c60Sopenharmony_ci    napi_get_value_int32(env, args[PARAM_3], &fourthParam);
897f6603c60Sopenharmony_ci    napi_get_value_int32(env, args[PARAM_4], &fifthParam);
898f6603c60Sopenharmony_ci    napi_get_value_int32(env, args[PARAM_5], &sixthParam);
899f6603c60Sopenharmony_ci
900f6603c60Sopenharmony_ci    int backParam = FAIL;
901f6603c60Sopenharmony_ci    napi_value result = nullptr;
902f6603c60Sopenharmony_ci    OH_AVCodec *videoEnc = nullptr;
903f6603c60Sopenharmony_ci    OH_AVErrCode checkParam;
904f6603c60Sopenharmony_ci    OH_AVFormat *format = nullptr;
905f6603c60Sopenharmony_ci
906f6603c60Sopenharmony_ci    if (firstParam == PARAM_1) {
907f6603c60Sopenharmony_ci        mimeType = OH_AVCODEC_MIMETYPE_VIDEO_AVC;
908f6603c60Sopenharmony_ci    } else if (firstParam == PARAM_0) {
909f6603c60Sopenharmony_ci        mimeType = nullptr;
910f6603c60Sopenharmony_ci    } else if (firstParam == PARAM_2) {
911f6603c60Sopenharmony_ci        mimeType = OH_AVCODEC_MIMETYPE_VIDEO_HEVC;
912f6603c60Sopenharmony_ci    }
913f6603c60Sopenharmony_ci
914f6603c60Sopenharmony_ci    if (secondParam == PARAM_1) {
915f6603c60Sopenharmony_ci        videoEnc = OH_VideoEncoder_CreateByMime(mimeType);
916f6603c60Sopenharmony_ci    } else if (secondParam == PARAM_0) {
917f6603c60Sopenharmony_ci        videoEnc = nullptr;
918f6603c60Sopenharmony_ci    }
919f6603c60Sopenharmony_ci
920f6603c60Sopenharmony_ci    if (thirdParam == PARAM_1) {
921f6603c60Sopenharmony_ci        format = OH_AVFormat_Create();
922f6603c60Sopenharmony_ci        OH_AVFormat_SetIntValue(format, OH_MD_KEY_WIDTH, DEFAULT_WIDTH);
923f6603c60Sopenharmony_ci        OH_AVFormat_SetIntValue(format, OH_MD_KEY_HEIGHT, DEFAULT_HEIGHT);
924f6603c60Sopenharmony_ci        OH_AVFormat_SetIntValue(format, OH_MD_KEY_PIXEL_FORMAT, DEFAULT_PIXELFORMAT);
925f6603c60Sopenharmony_ci    }
926f6603c60Sopenharmony_ci
927f6603c60Sopenharmony_ci    OH_VideoEncoder_Configure(videoEnc, format);
928f6603c60Sopenharmony_ci
929f6603c60Sopenharmony_ci    if (fourthParam == PARAM_1) {
930f6603c60Sopenharmony_ci        OH_VideoEncoder_Prepare(videoEnc);
931f6603c60Sopenharmony_ci    } else if (fourthParam == PARAM_0) {
932f6603c60Sopenharmony_ci        OH_VideoEncoder_Prepare(nullptr);
933f6603c60Sopenharmony_ci    }
934f6603c60Sopenharmony_ci
935f6603c60Sopenharmony_ci    if (fifthParam == PARAM_1) {
936f6603c60Sopenharmony_ci        checkParam = OH_VideoEncoder_Start(videoEnc);
937f6603c60Sopenharmony_ci    } else if (fifthParam == PARAM_0) {
938f6603c60Sopenharmony_ci        checkParam = OH_VideoEncoder_Start(nullptr);
939f6603c60Sopenharmony_ci    }
940f6603c60Sopenharmony_ci
941f6603c60Sopenharmony_ci    if (sixthParam == PARAM_1) {
942f6603c60Sopenharmony_ci        if (checkParam == AV_ERR_OK) {
943f6603c60Sopenharmony_ci            backParam = SUCCESS;
944f6603c60Sopenharmony_ci        }
945f6603c60Sopenharmony_ci    } else if (sixthParam == PARAM_0) {
946f6603c60Sopenharmony_ci        if (checkParam != AV_ERR_OK) {
947f6603c60Sopenharmony_ci            backParam = SUCCESS;
948f6603c60Sopenharmony_ci        }
949f6603c60Sopenharmony_ci    }
950f6603c60Sopenharmony_ci
951f6603c60Sopenharmony_ci    OH_VideoEncoder_Destroy(videoEnc);
952f6603c60Sopenharmony_ci    napi_create_int32(env, backParam, &result);
953f6603c60Sopenharmony_ci    return result;
954f6603c60Sopenharmony_ci}
955f6603c60Sopenharmony_ci
956f6603c60Sopenharmony_cistatic napi_value OHVideoEncoderStop(napi_env env, napi_callback_info info)
957f6603c60Sopenharmony_ci{
958f6603c60Sopenharmony_ci    size_t argc = PARAM_7;
959f6603c60Sopenharmony_ci    napi_value args[PARAM_7] = {nullptr};
960f6603c60Sopenharmony_ci    napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
961f6603c60Sopenharmony_ci    int firstParam;
962f6603c60Sopenharmony_ci    int secondParam;
963f6603c60Sopenharmony_ci    int thirdParam;
964f6603c60Sopenharmony_ci    int fourthParam;
965f6603c60Sopenharmony_ci    int fifthParam;
966f6603c60Sopenharmony_ci    int sixthParam;
967f6603c60Sopenharmony_ci    int seventhParam;
968f6603c60Sopenharmony_ci    const char *mimeType = nullptr;
969f6603c60Sopenharmony_ci    napi_get_value_int32(env, args[PARAM_0], &firstParam);
970f6603c60Sopenharmony_ci    napi_get_value_int32(env, args[PARAM_1], &secondParam);
971f6603c60Sopenharmony_ci    napi_get_value_int32(env, args[PARAM_2], &thirdParam);
972f6603c60Sopenharmony_ci    napi_get_value_int32(env, args[PARAM_3], &fourthParam);
973f6603c60Sopenharmony_ci    napi_get_value_int32(env, args[PARAM_4], &fifthParam);
974f6603c60Sopenharmony_ci    napi_get_value_int32(env, args[PARAM_5], &sixthParam);
975f6603c60Sopenharmony_ci    napi_get_value_int32(env, args[PARAM_6], &seventhParam);
976f6603c60Sopenharmony_ci
977f6603c60Sopenharmony_ci    int backParam = FAIL;
978f6603c60Sopenharmony_ci    napi_value result = nullptr;
979f6603c60Sopenharmony_ci    OH_AVCodec *videoEnc = nullptr;
980f6603c60Sopenharmony_ci    OH_AVErrCode checkParam;
981f6603c60Sopenharmony_ci    OH_AVFormat *format = nullptr;
982f6603c60Sopenharmony_ci
983f6603c60Sopenharmony_ci    if (firstParam == PARAM_1) {
984f6603c60Sopenharmony_ci        mimeType = OH_AVCODEC_MIMETYPE_VIDEO_AVC;
985f6603c60Sopenharmony_ci    } else if (firstParam == PARAM_0) {
986f6603c60Sopenharmony_ci        mimeType = nullptr;
987f6603c60Sopenharmony_ci    } else if (firstParam == PARAM_2) {
988f6603c60Sopenharmony_ci        mimeType = OH_AVCODEC_MIMETYPE_VIDEO_HEVC;
989f6603c60Sopenharmony_ci    }
990f6603c60Sopenharmony_ci
991f6603c60Sopenharmony_ci    if (secondParam == PARAM_1) {
992f6603c60Sopenharmony_ci        videoEnc = OH_VideoEncoder_CreateByMime(mimeType);
993f6603c60Sopenharmony_ci    } else if (secondParam == PARAM_0) {
994f6603c60Sopenharmony_ci        videoEnc = nullptr;
995f6603c60Sopenharmony_ci    }
996f6603c60Sopenharmony_ci
997f6603c60Sopenharmony_ci    if (thirdParam == PARAM_1) {
998f6603c60Sopenharmony_ci        format = OH_AVFormat_Create();
999f6603c60Sopenharmony_ci        OH_AVFormat_SetIntValue(format, OH_MD_KEY_WIDTH, DEFAULT_WIDTH);
1000f6603c60Sopenharmony_ci        OH_AVFormat_SetIntValue(format, OH_MD_KEY_HEIGHT, DEFAULT_HEIGHT);
1001f6603c60Sopenharmony_ci        OH_AVFormat_SetIntValue(format, OH_MD_KEY_PIXEL_FORMAT, DEFAULT_PIXELFORMAT);
1002f6603c60Sopenharmony_ci    }
1003f6603c60Sopenharmony_ci
1004f6603c60Sopenharmony_ci    OH_VideoEncoder_Configure(videoEnc, format);
1005f6603c60Sopenharmony_ci
1006f6603c60Sopenharmony_ci    if (fourthParam == PARAM_1) {
1007f6603c60Sopenharmony_ci        OH_VideoEncoder_Prepare(videoEnc);
1008f6603c60Sopenharmony_ci    } else if (fourthParam == PARAM_0) {
1009f6603c60Sopenharmony_ci        OH_VideoEncoder_Prepare(nullptr);
1010f6603c60Sopenharmony_ci    }
1011f6603c60Sopenharmony_ci
1012f6603c60Sopenharmony_ci    if (fifthParam == PARAM_1) {
1013f6603c60Sopenharmony_ci        OH_VideoEncoder_Start(videoEnc);
1014f6603c60Sopenharmony_ci    } else if (fifthParam == PARAM_0) {
1015f6603c60Sopenharmony_ci        OH_VideoEncoder_Start(nullptr);
1016f6603c60Sopenharmony_ci    }
1017f6603c60Sopenharmony_ci
1018f6603c60Sopenharmony_ci    if (sixthParam == PARAM_1) {
1019f6603c60Sopenharmony_ci        checkParam = OH_VideoEncoder_Stop(videoEnc);
1020f6603c60Sopenharmony_ci    } else if (sixthParam == PARAM_0) {
1021f6603c60Sopenharmony_ci        checkParam = OH_VideoEncoder_Stop(nullptr);
1022f6603c60Sopenharmony_ci    }
1023f6603c60Sopenharmony_ci
1024f6603c60Sopenharmony_ci    if (seventhParam == PARAM_1) {
1025f6603c60Sopenharmony_ci        if (checkParam == AV_ERR_OK) {
1026f6603c60Sopenharmony_ci            backParam = SUCCESS;
1027f6603c60Sopenharmony_ci        }
1028f6603c60Sopenharmony_ci    } else if (seventhParam == PARAM_0) {
1029f6603c60Sopenharmony_ci        if (checkParam != AV_ERR_OK) {
1030f6603c60Sopenharmony_ci            backParam = SUCCESS;
1031f6603c60Sopenharmony_ci        }
1032f6603c60Sopenharmony_ci    }
1033f6603c60Sopenharmony_ci    OH_VideoEncoder_Destroy(videoEnc);
1034f6603c60Sopenharmony_ci    napi_create_int32(env, backParam, &result);
1035f6603c60Sopenharmony_ci    return result;
1036f6603c60Sopenharmony_ci}
1037f6603c60Sopenharmony_ci
1038f6603c60Sopenharmony_cistatic napi_value OHVideoEncoderFlush(napi_env env, napi_callback_info info)
1039f6603c60Sopenharmony_ci{
1040f6603c60Sopenharmony_ci    size_t argc = PARAM_7;
1041f6603c60Sopenharmony_ci    napi_value args[PARAM_7] = {nullptr};
1042f6603c60Sopenharmony_ci    napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
1043f6603c60Sopenharmony_ci    int firstParam;
1044f6603c60Sopenharmony_ci    int secondParam;
1045f6603c60Sopenharmony_ci    int thirdParam;
1046f6603c60Sopenharmony_ci    int fourthParam;
1047f6603c60Sopenharmony_ci    int fifthParam;
1048f6603c60Sopenharmony_ci    int sixthParam;
1049f6603c60Sopenharmony_ci    int seventhParam;
1050f6603c60Sopenharmony_ci    const char *mimeType = nullptr;
1051f6603c60Sopenharmony_ci    napi_get_value_int32(env, args[PARAM_0], &firstParam);
1052f6603c60Sopenharmony_ci    napi_get_value_int32(env, args[PARAM_1], &secondParam);
1053f6603c60Sopenharmony_ci    napi_get_value_int32(env, args[PARAM_2], &thirdParam);
1054f6603c60Sopenharmony_ci    napi_get_value_int32(env, args[PARAM_3], &fourthParam);
1055f6603c60Sopenharmony_ci    napi_get_value_int32(env, args[PARAM_4], &fifthParam);
1056f6603c60Sopenharmony_ci    napi_get_value_int32(env, args[PARAM_5], &sixthParam);
1057f6603c60Sopenharmony_ci    napi_get_value_int32(env, args[PARAM_6], &seventhParam);
1058f6603c60Sopenharmony_ci
1059f6603c60Sopenharmony_ci    int backParam = FAIL;
1060f6603c60Sopenharmony_ci    napi_value result = nullptr;
1061f6603c60Sopenharmony_ci    OH_AVCodec *videoEnc = nullptr;
1062f6603c60Sopenharmony_ci    OH_AVErrCode checkParam;
1063f6603c60Sopenharmony_ci    OH_AVFormat *format = nullptr;
1064f6603c60Sopenharmony_ci
1065f6603c60Sopenharmony_ci    if (firstParam == PARAM_1) {
1066f6603c60Sopenharmony_ci        mimeType = OH_AVCODEC_MIMETYPE_VIDEO_AVC;
1067f6603c60Sopenharmony_ci    } else if (firstParam == PARAM_0) {
1068f6603c60Sopenharmony_ci        mimeType = nullptr;
1069f6603c60Sopenharmony_ci    } else if (firstParam == PARAM_2) {
1070f6603c60Sopenharmony_ci        mimeType = OH_AVCODEC_MIMETYPE_VIDEO_HEVC;
1071f6603c60Sopenharmony_ci    }
1072f6603c60Sopenharmony_ci
1073f6603c60Sopenharmony_ci    if (secondParam == PARAM_1) {
1074f6603c60Sopenharmony_ci        videoEnc = OH_VideoEncoder_CreateByMime(mimeType);
1075f6603c60Sopenharmony_ci    } else if (secondParam == PARAM_0) {
1076f6603c60Sopenharmony_ci        videoEnc = nullptr;
1077f6603c60Sopenharmony_ci    }
1078f6603c60Sopenharmony_ci
1079f6603c60Sopenharmony_ci    if (thirdParam == PARAM_1) {
1080f6603c60Sopenharmony_ci        format = OH_AVFormat_Create();
1081f6603c60Sopenharmony_ci        OH_AVFormat_SetIntValue(format, OH_MD_KEY_WIDTH, DEFAULT_WIDTH);
1082f6603c60Sopenharmony_ci        OH_AVFormat_SetIntValue(format, OH_MD_KEY_HEIGHT, DEFAULT_HEIGHT);
1083f6603c60Sopenharmony_ci        OH_AVFormat_SetIntValue(format, OH_MD_KEY_PIXEL_FORMAT, DEFAULT_PIXELFORMAT);
1084f6603c60Sopenharmony_ci    }
1085f6603c60Sopenharmony_ci
1086f6603c60Sopenharmony_ci    OH_VideoEncoder_Configure(videoEnc, format);
1087f6603c60Sopenharmony_ci
1088f6603c60Sopenharmony_ci    if (fourthParam == PARAM_1) {
1089f6603c60Sopenharmony_ci        OH_VideoEncoder_Prepare(videoEnc);
1090f6603c60Sopenharmony_ci    } else if (fourthParam == PARAM_0) {
1091f6603c60Sopenharmony_ci        OH_VideoEncoder_Prepare(nullptr);
1092f6603c60Sopenharmony_ci    }
1093f6603c60Sopenharmony_ci
1094f6603c60Sopenharmony_ci    if (fifthParam == PARAM_1) {
1095f6603c60Sopenharmony_ci        OH_VideoEncoder_Start(videoEnc);
1096f6603c60Sopenharmony_ci    } else if (fifthParam == PARAM_0) {
1097f6603c60Sopenharmony_ci        OH_VideoEncoder_Start(nullptr);
1098f6603c60Sopenharmony_ci    }
1099f6603c60Sopenharmony_ci
1100f6603c60Sopenharmony_ci    if (sixthParam == PARAM_1) {
1101f6603c60Sopenharmony_ci        checkParam = OH_VideoEncoder_Flush(videoEnc);
1102f6603c60Sopenharmony_ci    } else if (sixthParam == PARAM_0) {
1103f6603c60Sopenharmony_ci        checkParam = OH_VideoEncoder_Flush(nullptr);
1104f6603c60Sopenharmony_ci    }
1105f6603c60Sopenharmony_ci    if (seventhParam == PARAM_1) {
1106f6603c60Sopenharmony_ci        if (checkParam == AV_ERR_OK) {
1107f6603c60Sopenharmony_ci            backParam = SUCCESS;
1108f6603c60Sopenharmony_ci        }
1109f6603c60Sopenharmony_ci    } else if (seventhParam == PARAM_0) {
1110f6603c60Sopenharmony_ci        if (checkParam != AV_ERR_OK) {
1111f6603c60Sopenharmony_ci            backParam = SUCCESS;
1112f6603c60Sopenharmony_ci        }
1113f6603c60Sopenharmony_ci    }
1114f6603c60Sopenharmony_ci    OH_VideoEncoder_Stop(videoEnc);
1115f6603c60Sopenharmony_ci    OH_VideoEncoder_Destroy(videoEnc);
1116f6603c60Sopenharmony_ci
1117f6603c60Sopenharmony_ci    napi_create_int32(env, backParam, &result);
1118f6603c60Sopenharmony_ci    return result;
1119f6603c60Sopenharmony_ci}
1120f6603c60Sopenharmony_ci
1121f6603c60Sopenharmony_cistatic napi_value OHVideoEncoderReset(napi_env env, napi_callback_info info)
1122f6603c60Sopenharmony_ci{
1123f6603c60Sopenharmony_ci    size_t argc = PARAM_7;
1124f6603c60Sopenharmony_ci    napi_value args[PARAM_7] = {nullptr};
1125f6603c60Sopenharmony_ci    napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
1126f6603c60Sopenharmony_ci    int firstParam;
1127f6603c60Sopenharmony_ci    int secondParam;
1128f6603c60Sopenharmony_ci    int thirdParam;
1129f6603c60Sopenharmony_ci    int fourthParam;
1130f6603c60Sopenharmony_ci    int fifthParam;
1131f6603c60Sopenharmony_ci    int sixthParam;
1132f6603c60Sopenharmony_ci    int seventhParam;
1133f6603c60Sopenharmony_ci    const char *mimeType = nullptr;
1134f6603c60Sopenharmony_ci    napi_get_value_int32(env, args[PARAM_0], &firstParam);
1135f6603c60Sopenharmony_ci    napi_get_value_int32(env, args[PARAM_1], &secondParam);
1136f6603c60Sopenharmony_ci    napi_get_value_int32(env, args[PARAM_2], &thirdParam);
1137f6603c60Sopenharmony_ci    napi_get_value_int32(env, args[PARAM_3], &fourthParam);
1138f6603c60Sopenharmony_ci    napi_get_value_int32(env, args[PARAM_4], &fifthParam);
1139f6603c60Sopenharmony_ci    napi_get_value_int32(env, args[PARAM_5], &sixthParam);
1140f6603c60Sopenharmony_ci    napi_get_value_int32(env, args[PARAM_6], &seventhParam);
1141f6603c60Sopenharmony_ci
1142f6603c60Sopenharmony_ci    int backParam = FAIL;
1143f6603c60Sopenharmony_ci    napi_value result = nullptr;
1144f6603c60Sopenharmony_ci    OH_AVCodec *videoEnc = nullptr;
1145f6603c60Sopenharmony_ci    OH_AVErrCode checkParam;
1146f6603c60Sopenharmony_ci    OH_AVFormat *format = nullptr;
1147f6603c60Sopenharmony_ci
1148f6603c60Sopenharmony_ci    if (firstParam == PARAM_1) {
1149f6603c60Sopenharmony_ci        mimeType = OH_AVCODEC_MIMETYPE_VIDEO_AVC;
1150f6603c60Sopenharmony_ci    } else if (firstParam == PARAM_0) {
1151f6603c60Sopenharmony_ci        mimeType = nullptr;
1152f6603c60Sopenharmony_ci    } else if (firstParam == PARAM_2) {
1153f6603c60Sopenharmony_ci        mimeType = OH_AVCODEC_MIMETYPE_VIDEO_HEVC;
1154f6603c60Sopenharmony_ci    }
1155f6603c60Sopenharmony_ci
1156f6603c60Sopenharmony_ci    if (secondParam == PARAM_1) {
1157f6603c60Sopenharmony_ci        videoEnc = OH_VideoEncoder_CreateByMime(mimeType);
1158f6603c60Sopenharmony_ci    } else if (secondParam == PARAM_0) {
1159f6603c60Sopenharmony_ci        videoEnc = nullptr;
1160f6603c60Sopenharmony_ci    }
1161f6603c60Sopenharmony_ci
1162f6603c60Sopenharmony_ci    if (thirdParam == PARAM_1) {
1163f6603c60Sopenharmony_ci        format = OH_AVFormat_Create();
1164f6603c60Sopenharmony_ci        OH_AVFormat_SetIntValue(format, OH_MD_KEY_WIDTH, DEFAULT_WIDTH);
1165f6603c60Sopenharmony_ci        OH_AVFormat_SetIntValue(format, OH_MD_KEY_HEIGHT, DEFAULT_HEIGHT);
1166f6603c60Sopenharmony_ci        OH_AVFormat_SetIntValue(format, OH_MD_KEY_PIXEL_FORMAT, DEFAULT_PIXELFORMAT);
1167f6603c60Sopenharmony_ci    }
1168f6603c60Sopenharmony_ci
1169f6603c60Sopenharmony_ci    OH_VideoEncoder_Configure(videoEnc, format);
1170f6603c60Sopenharmony_ci
1171f6603c60Sopenharmony_ci    if (fourthParam == PARAM_1) {
1172f6603c60Sopenharmony_ci        OH_VideoEncoder_Prepare(videoEnc);
1173f6603c60Sopenharmony_ci    } else if (fourthParam == PARAM_0) {
1174f6603c60Sopenharmony_ci        OH_VideoEncoder_Prepare(nullptr);
1175f6603c60Sopenharmony_ci    }
1176f6603c60Sopenharmony_ci
1177f6603c60Sopenharmony_ci    if (fifthParam == PARAM_1) {
1178f6603c60Sopenharmony_ci        OH_VideoEncoder_Start(videoEnc);
1179f6603c60Sopenharmony_ci    } else if (fifthParam == PARAM_0) {
1180f6603c60Sopenharmony_ci        OH_VideoEncoder_Start(nullptr);
1181f6603c60Sopenharmony_ci    }
1182f6603c60Sopenharmony_ci
1183f6603c60Sopenharmony_ci    if (sixthParam == PARAM_1) {
1184f6603c60Sopenharmony_ci        checkParam = OH_VideoEncoder_Reset(videoEnc);
1185f6603c60Sopenharmony_ci    } else if (sixthParam == PARAM_0) {
1186f6603c60Sopenharmony_ci        checkParam = OH_VideoEncoder_Reset(nullptr);
1187f6603c60Sopenharmony_ci    }
1188f6603c60Sopenharmony_ci    if (seventhParam == PARAM_1) {
1189f6603c60Sopenharmony_ci        if (checkParam == AV_ERR_OK) {
1190f6603c60Sopenharmony_ci            backParam = SUCCESS;
1191f6603c60Sopenharmony_ci        }
1192f6603c60Sopenharmony_ci    } else if (seventhParam == PARAM_0) {
1193f6603c60Sopenharmony_ci        if (checkParam != AV_ERR_OK) {
1194f6603c60Sopenharmony_ci            backParam = SUCCESS;
1195f6603c60Sopenharmony_ci        }
1196f6603c60Sopenharmony_ci    }
1197f6603c60Sopenharmony_ci    OH_VideoEncoder_Destroy(videoEnc);
1198f6603c60Sopenharmony_ci    napi_create_int32(env, backParam, &result);
1199f6603c60Sopenharmony_ci    return result;
1200f6603c60Sopenharmony_ci}
1201f6603c60Sopenharmony_ci
1202f6603c60Sopenharmony_cistatic napi_value OHVideoEncoderGetOutputDescription(napi_env env, napi_callback_info info)
1203f6603c60Sopenharmony_ci{
1204f6603c60Sopenharmony_ci    size_t argc = PARAM_7;
1205f6603c60Sopenharmony_ci    napi_value args[PARAM_7] = {nullptr};
1206f6603c60Sopenharmony_ci    napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
1207f6603c60Sopenharmony_ci    int firstParam;
1208f6603c60Sopenharmony_ci    int secondParam;
1209f6603c60Sopenharmony_ci    int thirdParam;
1210f6603c60Sopenharmony_ci    int fourthParam;
1211f6603c60Sopenharmony_ci    int fifthParam;
1212f6603c60Sopenharmony_ci    int sixthParam;
1213f6603c60Sopenharmony_ci    int seventhParam;
1214f6603c60Sopenharmony_ci    const char *mimeType = nullptr;
1215f6603c60Sopenharmony_ci    napi_get_value_int32(env, args[PARAM_0], &firstParam);
1216f6603c60Sopenharmony_ci    napi_get_value_int32(env, args[PARAM_1], &secondParam);
1217f6603c60Sopenharmony_ci    napi_get_value_int32(env, args[PARAM_2], &thirdParam);
1218f6603c60Sopenharmony_ci    napi_get_value_int32(env, args[PARAM_3], &fourthParam);
1219f6603c60Sopenharmony_ci    napi_get_value_int32(env, args[PARAM_4], &fifthParam);
1220f6603c60Sopenharmony_ci    napi_get_value_int32(env, args[PARAM_5], &sixthParam);
1221f6603c60Sopenharmony_ci    napi_get_value_int32(env, args[PARAM_6], &seventhParam);
1222f6603c60Sopenharmony_ci
1223f6603c60Sopenharmony_ci    int backParam = FAIL;
1224f6603c60Sopenharmony_ci    napi_value result = nullptr;
1225f6603c60Sopenharmony_ci    OH_AVCodec *videoEnc = nullptr;
1226f6603c60Sopenharmony_ci    OH_AVFormat *checkParam = nullptr;
1227f6603c60Sopenharmony_ci    OH_AVFormat *format = nullptr;
1228f6603c60Sopenharmony_ci
1229f6603c60Sopenharmony_ci    if (firstParam == PARAM_1) {
1230f6603c60Sopenharmony_ci        mimeType = OH_AVCODEC_MIMETYPE_VIDEO_AVC;
1231f6603c60Sopenharmony_ci    } else if (firstParam == PARAM_0) {
1232f6603c60Sopenharmony_ci        mimeType = nullptr;
1233f6603c60Sopenharmony_ci    } else if (firstParam == PARAM_2) {
1234f6603c60Sopenharmony_ci        mimeType = OH_AVCODEC_MIMETYPE_VIDEO_HEVC;
1235f6603c60Sopenharmony_ci    }
1236f6603c60Sopenharmony_ci
1237f6603c60Sopenharmony_ci    if (secondParam == PARAM_1) {
1238f6603c60Sopenharmony_ci        videoEnc = OH_VideoEncoder_CreateByMime(mimeType);
1239f6603c60Sopenharmony_ci    } else if (secondParam == PARAM_0) {
1240f6603c60Sopenharmony_ci        videoEnc = nullptr;
1241f6603c60Sopenharmony_ci    }
1242f6603c60Sopenharmony_ci
1243f6603c60Sopenharmony_ci    if (thirdParam == PARAM_1) {
1244f6603c60Sopenharmony_ci        format = OH_AVFormat_Create();
1245f6603c60Sopenharmony_ci        OH_AVFormat_SetIntValue(format, OH_MD_KEY_WIDTH, DEFAULT_WIDTH);
1246f6603c60Sopenharmony_ci        OH_AVFormat_SetIntValue(format, OH_MD_KEY_HEIGHT, DEFAULT_HEIGHT);
1247f6603c60Sopenharmony_ci        OH_AVFormat_SetIntValue(format, OH_MD_KEY_PIXEL_FORMAT, DEFAULT_PIXELFORMAT);
1248f6603c60Sopenharmony_ci    }
1249f6603c60Sopenharmony_ci
1250f6603c60Sopenharmony_ci    OH_VideoEncoder_Configure(videoEnc, format);
1251f6603c60Sopenharmony_ci
1252f6603c60Sopenharmony_ci    if (fourthParam == PARAM_1) {
1253f6603c60Sopenharmony_ci        OH_VideoEncoder_Prepare(videoEnc);
1254f6603c60Sopenharmony_ci    } else if (fourthParam == PARAM_0) {
1255f6603c60Sopenharmony_ci        OH_VideoEncoder_Prepare(nullptr);
1256f6603c60Sopenharmony_ci    }
1257f6603c60Sopenharmony_ci
1258f6603c60Sopenharmony_ci    if (fifthParam == PARAM_1) {
1259f6603c60Sopenharmony_ci        OH_VideoEncoder_Start(videoEnc);
1260f6603c60Sopenharmony_ci    } else if (fifthParam == PARAM_0) {
1261f6603c60Sopenharmony_ci        OH_VideoEncoder_Start(nullptr);
1262f6603c60Sopenharmony_ci    }
1263f6603c60Sopenharmony_ci
1264f6603c60Sopenharmony_ci    if (sixthParam == PARAM_1) {
1265f6603c60Sopenharmony_ci        checkParam = OH_VideoEncoder_GetOutputDescription(videoEnc);
1266f6603c60Sopenharmony_ci    } else if (sixthParam == PARAM_0) {
1267f6603c60Sopenharmony_ci        checkParam = OH_VideoEncoder_GetOutputDescription(nullptr);
1268f6603c60Sopenharmony_ci    }
1269f6603c60Sopenharmony_ci    if (seventhParam == PARAM_1) {
1270f6603c60Sopenharmony_ci        if (checkParam != nullptr) {
1271f6603c60Sopenharmony_ci            backParam = SUCCESS;
1272f6603c60Sopenharmony_ci        }
1273f6603c60Sopenharmony_ci    } else if (seventhParam == PARAM_0) {
1274f6603c60Sopenharmony_ci        if (checkParam == nullptr) {
1275f6603c60Sopenharmony_ci            backParam = SUCCESS;
1276f6603c60Sopenharmony_ci        }
1277f6603c60Sopenharmony_ci    }
1278f6603c60Sopenharmony_ci    OH_VideoEncoder_Destroy(videoEnc);
1279f6603c60Sopenharmony_ci    napi_create_int32(env, backParam, &result);
1280f6603c60Sopenharmony_ci    return result;
1281f6603c60Sopenharmony_ci}
1282f6603c60Sopenharmony_ci
1283f6603c60Sopenharmony_cistatic napi_value OHVideoEncoderSetParameter(napi_env env, napi_callback_info info)
1284f6603c60Sopenharmony_ci{
1285f6603c60Sopenharmony_ci    int backParam = FAIL;
1286f6603c60Sopenharmony_ci    napi_value result = nullptr;
1287f6603c60Sopenharmony_ci    OH_AVCodec *videoEnc = nullptr;
1288f6603c60Sopenharmony_ci    OH_AVErrCode checkParam;
1289f6603c60Sopenharmony_ci    OH_AVFormat *format = nullptr;
1290f6603c60Sopenharmony_ci    format = OH_AVFormat_Create();
1291f6603c60Sopenharmony_ci    OH_AVFormat_SetIntValue(format, OH_MD_KEY_WIDTH, DEFAULT_WIDTH);
1292f6603c60Sopenharmony_ci    OH_AVFormat_SetIntValue(format, OH_MD_KEY_HEIGHT, DEFAULT_HEIGHT);
1293f6603c60Sopenharmony_ci    OH_AVFormat_SetIntValue(format, OH_MD_KEY_PIXEL_FORMAT, DEFAULT_PIXELFORMAT);
1294f6603c60Sopenharmony_ci    videoEnc = OH_VideoEncoder_CreateByMime(OH_AVCODEC_MIMETYPE_VIDEO_AVC);
1295f6603c60Sopenharmony_ci    OH_VideoEncoder_Configure(videoEnc, format);
1296f6603c60Sopenharmony_ci    OH_VideoEncoder_Prepare(videoEnc);
1297f6603c60Sopenharmony_ci    checkParam = OH_VideoEncoder_Start(videoEnc);
1298f6603c60Sopenharmony_ci    if (checkParam == AV_ERR_OK) {
1299f6603c60Sopenharmony_ci        checkParam = OH_VideoEncoder_SetParameter(videoEnc, format);
1300f6603c60Sopenharmony_ci        if (checkParam == AV_ERR_OK) {
1301f6603c60Sopenharmony_ci            backParam = SUCCESS;
1302f6603c60Sopenharmony_ci        }
1303f6603c60Sopenharmony_ci    }
1304f6603c60Sopenharmony_ci    OH_VideoEncoder_Destroy(videoEnc);
1305f6603c60Sopenharmony_ci    napi_create_int32(env, backParam, &result);
1306f6603c60Sopenharmony_ci    return result;
1307f6603c60Sopenharmony_ci}
1308f6603c60Sopenharmony_ci
1309f6603c60Sopenharmony_cistatic napi_value OHVideoEncoderSetParameterHEVC(napi_env env, napi_callback_info info)
1310f6603c60Sopenharmony_ci{
1311f6603c60Sopenharmony_ci    int backParam = FAIL;
1312f6603c60Sopenharmony_ci    napi_value result = nullptr;
1313f6603c60Sopenharmony_ci    OH_AVCodec *videoEnc = nullptr;
1314f6603c60Sopenharmony_ci    OH_AVErrCode checkParam;
1315f6603c60Sopenharmony_ci    OH_AVFormat *format = nullptr;
1316f6603c60Sopenharmony_ci    format = OH_AVFormat_Create();
1317f6603c60Sopenharmony_ci    OH_AVFormat_SetIntValue(format, OH_MD_KEY_WIDTH, DEFAULT_WIDTH);
1318f6603c60Sopenharmony_ci    OH_AVFormat_SetIntValue(format, OH_MD_KEY_HEIGHT, DEFAULT_HEIGHT);
1319f6603c60Sopenharmony_ci    OH_AVFormat_SetIntValue(format, OH_MD_KEY_PIXEL_FORMAT, DEFAULT_PIXELFORMAT);
1320f6603c60Sopenharmony_ci    videoEnc = OH_VideoEncoder_CreateByMime(OH_AVCODEC_MIMETYPE_VIDEO_HEVC);
1321f6603c60Sopenharmony_ci    OH_VideoEncoder_Configure(videoEnc, format);
1322f6603c60Sopenharmony_ci    OH_VideoEncoder_Prepare(videoEnc);
1323f6603c60Sopenharmony_ci    checkParam = OH_VideoEncoder_Start(videoEnc);
1324f6603c60Sopenharmony_ci    if (checkParam == AV_ERR_OK) {
1325f6603c60Sopenharmony_ci        checkParam = OH_VideoEncoder_SetParameter(videoEnc, format);
1326f6603c60Sopenharmony_ci        if (checkParam == AV_ERR_OK) {
1327f6603c60Sopenharmony_ci            backParam = SUCCESS;
1328f6603c60Sopenharmony_ci        }
1329f6603c60Sopenharmony_ci    }
1330f6603c60Sopenharmony_ci    OH_VideoEncoder_Destroy(videoEnc);
1331f6603c60Sopenharmony_ci    napi_create_int32(env, backParam, &result);
1332f6603c60Sopenharmony_ci    return result;
1333f6603c60Sopenharmony_ci}
1334f6603c60Sopenharmony_ci
1335f6603c60Sopenharmony_cistatic napi_value OHVideoEncoderSetParameterAbnormal(napi_env env, napi_callback_info info)
1336f6603c60Sopenharmony_ci{
1337f6603c60Sopenharmony_ci    int backParam = FAIL;
1338f6603c60Sopenharmony_ci    napi_value result = nullptr;
1339f6603c60Sopenharmony_ci    OH_AVCodec *videoEnc = nullptr;
1340f6603c60Sopenharmony_ci    OH_AVErrCode checkParam;
1341f6603c60Sopenharmony_ci    OH_AVFormat *format = nullptr;
1342f6603c60Sopenharmony_ci    format = OH_AVFormat_Create();
1343f6603c60Sopenharmony_ci    OH_AVFormat_SetIntValue(format, OH_MD_KEY_WIDTH, DEFAULT_WIDTH);
1344f6603c60Sopenharmony_ci    OH_AVFormat_SetIntValue(format, OH_MD_KEY_HEIGHT, DEFAULT_HEIGHT);
1345f6603c60Sopenharmony_ci    OH_AVFormat_SetIntValue(format, OH_MD_KEY_PIXEL_FORMAT, DEFAULT_PIXELFORMAT);
1346f6603c60Sopenharmony_ci    videoEnc = OH_VideoEncoder_CreateByMime(nullptr);
1347f6603c60Sopenharmony_ci    OH_VideoEncoder_Configure(videoEnc, format);
1348f6603c60Sopenharmony_ci    OH_VideoEncoder_Prepare(videoEnc);
1349f6603c60Sopenharmony_ci    checkParam = OH_VideoEncoder_Start(videoEnc);
1350f6603c60Sopenharmony_ci    if (checkParam != AV_ERR_OK) {
1351f6603c60Sopenharmony_ci        checkParam = OH_VideoEncoder_SetParameter(videoEnc, format);
1352f6603c60Sopenharmony_ci        if (checkParam != AV_ERR_OK) {
1353f6603c60Sopenharmony_ci            backParam = SUCCESS;
1354f6603c60Sopenharmony_ci        }
1355f6603c60Sopenharmony_ci    }
1356f6603c60Sopenharmony_ci    napi_create_int32(env, backParam, &result);
1357f6603c60Sopenharmony_ci    return result;
1358f6603c60Sopenharmony_ci}
1359f6603c60Sopenharmony_ci
1360f6603c60Sopenharmony_cistatic napi_value OHVideoEncoderGetInputDescription(napi_env env, napi_callback_info info)
1361f6603c60Sopenharmony_ci{
1362f6603c60Sopenharmony_ci    int backParam = FAIL;
1363f6603c60Sopenharmony_ci    napi_value result = nullptr;
1364f6603c60Sopenharmony_ci    OH_AVCodec *videoEnc = nullptr;
1365f6603c60Sopenharmony_ci    OH_AVFormat *checkParam = nullptr;
1366f6603c60Sopenharmony_ci    videoEnc = OH_VideoEncoder_CreateByMime(OH_AVCODEC_MIMETYPE_VIDEO_AVC);
1367f6603c60Sopenharmony_ci    checkParam = OH_VideoEncoder_GetInputDescription(videoEnc);
1368f6603c60Sopenharmony_ci    if (checkParam != nullptr) {
1369f6603c60Sopenharmony_ci        backParam = SUCCESS;
1370f6603c60Sopenharmony_ci        OH_VideoEncoder_Stop(videoEnc);
1371f6603c60Sopenharmony_ci        OH_AVFormat_Destroy(checkParam);
1372f6603c60Sopenharmony_ci        OH_VideoEncoder_Destroy(videoEnc);
1373f6603c60Sopenharmony_ci    }
1374f6603c60Sopenharmony_ci    napi_create_int32(env, backParam, &result);
1375f6603c60Sopenharmony_ci    return result;
1376f6603c60Sopenharmony_ci}
1377f6603c60Sopenharmony_ci
1378f6603c60Sopenharmony_cistatic napi_value OHVideoEncoderGetInputDescriptionHEVC(napi_env env, napi_callback_info info)
1379f6603c60Sopenharmony_ci{
1380f6603c60Sopenharmony_ci    int backParam = FAIL;
1381f6603c60Sopenharmony_ci    napi_value result = nullptr;
1382f6603c60Sopenharmony_ci    OH_AVCodec *videoEnc = nullptr;
1383f6603c60Sopenharmony_ci    OH_AVFormat *checkParam = nullptr;
1384f6603c60Sopenharmony_ci    videoEnc = OH_VideoEncoder_CreateByMime(OH_AVCODEC_MIMETYPE_VIDEO_HEVC);
1385f6603c60Sopenharmony_ci    checkParam = OH_VideoEncoder_GetInputDescription(videoEnc);
1386f6603c60Sopenharmony_ci    if (checkParam != nullptr) {
1387f6603c60Sopenharmony_ci        backParam = SUCCESS;
1388f6603c60Sopenharmony_ci        OH_VideoEncoder_Stop(videoEnc);
1389f6603c60Sopenharmony_ci        OH_AVFormat_Destroy(checkParam);
1390f6603c60Sopenharmony_ci        OH_VideoEncoder_Destroy(videoEnc);
1391f6603c60Sopenharmony_ci    }
1392f6603c60Sopenharmony_ci    napi_create_int32(env, backParam, &result);
1393f6603c60Sopenharmony_ci    return result;
1394f6603c60Sopenharmony_ci}
1395f6603c60Sopenharmony_ci
1396f6603c60Sopenharmony_cistatic napi_value OHVideoEncoderGetInputDescriptionAbnormal(napi_env env, napi_callback_info info)
1397f6603c60Sopenharmony_ci{
1398f6603c60Sopenharmony_ci    int backParam = FAIL;
1399f6603c60Sopenharmony_ci    napi_value result = nullptr;
1400f6603c60Sopenharmony_ci    OH_AVCodec *videoEnc = nullptr;
1401f6603c60Sopenharmony_ci    OH_AVFormat *checkParam = nullptr;
1402f6603c60Sopenharmony_ci    videoEnc = OH_VideoEncoder_CreateByMime(nullptr);
1403f6603c60Sopenharmony_ci    checkParam = OH_VideoEncoder_GetInputDescription(videoEnc);
1404f6603c60Sopenharmony_ci    if (checkParam == nullptr) {
1405f6603c60Sopenharmony_ci        backParam = SUCCESS;
1406f6603c60Sopenharmony_ci        OH_VideoEncoder_Stop(videoEnc);
1407f6603c60Sopenharmony_ci        OH_AVFormat_Destroy(checkParam);
1408f6603c60Sopenharmony_ci    }
1409f6603c60Sopenharmony_ci    napi_create_int32(env, backParam, &result);
1410f6603c60Sopenharmony_ci    return result;
1411f6603c60Sopenharmony_ci}
1412f6603c60Sopenharmony_ci
1413f6603c60Sopenharmony_cistatic napi_value OHVideoEncoderIsValid(napi_env env, napi_callback_info info)
1414f6603c60Sopenharmony_ci{
1415f6603c60Sopenharmony_ci    int backParam = FAIL;
1416f6603c60Sopenharmony_ci    napi_value result = nullptr;
1417f6603c60Sopenharmony_ci    OH_AVCodec *videoEnc = nullptr;
1418f6603c60Sopenharmony_ci    OH_AVErrCode checkParam;
1419f6603c60Sopenharmony_ci    bool status = true;
1420f6603c60Sopenharmony_ci    videoEnc = OH_VideoEncoder_CreateByMime(OH_AVCODEC_MIMETYPE_VIDEO_AVC);
1421f6603c60Sopenharmony_ci    checkParam = OH_VideoEncoder_IsValid(videoEnc, &status);
1422f6603c60Sopenharmony_ci    if (checkParam == AV_ERR_OK) {
1423f6603c60Sopenharmony_ci        backParam = SUCCESS;
1424f6603c60Sopenharmony_ci        OH_VideoEncoder_Stop(videoEnc);
1425f6603c60Sopenharmony_ci    }
1426f6603c60Sopenharmony_ci    OH_VideoEncoder_Destroy(videoEnc);
1427f6603c60Sopenharmony_ci    napi_create_int32(env, backParam, &result);
1428f6603c60Sopenharmony_ci    return result;
1429f6603c60Sopenharmony_ci}
1430f6603c60Sopenharmony_ci
1431f6603c60Sopenharmony_cistatic napi_value OHVideoEncoderIsValidHEVC(napi_env env, napi_callback_info info)
1432f6603c60Sopenharmony_ci{
1433f6603c60Sopenharmony_ci    int backParam = FAIL;
1434f6603c60Sopenharmony_ci    napi_value result = nullptr;
1435f6603c60Sopenharmony_ci    OH_AVCodec *videoEnc = nullptr;
1436f6603c60Sopenharmony_ci    OH_AVErrCode checkParam;
1437f6603c60Sopenharmony_ci    bool status = true;
1438f6603c60Sopenharmony_ci    videoEnc = OH_VideoEncoder_CreateByMime(OH_AVCODEC_MIMETYPE_VIDEO_HEVC);
1439f6603c60Sopenharmony_ci    checkParam = OH_VideoEncoder_IsValid(videoEnc, &status);
1440f6603c60Sopenharmony_ci    if (checkParam == AV_ERR_OK) {
1441f6603c60Sopenharmony_ci        backParam = SUCCESS;
1442f6603c60Sopenharmony_ci        OH_VideoEncoder_Stop(videoEnc);
1443f6603c60Sopenharmony_ci    }
1444f6603c60Sopenharmony_ci    OH_VideoEncoder_Destroy(videoEnc);
1445f6603c60Sopenharmony_ci    napi_create_int32(env, backParam, &result);
1446f6603c60Sopenharmony_ci    return result;
1447f6603c60Sopenharmony_ci}
1448f6603c60Sopenharmony_ci
1449f6603c60Sopenharmony_cistatic napi_value OHVideoEncoderIsValidAbnormal(napi_env env, napi_callback_info info)
1450f6603c60Sopenharmony_ci{
1451f6603c60Sopenharmony_ci    int backParam = FAIL;
1452f6603c60Sopenharmony_ci    napi_value result = nullptr;
1453f6603c60Sopenharmony_ci    OH_AVCodec *videoEnc = nullptr;
1454f6603c60Sopenharmony_ci    OH_AVErrCode checkParam;
1455f6603c60Sopenharmony_ci    bool status = true;
1456f6603c60Sopenharmony_ci    videoEnc = OH_VideoEncoder_CreateByMime(nullptr);
1457f6603c60Sopenharmony_ci    checkParam = OH_VideoEncoder_IsValid(videoEnc, &status);
1458f6603c60Sopenharmony_ci    if (checkParam != AV_ERR_OK) {
1459f6603c60Sopenharmony_ci        backParam = SUCCESS;
1460f6603c60Sopenharmony_ci        OH_VideoEncoder_Stop(videoEnc);
1461f6603c60Sopenharmony_ci    }
1462f6603c60Sopenharmony_ci    OH_VideoEncoder_Destroy(videoEnc);
1463f6603c60Sopenharmony_ci    napi_create_int32(env, backParam, &result);
1464f6603c60Sopenharmony_ci    return result;
1465f6603c60Sopenharmony_ci}
1466f6603c60Sopenharmony_ci
1467f6603c60Sopenharmony_cistatic napi_value OHVideoEncoderPushInputBuffer(napi_env env, napi_callback_info info)
1468f6603c60Sopenharmony_ci{
1469f6603c60Sopenharmony_ci    int backParam = FAIL;
1470f6603c60Sopenharmony_ci    napi_value result = nullptr;
1471f6603c60Sopenharmony_ci    OH_AVCodec *videoEnc = nullptr;
1472f6603c60Sopenharmony_ci    OH_AVErrCode checkParam;
1473f6603c60Sopenharmony_ci    uint32_t index = PARAM_1;
1474f6603c60Sopenharmony_ci    videoEnc = OH_VideoEncoder_CreateByMime(OH_AVCODEC_MIMETYPE_VIDEO_AVC);
1475f6603c60Sopenharmony_ci    checkParam = OH_VideoEncoder_PushInputBuffer(videoEnc, index);
1476f6603c60Sopenharmony_ci    if (checkParam != AV_ERR_OK) {
1477f6603c60Sopenharmony_ci        backParam = SUCCESS;
1478f6603c60Sopenharmony_ci    }
1479f6603c60Sopenharmony_ci    OH_VideoEncoder_Destroy(videoEnc);
1480f6603c60Sopenharmony_ci    napi_create_int32(env, backParam, &result);
1481f6603c60Sopenharmony_ci    return result;
1482f6603c60Sopenharmony_ci}
1483f6603c60Sopenharmony_ci
1484f6603c60Sopenharmony_cistatic napi_value OHVideoEncoderPushInputBufferHEVC(napi_env env, napi_callback_info info)
1485f6603c60Sopenharmony_ci{
1486f6603c60Sopenharmony_ci    int backParam = FAIL;
1487f6603c60Sopenharmony_ci    napi_value result = nullptr;
1488f6603c60Sopenharmony_ci    OH_AVCodec *videoEnc = nullptr;
1489f6603c60Sopenharmony_ci    OH_AVErrCode checkParam;
1490f6603c60Sopenharmony_ci    uint32_t index = PARAM_1;
1491f6603c60Sopenharmony_ci    videoEnc = OH_VideoEncoder_CreateByMime(OH_AVCODEC_MIMETYPE_VIDEO_HEVC);
1492f6603c60Sopenharmony_ci    checkParam = OH_VideoEncoder_PushInputBuffer(videoEnc, index);
1493f6603c60Sopenharmony_ci    if (checkParam != AV_ERR_OK) {
1494f6603c60Sopenharmony_ci        backParam = SUCCESS;
1495f6603c60Sopenharmony_ci    }
1496f6603c60Sopenharmony_ci    OH_VideoEncoder_Destroy(videoEnc);
1497f6603c60Sopenharmony_ci    napi_create_int32(env, backParam, &result);
1498f6603c60Sopenharmony_ci    return result;
1499f6603c60Sopenharmony_ci}
1500f6603c60Sopenharmony_ci
1501f6603c60Sopenharmony_cistatic napi_value OHVideoEncoderPushInputBufferAbnormal(napi_env env, napi_callback_info info)
1502f6603c60Sopenharmony_ci{
1503f6603c60Sopenharmony_ci    int backParam = FAIL;
1504f6603c60Sopenharmony_ci    napi_value result = nullptr;
1505f6603c60Sopenharmony_ci    OH_AVCodec *videoEnc = nullptr;
1506f6603c60Sopenharmony_ci    OH_AVErrCode checkParam;
1507f6603c60Sopenharmony_ci    uint32_t index = PARAM_1;
1508f6603c60Sopenharmony_ci    videoEnc = OH_VideoEncoder_CreateByMime(nullptr);
1509f6603c60Sopenharmony_ci    checkParam = OH_VideoEncoder_PushInputBuffer(videoEnc, index);
1510f6603c60Sopenharmony_ci    if (checkParam != AV_ERR_OK) {
1511f6603c60Sopenharmony_ci        backParam = SUCCESS;
1512f6603c60Sopenharmony_ci    }
1513f6603c60Sopenharmony_ci    OH_VideoEncoder_Destroy(videoEnc);
1514f6603c60Sopenharmony_ci    napi_create_int32(env, backParam, &result);
1515f6603c60Sopenharmony_ci    return result;
1516f6603c60Sopenharmony_ci}
1517f6603c60Sopenharmony_ci
1518f6603c60Sopenharmony_cistatic napi_value OHVideoEncoderFreeOutputBuffer(napi_env env, napi_callback_info info)
1519f6603c60Sopenharmony_ci{
1520f6603c60Sopenharmony_ci    int backParam = FAIL;
1521f6603c60Sopenharmony_ci    napi_value result = nullptr;
1522f6603c60Sopenharmony_ci    OH_AVCodec *videoEnc = nullptr;
1523f6603c60Sopenharmony_ci    OH_AVErrCode checkParam;
1524f6603c60Sopenharmony_ci    uint32_t index = PARAM_1;
1525f6603c60Sopenharmony_ci    videoEnc = OH_VideoEncoder_CreateByMime(OH_AVCODEC_MIMETYPE_VIDEO_AVC);
1526f6603c60Sopenharmony_ci    checkParam = OH_VideoEncoder_FreeOutputBuffer(videoEnc, 0);
1527f6603c60Sopenharmony_ci    if (checkParam != AV_ERR_OK) {
1528f6603c60Sopenharmony_ci        backParam = SUCCESS;
1529f6603c60Sopenharmony_ci    }
1530f6603c60Sopenharmony_ci    OH_VideoEncoder_Destroy(videoEnc);
1531f6603c60Sopenharmony_ci    napi_create_int32(env, backParam, &result);
1532f6603c60Sopenharmony_ci    return result;
1533f6603c60Sopenharmony_ci}
1534f6603c60Sopenharmony_ci
1535f6603c60Sopenharmony_cistatic napi_value OHVideoEncoderFreeOutputBufferHEVC(napi_env env, napi_callback_info info)
1536f6603c60Sopenharmony_ci{
1537f6603c60Sopenharmony_ci    int backParam = FAIL;
1538f6603c60Sopenharmony_ci    napi_value result = nullptr;
1539f6603c60Sopenharmony_ci    OH_AVCodec *videoEnc = nullptr;
1540f6603c60Sopenharmony_ci    OH_AVErrCode checkParam;
1541f6603c60Sopenharmony_ci    uint32_t index = PARAM_1;
1542f6603c60Sopenharmony_ci    videoEnc = OH_VideoEncoder_CreateByMime(OH_AVCODEC_MIMETYPE_VIDEO_HEVC);
1543f6603c60Sopenharmony_ci    checkParam = OH_VideoEncoder_FreeOutputBuffer(videoEnc, 0);
1544f6603c60Sopenharmony_ci    if (checkParam != AV_ERR_OK) {
1545f6603c60Sopenharmony_ci        backParam = SUCCESS;
1546f6603c60Sopenharmony_ci    }
1547f6603c60Sopenharmony_ci    OH_VideoEncoder_Destroy(videoEnc);
1548f6603c60Sopenharmony_ci    napi_create_int32(env, backParam, &result);
1549f6603c60Sopenharmony_ci    return result;
1550f6603c60Sopenharmony_ci}
1551f6603c60Sopenharmony_ci
1552f6603c60Sopenharmony_cistatic napi_value OHVideoEncoderFreeOutputBufferAbnormal(napi_env env, napi_callback_info info)
1553f6603c60Sopenharmony_ci{
1554f6603c60Sopenharmony_ci    int backParam = FAIL;
1555f6603c60Sopenharmony_ci    napi_value result = nullptr;
1556f6603c60Sopenharmony_ci    OH_AVCodec *videoEnc = nullptr;
1557f6603c60Sopenharmony_ci    OH_AVErrCode checkParam;
1558f6603c60Sopenharmony_ci    uint32_t index = PARAM_1;
1559f6603c60Sopenharmony_ci    videoEnc = OH_VideoEncoder_CreateByMime(nullptr);
1560f6603c60Sopenharmony_ci    checkParam = OH_VideoEncoder_FreeOutputBuffer(videoEnc, 0);
1561f6603c60Sopenharmony_ci    if (checkParam != AV_ERR_OK) {
1562f6603c60Sopenharmony_ci        backParam = SUCCESS;
1563f6603c60Sopenharmony_ci    }
1564f6603c60Sopenharmony_ci    OH_VideoEncoder_Destroy(videoEnc);
1565f6603c60Sopenharmony_ci    napi_create_int32(env, backParam, &result);
1566f6603c60Sopenharmony_ci    return result;
1567f6603c60Sopenharmony_ci}
1568f6603c60Sopenharmony_ci
1569f6603c60Sopenharmony_ciEXTERN_C_START
1570f6603c60Sopenharmony_cistatic napi_value Init(napi_env env, napi_value exports)
1571f6603c60Sopenharmony_ci{
1572f6603c60Sopenharmony_ci    napi_property_descriptor desc[] = {
1573f6603c60Sopenharmony_ci        {"oHVideoEncoderCreateByMime", nullptr, OHVideoEncoderCreateByMime, nullptr, nullptr, nullptr, napi_default,
1574f6603c60Sopenharmony_ci         nullptr},
1575f6603c60Sopenharmony_ci        {"oHVideoEncoderCreateByMimeHEVC", nullptr, OHVideoEncoderCreateByMimeHEVC, nullptr, nullptr, nullptr,
1576f6603c60Sopenharmony_ci         napi_default, nullptr},
1577f6603c60Sopenharmony_ci        {"oHVideoEncoderCreateByMimeAbnormal", nullptr, OHVideoEncoderCreateByMimeAbnormal, nullptr, nullptr, nullptr,
1578f6603c60Sopenharmony_ci         napi_default, nullptr},
1579f6603c60Sopenharmony_ci        {"oHVideoEncoderCreateByName", nullptr, OHVideoEncoderCreateByName, nullptr, nullptr, nullptr, napi_default,
1580f6603c60Sopenharmony_ci         nullptr},
1581f6603c60Sopenharmony_ci        {"oHVideoEncoderCreateByNameHEVC", nullptr, OHVideoEncoderCreateByNameHEVC, nullptr, nullptr, nullptr,
1582f6603c60Sopenharmony_ci         napi_default, nullptr},
1583f6603c60Sopenharmony_ci        {"oHVideoEncoderCreateByNameAbnormal", nullptr, OHVideoEncoderCreateByNameAbnormal, nullptr, nullptr, nullptr,
1584f6603c60Sopenharmony_ci         napi_default, nullptr},
1585f6603c60Sopenharmony_ci        {"oHVideoEncoderDestroy", nullptr, OHVideoEncoderDestroy, nullptr, nullptr, nullptr, napi_default, nullptr},
1586f6603c60Sopenharmony_ci        {"oHVideoEncoderDestroyHEVC", nullptr, OHVideoEncoderDestroyHEVC, nullptr, nullptr, nullptr, napi_default,
1587f6603c60Sopenharmony_ci         nullptr},
1588f6603c60Sopenharmony_ci        {"oHVideoEncoderDestroyAbnormal", nullptr, OHVideoEncoderDestroyAbnormal, nullptr, nullptr, nullptr,
1589f6603c60Sopenharmony_ci         napi_default, nullptr},
1590f6603c60Sopenharmony_ci        {"oHVideoEncoderSetCallback", nullptr, OHVideoEncoderSetCallback, nullptr, nullptr, nullptr, napi_default,
1591f6603c60Sopenharmony_ci         nullptr},
1592f6603c60Sopenharmony_ci        {"oHVideoEncoderSetCallbackHEVC", nullptr, OHVideoEncoderSetCallbackHEVC, nullptr, nullptr, nullptr,
1593f6603c60Sopenharmony_ci         napi_default, nullptr},
1594f6603c60Sopenharmony_ci        {"oHVideoEncoderSetCallbackAbnormal", nullptr, OHVideoEncoderSetCallbackAbnormal, nullptr, nullptr, nullptr,
1595f6603c60Sopenharmony_ci         napi_default, nullptr},
1596f6603c60Sopenharmony_ci        {"oHVideoEncoderConfigure", nullptr, OHVideoEncoderConfigure, nullptr, nullptr, nullptr, napi_default, nullptr},
1597f6603c60Sopenharmony_ci        {"oHVideoEncoderConfigureHEVC", nullptr, OHVideoEncoderConfigureHEVC, nullptr, nullptr, nullptr, napi_default,
1598f6603c60Sopenharmony_ci         nullptr},
1599f6603c60Sopenharmony_ci        {"oHVideoEncoderConfigureAbnormal1", nullptr, OHVideoEncoderConfigureAbnormal1, nullptr, nullptr, nullptr,
1600f6603c60Sopenharmony_ci         napi_default, nullptr},
1601f6603c60Sopenharmony_ci        {"oHVideoEncoderConfigureAbnormal2", nullptr, OHVideoEncoderConfigureAbnormal2, nullptr, nullptr, nullptr,
1602f6603c60Sopenharmony_ci         napi_default, nullptr},
1603f6603c60Sopenharmony_ci        {"oHVideoEncoderConfigureAbnormal3", nullptr, OHVideoEncoderConfigureAbnormal3, nullptr, nullptr, nullptr,
1604f6603c60Sopenharmony_ci         napi_default, nullptr},
1605f6603c60Sopenharmony_ci        {"oHVideoEncoderConfigureAbnormal4", nullptr, OHVideoEncoderConfigureAbnormal4, nullptr, nullptr, nullptr,
1606f6603c60Sopenharmony_ci         napi_default, nullptr},
1607f6603c60Sopenharmony_ci        {"oHVideoEncoderConfigureAbnormal5", nullptr, OHVideoEncoderConfigureAbnormal5, nullptr, nullptr, nullptr,
1608f6603c60Sopenharmony_ci         napi_default, nullptr},
1609f6603c60Sopenharmony_ci        {"oHVideoEncoderConfigureAbnormal6", nullptr, OHVideoEncoderConfigureAbnormal6, nullptr, nullptr, nullptr,
1610f6603c60Sopenharmony_ci         napi_default, nullptr},
1611f6603c60Sopenharmony_ci        {"oHVideoEncoderConfigureAbnormal7", nullptr, OHVideoEncoderConfigureAbnormal7, nullptr, nullptr, nullptr,
1612f6603c60Sopenharmony_ci         napi_default, nullptr},
1613f6603c60Sopenharmony_ci        {"oHVideoEncoderPrepare", nullptr, OHVideoEncoderPrepare, nullptr, nullptr, nullptr, napi_default, nullptr},
1614f6603c60Sopenharmony_ci        {"oHVideoEncoderPrepareHEVC", nullptr, OHVideoEncoderPrepareHEVC, nullptr, nullptr, nullptr, napi_default,
1615f6603c60Sopenharmony_ci         nullptr},
1616f6603c60Sopenharmony_ci        {"oHVideoEncoderPrepareAbnormal1", nullptr, OHVideoEncoderPrepareAbnormal1, nullptr, nullptr, nullptr,
1617f6603c60Sopenharmony_ci         napi_default, nullptr},
1618f6603c60Sopenharmony_ci        {"oHVideoEncoderPrepareAbnormal2", nullptr, OHVideoEncoderPrepareAbnormal2, nullptr, nullptr, nullptr,
1619f6603c60Sopenharmony_ci         napi_default, nullptr},
1620f6603c60Sopenharmony_ci        {"oHVideoEncoderPrepareAbnormal3", nullptr, OHVideoEncoderPrepareAbnormal3, nullptr, nullptr, nullptr,
1621f6603c60Sopenharmony_ci         napi_default, nullptr},
1622f6603c60Sopenharmony_ci        {"oHVideoEncoderPrepareAbnormal4", nullptr, OHVideoEncoderPrepareAbnormal4, nullptr, nullptr, nullptr,
1623f6603c60Sopenharmony_ci         napi_default, nullptr},
1624f6603c60Sopenharmony_ci        {"oHVideoEncoderPrepareAbnormal5", nullptr, OHVideoEncoderPrepareAbnormal5, nullptr, nullptr, nullptr,
1625f6603c60Sopenharmony_ci         napi_default, nullptr},
1626f6603c60Sopenharmony_ci        {"oHVideoEncoderPrepareAbnormal6", nullptr, OHVideoEncoderPrepareAbnormal6, nullptr, nullptr, nullptr,
1627f6603c60Sopenharmony_ci         napi_default, nullptr},
1628f6603c60Sopenharmony_ci        {"oHVideoEncoderPrepareAbnormal7", nullptr, OHVideoEncoderPrepareAbnormal7, nullptr, nullptr, nullptr,
1629f6603c60Sopenharmony_ci         napi_default, nullptr},
1630f6603c60Sopenharmony_ci        {"oHVideoEncoderPrepareAbnormal8", nullptr, OHVideoEncoderPrepareAbnormal8, nullptr, nullptr, nullptr,
1631f6603c60Sopenharmony_ci         napi_default, nullptr},
1632f6603c60Sopenharmony_ci        {"oHVideoEncoderPrepareAbnormal9", nullptr, OHVideoEncoderPrepareAbnormal9, nullptr, nullptr, nullptr,
1633f6603c60Sopenharmony_ci         napi_default, nullptr},
1634f6603c60Sopenharmony_ci        {"oHVideoEncoderPrepareAbnormal10", nullptr, OHVideoEncoderPrepareAbnormal10, nullptr, nullptr, nullptr,
1635f6603c60Sopenharmony_ci         napi_default, nullptr},
1636f6603c60Sopenharmony_ci        {"oHVideoEncoderPrepareAbnormal11", nullptr, OHVideoEncoderPrepareAbnormal11, nullptr, nullptr, nullptr,
1637f6603c60Sopenharmony_ci         napi_default, nullptr},
1638f6603c60Sopenharmony_ci        {"oHVideoEncoderPrepareAbnormal12", nullptr, OHVideoEncoderPrepareAbnormal12, nullptr, nullptr, nullptr,
1639f6603c60Sopenharmony_ci         napi_default, nullptr},
1640f6603c60Sopenharmony_ci        {"oHVideoEncoderPrepareAbnormal13", nullptr, OHVideoEncoderPrepareAbnormal13, nullptr, nullptr, nullptr,
1641f6603c60Sopenharmony_ci         napi_default, nullptr},
1642f6603c60Sopenharmony_ci        {"oHVideoEncoderPrepareAbnormal14", nullptr, OHVideoEncoderPrepareAbnormal14, nullptr, nullptr, nullptr,
1643f6603c60Sopenharmony_ci         napi_default, nullptr},
1644f6603c60Sopenharmony_ci        {"oHVideoEncoderPrepareAbnormal15", nullptr, OHVideoEncoderPrepareAbnormal15, nullptr, nullptr, nullptr,
1645f6603c60Sopenharmony_ci         napi_default, nullptr},
1646f6603c60Sopenharmony_ci        {"oHVideoEncoderStart", nullptr, OHVideoEncoderStart, nullptr, nullptr, nullptr, napi_default, nullptr},
1647f6603c60Sopenharmony_ci        {"oHVideoEncoderStop", nullptr, OHVideoEncoderStop, nullptr, nullptr, nullptr, napi_default, nullptr},
1648f6603c60Sopenharmony_ci        {"oHVideoEncoderFlush", nullptr, OHVideoEncoderFlush, nullptr, nullptr, nullptr, napi_default, nullptr},
1649f6603c60Sopenharmony_ci        {"oHVideoEncoderReset", nullptr, OHVideoEncoderReset, nullptr, nullptr, nullptr, napi_default, nullptr},
1650f6603c60Sopenharmony_ci        {"oHVideoEncoderGetOutputDescription", nullptr, OHVideoEncoderGetOutputDescription, nullptr, nullptr, nullptr,
1651f6603c60Sopenharmony_ci         napi_default, nullptr},
1652f6603c60Sopenharmony_ci        {"oHVideoEncoderSetParameter", nullptr, OHVideoEncoderSetParameter, nullptr, nullptr, nullptr, napi_default,
1653f6603c60Sopenharmony_ci         nullptr},
1654f6603c60Sopenharmony_ci        {"oHVideoEncoderSetParameterHEVC", nullptr, OHVideoEncoderSetParameterHEVC, nullptr, nullptr, nullptr,
1655f6603c60Sopenharmony_ci         napi_default, nullptr},
1656f6603c60Sopenharmony_ci        {"oHVideoEncoderSetParameterAbnormal", nullptr, OHVideoEncoderSetParameterAbnormal, nullptr, nullptr, nullptr,
1657f6603c60Sopenharmony_ci         napi_default, nullptr},
1658f6603c60Sopenharmony_ci        {"oHVideoEncoderGetInputDescription", nullptr, OHVideoEncoderGetInputDescription, nullptr, nullptr, nullptr,
1659f6603c60Sopenharmony_ci         napi_default, nullptr},
1660f6603c60Sopenharmony_ci        {"oHVideoEncoderGetInputDescriptionHEVC", nullptr, OHVideoEncoderGetInputDescriptionHEVC, nullptr, nullptr,
1661f6603c60Sopenharmony_ci         nullptr, napi_default, nullptr},
1662f6603c60Sopenharmony_ci        {"oHVideoEncoderGetInputDescriptionAbnormal", nullptr, OHVideoEncoderGetInputDescriptionAbnormal, nullptr,
1663f6603c60Sopenharmony_ci         nullptr, nullptr, napi_default, nullptr},
1664f6603c60Sopenharmony_ci        {"oHVideoEncoderIsValid", nullptr, OHVideoEncoderIsValid, nullptr, nullptr, nullptr, napi_default, nullptr},
1665f6603c60Sopenharmony_ci        {"oHVideoEncoderIsValidHEVC", nullptr, OHVideoEncoderIsValidHEVC, nullptr, nullptr, nullptr, napi_default,
1666f6603c60Sopenharmony_ci         nullptr},
1667f6603c60Sopenharmony_ci        {"oHVideoEncoderIsValidAbnormal", nullptr, OHVideoEncoderIsValidAbnormal, nullptr, nullptr, nullptr,
1668f6603c60Sopenharmony_ci         napi_default, nullptr},
1669f6603c60Sopenharmony_ci        {"oHVideoEncoderRegisterCallback", nullptr, OHVideoEncoderRegisterCallback, nullptr, nullptr, nullptr,
1670f6603c60Sopenharmony_ci         napi_default, nullptr},
1671f6603c60Sopenharmony_ci        {"oHVideoEncoderRegisterCallbackHEVC", nullptr, OHVideoEncoderRegisterCallbackHEVC, nullptr, nullptr, nullptr,
1672f6603c60Sopenharmony_ci         napi_default, nullptr},
1673f6603c60Sopenharmony_ci        {"oHVideoEncoderRegisterCallbackAbnormal", nullptr, OHVideoEncoderRegisterCallbackAbnormal, nullptr, nullptr,
1674f6603c60Sopenharmony_ci         nullptr, napi_default, nullptr},
1675f6603c60Sopenharmony_ci        {"oHVideoEncoderPushInputBuffer", nullptr, OHVideoEncoderPushInputBuffer, nullptr, nullptr, nullptr,
1676f6603c60Sopenharmony_ci         napi_default, nullptr},
1677f6603c60Sopenharmony_ci        {"oHVideoEncoderPushInputBufferHEVC", nullptr, OHVideoEncoderPushInputBufferHEVC, nullptr, nullptr, nullptr,
1678f6603c60Sopenharmony_ci         napi_default, nullptr},
1679f6603c60Sopenharmony_ci        {"oHVideoEncoderPushInputBufferAbnormal", nullptr, OHVideoEncoderPushInputBufferAbnormal, nullptr, nullptr, nullptr,
1680f6603c60Sopenharmony_ci         napi_default, nullptr},
1681f6603c60Sopenharmony_ci        {"oHVideoEncoderFreeOutputBuffer", nullptr, OHVideoEncoderFreeOutputBuffer, nullptr, nullptr, nullptr,
1682f6603c60Sopenharmony_ci         napi_default, nullptr},
1683f6603c60Sopenharmony_ci        {"oHVideoEncoderFreeOutputBufferHEVC", nullptr, OHVideoEncoderFreeOutputBufferHEVC, nullptr, nullptr, nullptr,
1684f6603c60Sopenharmony_ci         napi_default, nullptr},
1685f6603c60Sopenharmony_ci        {"oHVideoEncoderFreeOutputBufferAbnormal", nullptr, OHVideoEncoderFreeOutputBufferAbnormal, nullptr, nullptr, nullptr,
1686f6603c60Sopenharmony_ci         napi_default, nullptr},
1687f6603c60Sopenharmony_ci    };
1688f6603c60Sopenharmony_ci    napi_define_properties(env, exports, sizeof(desc) / sizeof(desc[0]), desc);
1689f6603c60Sopenharmony_ci    return exports;
1690f6603c60Sopenharmony_ci}
1691f6603c60Sopenharmony_ciEXTERN_C_END
1692f6603c60Sopenharmony_ci
1693f6603c60Sopenharmony_cistatic napi_module demoModule = {
1694f6603c60Sopenharmony_ci    .nm_version = 1,
1695f6603c60Sopenharmony_ci    .nm_flags = 0,
1696f6603c60Sopenharmony_ci    .nm_filename = nullptr,
1697f6603c60Sopenharmony_ci    .nm_register_func = Init,
1698f6603c60Sopenharmony_ci    .nm_modname = "libvideoencoderndk",
1699f6603c60Sopenharmony_ci    .nm_priv = ((void *)0),
1700f6603c60Sopenharmony_ci    .reserved = { 0 },
1701f6603c60Sopenharmony_ci};
1702f6603c60Sopenharmony_ci
1703f6603c60Sopenharmony_ciextern "C" __attribute__((constructor)) void RegisterModule(void)
1704f6603c60Sopenharmony_ci{
1705f6603c60Sopenharmony_ci    napi_module_register(&demoModule);
1706f6603c60Sopenharmony_ci}
1707