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 #if __cplusplus >= 201103L || (defined(_MSC_VER) && _MSC_VER >= 1800)
11 #include <cstdint>
12 #endif
13 
14 #include "AgoraOptional.h"
15 
20 #define KEY_PLAYER_REAL_TIME_STREAM_ANALYZE_DURATION "analyze_duration"
21 
26 #define KEY_PLAYER_ENABLE_AUDIO "enable_audio"
27 
32 #define KEY_PLAYER_ENABLE_VIDEO "enable_video"
33 
38 #define KEY_PLAYER_ENABLE_SEARCH_METADATA "enable_search_metadata"
39 
44 #define KEY_PLAYER_SEI_FILTER_TYPE "set_sei_filter_type"
45 
46 namespace agora {
47 
48 namespace media {
49 
50 namespace base {
51 static const uint8_t kMaxCharBufferLength = 50;
105 };
165 };
166 
184 };
185 
242 };
243 
258 };
259 
267 
270 
273 
276 
279 
282 
285 
288 
291 
294 
297 
300 
302  int64_t duration;
303 
306  videoFrameRate(0),
307  videoBitRate(0),
308  videoWidth(0),
309  videoHeight(0),
310  videoRotation(0),
311  audioSampleRate(0),
312  audioChannels(0),
314  duration(0) {
315  memset(codecName, 0, sizeof(codecName));
316  memset(language, 0, sizeof(language));
317  }
318 };
319 
324 struct SrcInfo {
329 
333  const char* name;
334 
335 };
336 
348 };
349 
353  int64_t fileSize;
356  int64_t cacheSize;
359  int64_t downloadSize;
360 };
361 
366 
370 
374 };
375 
380 public:
381 
388  virtual int onReadData(unsigned char *buffer, int bufferSize) = 0;
389 
402  virtual int64_t onSeek(int64_t offset, int whence) = 0;
403 
405 };
406 
407 struct MediaSource {
411  const char* url;
418  const char* uri;
422  int64_t startPos;
427  bool autoPlay;
446 
447  MediaSource() : url(NULL), uri(NULL), startPos(0), autoPlay(true), enableCache(false),
448  provider(NULL){
449  }
450 };
451 
452 } // namespace base
453 } // namespace media
454 } // namespace agora
agora::media::base::MediaSource::url
const char * url
Definition: AgoraMediaPlayerTypes.h:411
agora::media::base::PlayerStreamInfo::videoRotation
int videoRotation
Definition: AgoraMediaPlayerTypes.h:290
agora::media::base::PLAYER_ERROR_UNKNOWN
@ PLAYER_ERROR_UNKNOWN
Definition: AgoraMediaPlayerTypes.h:164
agora::media::base::PLAYER_ERROR_URL_NOT_FOUND
@ PLAYER_ERROR_URL_NOT_FOUND
Definition: AgoraMediaPlayerTypes.h:143
agora::media::base::MediaSource::isLiveSource
Optional< bool > isLiveSource
Definition: AgoraMediaPlayerTypes.h:441
agora::media::base::PlayerStreamInfo::PlayerStreamInfo
PlayerStreamInfo()
Definition: AgoraMediaPlayerTypes.h:304
agora::media::base::PLAYER_STATE_FAILED
@ PLAYER_STATE_FAILED
Definition: AgoraMediaPlayerTypes.h:104
agora::media::base::PLAYER_ERROR_IP_EXPIRED
@ PLAYER_ERROR_IP_EXPIRED
Definition: AgoraMediaPlayerTypes.h:161
agora::media::base::PLAYER_STATE_STOPPED
@ PLAYER_STATE_STOPPED
Definition: AgoraMediaPlayerTypes.h:80
agora::media::base::MEDIA_STREAM_TYPE
MEDIA_STREAM_TYPE
The type of the media stream.
Definition: AgoraMediaPlayerTypes.h:171
agora::media::base::PLAYER_STATE_OPEN_COMPLETED
@ PLAYER_STATE_OPEN_COMPLETED
Definition: AgoraMediaPlayerTypes.h:65
agora::media::base::MediaSource::autoPlay
bool autoPlay
Definition: AgoraMediaPlayerTypes.h:427
agora::media::base::PLAYER_STATE_PAUSING_INTERNAL
@ PLAYER_STATE_PAUSING_INTERNAL
Definition: AgoraMediaPlayerTypes.h:83
agora::media::base::PLAYER_ERROR_UNKNOWN_STREAM_TYPE
@ PLAYER_ERROR_UNKNOWN_STREAM_TYPE
Definition: AgoraMediaPlayerTypes.h:128
agora::media::base::CacheStatistics
Definition: AgoraMediaPlayerTypes.h:350
agora::media::base::PLAYER_EVENT_BUFFER_LOW
@ PLAYER_EVENT_BUFFER_LOW
Definition: AgoraMediaPlayerTypes.h:205
agora::media::base::PLAYER_ERROR_TOKEN_EXPIRED
@ PLAYER_ERROR_TOKEN_EXPIRED
Definition: AgoraMediaPlayerTypes.h:158
agora::media::base::MediaSource::uri
const char * uri
Definition: AgoraMediaPlayerTypes.h:418
agora::media::base::PlayerUpdatedInfo
Definition: AgoraMediaPlayerTypes.h:362
agora::media::base::PLAYER_ERROR_INTERRUPTED
@ PLAYER_ERROR_INTERRUPTED
Definition: AgoraMediaPlayerTypes.h:152
agora::media::base::PLAYER_ERROR_NONE
@ PLAYER_ERROR_NONE
Definition: AgoraMediaPlayerTypes.h:113
agora::media::base::MEDIA_PLAYER_EVENT
MEDIA_PLAYER_EVENT
The playback event.
Definition: AgoraMediaPlayerTypes.h:190
agora::media::base::PLAYER_EVENT_SEEK_ERROR
@ PLAYER_EVENT_SEEK_ERROR
Definition: AgoraMediaPlayerTypes.h:199
agora::media::base::PLAYER_ERROR_INVALID_MEDIA_SOURCE
@ PLAYER_ERROR_INVALID_MEDIA_SOURCE
Definition: AgoraMediaPlayerTypes.h:125
agora::media::base::STREAM_TYPE_UNKNOWN
@ STREAM_TYPE_UNKNOWN
Definition: AgoraMediaPlayerTypes.h:174
agora::media::base::IMediaPlayerCustomDataProvider::~IMediaPlayerCustomDataProvider
virtual ~IMediaPlayerCustomDataProvider()
Definition: AgoraMediaPlayerTypes.h:404
agora::media::base::CacheStatistics::downloadSize
int64_t downloadSize
Definition: AgoraMediaPlayerTypes.h:359
agora::media::base::MEDIA_PLAYER_STATE
MEDIA_PLAYER_STATE
The playback state.
Definition: AgoraMediaPlayerTypes.h:56
agora::media::base::PLAYER_STATE_GETTING_INTERNAL
@ PLAYER_STATE_GETTING_INTERNAL
Definition: AgoraMediaPlayerTypes.h:92
agora::media::base::PLAYER_PRELOAD_EVENT_COMPLETE
@ PLAYER_PRELOAD_EVENT_COMPLETE
Definition: AgoraMediaPlayerTypes.h:254
agora
Definition: AgoraAtomicOps.h:21
agora::media::base::PLAYER_METADATA_TYPE_SEI
@ PLAYER_METADATA_TYPE_SEI
Definition: AgoraMediaPlayerTypes.h:347
agora::media::base::PLAYER_ERROR_NOT_SUPPORTED
@ PLAYER_ERROR_NOT_SUPPORTED
Definition: AgoraMediaPlayerTypes.h:155
agora::media::base::IMediaPlayerCustomDataProvider
Definition: AgoraMediaPlayerTypes.h:379
agora::media::base::PLAYER_ERROR_INTERNAL
@ PLAYER_ERROR_INTERNAL
Definition: AgoraMediaPlayerTypes.h:119
agora::media::base::PLAYER_EVENT_SWITCH_BEGIN
@ PLAYER_EVENT_SWITCH_BEGIN
Definition: AgoraMediaPlayerTypes.h:217
agora::media::base::PLAYER_STATE_PLAYBACK_COMPLETED
@ PLAYER_STATE_PLAYBACK_COMPLETED
Definition: AgoraMediaPlayerTypes.h:74
agora::media::base::PlayerUpdatedInfo::playerId
Optional< const char * > playerId
Definition: AgoraMediaPlayerTypes.h:365
agora::media::base::SrcInfo::bitrateInKbps
int bitrateInKbps
Definition: AgoraMediaPlayerTypes.h:328
agora::media::base::CacheStatistics::fileSize
int64_t fileSize
Definition: AgoraMediaPlayerTypes.h:353
agora::media::base::PLAYER_STATE_PAUSED
@ PLAYER_STATE_PAUSED
Definition: AgoraMediaPlayerTypes.h:71
agora::media::base::PLAYER_EVENT_SWITCH_ERROR
@ PLAYER_EVENT_SWITCH_ERROR
Definition: AgoraMediaPlayerTypes.h:223
agora::media::base::PLAYER_ERROR_INVALID_ARGUMENTS
@ PLAYER_ERROR_INVALID_ARGUMENTS
Definition: AgoraMediaPlayerTypes.h:116
agora::media::base::PLAYER_PRELOAD_EVENT_ERROR
@ PLAYER_PRELOAD_EVENT_ERROR
Definition: AgoraMediaPlayerTypes.h:257
agora::media::base::PLAYER_EVENT_AUDIO_TRACK_CHANGED
@ PLAYER_EVENT_AUDIO_TRACK_CHANGED
Definition: AgoraMediaPlayerTypes.h:202
agora::media::base::PlayerStreamInfo
The information of the media stream object.
Definition: AgoraMediaPlayerTypes.h:264
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:251
agora::media::base::PLAYER_STATE_PLAYING
@ PLAYER_STATE_PLAYING
Definition: AgoraMediaPlayerTypes.h:68
agora::media::base::PLAYER_EVENT_REACH_CACHE_FILE_MAX_SIZE
@ PLAYER_EVENT_REACH_CACHE_FILE_MAX_SIZE
Definition: AgoraMediaPlayerTypes.h:232
agora::media::base::PLAYER_EVENT_TRY_OPEN_START
@ PLAYER_EVENT_TRY_OPEN_START
Definition: AgoraMediaPlayerTypes.h:235
agora::media::base::MediaSource::provider
IMediaPlayerCustomDataProvider * provider
Definition: AgoraMediaPlayerTypes.h:445
agora::media::base::PLAYER_ERROR_CODEC_NOT_SUPPORTED
@ PLAYER_ERROR_CODEC_NOT_SUPPORTED
Definition: AgoraMediaPlayerTypes.h:134
agora::media::base::PLAYER_ERROR_INVALID_CONNECTION_STATE
@ PLAYER_ERROR_INVALID_CONNECTION_STATE
Definition: AgoraMediaPlayerTypes.h:146
agora::media::base::PLAYER_STATE_IDLE
@ PLAYER_STATE_IDLE
Definition: AgoraMediaPlayerTypes.h:59
agora::media::base::PLAYER_ERROR_SRC_BUFFER_UNDERFLOW
@ PLAYER_ERROR_SRC_BUFFER_UNDERFLOW
Definition: AgoraMediaPlayerTypes.h:149
agora::media::base::MediaSource
Definition: AgoraMediaPlayerTypes.h:407
agora::media::base::PLAYER_STATE_SET_TRACK_INTERNAL
@ PLAYER_STATE_SET_TRACK_INTERNAL
Definition: AgoraMediaPlayerTypes.h:101
agora::media::base::PlayerStreamInfo::videoWidth
int videoWidth
Definition: AgoraMediaPlayerTypes.h:284
agora::media::base::PLAYER_EVENT_FREEZE_STOP
@ PLAYER_EVENT_FREEZE_STOP
Definition: AgoraMediaPlayerTypes.h:214
agora::media::base::PLAYER_STATE_STOPPING_INTERNAL
@ PLAYER_STATE_STOPPING_INTERNAL
Definition: AgoraMediaPlayerTypes.h:86
agora::media::base::PlayerStreamInfo::duration
int64_t duration
Definition: AgoraMediaPlayerTypes.h:302
agora::media::base::CacheStatistics::cacheSize
int64_t cacheSize
Definition: AgoraMediaPlayerTypes.h:356
agora::media::base::STREAM_TYPE_SUBTITLE
@ STREAM_TYPE_SUBTITLE
Definition: AgoraMediaPlayerTypes.h:183
agora::media::base::MEDIA_PLAYER_METADATA_TYPE
MEDIA_PLAYER_METADATA_TYPE
The type of the media metadata.
Definition: AgoraMediaPlayerTypes.h:341
AgoraOptional.h
agora::media::base::PLAYER_EVENT_TRY_OPEN_SUCCEED
@ PLAYER_EVENT_TRY_OPEN_SUCCEED
Definition: AgoraMediaPlayerTypes.h:238
agora::media::base::PLAYER_EVENT_SWITCH_COMPLETE
@ PLAYER_EVENT_SWITCH_COMPLETE
Definition: AgoraMediaPlayerTypes.h:220
agora::media::base::PLAYER_ERROR_OBJ_NOT_INITIALIZED
@ PLAYER_ERROR_OBJ_NOT_INITIALIZED
Definition: AgoraMediaPlayerTypes.h:131
agora::media::base::MediaSource::enableCache
bool enableCache
Definition: AgoraMediaPlayerTypes.h:431
agora::media::base::IMediaPlayerCustomDataProvider::onReadData
virtual int onReadData(unsigned char *buffer, int bufferSize)=0
The player requests to read the data callback, you need to fill the specified length of data into the...
agora::media::base::PLAYER_STATE_DO_NOTHING_INTERNAL
@ PLAYER_STATE_DO_NOTHING_INTERNAL
Definition: AgoraMediaPlayerTypes.h:98
agora::media::base::PlayerStreamInfo::codecName
char codecName[kMaxCharBufferLength]
Definition: AgoraMediaPlayerTypes.h:272
agora::media::base::MediaSource::isAgoraSource
Optional< bool > isAgoraSource
Definition: AgoraMediaPlayerTypes.h:436
agora::media::base::IMediaPlayerCustomDataProvider::onSeek
virtual int64_t onSeek(int64_t offset, int whence)=0
The Player seek event callback, you need to operate the corresponding stream seek operation,...
agora::media::base::MEDIA_PLAYER_ERROR
MEDIA_PLAYER_ERROR
Player error code.
Definition: AgoraMediaPlayerTypes.h:110
agora::media::base::PLAYER_EVENT_SEEK_COMPLETE
@ PLAYER_EVENT_SEEK_COMPLETE
Definition: AgoraMediaPlayerTypes.h:196
agora::media::base::SrcInfo::name
const char * name
Definition: AgoraMediaPlayerTypes.h:333
agora::media::base::PLAYER_STATE_PLAYBACK_ALL_LOOPS_COMPLETED
@ PLAYER_STATE_PLAYBACK_ALL_LOOPS_COMPLETED
Definition: AgoraMediaPlayerTypes.h:77
agora::media::base::SrcInfo
The information of the media stream object.
Definition: AgoraMediaPlayerTypes.h:324
agora::media::base::PLAYER_EVENT_TRY_OPEN_FAILED
@ PLAYER_EVENT_TRY_OPEN_FAILED
Definition: AgoraMediaPlayerTypes.h:241
agora::media::base::PLAYER_METADATA_TYPE_UNKNOWN
@ PLAYER_METADATA_TYPE_UNKNOWN
Definition: AgoraMediaPlayerTypes.h:344
agora::media::base::PLAYER_PRELOAD_EVENT
PLAYER_PRELOAD_EVENT
The play preload another source event.
Definition: AgoraMediaPlayerTypes.h:248
agora::media::base::PlayerStreamInfo::videoHeight
int videoHeight
Definition: AgoraMediaPlayerTypes.h:287
agora::media::base::PLAYER_STATE_SEEKING_INTERNAL
@ PLAYER_STATE_SEEKING_INTERNAL
Definition: AgoraMediaPlayerTypes.h:89
agora::media::base::PlayerStreamInfo::audioSampleRate
int audioSampleRate
Definition: AgoraMediaPlayerTypes.h:293
agora::media::base::PlayerStreamInfo::videoFrameRate
int videoFrameRate
Definition: AgoraMediaPlayerTypes.h:278
agora::media::base::PLAYER_EVENT_REACH_CACHE_FILE_MAX_COUNT
@ PLAYER_EVENT_REACH_CACHE_FILE_MAX_COUNT
Definition: AgoraMediaPlayerTypes.h:229
agora::media::base::PLAYER_EVENT_SEEK_BEGIN
@ PLAYER_EVENT_SEEK_BEGIN
Definition: AgoraMediaPlayerTypes.h:193
agora::media::base::PlayerUpdatedInfo::deviceId
Optional< const char * > deviceId
Definition: AgoraMediaPlayerTypes.h:369
agora::media::base::PLAYER_EVENT_FREEZE_START
@ PLAYER_EVENT_FREEZE_START
Definition: AgoraMediaPlayerTypes.h:211
agora::media::base::PLAYER_ERROR_VIDEO_RENDER_FAILED
@ PLAYER_ERROR_VIDEO_RENDER_FAILED
Definition: AgoraMediaPlayerTypes.h:137
agora::media::base::PlayerStreamInfo::videoBitRate
int videoBitRate
Definition: AgoraMediaPlayerTypes.h:281
agora::media::base::PLAYER_STATE_NONE_INTERNAL
@ PLAYER_STATE_NONE_INTERNAL
Definition: AgoraMediaPlayerTypes.h:95
agora::media::base::PlayerStreamInfo::language
char language[kMaxCharBufferLength]
Definition: AgoraMediaPlayerTypes.h:275
agora::media::base::PlayerStreamInfo::streamType
MEDIA_STREAM_TYPE streamType
Definition: AgoraMediaPlayerTypes.h:269
agora::media::base::PLAYER_ERROR_NO_RESOURCE
@ PLAYER_ERROR_NO_RESOURCE
Definition: AgoraMediaPlayerTypes.h:122
agora::media::base::kMaxCharBufferLength
static const uint8_t kMaxCharBufferLength
Definition: AgoraMediaPlayerTypes.h:51
agora::media::base::PLAYER_EVENT_BUFFER_RECOVER
@ PLAYER_EVENT_BUFFER_RECOVER
Definition: AgoraMediaPlayerTypes.h:208
agora::media::base::PLAYER_ERROR_INVALID_STATE
@ PLAYER_ERROR_INVALID_STATE
Definition: AgoraMediaPlayerTypes.h:140
agora::media::base::STREAM_TYPE_AUDIO
@ STREAM_TYPE_AUDIO
Definition: AgoraMediaPlayerTypes.h:180
agora::media::base::PlayerStreamInfo::audioBitsPerSample
int audioBitsPerSample
Definition: AgoraMediaPlayerTypes.h:299
agora::media::base::PlayerUpdatedInfo::cacheStatistics
Optional< CacheStatistics > cacheStatistics
Definition: AgoraMediaPlayerTypes.h:373
agora::media::base::PLAYER_EVENT_FIRST_DISPLAYED
@ PLAYER_EVENT_FIRST_DISPLAYED
Definition: AgoraMediaPlayerTypes.h:226
agora::Optional< const char * >
agora::media::base::PlayerStreamInfo::audioChannels
int audioChannels
Definition: AgoraMediaPlayerTypes.h:296
agora::media::base::MediaSource::MediaSource
MediaSource()
Definition: AgoraMediaPlayerTypes.h:447
agora::media::base::PlayerStreamInfo::streamIndex
int streamIndex
Definition: AgoraMediaPlayerTypes.h:266
agora::media::base::STREAM_TYPE_VIDEO
@ STREAM_TYPE_VIDEO
Definition: AgoraMediaPlayerTypes.h:177
agora::media::base::MediaSource::startPos
int64_t startPos
Definition: AgoraMediaPlayerTypes.h:422