1# video_output.h 2<!--Kit: Camera Kit--> 3<!--Subsystem: Multimedia--> 4<!--Owner: @qano--> 5<!--Designer: @leo_ysl--> 6<!--Tester: @xchaosioda--> 7<!--Adviser: @zengyawen--> 8 9## 概述 10 11声明录像输出概念。 12 13**引用文件:** <ohcamera/video_output.h> 14 15**库:** libohcamera.so 16 17**系统能力:** SystemCapability.Multimedia.Camera.Core 18 19**起始版本:** 11 20 21**相关模块:** [OH_Camera](capi-oh-camera.md) 22 23## 汇总 24 25### 结构体 26 27| 名称 | typedef关键字 | 描述 | 28| -- | -- | -- | 29| [VideoOutput_Callbacks](capi-oh-camera-videooutput-callbacks.md) | VideoOutput_Callbacks | 用于录像输出的回调。 | 30| [Camera_VideoOutput](capi-oh-camera-camera-videooutput.md) | Camera_VideoOutput | 录像输出对象。<br> 可以使用[OH_CameraManager_CreateVideoOutput](capi-camera-manager-h.md#oh_cameramanager_createvideooutput)方法创建指针。 | 31 32### 函数 33 34| 名称 | typedef关键字 | 描述 | 35| -- | -- | -- | 36| [typedef void (\*OH_VideoOutput_OnFrameStart)(Camera_VideoOutput* videoOutput)](#oh_videooutput_onframestart) | OH_VideoOutput_OnFrameStart | 在[VideoOutput_Callbacks](capi-oh-camera-videooutput-callbacks.md)中被调用的录像输出帧开始回调。 | 37| [typedef void (\*OH_VideoOutput_OnFrameEnd)(Camera_VideoOutput* videoOutput, int32_t frameCount)](#oh_videooutput_onframeend) | OH_VideoOutput_OnFrameEnd | 在[VideoOutput_Callbacks](capi-oh-camera-videooutput-callbacks.md)中被调用的录像输出帧结束回调。 | 38| [typedef void (\*OH_VideoOutput_OnError)(Camera_VideoOutput* videoOutput, Camera_ErrorCode errorCode)](#oh_videooutput_onerror) | OH_VideoOutput_OnError | 在[VideoOutput_Callbacks](capi-oh-camera-videooutput-callbacks.md)中被调用的录像输出错误回调。 | 39| [Camera_ErrorCode OH_VideoOutput_RegisterCallback(Camera_VideoOutput* videoOutput, VideoOutput_Callbacks* callback)](#oh_videooutput_registercallback) | - | 注册录像输出更改事件回调。 | 40| [Camera_ErrorCode OH_VideoOutput_UnregisterCallback(Camera_VideoOutput* videoOutput, VideoOutput_Callbacks* callback)](#oh_videooutput_unregistercallback) | - | 注销录像输出更改事件回调。 | 41| [Camera_ErrorCode OH_VideoOutput_Start(Camera_VideoOutput* videoOutput)](#oh_videooutput_start) | - | 开始录像输出。 | 42| [Camera_ErrorCode OH_VideoOutput_Stop(Camera_VideoOutput* videoOutput)](#oh_videooutput_stop) | - | 停止录像输出。 | 43| [Camera_ErrorCode OH_VideoOutput_Release(Camera_VideoOutput* videoOutput)](#oh_videooutput_release) | - | 释放录像输出实例。 | 44| [Camera_ErrorCode OH_VideoOutput_GetActiveProfile(Camera_VideoOutput* videoOutput, Camera_VideoProfile** profile)](#oh_videooutput_getactiveprofile) | - | 获取当前视频输出配置文件。 | 45| [Camera_ErrorCode OH_VideoOutput_DeleteProfile(Camera_VideoProfile* profile)](#oh_videooutput_deleteprofile) | - | 删除视频配置文件实例。 | 46| [ Camera_ErrorCode OH_VideoOutput_IsMirrorSupported(Camera_VideoOutput* videoOutput, bool* isSupported)](#oh_videooutput_ismirrorsupported) | - | 判断当前视频输出是否支持镜像。 | 47| [ Camera_ErrorCode OH_VideoOutput_EnableMirror(Camera_VideoOutput* videoOutput, bool mirrorMode)](#oh_videooutput_enablemirror) | - | 打开/关闭当前视频输出镜像功能。 | 48| [ Camera_ErrorCode OH_VideoOutput_GetVideoRotation(Camera_VideoOutput* videoOutput, int deviceDegree, Camera_ImageRotation* imageRotation)](#oh_videooutput_getvideorotation) | - | 获取当前视频输出应当设置的旋转角度。 | 49| [Camera_ErrorCode OH_VideoOutput_GetSupportedFrameRates(Camera_VideoOutput* videoOutput, Camera_FrameRateRange** frameRateRange, uint32_t* size)](#oh_videooutput_getsupportedframerates) | - | 获取支持的视频输出帧率列表。 | 50| [Camera_ErrorCode OH_VideoOutput_DeleteFrameRates(Camera_VideoOutput* videoOutput, Camera_FrameRateRange* frameRateRange)](#oh_videooutput_deleteframerates) | - | 删除帧率列表。 | 51| [Camera_ErrorCode OH_VideoOutput_SetFrameRate(Camera_VideoOutput* videoOutput, int32_t minFps, int32_t maxFps)](#oh_videooutput_setframerate) | - | 设置视频输出帧率。 | 52| [Camera_ErrorCode OH_VideoOutput_GetActiveFrameRate(Camera_VideoOutput* videoOutput, Camera_FrameRateRange* frameRateRange)](#oh_videooutput_getactiveframerate) | - | 获取当前视频输出帧率。 | 53 54## 函数说明 55 56### OH_VideoOutput_OnFrameStart() 57 58``` 59typedef void (*OH_VideoOutput_OnFrameStart)(Camera_VideoOutput* videoOutput) 60``` 61 62**描述** 63 64在[VideoOutput_Callbacks](capi-oh-camera-videooutput-callbacks.md)中被调用的录像输出帧开始回调。 65 66**起始版本:** 11 67 68 69**参数:** 70 71| 参数项 | 描述 | 72| -- | -- | 73| [Camera_VideoOutput](capi-oh-camera-camera-videooutput.md)* videoOutput | 传递回调的录像输出实例。 | 74 75### OH_VideoOutput_OnFrameEnd() 76 77``` 78typedef void (*OH_VideoOutput_OnFrameEnd)(Camera_VideoOutput* videoOutput, int32_t frameCount) 79``` 80 81**描述** 82 83在[VideoOutput_Callbacks](capi-oh-camera-videooutput-callbacks.md)中被调用的录像输出帧结束回调。 84 85**起始版本:** 11 86 87 88**参数:** 89 90| 参数项 | 描述 | 91| -- | -- | 92| [Camera_VideoOutput](capi-oh-camera-camera-videooutput.md)* videoOutput | 传递回调的录像输出实例。 | 93| int32_t frameCount | 回调传递的帧计数。 | 94 95### OH_VideoOutput_OnError() 96 97``` 98typedef void (*OH_VideoOutput_OnError)(Camera_VideoOutput* videoOutput, Camera_ErrorCode errorCode) 99``` 100 101**描述** 102 103在[VideoOutput_Callbacks](capi-oh-camera-videooutput-callbacks.md)中被调用的录像输出错误回调。 104 105**起始版本:** 11 106 107 108**参数:** 109 110| 参数项 | 描述 | 111| -- | -- | 112| [Camera_VideoOutput](capi-oh-camera-camera-videooutput.md)* videoOutput | 传递回调的录像输出实例。 | 113| [Camera_ErrorCode](capi-camera-h.md#camera_errorcode) errorCode | 录像输出的错误码。 | 114 115**参考:** 116 117[CAMERA_SERVICE_FATAL_ERROR](capi-camera-h.md#camera_errorcode) 118 119### OH_VideoOutput_RegisterCallback() 120 121``` 122Camera_ErrorCode OH_VideoOutput_RegisterCallback(Camera_VideoOutput* videoOutput, VideoOutput_Callbacks* callback) 123``` 124 125**描述** 126 127注册录像输出更改事件回调。 128 129**起始版本:** 11 130 131 132**参数:** 133 134| 参数项 | 描述 | 135| -- | -- | 136| [Camera_VideoOutput](capi-oh-camera-camera-videooutput.md)* videoOutput | 录像输出实例。 | 137| [VideoOutput_Callbacks](capi-oh-camera-videooutput-callbacks.md)* callback | 要注册的录像输出更改事件回调。 | 138 139**返回:** 140 141| 类型 | 说明 | 142| -- | -- | 143| [Camera_ErrorCode](capi-camera-h.md#camera_errorcode) | CAMERA_OK:方法调用成功。<br> CAMERA_INVALID_ARGUMENT:参数丢失或参数类型不正确。 | 144 145### OH_VideoOutput_UnregisterCallback() 146 147``` 148Camera_ErrorCode OH_VideoOutput_UnregisterCallback(Camera_VideoOutput* videoOutput, VideoOutput_Callbacks* callback) 149``` 150 151**描述** 152 153注销录像输出更改事件回调。 154 155**起始版本:** 11 156 157 158**参数:** 159 160| 参数项 | 描述 | 161| -- | -- | 162| [Camera_VideoOutput](capi-oh-camera-camera-videooutput.md)* videoOutput | 录像输出实例。 | 163| [VideoOutput_Callbacks](capi-oh-camera-videooutput-callbacks.md)* callback | 要注销的录像输出更改事件回调。 | 164 165**返回:** 166 167| 类型 | 说明 | 168| -- | -- | 169| [Camera_ErrorCode](capi-camera-h.md#camera_errorcode) | CAMERA_OK:方法调用成功。<br> CAMERA_INVALID_ARGUMENT:参数丢失或参数类型不正确。 | 170 171### OH_VideoOutput_Start() 172 173``` 174Camera_ErrorCode OH_VideoOutput_Start(Camera_VideoOutput* videoOutput) 175``` 176 177**描述** 178 179开始录像输出。 180 181**起始版本:** 11 182 183 184**参数:** 185 186| 参数项 | 描述 | 187| -- | -- | 188| [Camera_VideoOutput](capi-oh-camera-camera-videooutput.md)* videoOutput | 要启动的录像输出实例。 | 189 190**返回:** 191 192| 类型 | 说明 | 193| -- | -- | 194| [Camera_ErrorCode](capi-camera-h.md#camera_errorcode) | CAMERA_OK:方法调用成功。<br> CAMERA_INVALID_ARGUMENT:参数丢失或参数类型不正确。<br> CAMERA_SESSION_NOT_CONFIG:捕获会话未配置。<br> CAMERA_SERVICE_FATAL_ERROR:相机服务出现致命错误。 | 195 196### OH_VideoOutput_Stop() 197 198``` 199Camera_ErrorCode OH_VideoOutput_Stop(Camera_VideoOutput* videoOutput) 200``` 201 202**描述** 203 204停止录像输出。 205 206**起始版本:** 11 207 208 209**参数:** 210 211| 参数项 | 描述 | 212| -- | -- | 213| [Camera_VideoOutput](capi-oh-camera-camera-videooutput.md)* videoOutput | 要停止的录像输出实例。 | 214 215**返回:** 216 217| 类型 | 说明 | 218| -- | -- | 219| [Camera_ErrorCode](capi-camera-h.md#camera_errorcode) | CAMERA_OK:方法调用成功。<br> CAMERA_INVALID_ARGUMENT:参数丢失或参数类型不正确。<br> CAMERA_SERVICE_FATAL_ERROR:相机服务出现致命错误。 | 220 221### OH_VideoOutput_Release() 222 223``` 224Camera_ErrorCode OH_VideoOutput_Release(Camera_VideoOutput* videoOutput) 225``` 226 227**描述** 228 229释放录像输出实例。 230 231**起始版本:** 11 232 233 234**参数:** 235 236| 参数项 | 描述 | 237| -- | -- | 238| [Camera_VideoOutput](capi-oh-camera-camera-videooutput.md)* videoOutput | 要释放的录像输出实例。 | 239 240**返回:** 241 242| 类型 | 说明 | 243| -- | -- | 244| [Camera_ErrorCode](capi-camera-h.md#camera_errorcode) | CAMERA_OK:方法调用成功。<br> CAMERA_INVALID_ARGUMENT:参数丢失或参数类型不正确。<br> CAMERA_SERVICE_FATAL_ERROR:相机服务出现致命错误。 | 245 246### OH_VideoOutput_GetActiveProfile() 247 248``` 249Camera_ErrorCode OH_VideoOutput_GetActiveProfile(Camera_VideoOutput* videoOutput, Camera_VideoProfile** profile) 250``` 251 252**描述** 253 254获取当前视频输出配置文件。 255 256**起始版本:** 12 257 258 259**参数:** 260 261| 参数项 | 描述 | 262| -- | -- | 263| [Camera_VideoOutput](capi-oh-camera-camera-videooutput.md)* videoOutput | 传递当前视频输出配置文件的录像输出实例。 | 264| [Camera_VideoProfile](capi-oh-camera-camera-videoprofile.md)** profile | 如果方法调用成功,将记录当前的视频输出配置文件。 | 265 266**返回:** 267 268| 类型 | 说明 | 269| -- | -- | 270| [Camera_ErrorCode](capi-camera-h.md#camera_errorcode) | CAMERA_OK:方法调用成功。<br> CAMERA_INVALID_ARGUMENT:参数丢失或参数类型不正确。<br> CAMERA_SERVICE_FATAL_ERROR:相机服务出现致命错误。 | 271 272### OH_VideoOutput_DeleteProfile() 273 274``` 275Camera_ErrorCode OH_VideoOutput_DeleteProfile(Camera_VideoProfile* profile) 276``` 277 278**描述** 279 280删除视频配置文件实例。 281 282**起始版本:** 12 283 284 285**参数:** 286 287| 参数项 | 描述 | 288| -- | -- | 289| [Camera_VideoProfile](capi-oh-camera-camera-videoprofile.md)* profile | 要删除的视频配置文件实例。 | 290 291**返回:** 292 293| 类型 | 说明 | 294| -- | -- | 295| [Camera_ErrorCode](capi-camera-h.md#camera_errorcode) | CAMERA_OK:方法调用成功。<br> CAMERA_INVALID_ARGUMENT:参数丢失或参数类型不正确。 | 296 297### OH_VideoOutput_IsMirrorSupported() 298 299``` 300 Camera_ErrorCode OH_VideoOutput_IsMirrorSupported(Camera_VideoOutput* videoOutput, bool* isSupported) 301``` 302 303**描述** 304 305判断当前视频输出是否支持镜像。 306 307**起始版本:** 15 308 309 310**参数:** 311 312| 参数项 | 描述 | 313| -- | -- | 314| [Camera_VideoOutput](capi-oh-camera-camera-videooutput.md)* videoOutput | 传递当前视频输出的录像输出实例。 | 315| bool* isSupported | 当前视频输出是否支持镜像。true表示当前视频输出支持镜像,false表示不支持。 | 316 317**返回:** 318 319| 类型 | 说明 | 320| -- | -- | 321| [Camera_ErrorCode](capi-camera-h.md#camera_errorcode) | CAMERA_OK:方法调用成功。<br> CAMERA_INVALID_ARGUMENT:参数丢失或参数类型不正确。<br> CAMERA_SERVICE_FATAL_ERROR:相机服务出现致命错误。 | 322 323### OH_VideoOutput_EnableMirror() 324 325``` 326 Camera_ErrorCode OH_VideoOutput_EnableMirror(Camera_VideoOutput* videoOutput, bool mirrorMode) 327``` 328 329**描述** 330 331打开/关闭当前视频输出镜像功能。 332 333**起始版本:** 15 334 335 336**参数:** 337 338| 参数项 | 描述 | 339| -- | -- | 340| [Camera_VideoOutput](capi-oh-camera-camera-videooutput.md)* videoOutput | 传递当前视频输出的录像输出实例。 | 341| bool mirrorMode | 设备是否开启镜像功能。true表示打开镜像功能,false表示关闭镜像功能。 | 342 343**返回:** 344 345| 类型 | 说明 | 346| -- | -- | 347| [Camera_ErrorCode](capi-camera-h.md#camera_errorcode) | CAMERA_OK:方法调用成功。<br> CAMERA_INVALID_ARGUMENT:参数丢失或参数类型不正确。<br> CAMERA_SERVICE_FATAL_ERROR:相机服务出现致命错误。 | 348 349### OH_VideoOutput_GetVideoRotation() 350 351``` 352 Camera_ErrorCode OH_VideoOutput_GetVideoRotation(Camera_VideoOutput* videoOutput, int deviceDegree,Camera_ImageRotation* imageRotation) 353``` 354 355**描述** 356 357获取当前视频输出应当设置的旋转角度。 358 359**起始版本:** 12 360 361 362**参数:** 363 364| 参数项 | 描述 | 365| -- | -- | 366| [Camera_VideoOutput](capi-oh-camera-camera-videooutput.md)* videoOutput | 传递当前视频输出的录像输出实例。 | 367| int deviceDegree | 设备目前相对于自然方向(充电口朝下)顺时针的旋转角度。 | 368| [Camera_ImageRotation](capi-camera-h.md#camera_imagerotation)* imageRotation | 当前视频输出应当设置的旋转角度。 | 369 370**返回:** 371 372| 类型 | 说明 | 373| -- | -- | 374| [Camera_ErrorCode](capi-camera-h.md#camera_errorcode) | CAMERA_OK:方法调用成功。<br> CAMERA_INVALID_ARGUMENT:参数丢失或参数类型不正确。<br> CAMERA_SERVICE_FATAL_ERROR:相机服务出现致命错误。 | 375 376### OH_VideoOutput_GetSupportedFrameRates() 377 378``` 379Camera_ErrorCode OH_VideoOutput_GetSupportedFrameRates(Camera_VideoOutput* videoOutput,Camera_FrameRateRange** frameRateRange, uint32_t* size) 380``` 381 382**描述** 383 384获取支持的视频输出帧率列表。 385 386**起始版本:** 12 387 388 389**参数:** 390 391| 参数项 | 描述 | 392| -- | -- | 393| [Camera_VideoOutput](capi-oh-camera-camera-videooutput.md)* videoOutput | 传递支持的视频输出帧率列表的录像输出实例。 | 394| [Camera_FrameRateRange](capi-oh-camera-camera-frameraterange.md)** frameRateRange | 如果方法调用成功,将记录支持的视频输出帧率列表。 | 395| uint32_t* size | 如果方法调用成功,将记录支持的视频输出帧率列表大小。 | 396 397**返回:** 398 399| 类型 | 说明 | 400| -- | -- | 401| [Camera_ErrorCode](capi-camera-h.md#camera_errorcode) | CAMERA_OK:方法调用成功。<br> CAMERA_INVALID_ARGUMENT:参数丢失或参数类型不正确。<br> CAMERA_SERVICE_FATAL_ERROR:相机服务出现致命错误。 | 402 403### OH_VideoOutput_DeleteFrameRates() 404 405``` 406Camera_ErrorCode OH_VideoOutput_DeleteFrameRates(Camera_VideoOutput* videoOutput,Camera_FrameRateRange* frameRateRange) 407``` 408 409**描述** 410 411删除帧率列表。 412 413**起始版本:** 12 414 415 416**参数:** 417 418| 参数项 | 描述 | 419| -- | -- | 420| [Camera_VideoOutput](capi-oh-camera-camera-videooutput.md)* videoOutput | 录像输出实例。 | 421| [Camera_FrameRateRange](capi-oh-camera-camera-frameraterange.md)* frameRateRange | 要删除的帧率列表。 | 422 423**返回:** 424 425| 类型 | 说明 | 426| -- | -- | 427| [Camera_ErrorCode](capi-camera-h.md#camera_errorcode) | CAMERA_OK:方法调用成功。<br> CAMERA_INVALID_ARGUMENT:参数丢失或参数类型不正确。 | 428 429### OH_VideoOutput_SetFrameRate() 430 431``` 432Camera_ErrorCode OH_VideoOutput_SetFrameRate(Camera_VideoOutput* videoOutput,int32_t minFps, int32_t maxFps) 433``` 434 435**描述** 436 437设置视频输出帧率。 438 439**起始版本:** 12 440 441 442**参数:** 443 444| 参数项 | 描述 | 445| -- | -- | 446| [Camera_VideoOutput](capi-oh-camera-camera-videooutput.md)* videoOutput | 要设置帧率的录像输出实例。 | 447| int32_t minFps | 设置的最小帧率。 | 448| int32_t maxFps | 设置的最大帧率。 | 449 450**返回:** 451 452| 类型 | 说明 | 453| -- | -- | 454| [Camera_ErrorCode](capi-camera-h.md#camera_errorcode) | CAMERA_OK:方法调用成功。<br> CAMERA_INVALID_ARGUMENT:参数丢失或参数类型不正确。 | 455 456### OH_VideoOutput_GetActiveFrameRate() 457 458``` 459Camera_ErrorCode OH_VideoOutput_GetActiveFrameRate(Camera_VideoOutput* videoOutput,Camera_FrameRateRange* frameRateRange) 460``` 461 462**描述** 463 464获取当前视频输出帧率。 465 466**起始版本:** 12 467 468 469**参数:** 470 471| 参数项 | 描述 | 472| -- | -- | 473| [Camera_VideoOutput](capi-oh-camera-camera-videooutput.md)* videoOutput | 传递当前视频输出帧率的录像输出实例。 | 474| [Camera_FrameRateRange](capi-oh-camera-camera-frameraterange.md)* frameRateRange | 如果方法调用成功,将记录当前的视频输出帧率。 | 475 476**返回:** 477 478| 类型 | 说明 | 479| -- | -- | 480| [Camera_ErrorCode](capi-camera-h.md#camera_errorcode) | CAMERA_OK:方法调用成功。<br> CAMERA_INVALID_ARGUMENT:参数丢失或参数类型不正确。<br> CAMERA_SERVICE_FATAL_ERROR:相机服务出现致命错误。 | 481 482 483