1 /* 2 * Copyright (c) 2022-2023 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16 #ifndef OHOS_AVSESSION_INFO_H 17 #define OHOS_AVSESSION_INFO_H 18 19 #include <string> 20 21 #include "avcall_meta_data.h" 22 #include "avcall_state.h" 23 #include "avmeta_data.h" 24 #include "avplayback_state.h" 25 #include "avcast_player_state.h" 26 #include "avmedia_description.h" 27 #include "avqueue_item.h" 28 #include "avsession_descriptor.h" 29 #include "key_event.h" 30 #include "want_params.h" 31 /** 32 * @brief Listening events for the creation and destruction of sessions 33 * and the latest session changes. 34 * @since 9 35 */ 36 namespace OHOS::AVSession { 37 using DeathCallback = std::function<void()>; 38 39 class SessionListener { 40 public: 41 /** 42 * @brief Listen for session creation events. 43 * 44 * @param descriptor Session related description callback. 45 * @since 9 46 */ 47 virtual void OnSessionCreate(const AVSessionDescriptor& descriptor) = 0; 48 49 /** 50 * @brief Listen for session release events. 51 * 52 * @param descriptor Session related description callback. 53 * @since 9 54 */ 55 virtual void OnSessionRelease(const AVSessionDescriptor& descriptor) = 0; 56 57 /** 58 * @brief Listen for changes in the latest session. 59 * 60 * @param descriptor Session related description callback. 61 * @since 9 62 */ 63 virtual void OnTopSessionChange(const AVSessionDescriptor& descriptor) = 0; 64 65 /** 66 * @brief Listen for AudioSession verification. 67 * 68 * @param uid Session related uid. 69 * @since 9 70 */ OnAudioSessionChecked(const int32_t uid)71 virtual void OnAudioSessionChecked(const int32_t uid) {}; 72 73 /** 74 * @brief Listen for the event of device discovery. 75 * 76 * @param { OutputDeviceInfo } castOutputDeviceInfo - Discovered device info. 77 * @since 10 78 */ OnDeviceAvailable(const OutputDeviceInfo & castOutputDeviceInfo)79 virtual void OnDeviceAvailable(const OutputDeviceInfo& castOutputDeviceInfo) {}; 80 81 /** 82 * @brief Listen for the event of device logging. 83 * 84 * @param { DeviceLogEventCode } eventId - Event ID. 85 * @param { int64_t } int64_t - Param. 86 * @since 13 87 */ OnDeviceLogEvent(const DeviceLogEventCode eventId,const int64_t param)88 virtual void OnDeviceLogEvent(const DeviceLogEventCode eventId, const int64_t param) {}; 89 90 /** 91 * @brief Listen for the event of device offline. 92 * 93 * @param { std::string& } deviceId - Offlined device ID. 94 * @since 10 95 */ OnDeviceOffline(const std::string & deviceId)96 virtual void OnDeviceOffline(const std::string& deviceId) {}; 97 98 /** 99 * @brief Deconstruct SessionListener. 100 * @since 9 101 */ 102 virtual ~SessionListener() = default; 103 }; 104 105 class IAVCastControllerProxyListener { 106 public: 107 virtual void OnCastPlaybackStateChange(const AVPlaybackState& state) = 0; 108 109 virtual void OnMediaItemChange(const AVQueueItem& avQueueItem) = 0; 110 111 virtual void OnPlayNext() = 0; 112 113 virtual void OnPlayPrevious() = 0; 114 115 virtual void OnSeekDone(const int32_t seekNumber) = 0; 116 117 virtual void OnVideoSizeChange(const int32_t width, const int32_t height) = 0; 118 119 virtual void OnPlayerError(const int32_t errorCode, const std::string& errorMsg) = 0; 120 121 virtual void OnEndOfStream(const int32_t isLooping) = 0; 122 123 virtual void OnPlayRequest(const AVQueueItem& avQueueItem) = 0; 124 125 virtual void OnKeyRequest(const std::string& assetId, const std::vector<uint8_t>& keyRequestData) = 0; 126 127 virtual void OnValidCommandChange(const std::vector<int32_t> &cmds) = 0; 128 129 /** 130 * @brief Deconstruct SessionListener. 131 * @since 9 132 */ 133 virtual ~IAVCastControllerProxyListener() = default; 134 }; 135 136 class AVSessionCallback { 137 public: 138 /** 139 * @brief playback. 140 * @since 9 141 */ 142 virtual void OnPlay() = 0; 143 144 /** 145 * @brief Pause playback. 146 * @since 9 147 */ 148 virtual void OnPause() = 0; 149 150 /** 151 * @brief Stop playback. 152 * @since 9 153 */ 154 virtual void OnStop() = 0; 155 156 /** 157 * @brief play next. 158 * @since 9 159 */ 160 virtual void OnPlayNext() = 0; 161 162 /** 163 * @brief Play the previous song. 164 * @since 9 165 */ 166 virtual void OnPlayPrevious() = 0; 167 168 /** 169 * @brief Fast forward. 170 * 171 * @param time fastforward skip intervals 172 * @since 11 173 */ 174 virtual void OnFastForward(int64_t time) = 0; 175 176 /** 177 * @brief Fast rewind. 178 * 179 * @param time rewind skip intervals 180 * @since 11 181 */ 182 virtual void OnRewind(int64_t time) = 0; 183 184 /** 185 * @brief Seek to the specified time. 186 * 187 * @param time Seek to the specified time 188 * @since 9 189 */ 190 virtual void OnSeek(int64_t time) = 0; 191 192 /** 193 * @brief Set playback speed. 194 * 195 * @param speed The playback speed to be set 196 * @return Whether the playback speed is set successfully 197 * @since 9 198 */ 199 virtual void OnSetSpeed(double speed) = 0; 200 201 /** 202 * @brief Set cycle mode. 203 * 204 * @param mode Cycle mode to be set {@link LoopMode} 205 * @return Whether the cycle mode is set successfully. 206 * @since 9 207 */ 208 virtual void OnSetLoopMode(int32_t loopMode) = 0; 209 210 /** 211 * @brief Whether to collect the current song. 212 * 213 * @param mediald current song id. 214 * @since 9 215 */ 216 virtual void OnToggleFavorite(const std::string& mediald) = 0; 217 218 /** 219 * @brief Listening for Media key events. 220 * 221 * @param keyEvent event callbacks. 222 * @since 9 223 */ 224 virtual void OnMediaKeyEvent(const MMI::KeyEvent& keyEvent) = 0; 225 226 /** 227 * @brief Monitor and play device change events. 228 * 229 * @param connectionState Event callback of device state. 230 * @param outputDeviceInfo Event callback of device information. 231 * @since 9 232 */ 233 virtual void OnOutputDeviceChange(const int32_t connectionState, const OutputDeviceInfo& outputDeviceInfo) = 0; 234 235 /** 236 * @brief Listen for command events. 237 * 238 * @param commonCommand The name of the command to be sent. 239 * @param commandArgs Command packets to be sent 240 * @since 10 241 */ 242 virtual void OnCommonCommand(const std::string& commonCommand, const AAFwk::WantParams& commandArgs) = 0; 243 244 /** 245 * @brief Listen to the change of item in the playlist to be played. 246 * 247 * @param itemId The serial number of the item to be played. 248 * @since 10 249 */ 250 virtual void OnSkipToQueueItem(int32_t itemId) = 0; 251 252 /** 253 * Register answer command callback. 254 * @since 11 255 */ 256 virtual void OnAVCallAnswer() = 0; 257 258 /** 259 * Register hangUp command callback. 260 * @since 11 261 */ 262 virtual void OnAVCallHangUp() = 0; 263 264 /** 265 * Register toggleCallMute command callback. 266 * @since 11 267 */ 268 virtual void OnAVCallToggleCallMute() = 0; 269 270 /** 271 * @brief Play from assetId. 272 * 273 * @param assetId Id for asset 274 * @since 11 275 */ 276 virtual void OnPlayFromAssetId(int64_t assetId) = 0; 277 278 /** 279 * @brief cast display change. 280 * 281 * @param castDisplayInfo for castDisplay 282 * @since 11 283 */ 284 virtual void OnCastDisplayChange(const CastDisplayInfo& castDisplayInfo) = 0; 285 286 /** 287 * @brief Deconstruct AVSessionCallback. 288 * @since 9 289 */ 290 virtual ~AVSessionCallback() = default; 291 }; 292 293 class AVControllerCallback { 294 public: 295 296 /** 297 * @brief Listen for avcall metadata change events. 298 * 299 * @param avCallMetaData is the changed avcall metadata. 300 * @since 11 301 */ 302 virtual void OnAVCallMetaDataChange(const AVCallMetaData& avCallMetaData) = 0; 303 304 /** 305 * @brief Listening session avcall status change event. 306 * 307 * @param avCallState Session related avcall state. 308 * @since 11 309 */ 310 virtual void OnAVCallStateChange(const AVCallState& avCallState) = 0; 311 /** 312 * @brief Session Destroy. 313 * @since 9 314 */ 315 virtual void OnSessionDestroy() = 0; 316 317 /** 318 * @brief Listening session destruction playback status change event. 319 * 320 * @param state Session related description callback. 321 * @since 9 322 */ 323 virtual void OnPlaybackStateChange(const AVPlaybackState& state) = 0; 324 325 /** 326 * @brief Listen for metadata change events. 327 * 328 * @param data Data is the changed metadata. 329 * @since 9 330 */ 331 virtual void OnMetaDataChange(const AVMetaData& data) = 0; 332 333 /** 334 * @brief Listen to the activation status event of the session. 335 * 336 * @param isActive Whether the session is activated. 337 * @since 9 338 */ 339 virtual void OnActiveStateChange(bool isActive) = 0; 340 341 /** 342 * @brief Listen for valid command change events supported by the session. 343 * 344 * @param cmds Collection callback of valid commands. 345 * @since 9 346 */ 347 virtual void OnValidCommandChange(const std::vector<int32_t>& cmds) = 0; 348 349 /** 350 * @brief Monitor and play device change events. 351 * 352 * @param connectionState Event callback of device state. 353 * @param outputDeviceInfo Device related information callback. 354 * @since 9 355 */ 356 virtual void OnOutputDeviceChange(const int32_t connectionState, const OutputDeviceInfo& outputDeviceInfo) = 0; 357 358 /** 359 * @brief Listen for changes in custom events of the session. 360 * 361 * @param event Changed session event name. 362 * @param args Parameters of parts. 363 * @since 9 364 */ 365 virtual void OnSessionEventChange(const std::string& event, const AAFwk::WantParams& args) = 0; 366 367 /** 368 * @brief Session playlist change callback. 369 * 370 * @param items The changed queue items. 371 * @since 10 372 */ 373 virtual void OnQueueItemsChange(const std::vector<AVQueueItem>& items) = 0; 374 375 /** 376 * @brief Session title change callback. 377 * 378 * @param title The changed title. 379 * @since 10 380 */ 381 virtual void OnQueueTitleChange(const std::string& title) = 0; 382 383 /** 384 * @brief Session custom media packet change callback. 385 * 386 * @param extras The changed custom media packet. 387 * @since 10 388 */ 389 virtual void OnExtrasChange(const AAFwk::WantParams& extras) = 0; 390 391 /** 392 * @brief Deconstruct AVControllerCallback. 393 * @since 9 394 */ 395 virtual ~AVControllerCallback() = default; 396 }; 397 398 class AVCastControllerCallback { 399 public: 400 virtual void OnCastPlaybackStateChange(const AVPlaybackState& state) = 0; 401 402 virtual void OnMediaItemChange(const AVQueueItem& avQueueItem) = 0; 403 404 virtual void OnPlayNext() = 0; 405 406 virtual void OnPlayPrevious() = 0; 407 408 virtual void OnSeekDone(const int32_t seekNumber) = 0; 409 410 virtual void OnVideoSizeChange(const int32_t width, const int32_t height) = 0; 411 412 virtual void OnPlayerError(const int32_t errorCode, const std::string& errorMsg) = 0; 413 414 virtual void OnEndOfStream(const int32_t isLooping) = 0; 415 416 virtual void OnPlayRequest(const AVQueueItem& avQueueItem) = 0; 417 418 virtual void OnKeyRequest(const std::string& assetId, const std::vector<uint8_t>& keyRequestData) = 0; 419 420 virtual void OnCastValidCommandChanged(const std::vector<int32_t> &cmds) = 0; 421 422 /** 423 * @brief Deconstruct AVControllerCallback. 424 * @since 9 425 */ 426 virtual ~AVCastControllerCallback() = default; 427 }; 428 429 class IAVCastSessionStateListener { 430 public: 431 /** 432 * @brief Listen to the change of cast state change. 433 * 434 * @param castState The cast state of device info. 435 * @param deviceInfo The device info. 436 * @since 9 437 */ 438 virtual void OnCastStateChange(int32_t castState, DeviceInfo deviceInfo) = 0; 439 440 /** 441 * @brief Listen to the change of cast event. 442 * 443 * @param errorCode The error code of cast event. 444 * @param errorMsg The error message of cast event. 445 * @since 9 446 */ 447 virtual void OnCastEventRecv(int32_t errorCode, std::string& errorMsg) = 0; 448 449 /** 450 * @brief Deconstruct IAVCastSessionStateListener. 451 * @since 10 452 */ 453 virtual ~IAVCastSessionStateListener() = default; 454 }; 455 456 class IAVRouterListener { 457 public: 458 /** 459 * @brief Listen to the change of cast state change. 460 * 461 * @param castState The cast state of device info. 462 * @param deviceInfo The device info. 463 * @param isNeedRemove is need remove cast device 464 * @since 13 465 */ 466 virtual void OnCastStateChange(int32_t castState, DeviceInfo deviceInfo, bool isNeedRemove) = 0; 467 468 /** 469 * @brief Listen to the change of cast event. 470 * 471 * @param errorCode The error code of cast event. 472 * @param errorMsg The error message of cast event. 473 * @since 13 474 */ 475 virtual void OnCastEventRecv(int32_t errorCode, std::string& errorMsg) = 0; 476 477 /** 478 * @brief Deconstruct IAVRouterListener. 479 * @since 13 480 */ 481 virtual ~IAVRouterListener() = default; 482 }; 483 484 485 struct SessionToken { 486 std::string sessionId; 487 pid_t pid; 488 pid_t uid; 489 }; 490 491 enum SessionDataCategory { 492 SESSION_DATA_CATEGORY_INVALID = -1, 493 SESSION_DATA_META = 0, 494 SESSION_DATA_PLAYBACK_STATE = 1, 495 SESSION_DATA_CONTROL_COMMAND = 2, 496 SESSION_DATA_SET_EVENT = 3, 497 SESSION_DATA_QUEUE_ITEMS = 4, 498 SESSION_DATA_QUEUE_TITLE = 5, 499 SESSION_DATA_COMMON_COMMAND = 6, 500 SESSION_DATA_EXTRAS = 7, 501 SESSION_DATA_CATEGORY_MAX = 8, 502 }; 503 504 enum AVCastCategory { 505 /** 506 * The default cast type "local", media can be routed on the same device, 507 * including internal speakers or audio jacks on the device itself, A2DP devices. 508 * @syscap SystemCapability.Multimedia.AVSession.AVCast 509 * @since 10 510 */ 511 CATEGORY_LOCAL = 0, 512 513 /** 514 * The remote category indicating the media is presenting on a remote device, 515 * the application needs to get an AVCastController to control remote playback. 516 * @syscap SystemCapability.Multimedia.AVSession.AVCast 517 * @since 10 518 */ 519 CATEGORY_REMOTE = 1, 520 }; 521 522 enum ProtocolType { 523 /** 524 * The default cast type "local", media can be routed on the same device, 525 * including internal speakers or audio jacks on the device itself, A2DP devices. 526 * @syscap SystemCapability.Multimedia.AVSession.AVCast 527 * @since 10 528 */ 529 TYPE_LOCAL = 0, 530 531 /** 532 * Cast+ mirror capability 533 * @syscap SystemCapability.Multimedia.AVSession.AVCast 534 * @systemapi 535 * @since 10 536 */ 537 TYPE_CAST_PLUS_MIRROR = 1, 538 539 /** 540 * The Cast+ Stream indicating the media is presenting on a different device 541 * the application need get an AVCastController to control remote playback. 542 * @syscap SystemCapability.Multimedia.AVSession.AVCast 543 * @since 10 544 */ 545 TYPE_CAST_PLUS_STREAM = 2, 546 547 /** 548 * The DLNA type indicates the device supports DLNA protocol, 549 * the application needs to get an AVCastController to control remote playback. 550 * @syscap SystemCapability.Multimedia.AVSession.AVCast 551 * @since 12 552 */ 553 TYPE_DLNA = 4, 554 }; 555 556 /** 557 * Define the device connection state. 558 * @syscap SystemCapability.Multimedia.AVSession.Core 559 * @since 10 560 */ 561 enum ConnectionState { 562 /** 563 * A connection state indicating the device is in the process of connecting. 564 * @syscap SystemCapability.Multimedia.AVSession.Core 565 * @since 10 566 */ 567 STATE_CONNECTING = 0, 568 /** 569 * A connection state indicating the device is connected. 570 * @syscap SystemCapability.Multimedia.AVSession.Core 571 * @since 10 572 */ 573 STATE_CONNECTED = 1, 574 /** 575 * The default connection state indicating the device is disconnected. 576 * @syscap SystemCapability.Multimedia.AVSession.Core 577 * @since 10 578 */ 579 STATE_DISCONNECTED = 6, 580 }; 581 582 enum DeviceType { 583 /** 584 * A device type indicating the route is on internal speakers or audio jacks on the device itself. 585 * @since 10 586 * @syscap SystemCapability.Multimedia.AVSession.Core 587 */ 588 DEVICE_TYPE_LOCAL = 0, 589 /** 590 * A device type indicating the route is on a TV. 591 * @since 10 592 * @syscap SystemCapability.Multimedia.AVSession.AVCast 593 */ 594 DEVICE_TYPE_TV = 2, 595 /** 596 * A device type indicating the route is on a smart speaker. 597 * @since 10 598 * @syscap SystemCapability.Multimedia.AVSession.AVCast 599 */ 600 DEVICE_TYPE_SPEAKER = 3, 601 /** 602 * A device type indicating the route is on a bluetooth device. 603 * @since 10 604 * @syscap SystemCapability.Multimedia.AVSession.Core 605 */ 606 DEVICE_TYPE_BLUETOOTH = 10, 607 }; 608 609 enum CastEngineConnectState { 610 CONNECTING = 0, 611 CONNECTED = 1, 612 PAUSED = 2, 613 PLAYING = 3, 614 DISCONNECTING = 4, 615 DISCONNECTED = 5, 616 STREAM = 6, 617 MIRROR_TO_UI = 7, 618 UI_TO_MIRROR = 8, 619 UICAST = 9, 620 DEVICE_STATE_MAX = 10, 621 }; 622 623 /** 624 * Enumerates ErrorCode types, returns in BusinessError.code. 625 * @enum { number } 626 * @syscap SystemCapability.Multimedia.AVSession.Core 627 * @since 10 628 */ 629 enum AVSessionErrorCode { 630 /** 631 * Session service exception. 632 * @syscap SystemCapability.Multimedia.AVSession.Core 633 * @since 10 634 */ 635 ERR_CODE_SERVICE_EXCEPTION = 6600101, 636 637 /** 638 * The session does not exist 639 * @syscap SystemCapability.Multimedia.AVSession.Core 640 * @since 10 641 */ 642 ERR_CODE_SESSION_NOT_EXIST = 6600102, 643 644 /** 645 * The session controller does not exist. 646 * @syscap SystemCapability.Multimedia.AVSession.Core 647 * @since 10 648 */ 649 ERR_CODE_CONTROLLER_NOT_EXIST = 6600103, 650 651 /** 652 * The remote session connection failed. 653 * @syscap SystemCapability.Multimedia.AVSession.Core 654 * @since 10 655 */ 656 ERR_CODE_REMOTE_CONNECTION_ERR = 6600104, 657 658 /** 659 * Invalid session command. 660 * @syscap SystemCapability.Multimedia.AVSession.Core 661 * @since 10 662 */ 663 ERR_CODE_COMMAND_INVALID = 6600105, 664 665 /** 666 * The session is not activated. 667 * @syscap SystemCapability.Multimedia.AVSession.Core 668 * @since 10 669 */ 670 ERR_CODE_SESSION_INACTIVE = 6600106, 671 672 /** 673 * Too many commands or events. 674 * @syscap SystemCapability.Multimedia.AVSession.Core 675 * @since 10 676 */ 677 ERR_CODE_MESSAGE_OVERLOAD = 6600107, 678 679 /** 680 * Device connecting failed. 681 * @syscap SystemCapability.Multimedia.AVSession.Core 682 * @since 10 683 */ 684 ERR_CODE_DEVICE_CONNECTION_FAILED = 6600108, 685 686 /** 687 * The remote connection is not established. 688 * @syscap SystemCapability.Multimedia.AVSession.Core 689 * @since 10 690 */ 691 ERR_CODE_REMOTE_CONNECTION_NOT_EXIST = 6600109, 692 693 /** 694 * The error code for cast control is unspecified. 695 * @syscap SystemCapability.Multimedia.AVSession.AVCast 696 * @atomicservice 697 * @since 13 698 */ 699 ERR_CODE_CAST_CONTROL_UNSPECIFIED = 6611000, 700 701 /** 702 * An unspecified error occurs in the remote player. 703 * @syscap SystemCapability.Multimedia.AVSession.AVCast 704 * @atomicservice 705 * @since 13 706 */ 707 ERR_CODE_CAST_CONTROL_REMOTE_ERROR = 6611001, 708 709 /** 710 * The playback position falls behind the live window. 711 * @syscap SystemCapability.Multimedia.AVSession.AVCast 712 * @atomicservice 713 * @since 13 714 */ 715 ERR_CODE_CAST_CONTROL_BEHIND_LIVE_WINDOW = 6611002, 716 717 /** 718 * The process of cast control times out. 719 * @syscap SystemCapability.Multimedia.AVSession.AVCast 720 * @atomicservice 721 * @since 13 722 */ 723 ERR_CODE_CAST_CONTROL_TIMEOUT = 6611003, 724 725 /** 726 * The runtime check failed. 727 * @syscap SystemCapability.Multimedia.AVSession.AVCast 728 * @atomicservice 729 * @since 13 730 */ 731 ERR_CODE_CAST_CONTROL_RUNTIME_CHECK_FAILED = 6611004, 732 733 /** 734 * Cross-device data transmission is locked. 735 * @syscap SystemCapability.Multimedia.AVSession.AVCast 736 * @atomicservice 737 * @since 13 738 */ 739 ERR_CODE_CAST_CONTROL_PLAYER_NOT_WORKING = 6611100, 740 741 /** 742 * The specified seek mode is not supported. 743 * @syscap SystemCapability.Multimedia.AVSession.AVCast 744 * @atomicservice 745 * @since 13 746 */ 747 ERR_CODE_CAST_CONTROL_SEEK_MODE_UNSUPPORTED = 6611101, 748 749 /** 750 * The position to seek to is out of the range of the media asset or the specified seek mode is not supported. 751 * @syscap SystemCapability.Multimedia.AVSession.AVCast 752 * @atomicservice 753 * @since 13 754 */ 755 ERR_CODE_CAST_CONTROL_ILLEGAL_SEEK_TARGET = 6611102, 756 757 /** 758 * The specified playback mode is not supported. 759 * @syscap SystemCapability.Multimedia.AVSession.AVCast 760 * @atomicservice 761 * @since 13 762 */ 763 ERR_CODE_CAST_CONTROL_PLAY_MODE_UNSUPPORTED = 6611103, 764 765 /** 766 * The specified playback speed is not supported. 767 * @syscap SystemCapability.Multimedia.AVSession.AVCast 768 * @atomicservice 769 * @since 13 770 */ 771 ERR_CODE_CAST_CONTROL_PLAY_SPEED_UNSUPPORTED = 6611104, 772 773 /** 774 * The action failed because either the media source device or the media sink device has been revoked. 775 * @syscap SystemCapability.Multimedia.AVSession.AVCast 776 * @atomicservice 777 * @since 13 778 */ 779 ERR_CODE_CAST_CONTROL_DEVICE_MISSING = 6611105, 780 781 /** 782 * The parameter is invalid, for example, the url is illegal to play. 783 * @syscap SystemCapability.Multimedia.AVSession.AVCast 784 * @atomicservice 785 * @since 13 786 */ 787 ERR_CODE_CAST_CONTROL_INVALID_PARAM = 6611106, 788 789 /** 790 * Allocation of memory failed. 791 * @syscap SystemCapability.Multimedia.AVSession.AVCast 792 * @atomicservice 793 * @since 13 794 */ 795 ERR_CODE_CAST_CONTROL_NO_MEMORY = 6611107, 796 797 /** 798 * Operation is not allowed. 799 * @syscap SystemCapability.Multimedia.AVSession.AVCast 800 * @atomicservice 801 * @since 13 802 */ 803 ERR_CODE_CAST_CONTROL_OPERATION_NOT_ALLOWED = 6611108, 804 805 /** 806 * An unspecified input/output error occurs. 807 * @syscap SystemCapability.Multimedia.AVSession.AVCast 808 * @atomicservice 809 * @since 13 810 */ 811 ERR_CODE_CAST_CONTROL_IO_UNSPECIFIED = 6612000, 812 813 /** 814 * Network connection failure. 815 * @syscap SystemCapability.Multimedia.AVSession.AVCast 816 * @atomicservice 817 * @since 13 818 */ 819 ERR_CODE_CAST_CONTROL_IO_NETWORK_CONNECTION_FAILED = 6612001, 820 821 /** 822 * Network timeout. 823 * @syscap SystemCapability.Multimedia.AVSession.AVCast 824 * @atomicservice 825 * @since 13 826 */ 827 ERR_CODE_CAST_CONTROL_IO_NETWORK_CONNECTION_TIMEOUT = 6612002, 828 829 /** 830 * Invalid "Content-Type" HTTP header. 831 * @syscap SystemCapability.Multimedia.AVSession.AVCast 832 * @atomicservice 833 * @since 13 834 */ 835 ERR_CODE_CAST_CONTROL_IO_INVALID_HTTP_CONTENT_TYPE = 6612003, 836 837 /** 838 * The HTTP server returns an unexpected HTTP response status code. 839 * @syscap SystemCapability.Multimedia.AVSession.AVCast 840 * @atomicservice 841 * @since 13 842 */ 843 ERR_CODE_CAST_CONTROL_IO_BAD_HTTP_STATUS = 6612004, 844 845 /** 846 * The file does not exist. 847 * @syscap SystemCapability.Multimedia.AVSession.AVCast 848 * @atomicservice 849 * @since 13 850 */ 851 ERR_CODE_CAST_CONTROL_IO_FILE_NOT_FOUND = 6612005, 852 853 /** 854 * No permission is granted to perform the IO operation. 855 * @syscap SystemCapability.Multimedia.AVSession.AVCast 856 * @atomicservice 857 * @since 13 858 */ 859 ERR_CODE_CAST_CONTROL_IO_NO_PERMISSION = 6612006, 860 861 /** 862 * Access to cleartext HTTP traffic is not allowed by the app's network security configuration. 863 * @syscap SystemCapability.Multimedia.AVSession.AVCast 864 * @atomicservice 865 * @since 13 866 */ 867 ERR_CODE_CAST_CONTROL_IO_CLEARTEXT_NOT_PERMITTED = 6612007, 868 869 /** 870 * Reading data out of the data bound. 871 * @syscap SystemCapability.Multimedia.AVSession.AVCast 872 * @atomicservice 873 * @since 13 874 */ 875 ERR_CODE_CAST_CONTROL_IO_READ_POSITION_OUT_OF_RANGE = 6612008, 876 877 /** 878 * The media does not contain any contents that can be played. 879 * @syscap SystemCapability.Multimedia.AVSession.AVCast 880 * @atomicservice 881 * @since 13 882 */ 883 ERR_CODE_CAST_CONTROL_IO_NO_CONTENTS = 6612100, 884 885 /** 886 * The media cannot be read, for example, because of dust or scratches. 887 * @syscap SystemCapability.Multimedia.AVSession.AVCast 888 * @atomicservice 889 * @since 13 890 */ 891 ERR_CODE_CAST_CONTROL_IO_READ_ERROR = 6612101, 892 893 /** 894 * This resource is already in use. 895 * @syscap SystemCapability.Multimedia.AVSession.AVCast 896 * @atomicservice 897 * @since 13 898 */ 899 ERR_CODE_CAST_CONTROL_IO_CONTENT_BUSY = 6612102, 900 901 /** 902 * The content using the validity interval has expired. 903 * @syscap SystemCapability.Multimedia.AVSession.AVCast 904 * @atomicservice 905 * @since 13 906 */ 907 ERR_CODE_CAST_CONTROL_IO_CONTENT_EXPIRED = 6612103, 908 909 /** 910 * Using the requested content to play is not allowed. 911 * @syscap SystemCapability.Multimedia.AVSession.AVCast 912 * @atomicservice 913 * @since 13 914 */ 915 ERR_CODE_CAST_CONTROL_IO_USE_FORBIDDEN = 6612104, 916 917 /** 918 * The use of the allowed content cannot be verified. 919 * @syscap SystemCapability.Multimedia.AVSession.AVCast 920 * @atomicservice 921 * @since 13 922 */ 923 ERR_CODE_CAST_CONTROL_IO_NOT_VERIFIED = 6612105, 924 925 /** 926 * The number of times this content has been used as requested has reached the maximum allowed number of uses. 927 * @syscap SystemCapability.Multimedia.AVSession.AVCast 928 * @atomicservice 929 * @since 13 930 */ 931 ERR_CODE_CAST_CONTROL_IO_EXHAUSTED_ALLOWED_USES = 6612106, 932 933 /** 934 * An error occurs when sending packet from source device to sink device. 935 * @syscap SystemCapability.Multimedia.AVSession.AVCast 936 * @atomicservice 937 * @since 13 938 */ 939 ERR_CODE_CAST_CONTROL_IO_NETWORK_PACKET_SENDING_FAILED = 6612107, 940 941 /** 942 * Unspecified error related to content parsing. 943 * @syscap SystemCapability.Multimedia.AVSession.AVCast 944 * @atomicservice 945 * @since 13 946 */ 947 ERR_CODE_CAST_CONTROL_PARSING_UNSPECIFIED = 6613000, 948 949 /** 950 * Parsing error associated with media container format bit streams. 951 * @syscap SystemCapability.Multimedia.AVSession.AVCast 952 * @atomicservice 953 * @since 13 954 */ 955 ERR_CODE_CAST_CONTROL_PARSING_CONTAINER_MALFORMED = 6613001, 956 957 /** 958 * Parsing error associated with the media manifest. 959 * @syscap SystemCapability.Multimedia.AVSession.AVCast 960 * @atomicservice 961 * @since 13 962 */ 963 ERR_CODE_CAST_CONTROL_PARSING_MANIFEST_MALFORMED = 6613002, 964 965 /** 966 * An error occurs when attempting to extract a file with an unsupported media container format 967 * or an unsupported media container feature. 968 * @syscap SystemCapability.Multimedia.AVSession.AVCast 969 * @atomicservice 970 * @since 13 971 */ 972 ERR_CODE_CAST_CONTROL_PARSING_CONTAINER_UNSUPPORTED = 6613003, 973 974 /** 975 * Unsupported feature in the media manifest. 976 * @syscap SystemCapability.Multimedia.AVSession.AVCast 977 * @atomicservice 978 * @since 13 979 */ 980 ERR_CODE_CAST_CONTROL_PARSING_MANIFEST_UNSUPPORTED = 6613004, 981 982 /** 983 * Unspecified decoding error. 984 * @syscap SystemCapability.Multimedia.AVSession.AVCast 985 * @atomicservice 986 * @since 13 987 */ 988 ERR_CODE_CAST_CONTROL_DECODING_UNSPECIFIED = 6614000, 989 990 /** 991 * Decoder initialization failed. 992 * @syscap SystemCapability.Multimedia.AVSession.AVCast 993 * @atomicservice 994 * @since 13 995 */ 996 ERR_CODE_CAST_CONTROL_DECODING_INIT_FAILED = 6614001, 997 998 /** 999 * Decoder query failed. 1000 * @syscap SystemCapability.Multimedia.AVSession.AVCast 1001 * @atomicservice 1002 * @since 13 1003 */ 1004 ERR_CODE_CAST_CONTROL_DECODING_QUERY_FAILED = 6614002, 1005 1006 /** 1007 * Decoding the media samples failed. 1008 * @syscap SystemCapability.Multimedia.AVSession.AVCast 1009 * @atomicservice 1010 * @since 13 1011 */ 1012 ERR_CODE_CAST_CONTROL_DECODING_FAILED = 6614003, 1013 1014 /** 1015 * The format of the content to decode exceeds the capabilities of the device. 1016 * @syscap SystemCapability.Multimedia.AVSession.AVCast 1017 * @atomicservice 1018 * @since 13 1019 */ 1020 ERR_CODE_CAST_CONTROL_DECODING_FORMAT_EXCEEDS_CAPABILITIES = 6614004, 1021 1022 /** 1023 * The format of the content to decode is not supported. 1024 * @syscap SystemCapability.Multimedia.AVSession.AVCast 1025 * @atomicservice 1026 * @since 13 1027 */ 1028 ERR_CODE_CAST_CONTROL_DECODING_FORMAT_UNSUPPORTED = 6614005, 1029 1030 /** 1031 * Unspecified errors related to the audio renderer. 1032 * @syscap SystemCapability.Multimedia.AVSession.AVCast 1033 * @atomicservice 1034 * @since 13 1035 */ 1036 ERR_CODE_CAST_CONTROL_AUDIO_RENDERER_UNSPECIFIED = 6615000, 1037 1038 /** 1039 * Initializing the audio renderer failed. 1040 * @syscap SystemCapability.Multimedia.AVSession.AVCast 1041 * @atomicservice 1042 * @since 13 1043 */ 1044 ERR_CODE_CAST_CONTROL_AUDIO_RENDERER_INIT_FAILED = 6615001, 1045 1046 /** 1047 * The audio renderer fails to write data. 1048 * @syscap SystemCapability.Multimedia.AVSession.AVCast 1049 * @atomicservice 1050 * @since 13 1051 */ 1052 ERR_CODE_CAST_CONTROL_AUDIO_RENDERER_WRITE_FAILED = 6615002, 1053 1054 /** 1055 * Unspecified error related to DRM. 1056 * @syscap SystemCapability.Multimedia.AVSession.AVCast 1057 * @atomicservice 1058 * @since 13 1059 */ 1060 ERR_CODE_CAST_CONTROL_DRM_UNSPECIFIED = 6616000, 1061 1062 /** 1063 * The chosen DRM protection scheme is not supported by the device. 1064 * @syscap SystemCapability.Multimedia.AVSession.AVCast 1065 * @atomicservice 1066 * @since 13 1067 */ 1068 ERR_CODE_CAST_CONTROL_DRM_SCHEME_UNSUPPORTED = 6616001, 1069 1070 /** 1071 * Device provisioning failed. 1072 * @syscap SystemCapability.Multimedia.AVSession.AVCast 1073 * @atomicservice 1074 * @since 13 1075 */ 1076 ERR_CODE_CAST_CONTROL_DRM_PROVISIONING_FAILED = 6616002, 1077 1078 /** 1079 * The DRM-protected content to play is incompatible. 1080 * @syscap SystemCapability.Multimedia.AVSession.AVCast 1081 * @atomicservice 1082 * @since 13 1083 */ 1084 ERR_CODE_CAST_CONTROL_DRM_CONTENT_ERROR = 6616003, 1085 1086 /** 1087 * Failed to obtain a license. 1088 * @syscap SystemCapability.Multimedia.AVSession.AVCast 1089 * @atomicservice 1090 * @since 13 1091 */ 1092 ERR_CODE_CAST_CONTROL_DRM_LICENSE_ACQUISITION_FAILED = 6616004, 1093 1094 /** 1095 * The operation is disallowed by the license policy. 1096 * @syscap SystemCapability.Multimedia.AVSession.AVCast 1097 * @atomicservice 1098 * @since 13 1099 */ 1100 ERR_CODE_CAST_CONTROL_DRM_DISALLOWED_OPERATION = 6616005, 1101 1102 /** 1103 * An error occurs in the DRM system. 1104 * @syscap SystemCapability.Multimedia.AVSession.AVCast 1105 * @atomicservice 1106 * @since 13 1107 */ 1108 ERR_CODE_CAST_CONTROL_DRM_SYSTEM_ERROR = 6616006, 1109 1110 /** 1111 * The device has revoked DRM privileges. 1112 * @syscap SystemCapability.Multimedia.AVSession.AVCast 1113 * @atomicservice 1114 * @since 13 1115 */ 1116 ERR_CODE_CAST_CONTROL_DRM_DEVICE_REVOKED = 6616007, 1117 1118 /** 1119 * The DRM license being loaded into the open DRM session has expired. 1120 * @syscap SystemCapability.Multimedia.AVSession.AVCast 1121 * @atomicservice 1122 * @since 13 1123 */ 1124 ERR_CODE_CAST_CONTROL_DRM_LICENSE_EXPIRED = 6616008, 1125 1126 /** 1127 * An error occurs when the DRM processes the key response. 1128 * @syscap SystemCapability.Multimedia.AVSession.AVCast 1129 * @atomicservice 1130 * @since 13 1131 */ 1132 ERR_CODE_CAST_CONTROL_DRM_PROVIDE_KEY_RESPONSE_ERROR = 6616100, 1133 }; 1134 } // namespace OHOS::AVSession 1135 #endif // OHOS_AVSESSION_INFO_H 1136