Agora RTC Objective-C API Reference  Refactor
AgoraMediaPlayerTypes.h
Go to the documentation of this file.
1 //
2 // Agora Engine SDK
3 //
4 // Created by Sting Feng in 2020-05.
5 // Copyright (c) 2017 Agora.io. All rights reserved.
6 
7 #pragma once // NOLINT(build/header_guard)
8 
9 #include <cstring>
10 #include <stdint.h>
11 
12 #include "AgoraOptional.h"
13 
18 #define KEY_PLAYER_REAL_TIME_STREAM_ANALYZE_DURATION "analyze_duration"
19 
24 #define KEY_PLAYER_ENABLE_AUDIO "enable_audio"
25 
30 #define KEY_PLAYER_ENABLE_VIDEO "enable_video"
31 
36 #define KEY_PLAYER_ENABLE_SEARCH_METADATA "enable_search_metadata"
37 
42 #define KEY_PLAYER_SEI_FILTER_TYPE "set_sei_filter_type"
43 
44 namespace agora {
45 
46 namespace media {
47 
48 namespace base {
49 static const uint8_t kMaxCharBufferLength = 50;
112 };
187 };
188 
209 };
210 
284 };
285 
302 };
303 
312 
317 
322 
327 
332 
337 
342 
347 
352 
357 
362 
368 
372  int64_t duration;
373 
376  videoFrameRate(0),
377  videoBitRate(0),
378  videoWidth(0),
379  videoHeight(0),
380  videoRotation(0),
381  audioSampleRate(0),
382  audioChannels(0),
384  duration(0) {
385  memset(codecName, 0, sizeof(codecName));
386  memset(language, 0, sizeof(language));
387  }
388 };
389 
393 struct SrcInfo {
398 
402  const char* name;
403 
404 };
405 
418 };
419 
427  int64_t fileSize;
431  int64_t cacheSize;
435  int64_t downloadSize;
436 };
437 
445  int videoFps;
458 };
459 
466  const char* internalPlayerUuid;
470  const char* deviceId;
491 
493  : internalPlayerUuid(NULL),
494  deviceId(NULL),
495  videoHeight(0),
496  videoWidth(0),
497  audioSampleRate(0),
498  audioChannels(0),
499  audioBitsPerSample(0) {}
500 };
501 
506 public:
507 
524  virtual int onReadData(unsigned char *buffer, int bufferSize) = 0;
525 
551  virtual int64_t onSeek(int64_t offset, int whence) = 0;
552 
554 };
555 
560 struct MediaSource {
567  const char* url;
571  const char* uri;
575  int64_t startPos;
583  bool autoPlay;
637 
638  MediaSource() : url(NULL), uri(NULL), startPos(0), autoPlay(true), enableCache(false),
639  enableMultiAudioTrack(false), provider(NULL){
640  }
641 };
642 
643 } // namespace base
644 } // namespace media
645 } // namespace agora
agora::media::base::MediaSource::url
const char * url
Definition: AgoraMediaPlayerTypes.h:567
agora::media::base::PLAYER_REASON_INTERNAL
@ PLAYER_REASON_INTERNAL
Definition: AgoraMediaPlayerTypes.h:128
agora::media::base::PlayerStreamInfo::videoRotation
int videoRotation
Definition: AgoraMediaPlayerTypes.h:351
agora::media::base::PLAYER_REASON_OBJ_NOT_INITIALIZED
@ PLAYER_REASON_OBJ_NOT_INITIALIZED
Definition: AgoraMediaPlayerTypes.h:144
agora::media::base::PLAYER_REASON_NOT_SUPPORTED
@ PLAYER_REASON_NOT_SUPPORTED
Definition: AgoraMediaPlayerTypes.h:176
agora::media::base::PlayerUpdatedInfo::audioSampleRate
int audioSampleRate
Definition: AgoraMediaPlayerTypes.h:482
agora::media::base::MediaSource::isLiveSource
Optional< bool > isLiveSource
Definition: AgoraMediaPlayerTypes.h:629
agora::media::base::PlayerStreamInfo::PlayerStreamInfo
PlayerStreamInfo()
Definition: AgoraMediaPlayerTypes.h:374
agora::media::base::PLAYER_STATE_FAILED
@ PLAYER_STATE_FAILED
Definition: AgoraMediaPlayerTypes.h:111
agora::media::base::PLAYER_STATE_STOPPED
@ PLAYER_STATE_STOPPED
Definition: AgoraMediaPlayerTypes.h:86
agora::media::base::MEDIA_STREAM_TYPE
MEDIA_STREAM_TYPE
The type of the media stream.
Definition: AgoraMediaPlayerTypes.h:192
agora::media::base::PLAYER_STATE_OPEN_COMPLETED
@ PLAYER_STATE_OPEN_COMPLETED
Definition: AgoraMediaPlayerTypes.h:66
agora::media::base::MediaSource::autoPlay
bool autoPlay
Definition: AgoraMediaPlayerTypes.h:583
agora::media::base::PLAYER_STATE_PAUSING_INTERNAL
@ PLAYER_STATE_PAUSING_INTERNAL
Definition: AgoraMediaPlayerTypes.h:89
agora::media::base::PLAYER_REASON_UNKNOWN
@ PLAYER_REASON_UNKNOWN
Definition: AgoraMediaPlayerTypes.h:186
agora::media::base::PlayerUpdatedInfo::videoHeight
int videoHeight
Definition: AgoraMediaPlayerTypes.h:474
agora::media::base::CacheStatistics
Statistics about the media files being cached.
Definition: AgoraMediaPlayerTypes.h:423
agora::media::base::PLAYER_EVENT_BUFFER_LOW
@ PLAYER_EVENT_BUFFER_LOW
Definition: AgoraMediaPlayerTypes.h:234
agora::media::base::MediaSource::uri
const char * uri
Definition: AgoraMediaPlayerTypes.h:571
agora::media::base::PlayerUpdatedInfo
Information related to the media player.
Definition: AgoraMediaPlayerTypes.h:463
agora::media::base::PLAYER_REASON_UNKNOWN_STREAM_TYPE
@ PLAYER_REASON_UNKNOWN_STREAM_TYPE
Definition: AgoraMediaPlayerTypes.h:140
agora::media::base::PLAYER_REASON_INVALID_CONNECTION_STATE
@ PLAYER_REASON_INVALID_CONNECTION_STATE
Definition: AgoraMediaPlayerTypes.h:164
agora::media::base::MEDIA_PLAYER_EVENT
MEDIA_PLAYER_EVENT
Media player events.
Definition: AgoraMediaPlayerTypes.h:214
agora::media::base::PLAYER_EVENT_SEEK_ERROR
@ PLAYER_EVENT_SEEK_ERROR
Definition: AgoraMediaPlayerTypes.h:226
agora::media::base::PLAYER_REASON_IP_EXPIRED
@ PLAYER_REASON_IP_EXPIRED
Definition: AgoraMediaPlayerTypes.h:182
agora::media::base::PLAYER_REASON_VIDEO_RENDER_FAILED
@ PLAYER_REASON_VIDEO_RENDER_FAILED
Definition: AgoraMediaPlayerTypes.h:152
agora::media::base::STREAM_TYPE_UNKNOWN
@ STREAM_TYPE_UNKNOWN
Definition: AgoraMediaPlayerTypes.h:196
agora::media::base::PLAYER_REASON_NO_RESOURCE
@ PLAYER_REASON_NO_RESOURCE
Definition: AgoraMediaPlayerTypes.h:132
agora::media::base::IMediaPlayerCustomDataProvider::~IMediaPlayerCustomDataProvider
virtual ~IMediaPlayerCustomDataProvider()
Definition: AgoraMediaPlayerTypes.h:553
agora::media::base::PLAYER_REASON_TOKEN_EXPIRED
@ PLAYER_REASON_TOKEN_EXPIRED
Definition: AgoraMediaPlayerTypes.h:179
agora::media::base::PLAYER_EVENT_HTTP_REDIRECT
@ PLAYER_EVENT_HTTP_REDIRECT
Definition: AgoraMediaPlayerTypes.h:283
agora::media::base::CacheStatistics::downloadSize
int64_t downloadSize
Definition: AgoraMediaPlayerTypes.h:435
agora::media::base::PLAYER_REASON_INVALID_ARGUMENTS
@ PLAYER_REASON_INVALID_ARGUMENTS
Definition: AgoraMediaPlayerTypes.h:124
agora::media::base::MEDIA_PLAYER_STATE
MEDIA_PLAYER_STATE
The playback state.
Definition: AgoraMediaPlayerTypes.h:53
agora::media::base::PLAYER_STATE_GETTING_INTERNAL
@ PLAYER_STATE_GETTING_INTERNAL
Definition: AgoraMediaPlayerTypes.h:98
agora::media::base::PLAYER_PRELOAD_EVENT_COMPLETE
@ PLAYER_PRELOAD_EVENT_COMPLETE
Definition: AgoraMediaPlayerTypes.h:297
agora
Definition: AgoraAtomicOps.h:21
agora::media::base::PLAYER_REASON_INTERRUPTED
@ PLAYER_REASON_INTERRUPTED
Definition: AgoraMediaPlayerTypes.h:172
agora::media::base::PlayerUpdatedInfo::audioChannels
int audioChannels
Definition: AgoraMediaPlayerTypes.h:486
agora::media::base::PlayerPlaybackStats::audioBitrateInKbps
int audioBitrateInKbps
Definition: AgoraMediaPlayerTypes.h:453
agora::media::base::PLAYER_METADATA_TYPE_SEI
@ PLAYER_METADATA_TYPE_SEI
Definition: AgoraMediaPlayerTypes.h:417
agora::media::base::IMediaPlayerCustomDataProvider
Definition: AgoraMediaPlayerTypes.h:505
agora::media::base::PLAYER_EVENT_SWITCH_BEGIN
@ PLAYER_EVENT_SWITCH_BEGIN
Definition: AgoraMediaPlayerTypes.h:250
agora::media::base::PLAYER_STATE_PLAYBACK_COMPLETED
@ PLAYER_STATE_PLAYBACK_COMPLETED
Definition: AgoraMediaPlayerTypes.h:78
agora::media::base::PlayerUpdatedInfo::deviceId
const char * deviceId
Definition: AgoraMediaPlayerTypes.h:470
agora::media::base::SrcInfo::bitrateInKbps
int bitrateInKbps
Definition: AgoraMediaPlayerTypes.h:397
agora::media::base::CacheStatistics::fileSize
int64_t fileSize
Definition: AgoraMediaPlayerTypes.h:427
agora::media::base::PLAYER_STATE_PAUSED
@ PLAYER_STATE_PAUSED
Definition: AgoraMediaPlayerTypes.h:74
agora::media::base::PLAYER_EVENT_SWITCH_ERROR
@ PLAYER_EVENT_SWITCH_ERROR
Definition: AgoraMediaPlayerTypes.h:258
agora::media::base::PLAYER_REASON_URL_NOT_FOUND
@ PLAYER_REASON_URL_NOT_FOUND
Definition: AgoraMediaPlayerTypes.h:160
agora::media::base::PLAYER_PRELOAD_EVENT_ERROR
@ PLAYER_PRELOAD_EVENT_ERROR
Definition: AgoraMediaPlayerTypes.h:301
agora::media::base::PLAYER_EVENT_AUDIO_TRACK_CHANGED
@ PLAYER_EVENT_AUDIO_TRACK_CHANGED
Definition: AgoraMediaPlayerTypes.h:230
agora::media::base::PlayerStreamInfo
The detailed information of the media stream.
Definition: AgoraMediaPlayerTypes.h:307
agora::media::base::PLAYER_STATE_OPENING
@ PLAYER_STATE_OPENING
Definition: AgoraMediaPlayerTypes.h:62
agora::media::base::PLAYER_PRELOAD_EVENT_BEGIN
@ PLAYER_PRELOAD_EVENT_BEGIN
Definition: AgoraMediaPlayerTypes.h:293
agora::media::base::PLAYER_STATE_PLAYING
@ PLAYER_STATE_PLAYING
Definition: AgoraMediaPlayerTypes.h:70
agora::media::base::PLAYER_EVENT_REACH_CACHE_FILE_MAX_SIZE
@ PLAYER_EVENT_REACH_CACHE_FILE_MAX_SIZE
Definition: AgoraMediaPlayerTypes.h:270
agora::media::base::PLAYER_EVENT_TRY_OPEN_START
@ PLAYER_EVENT_TRY_OPEN_START
Definition: AgoraMediaPlayerTypes.h:273
agora::media::base::MediaSource::provider
IMediaPlayerCustomDataProvider * provider
Definition: AgoraMediaPlayerTypes.h:636
agora::media::base::MediaSource::enableMultiAudioTrack
bool enableMultiAudioTrack
Definition: AgoraMediaPlayerTypes.h:607
agora::media::base::PLAYER_REASON_SRC_BUFFER_UNDERFLOW
@ PLAYER_REASON_SRC_BUFFER_UNDERFLOW
Definition: AgoraMediaPlayerTypes.h:168
agora::media::base::PlayerPlaybackStats::videoFps
int videoFps
Definition: AgoraMediaPlayerTypes.h:445
agora::media::base::PLAYER_REASON_CODEC_NOT_SUPPORTED
@ PLAYER_REASON_CODEC_NOT_SUPPORTED
Definition: AgoraMediaPlayerTypes.h:148
agora::media::base::PLAYER_STATE_IDLE
@ PLAYER_STATE_IDLE
Definition: AgoraMediaPlayerTypes.h:58
agora::media::base::MediaSource
Information related to the media file to be played and the playback scenario configurations.
Definition: AgoraMediaPlayerTypes.h:560
agora::media::base::PlayerPlaybackStats
The information of the media file being played.
Definition: AgoraMediaPlayerTypes.h:441
agora::media::base::PLAYER_STATE_SET_TRACK_INTERNAL
@ PLAYER_STATE_SET_TRACK_INTERNAL
Definition: AgoraMediaPlayerTypes.h:107
agora::media::base::PlayerStreamInfo::videoWidth
int videoWidth
Definition: AgoraMediaPlayerTypes.h:341
agora::media::base::PLAYER_EVENT_FREEZE_STOP
@ PLAYER_EVENT_FREEZE_STOP
Definition: AgoraMediaPlayerTypes.h:246
agora::media::base::PLAYER_STATE_STOPPING_INTERNAL
@ PLAYER_STATE_STOPPING_INTERNAL
Definition: AgoraMediaPlayerTypes.h:92
agora::media::base::PlayerStreamInfo::duration
int64_t duration
Definition: AgoraMediaPlayerTypes.h:372
agora::media::base::CacheStatistics::cacheSize
int64_t cacheSize
Definition: AgoraMediaPlayerTypes.h:431
agora::media::base::STREAM_TYPE_SUBTITLE
@ STREAM_TYPE_SUBTITLE
Definition: AgoraMediaPlayerTypes.h:208
agora::media::base::PLAYER_REASON_INVALID_STATE
@ PLAYER_REASON_INVALID_STATE
Definition: AgoraMediaPlayerTypes.h:156
agora::media::base::MEDIA_PLAYER_METADATA_TYPE
MEDIA_PLAYER_METADATA_TYPE
The type of media metadata.
Definition: AgoraMediaPlayerTypes.h:409
AgoraOptional.h
agora::media::base::PLAYER_EVENT_TRY_OPEN_SUCCEED
@ PLAYER_EVENT_TRY_OPEN_SUCCEED
Definition: AgoraMediaPlayerTypes.h:276
agora::media::base::PLAYER_EVENT_SWITCH_COMPLETE
@ PLAYER_EVENT_SWITCH_COMPLETE
Definition: AgoraMediaPlayerTypes.h:254
agora::media::base::PLAYER_REASON_NONE
@ PLAYER_REASON_NONE
Definition: AgoraMediaPlayerTypes.h:120
agora::media::base::MediaSource::enableCache
bool enableCache
Definition: AgoraMediaPlayerTypes.h:598
agora::media::base::IMediaPlayerCustomDataProvider::onReadData
virtual int onReadData(unsigned char *buffer, int bufferSize)=0
Occurs when the SDK reads the media resource data.
agora::media::base::PlayerPlaybackStats::totalBitrateInKbps
int totalBitrateInKbps
Definition: AgoraMediaPlayerTypes.h:457
agora::media::base::PLAYER_STATE_DO_NOTHING_INTERNAL
@ PLAYER_STATE_DO_NOTHING_INTERNAL
Definition: AgoraMediaPlayerTypes.h:104
agora::media::base::PlayerStreamInfo::codecName
char codecName[kMaxCharBufferLength]
Definition: AgoraMediaPlayerTypes.h:321
agora::media::base::MediaSource::isAgoraSource
Optional< bool > isAgoraSource
Definition: AgoraMediaPlayerTypes.h:619
agora::media::base::IMediaPlayerCustomDataProvider::onSeek
virtual int64_t onSeek(int64_t offset, int whence)=0
Occurs when the SDK seeks the media resource data.
agora::media::base::PlayerUpdatedInfo::internalPlayerUuid
const char * internalPlayerUuid
Definition: AgoraMediaPlayerTypes.h:466
agora::media::base::PLAYER_EVENT_SEEK_COMPLETE
@ PLAYER_EVENT_SEEK_COMPLETE
Definition: AgoraMediaPlayerTypes.h:222
agora::media::base::SrcInfo::name
const char * name
Definition: AgoraMediaPlayerTypes.h:402
agora::media::base::PLAYER_STATE_PLAYBACK_ALL_LOOPS_COMPLETED
@ PLAYER_STATE_PLAYBACK_ALL_LOOPS_COMPLETED
Definition: AgoraMediaPlayerTypes.h:82
agora::media::base::SrcInfo
Information about the video bitrate of the media resource being played.
Definition: AgoraMediaPlayerTypes.h:393
agora::media::base::PLAYER_EVENT_TRY_OPEN_FAILED
@ PLAYER_EVENT_TRY_OPEN_FAILED
Definition: AgoraMediaPlayerTypes.h:279
agora::media::base::PLAYER_METADATA_TYPE_UNKNOWN
@ PLAYER_METADATA_TYPE_UNKNOWN
Definition: AgoraMediaPlayerTypes.h:413
agora::media::base::PLAYER_PRELOAD_EVENT
PLAYER_PRELOAD_EVENT
Events that occur when media resources are preloaded.
Definition: AgoraMediaPlayerTypes.h:289
agora::media::base::PlayerStreamInfo::videoHeight
int videoHeight
Definition: AgoraMediaPlayerTypes.h:346
agora::media::base::PLAYER_STATE_SEEKING_INTERNAL
@ PLAYER_STATE_SEEKING_INTERNAL
Definition: AgoraMediaPlayerTypes.h:95
agora::media::base::PlayerStreamInfo::audioSampleRate
int audioSampleRate
Definition: AgoraMediaPlayerTypes.h:356
agora::media::base::PlayerStreamInfo::videoFrameRate
int videoFrameRate
Definition: AgoraMediaPlayerTypes.h:331
agora::media::base::PLAYER_EVENT_REACH_CACHE_FILE_MAX_COUNT
@ PLAYER_EVENT_REACH_CACHE_FILE_MAX_COUNT
Definition: AgoraMediaPlayerTypes.h:266
agora::media::base::MEDIA_PLAYER_REASON
MEDIA_PLAYER_REASON
Reasons for the changes in the media player status.
Definition: AgoraMediaPlayerTypes.h:116
agora::media::base::PLAYER_EVENT_SEEK_BEGIN
@ PLAYER_EVENT_SEEK_BEGIN
Definition: AgoraMediaPlayerTypes.h:218
agora::media::base::PlayerUpdatedInfo::PlayerUpdatedInfo
PlayerUpdatedInfo()
Definition: AgoraMediaPlayerTypes.h:492
agora::media::base::PlayerUpdatedInfo::audioBitsPerSample
int audioBitsPerSample
Definition: AgoraMediaPlayerTypes.h:490
agora::media::base::PLAYER_EVENT_FREEZE_START
@ PLAYER_EVENT_FREEZE_START
Definition: AgoraMediaPlayerTypes.h:242
agora::media::base::PlayerStreamInfo::videoBitRate
int videoBitRate
Definition: AgoraMediaPlayerTypes.h:336
agora::media::base::PLAYER_STATE_NONE_INTERNAL
@ PLAYER_STATE_NONE_INTERNAL
Definition: AgoraMediaPlayerTypes.h:101
agora::media::base::PlayerStreamInfo::language
char language[kMaxCharBufferLength]
Definition: AgoraMediaPlayerTypes.h:326
agora::media::base::PlayerPlaybackStats::videoBitrateInKbps
int videoBitrateInKbps
Definition: AgoraMediaPlayerTypes.h:449
agora::media::base::PlayerStreamInfo::streamType
MEDIA_STREAM_TYPE streamType
Definition: AgoraMediaPlayerTypes.h:316
agora::media::base::kMaxCharBufferLength
static const uint8_t kMaxCharBufferLength
Definition: AgoraMediaPlayerTypes.h:49
agora::media::base::PlayerUpdatedInfo::videoWidth
int videoWidth
Definition: AgoraMediaPlayerTypes.h:478
agora::media::base::PLAYER_EVENT_BUFFER_RECOVER
@ PLAYER_EVENT_BUFFER_RECOVER
Definition: AgoraMediaPlayerTypes.h:238
agora::media::base::STREAM_TYPE_AUDIO
@ STREAM_TYPE_AUDIO
Definition: AgoraMediaPlayerTypes.h:204
agora::media::base::PlayerStreamInfo::audioBitsPerSample
int audioBitsPerSample
Definition: AgoraMediaPlayerTypes.h:367
agora::media::base::PLAYER_EVENT_FIRST_DISPLAYED
@ PLAYER_EVENT_FIRST_DISPLAYED
Definition: AgoraMediaPlayerTypes.h:262
agora::media::base::PLAYER_REASON_INVALID_MEDIA_SOURCE
@ PLAYER_REASON_INVALID_MEDIA_SOURCE
Definition: AgoraMediaPlayerTypes.h:136
agora::Optional< bool >
agora::media::base::PlayerStreamInfo::audioChannels
int audioChannels
Definition: AgoraMediaPlayerTypes.h:361
agora::media::base::MediaSource::MediaSource
MediaSource()
Definition: AgoraMediaPlayerTypes.h:638
agora::media::base::PlayerStreamInfo::streamIndex
int streamIndex
Definition: AgoraMediaPlayerTypes.h:311
agora::media::base::STREAM_TYPE_VIDEO
@ STREAM_TYPE_VIDEO
Definition: AgoraMediaPlayerTypes.h:200
agora::media::base::MediaSource::startPos
int64_t startPos
Definition: AgoraMediaPlayerTypes.h:575