Agora C++ API Reference for All Platforms
Loading...
Searching...
No Matches
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#include <functional>
11#include "AgoraRefPtr.h"
12#include "AgoraMediaBase.h"
13#include "IAgoraMediaPlayerSource.h"
14#include "NGIAgoraMediaNodeFactory.h"
15#include "NGIAgoraMediaNode.h"
16
17
18namespace webrtc {
19class VideoFrame;
20} // namespace webrtc
21
22namespace agora {
23namespace base {
24class BaseWorker;
25class IAgoraService;
26} // namespace base
27
28namespace 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;
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
Definition AgoraRefPtr.h:44
Definition IAgoraService.h:395
Definition AgoraMediaBase.h:1106
Definition media_player_source_i.h:30
static agora_refptr< IMediaPlayerSourceEx > Create(base::IAgoraService *agora_service, media::base::MEDIA_PLAYER_SOURCE_TYPE type=media::base::MEDIA_PLAYER_SOURCE_DEFAULT)
int registerPlayerSourceObserver(IMediaPlayerSourceObserver *observer) final
Definition media_player_source_i.h:46
virtual int64_t getFirstAudioFramePts()=0
virtual int64_t getFirstVideoFramePts()=0
virtual ~IMediaPlayerSourceEx()=default
virtual int registerPlayerSourceObserverEx(IMediaPlayerSourceObserver *observer, bool internal)=0
virtual void setRenderLastVideoFrame(bool set_black_frame)=0
virtual agora_refptr< rtc::IAudioPcmDataSender > getAudioPcmDataSender()=0
virtual bool showBlackFrameWhenStop()=0
virtual void onPlayerSourceObserverCallback(std::function< void(IMediaPlayerSourceObserver *)> &&task)=0
virtual int getPlayerOption(const char *key, int64_t &value)=0
virtual agora_refptr< rtc::IVideoFrameSender > getVideoFrameSender()=0
Definition IAgoraMediaPlayerSource.h:22
Definition IAgoraMediaPlayerSource.h:401
Definition media_player_source_i.h:55
bool isExternal() final
Definition media_player_source_i.h:61
virtual void onFrame(webrtc::VideoFrame &videoFrame)=0
virtual void onFrame(const agora::media::base::VideoFrame *frame) final
Definition media_player_source_i.h:58
virtual ~IMediaPlayerVideoFrameObserverEx()
Definition media_player_source_i.h:57
Definition IAgoraService.h:72
Definition AgoraOptional.h:54
MEDIA_PLAYER_SOURCE_TYPE
Definition AgoraMediaBase.h:1122
@ MEDIA_PLAYER_SOURCE_DEFAULT
Definition AgoraMediaBase.h:1128
Definition AgoraExtensions.h:5
Definition AgoraAtomicOps.h:21
Definition common_defines.h:18
Definition AgoraMediaBase.h:963