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