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 castHandle The combination of providerId and castId. 435 * @since 9 436 */ 437 virtual void OnCastStateChange(int32_t castState, DeviceInfo deviceInfo) = 0; 438 439 /** 440 * @brief Listen to the change of cast event. 441 * 442 * @param castHandle The combination of providerId and castId. 443 * @since 9 444 */ 445 virtual void OnCastEventRecv(int32_t errorCode, std::string& errorMsg) = 0; 446 447 /** 448 * @brief Deconstruct IAVCastSessionStateListener. 449 * @since 10 450 */ 451 virtual ~IAVCastSessionStateListener() = default; 452 }; 453 454 455 struct SessionToken { 456 std::string sessionId; 457 pid_t pid; 458 pid_t uid; 459 }; 460 461 enum SessionDataCategory { 462 SESSION_DATA_CATEGORY_INVALID = -1, 463 SESSION_DATA_META = 0, 464 SESSION_DATA_PLAYBACK_STATE = 1, 465 SESSION_DATA_CONTROL_COMMAND = 2, 466 SESSION_DATA_SET_EVENT = 3, 467 SESSION_DATA_QUEUE_ITEMS = 4, 468 SESSION_DATA_QUEUE_TITLE = 5, 469 SESSION_DATA_COMMON_COMMAND = 6, 470 SESSION_DATA_EXTRAS = 7, 471 SESSION_DATA_CATEGORY_MAX = 8, 472 }; 473 474 enum AVCastCategory { 475 /** 476 * The default cast type "local", media can be routed on the same device, 477 * including internal speakers or audio jacks on the device itself, A2DP devices. 478 * @syscap SystemCapability.Multimedia.AVSession.AVCast 479 * @since 10 480 */ 481 CATEGORY_LOCAL = 0, 482 483 /** 484 * The remote category indicating the media is presenting on a remote device, 485 * the application needs to get an AVCastController to control remote playback. 486 * @syscap SystemCapability.Multimedia.AVSession.AVCast 487 * @since 10 488 */ 489 CATEGORY_REMOTE = 1, 490 }; 491 492 enum ProtocolType { 493 /** 494 * The default cast type "local", media can be routed on the same device, 495 * including internal speakers or audio jacks on the device itself, A2DP devices. 496 * @syscap SystemCapability.Multimedia.AVSession.AVCast 497 * @since 10 498 */ 499 TYPE_LOCAL = 0, 500 501 /** 502 * Cast+ mirror capability 503 * @syscap SystemCapability.Multimedia.AVSession.AVCast 504 * @systemapi 505 * @since 10 506 */ 507 TYPE_CAST_PLUS_MIRROR = 1, 508 509 /** 510 * The Cast+ Stream indicating the media is presenting on a different device 511 * the application need get an AVCastController to control remote playback. 512 * @syscap SystemCapability.Multimedia.AVSession.AVCast 513 * @since 10 514 */ 515 TYPE_CAST_PLUS_STREAM = 2, 516 517 /** 518 * The DLNA type indicates the device supports DLNA protocol, 519 * the application needs to get an AVCastController to control remote playback. 520 * @syscap SystemCapability.Multimedia.AVSession.AVCast 521 * @since 12 522 */ 523 TYPE_DLNA = 4, 524 }; 525 526 /** 527 * Define the device connection state. 528 * @syscap SystemCapability.Multimedia.AVSession.Core 529 * @since 10 530 */ 531 enum ConnectionState { 532 /** 533 * A connection state indicating the device is in the process of connecting. 534 * @syscap SystemCapability.Multimedia.AVSession.Core 535 * @since 10 536 */ 537 STATE_CONNECTING = 0, 538 /** 539 * A connection state indicating the device is connected. 540 * @syscap SystemCapability.Multimedia.AVSession.Core 541 * @since 10 542 */ 543 STATE_CONNECTED = 1, 544 /** 545 * The default connection state indicating the device is disconnected. 546 * @syscap SystemCapability.Multimedia.AVSession.Core 547 * @since 10 548 */ 549 STATE_DISCONNECTED = 6, 550 }; 551 552 enum DeviceType { 553 /** 554 * A device type indicating the route is on internal speakers or audio jacks on the device itself. 555 * @since 10 556 * @syscap SystemCapability.Multimedia.AVSession.Core 557 */ 558 DEVICE_TYPE_LOCAL = 0, 559 /** 560 * A device type indicating the route is on a TV. 561 * @since 10 562 * @syscap SystemCapability.Multimedia.AVSession.AVCast 563 */ 564 DEVICE_TYPE_TV = 2, 565 /** 566 * A device type indicating the route is on a smart speaker. 567 * @since 10 568 * @syscap SystemCapability.Multimedia.AVSession.AVCast 569 */ 570 DEVICE_TYPE_SPEAKER = 3, 571 /** 572 * A device type indicating the route is on a bluetooth device. 573 * @since 10 574 * @syscap SystemCapability.Multimedia.AVSession.Core 575 */ 576 DEVICE_TYPE_BLUETOOTH = 10, 577 }; 578 579 enum CastEngineConnectState { 580 CONNECTING = 0, 581 CONNECTED = 1, 582 PAUSED = 2, 583 PLAYING = 3, 584 DISCONNECTING = 4, 585 DISCONNECTED = 5, 586 STREAM = 6, 587 MIRROR_TO_UI = 7, 588 UI_TO_MIRROR = 8, 589 UICAST = 9, 590 DEVICE_STATE_MAX = 10, 591 }; 592 593 /** 594 * Enumerates ErrorCode types, returns in BusinessError.code. 595 * @enum { number } 596 * @syscap SystemCapability.Multimedia.AVSession.Core 597 * @since 10 598 */ 599 enum AVSessionErrorCode { 600 /** 601 * Session service exception. 602 * @syscap SystemCapability.Multimedia.AVSession.Core 603 * @since 10 604 */ 605 ERR_CODE_SERVICE_EXCEPTION = 6600101, 606 607 /** 608 * The session does not exist 609 * @syscap SystemCapability.Multimedia.AVSession.Core 610 * @since 10 611 */ 612 ERR_CODE_SESSION_NOT_EXIST = 6600102, 613 614 /** 615 * The session controller does not exist. 616 * @syscap SystemCapability.Multimedia.AVSession.Core 617 * @since 10 618 */ 619 ERR_CODE_CONTROLLER_NOT_EXIST = 6600103, 620 621 /** 622 * The remote session connection failed. 623 * @syscap SystemCapability.Multimedia.AVSession.Core 624 * @since 10 625 */ 626 ERR_CODE_REMOTE_CONNECTION_ERR = 6600104, 627 628 /** 629 * Invalid session command. 630 * @syscap SystemCapability.Multimedia.AVSession.Core 631 * @since 10 632 */ 633 ERR_CODE_COMMAND_INVALID = 6600105, 634 635 /** 636 * The session is not activated. 637 * @syscap SystemCapability.Multimedia.AVSession.Core 638 * @since 10 639 */ 640 ERR_CODE_SESSION_INACTIVE = 6600106, 641 642 /** 643 * Too many commands or events. 644 * @syscap SystemCapability.Multimedia.AVSession.Core 645 * @since 10 646 */ 647 ERR_CODE_MESSAGE_OVERLOAD = 6600107, 648 649 /** 650 * Device connecting failed. 651 * @syscap SystemCapability.Multimedia.AVSession.Core 652 * @since 10 653 */ 654 ERR_CODE_DEVICE_CONNECTION_FAILED = 6600108, 655 656 /** 657 * The remote connection is not established. 658 * @syscap SystemCapability.Multimedia.AVSession.Core 659 * @since 10 660 */ 661 ERR_CODE_REMOTE_CONNECTION_NOT_EXIST = 6600109, 662 663 /** 664 * The error code for cast control is unspecified. 665 * @syscap SystemCapability.Multimedia.AVSession.AVCast 666 * @atomicservice 667 * @since 13 668 */ 669 ERR_CODE_CAST_CONTROL_UNSPECIFIED = 6611000, 670 671 /** 672 * An unspecified error occurs in the remote player. 673 * @syscap SystemCapability.Multimedia.AVSession.AVCast 674 * @atomicservice 675 * @since 13 676 */ 677 ERR_CODE_CAST_CONTROL_REMOTE_ERROR = 6611001, 678 679 /** 680 * The playback position falls behind the live window. 681 * @syscap SystemCapability.Multimedia.AVSession.AVCast 682 * @atomicservice 683 * @since 13 684 */ 685 ERR_CODE_CAST_CONTROL_BEHIND_LIVE_WINDOW = 6611002, 686 687 /** 688 * The process of cast control times out. 689 * @syscap SystemCapability.Multimedia.AVSession.AVCast 690 * @atomicservice 691 * @since 13 692 */ 693 ERR_CODE_CAST_CONTROL_TIMEOUT = 6611003, 694 695 /** 696 * The runtime check failed. 697 * @syscap SystemCapability.Multimedia.AVSession.AVCast 698 * @atomicservice 699 * @since 13 700 */ 701 ERR_CODE_CAST_CONTROL_RUNTIME_CHECK_FAILED = 6611004, 702 703 /** 704 * Cross-device data transmission is locked. 705 * @syscap SystemCapability.Multimedia.AVSession.AVCast 706 * @atomicservice 707 * @since 13 708 */ 709 ERR_CODE_CAST_CONTROL_PLAYER_NOT_WORKING = 6611100, 710 711 /** 712 * The specified seek mode is not supported. 713 * @syscap SystemCapability.Multimedia.AVSession.AVCast 714 * @atomicservice 715 * @since 13 716 */ 717 ERR_CODE_CAST_CONTROL_SEEK_MODE_UNSUPPORTED = 6611101, 718 719 /** 720 * The position to seek to is out of the range of the media asset or the specified seek mode is not supported. 721 * @syscap SystemCapability.Multimedia.AVSession.AVCast 722 * @atomicservice 723 * @since 13 724 */ 725 ERR_CODE_CAST_CONTROL_ILLEGAL_SEEK_TARGET = 6611102, 726 727 /** 728 * The specified playback mode is not supported. 729 * @syscap SystemCapability.Multimedia.AVSession.AVCast 730 * @atomicservice 731 * @since 13 732 */ 733 ERR_CODE_CAST_CONTROL_PLAY_MODE_UNSUPPORTED = 6611103, 734 735 /** 736 * The specified playback speed is not supported. 737 * @syscap SystemCapability.Multimedia.AVSession.AVCast 738 * @atomicservice 739 * @since 13 740 */ 741 ERR_CODE_CAST_CONTROL_PLAY_SPEED_UNSUPPORTED = 6611104, 742 743 /** 744 * The action failed because either the media source device or the media sink device has been revoked. 745 * @syscap SystemCapability.Multimedia.AVSession.AVCast 746 * @atomicservice 747 * @since 13 748 */ 749 ERR_CODE_CAST_CONTROL_DEVICE_MISSING = 6611105, 750 751 /** 752 * The parameter is invalid, for example, the url is illegal to play. 753 * @syscap SystemCapability.Multimedia.AVSession.AVCast 754 * @atomicservice 755 * @since 13 756 */ 757 ERR_CODE_CAST_CONTROL_INVALID_PARAM = 6611106, 758 759 /** 760 * Allocation of memory failed. 761 * @syscap SystemCapability.Multimedia.AVSession.AVCast 762 * @atomicservice 763 * @since 13 764 */ 765 ERR_CODE_CAST_CONTROL_NO_MEMORY = 6611107, 766 767 /** 768 * Operation is not allowed. 769 * @syscap SystemCapability.Multimedia.AVSession.AVCast 770 * @atomicservice 771 * @since 13 772 */ 773 ERR_CODE_CAST_CONTROL_OPERATION_NOT_ALLOWED = 6611108, 774 775 /** 776 * An unspecified input/output error occurs. 777 * @syscap SystemCapability.Multimedia.AVSession.AVCast 778 * @atomicservice 779 * @since 13 780 */ 781 ERR_CODE_CAST_CONTROL_IO_UNSPECIFIED = 6612000, 782 783 /** 784 * Network connection failure. 785 * @syscap SystemCapability.Multimedia.AVSession.AVCast 786 * @atomicservice 787 * @since 13 788 */ 789 ERR_CODE_CAST_CONTROL_IO_NETWORK_CONNECTION_FAILED = 6612001, 790 791 /** 792 * Network timeout. 793 * @syscap SystemCapability.Multimedia.AVSession.AVCast 794 * @atomicservice 795 * @since 13 796 */ 797 ERR_CODE_CAST_CONTROL_IO_NETWORK_CONNECTION_TIMEOUT = 6612002, 798 799 /** 800 * Invalid "Content-Type" HTTP header. 801 * @syscap SystemCapability.Multimedia.AVSession.AVCast 802 * @atomicservice 803 * @since 13 804 */ 805 ERR_CODE_CAST_CONTROL_IO_INVALID_HTTP_CONTENT_TYPE = 6612003, 806 807 /** 808 * The HTTP server returns an unexpected HTTP response status code. 809 * @syscap SystemCapability.Multimedia.AVSession.AVCast 810 * @atomicservice 811 * @since 13 812 */ 813 ERR_CODE_CAST_CONTROL_IO_BAD_HTTP_STATUS = 6612004, 814 815 /** 816 * The file does not exist. 817 * @syscap SystemCapability.Multimedia.AVSession.AVCast 818 * @atomicservice 819 * @since 13 820 */ 821 ERR_CODE_CAST_CONTROL_IO_FILE_NOT_FOUND = 6612005, 822 823 /** 824 * No permission is granted to perform the IO operation. 825 * @syscap SystemCapability.Multimedia.AVSession.AVCast 826 * @atomicservice 827 * @since 13 828 */ 829 ERR_CODE_CAST_CONTROL_IO_NO_PERMISSION = 6612006, 830 831 /** 832 * Access to cleartext HTTP traffic is not allowed by the app's network security configuration. 833 * @syscap SystemCapability.Multimedia.AVSession.AVCast 834 * @atomicservice 835 * @since 13 836 */ 837 ERR_CODE_CAST_CONTROL_IO_CLEARTEXT_NOT_PERMITTED = 6612007, 838 839 /** 840 * Reading data out of the data bound. 841 * @syscap SystemCapability.Multimedia.AVSession.AVCast 842 * @atomicservice 843 * @since 13 844 */ 845 ERR_CODE_CAST_CONTROL_IO_READ_POSITION_OUT_OF_RANGE = 6612008, 846 847 /** 848 * The media does not contain any contents that can be played. 849 * @syscap SystemCapability.Multimedia.AVSession.AVCast 850 * @atomicservice 851 * @since 13 852 */ 853 ERR_CODE_CAST_CONTROL_IO_NO_CONTENTS = 6612100, 854 855 /** 856 * The media cannot be read, for example, because of dust or scratches. 857 * @syscap SystemCapability.Multimedia.AVSession.AVCast 858 * @atomicservice 859 * @since 13 860 */ 861 ERR_CODE_CAST_CONTROL_IO_READ_ERROR = 6612101, 862 863 /** 864 * This resource is already in use. 865 * @syscap SystemCapability.Multimedia.AVSession.AVCast 866 * @atomicservice 867 * @since 13 868 */ 869 ERR_CODE_CAST_CONTROL_IO_CONTENT_BUSY = 6612102, 870 871 /** 872 * The content using the validity interval has expired. 873 * @syscap SystemCapability.Multimedia.AVSession.AVCast 874 * @atomicservice 875 * @since 13 876 */ 877 ERR_CODE_CAST_CONTROL_IO_CONTENT_EXPIRED = 6612103, 878 879 /** 880 * Using the requested content to play is not allowed. 881 * @syscap SystemCapability.Multimedia.AVSession.AVCast 882 * @atomicservice 883 * @since 13 884 */ 885 ERR_CODE_CAST_CONTROL_IO_USE_FORBIDDEN = 6612104, 886 887 /** 888 * The use of the allowed content cannot be verified. 889 * @syscap SystemCapability.Multimedia.AVSession.AVCast 890 * @atomicservice 891 * @since 13 892 */ 893 ERR_CODE_CAST_CONTROL_IO_NOT_VERIFIED = 6612105, 894 895 /** 896 * The number of times this content has been used as requested has reached the maximum allowed number of uses. 897 * @syscap SystemCapability.Multimedia.AVSession.AVCast 898 * @atomicservice 899 * @since 13 900 */ 901 ERR_CODE_CAST_CONTROL_IO_EXHAUSTED_ALLOWED_USES = 6612106, 902 903 /** 904 * An error occurs when sending packet from source device to sink device. 905 * @syscap SystemCapability.Multimedia.AVSession.AVCast 906 * @atomicservice 907 * @since 13 908 */ 909 ERR_CODE_CAST_CONTROL_IO_NETWORK_PACKET_SENDING_FAILED = 6612107, 910 911 /** 912 * Unspecified error related to content parsing. 913 * @syscap SystemCapability.Multimedia.AVSession.AVCast 914 * @atomicservice 915 * @since 13 916 */ 917 ERR_CODE_CAST_CONTROL_PARSING_UNSPECIFIED = 6613000, 918 919 /** 920 * Parsing error associated with media container format bit streams. 921 * @syscap SystemCapability.Multimedia.AVSession.AVCast 922 * @atomicservice 923 * @since 13 924 */ 925 ERR_CODE_CAST_CONTROL_PARSING_CONTAINER_MALFORMED = 6613001, 926 927 /** 928 * Parsing error associated with the media manifest. 929 * @syscap SystemCapability.Multimedia.AVSession.AVCast 930 * @atomicservice 931 * @since 13 932 */ 933 ERR_CODE_CAST_CONTROL_PARSING_MANIFEST_MALFORMED = 6613002, 934 935 /** 936 * An error occurs when attempting to extract a file with an unsupported media container format 937 * or an unsupported media container feature. 938 * @syscap SystemCapability.Multimedia.AVSession.AVCast 939 * @atomicservice 940 * @since 13 941 */ 942 ERR_CODE_CAST_CONTROL_PARSING_CONTAINER_UNSUPPORTED = 6613003, 943 944 /** 945 * Unsupported feature in the media manifest. 946 * @syscap SystemCapability.Multimedia.AVSession.AVCast 947 * @atomicservice 948 * @since 13 949 */ 950 ERR_CODE_CAST_CONTROL_PARSING_MANIFEST_UNSUPPORTED = 6613004, 951 952 /** 953 * Unspecified decoding error. 954 * @syscap SystemCapability.Multimedia.AVSession.AVCast 955 * @atomicservice 956 * @since 13 957 */ 958 ERR_CODE_CAST_CONTROL_DECODING_UNSPECIFIED = 6614000, 959 960 /** 961 * Decoder initialization failed. 962 * @syscap SystemCapability.Multimedia.AVSession.AVCast 963 * @atomicservice 964 * @since 13 965 */ 966 ERR_CODE_CAST_CONTROL_DECODING_INIT_FAILED = 6614001, 967 968 /** 969 * Decoder query failed. 970 * @syscap SystemCapability.Multimedia.AVSession.AVCast 971 * @atomicservice 972 * @since 13 973 */ 974 ERR_CODE_CAST_CONTROL_DECODING_QUERY_FAILED = 6614002, 975 976 /** 977 * Decoding the media samples failed. 978 * @syscap SystemCapability.Multimedia.AVSession.AVCast 979 * @atomicservice 980 * @since 13 981 */ 982 ERR_CODE_CAST_CONTROL_DECODING_FAILED = 6614003, 983 984 /** 985 * The format of the content to decode exceeds the capabilities of the device. 986 * @syscap SystemCapability.Multimedia.AVSession.AVCast 987 * @atomicservice 988 * @since 13 989 */ 990 ERR_CODE_CAST_CONTROL_DECODING_FORMAT_EXCEEDS_CAPABILITIES = 6614004, 991 992 /** 993 * The format of the content to decode is not supported. 994 * @syscap SystemCapability.Multimedia.AVSession.AVCast 995 * @atomicservice 996 * @since 13 997 */ 998 ERR_CODE_CAST_CONTROL_DECODING_FORMAT_UNSUPPORTED = 6614005, 999 1000 /** 1001 * Unspecified errors related to the audio renderer. 1002 * @syscap SystemCapability.Multimedia.AVSession.AVCast 1003 * @atomicservice 1004 * @since 13 1005 */ 1006 ERR_CODE_CAST_CONTROL_AUDIO_RENDERER_UNSPECIFIED = 6615000, 1007 1008 /** 1009 * Initializing the audio renderer failed. 1010 * @syscap SystemCapability.Multimedia.AVSession.AVCast 1011 * @atomicservice 1012 * @since 13 1013 */ 1014 ERR_CODE_CAST_CONTROL_AUDIO_RENDERER_INIT_FAILED = 6615001, 1015 1016 /** 1017 * The audio renderer fails to write data. 1018 * @syscap SystemCapability.Multimedia.AVSession.AVCast 1019 * @atomicservice 1020 * @since 13 1021 */ 1022 ERR_CODE_CAST_CONTROL_AUDIO_RENDERER_WRITE_FAILED = 6615002, 1023 1024 /** 1025 * Unspecified error related to DRM. 1026 * @syscap SystemCapability.Multimedia.AVSession.AVCast 1027 * @atomicservice 1028 * @since 13 1029 */ 1030 ERR_CODE_CAST_CONTROL_DRM_UNSPECIFIED = 6616000, 1031 1032 /** 1033 * The chosen DRM protection scheme is not supported by the device. 1034 * @syscap SystemCapability.Multimedia.AVSession.AVCast 1035 * @atomicservice 1036 * @since 13 1037 */ 1038 ERR_CODE_CAST_CONTROL_DRM_SCHEME_UNSUPPORTED = 6616001, 1039 1040 /** 1041 * Device provisioning failed. 1042 * @syscap SystemCapability.Multimedia.AVSession.AVCast 1043 * @atomicservice 1044 * @since 13 1045 */ 1046 ERR_CODE_CAST_CONTROL_DRM_PROVISIONING_FAILED = 6616002, 1047 1048 /** 1049 * The DRM-protected content to play is incompatible. 1050 * @syscap SystemCapability.Multimedia.AVSession.AVCast 1051 * @atomicservice 1052 * @since 13 1053 */ 1054 ERR_CODE_CAST_CONTROL_DRM_CONTENT_ERROR = 6616003, 1055 1056 /** 1057 * Failed to obtain a license. 1058 * @syscap SystemCapability.Multimedia.AVSession.AVCast 1059 * @atomicservice 1060 * @since 13 1061 */ 1062 ERR_CODE_CAST_CONTROL_DRM_LICENSE_ACQUISITION_FAILED = 6616004, 1063 1064 /** 1065 * The operation is disallowed by the license policy. 1066 * @syscap SystemCapability.Multimedia.AVSession.AVCast 1067 * @atomicservice 1068 * @since 13 1069 */ 1070 ERR_CODE_CAST_CONTROL_DRM_DISALLOWED_OPERATION = 6616005, 1071 1072 /** 1073 * An error occurs in the DRM system. 1074 * @syscap SystemCapability.Multimedia.AVSession.AVCast 1075 * @atomicservice 1076 * @since 13 1077 */ 1078 ERR_CODE_CAST_CONTROL_DRM_SYSTEM_ERROR = 6616006, 1079 1080 /** 1081 * The device has revoked DRM privileges. 1082 * @syscap SystemCapability.Multimedia.AVSession.AVCast 1083 * @atomicservice 1084 * @since 13 1085 */ 1086 ERR_CODE_CAST_CONTROL_DRM_DEVICE_REVOKED = 6616007, 1087 1088 /** 1089 * The DRM license being loaded into the open DRM session has expired. 1090 * @syscap SystemCapability.Multimedia.AVSession.AVCast 1091 * @atomicservice 1092 * @since 13 1093 */ 1094 ERR_CODE_CAST_CONTROL_DRM_LICENSE_EXPIRED = 6616008, 1095 1096 /** 1097 * An error occurs when the DRM processes the key response. 1098 * @syscap SystemCapability.Multimedia.AVSession.AVCast 1099 * @atomicservice 1100 * @since 13 1101 */ 1102 ERR_CODE_CAST_CONTROL_DRM_PROVIDE_KEY_RESPONSE_ERROR = 6616100, 1103 }; 1104 } // namespace OHOS::AVSession 1105 #endif // OHOS_AVSESSION_INFO_H 1106