Agora C++ API Reference for All Platforms
media_player_source_i.h
1 //
2 // Agora RTC/MEDIA SDK
3 //
4 // Created by Pengfei Han in 2019-11.
5 // Copyright (c) 2019 Agora.io. All rights reserved.
6 //
7 #pragma once
8 
9 #include <memory>
10 
11 #include "AgoraRefPtr.h"
12 #include "AgoraMediaBase.h"
13 #include "IAgoraMediaPlayerSource.h"
14 #include "NGIAgoraMediaNodeFactory.h"
15 #include "NGIAgoraMediaNode.h"
16 
17 
18 namespace webrtc {
19 class VideoFrame;
20 } // namespace webrtc
21 
22 namespace agora {
23 namespace base {
24 class BaseWorker;
25 class IAgoraService;
26 } // namespace base
27 
28 namespace rtc {
29 
31  protected:
32  virtual ~IMediaPlayerSourceEx() = default;
33 
34  public:
37 
40  virtual void setRenderLastVideoFrame(bool set_black_frame) = 0;
41  virtual bool showBlackFrameWhenStop() = 0;
42  virtual int64_t getFirstAudioFramePts() = 0;
43  virtual int64_t getFirstVideoFramePts() = 0;
44  virtual int getPlayerOption(const char* key, int64_t& value) = 0;
45  virtual int registerPlayerSourceObserverEx(IMediaPlayerSourceObserver* observer, bool internal) = 0;
47  return registerPlayerSourceObserverEx(observer, false);
48  }
49  virtual void onPlayerSourceObserverCallback(std::function<void(IMediaPlayerSourceObserver*)>&& task) = 0;
50 };
51 
56  public:
58  virtual void onFrame(const agora::media::base::VideoFrame* frame) final { return; }
59  virtual void onFrame(webrtc::VideoFrame& videoFrame) = 0;
60 
61  bool isExternal() final { return false; }
62 };
63 
64 } // namespace rtc
65 } // namespace agora
agora::media::base::VideoFrame
Definition: AgoraMediaBase.h:1023
agora::rtc::IMediaPlayerVideoFrameObserverEx::onFrame
virtual void onFrame(webrtc::VideoFrame &videoFrame)=0
agora::base::IAgoraService
Definition: IAgoraService.h:395
agora::media::base::MEDIA_PLAYER_SOURCE_TYPE
MEDIA_PLAYER_SOURCE_TYPE
Definition: AgoraMediaBase.h:1182
agora::rtc::IMediaPlayerSourceEx::getPlayerOption
virtual int getPlayerOption(const char *key, int64_t &value)=0
agora::media::base::MEDIA_PLAYER_SOURCE_DEFAULT
@ MEDIA_PLAYER_SOURCE_DEFAULT
Definition: AgoraMediaBase.h:1188
agora::rtc::IMediaPlayerVideoFrameObserverEx::onFrame
virtual void onFrame(const agora::media::base::VideoFrame *frame) final
Definition: media_player_source_i.h:58
agora::agora_refptr
Definition: AgoraRefPtr.h:44
agora::rtc::IMediaPlayerSource
Definition: IAgoraMediaPlayerSource.h:22
webrtc
Definition: common_defines.h:18
agora::rtc::IMediaPlayerSourceEx::onPlayerSourceObserverCallback
virtual void onPlayerSourceObserverCallback(std::function< void(IMediaPlayerSourceObserver *)> &&task)=0
agora::rtc::IMediaPlayerSourceObserver
Definition: IAgoraMediaPlayerSource.h:380
agora::media::base::IVideoFrameObserver
Definition: AgoraMediaBase.h:1166
agora::rtc::IMediaPlayerVideoFrameObserverEx
Definition: media_player_source_i.h:55
agora::rtc::IMediaPlayerSourceEx::setRenderLastVideoFrame
virtual void setRenderLastVideoFrame(bool set_black_frame)=0
agora::rtc::IMediaPlayerSourceEx::getFirstAudioFramePts
virtual int64_t getFirstAudioFramePts()=0
agora::rtc::IMediaPlayerSourceEx::registerPlayerSourceObserver
int registerPlayerSourceObserver(IMediaPlayerSourceObserver *observer) final
Definition: media_player_source_i.h:46
agora
Definition: AgoraAtomicOps.h:21
agora::rtc::IMediaPlayerSourceEx::getVideoFrameSender
virtual agora_refptr< rtc::IVideoFrameSender > getVideoFrameSender()=0
agora::rtc::IMediaPlayerSourceEx
Definition: media_player_source_i.h:30
agora::rtc::IMediaPlayerSourceEx::showBlackFrameWhenStop
virtual bool showBlackFrameWhenStop()=0
agora::rtc::IMediaPlayerVideoFrameObserverEx::isExternal
bool isExternal() final
Definition: media_player_source_i.h:61
agora::rtc::IMediaPlayerSourceEx::registerPlayerSourceObserverEx
virtual int registerPlayerSourceObserverEx(IMediaPlayerSourceObserver *observer, bool internal)=0
agora::rtc::IMediaPlayerSourceEx::getAudioPcmDataSender
virtual agora_refptr< rtc::IAudioPcmDataSender > getAudioPcmDataSender()=0
agora::rtc::IMediaPlayerSourceEx::getFirstVideoFramePts
virtual int64_t getFirstVideoFramePts()=0
agora::rtc::IMediaPlayerSourceEx::~IMediaPlayerSourceEx
virtual ~IMediaPlayerSourceEx()=default
agora::rtc::IMediaPlayerVideoFrameObserverEx::~IMediaPlayerVideoFrameObserverEx
virtual ~IMediaPlayerVideoFrameObserverEx()
Definition: media_player_source_i.h:57
agora::rtc::IMediaPlayerSourceEx::Create
static agora_refptr< IMediaPlayerSourceEx > Create(base::IAgoraService *agora_service, media::base::MEDIA_PLAYER_SOURCE_TYPE type=media::base::MEDIA_PLAYER_SOURCE_DEFAULT)
rtc
Definition: video_node_i.h:28