Agora C++ API Reference for All Platforms
Loading...
Searching...
No Matches
media_engine_i.h
1//
2// Agora Media SDK
3//
4// Copyright (c) 2015 Agora IO. All rights reserved.
5//
6
7#pragma once
8
9#include "AgoraMediaBase.h"
10#include "main/core/video/base/video_frame/video_frame.h"
11#include "IAgoraMediaEngine.h"
12
13namespace agora {
14
15namespace rtc {
16struct RtcConnection;
17}
18
19namespace media {
20namespace base {
22 public:
24 void onFrame(const VideoFrame* frame) final {}
25 bool isExternal() final { return false; }
26 virtual void onFrame(const webrtc::VideoFrame& frame) = 0;
27};
28}
29
34 public:
36
37 bool onCaptureVideoFrame(agora::rtc::VIDEO_SOURCE_TYPE type, VideoFrame& videoFrame) final { return false; }
38 bool onPreEncodeVideoFrame(agora::rtc::VIDEO_SOURCE_TYPE type, VideoFrame& videoFrame) final { return false; }
39
40 bool onRenderVideoFrame(const char* channelId, rtc::uid_t remoteUid,
41 VideoFrame& videoFrame) final { return false; }
42
43 bool onTranscodedVideoFrame(VideoFrame& videoFrame) final { return false; }
44 bool onMediaPlayerVideoFrame(VideoFrame& videoFrame, int mediaPlayerId) final { return false; }
45 bool isExternal() final { return false; }
46
47 virtual bool onCaptureVideoFrame(agora::rtc::VIDEO_SOURCE_TYPE type, webrtc::VideoFrame& videoFrame) { return false; }
48 virtual bool onPreEncodeVideoFrame(agora::rtc::VIDEO_SOURCE_TYPE type, webrtc::VideoFrame& videoFrame) { return false; }
49
50 virtual bool onRenderVideoFrame(const char* channelId, rtc::uid_t remoteUid,
51 webrtc::VideoFrame& videoFrame) { return false; }
52
53 virtual bool onTranscodedVideoFrame(webrtc::VideoFrame& videoFrame) { return false; }
54 virtual bool onMediaPlayerVideoFrame(webrtc::VideoFrame& videoFrame, int mediaPlayerId) { return false; }
55};
56
61 public:
66
67 virtual int pushVideoFrameEx(const webrtc::VideoFrame& frame, unsigned int video_track_id = 0) = 0;
68
69 virtual int enableDualStreamModeEx(bool enabled, const rtc::SimulcastStreamConfig& streamConfig,
70 const rtc::RtcConnection& connection) = 0;
75 virtual int setExternalVideoConfigEx(const rtc::VideoEncoderConfiguration& config, const rtc::RtcConnection& connection) = 0;
76
77 ~IMediaEngineEx() override = default;
78};
79
80} // namespace media
81} // namespace agora
Definition media_engine_i.h:60
virtual int enableDualStreamModeEx(bool enabled, const rtc::SimulcastStreamConfig &streamConfig, const rtc::RtcConnection &connection)=0
virtual int setExternalVideoConfigEx(const rtc::VideoEncoderConfiguration &config, const rtc::RtcConnection &connection)=0
virtual int setExternalVideoConfigEx(const rtc::VideoEncoderConfiguration &config)=0
~IMediaEngineEx() override=default
virtual int pushVideoFrameEx(const webrtc::VideoFrame &frame, unsigned int video_track_id=0)=0
Definition IAgoraMediaEngine.h:32
virtual int registerVideoEncodedFrameObserver(IVideoEncodedFrameObserver *observer)=0
virtual int registerVideoFrameObserver(IVideoFrameObserver *observer)=0
virtual int pushEncodedVideoImage(const unsigned char *imageBuffer, size_t length, const agora::rtc::EncodedVideoFrameInfo &videoEncodedFrameInfo, unsigned int videoTrackId=0)=0
virtual int registerAudioFrameObserver(IAudioFrameObserver *observer)=0
Definition media_engine_i.h:33
virtual bool onPreEncodeVideoFrame(agora::rtc::VIDEO_SOURCE_TYPE type, webrtc::VideoFrame &videoFrame)
Definition media_engine_i.h:48
bool isExternal() final
Definition media_engine_i.h:45
virtual bool onTranscodedVideoFrame(webrtc::VideoFrame &videoFrame)
Definition media_engine_i.h:53
virtual bool onCaptureVideoFrame(agora::rtc::VIDEO_SOURCE_TYPE type, webrtc::VideoFrame &videoFrame)
Definition media_engine_i.h:47
bool onMediaPlayerVideoFrame(VideoFrame &videoFrame, int mediaPlayerId) final
Definition media_engine_i.h:44
bool onTranscodedVideoFrame(VideoFrame &videoFrame) final
Definition media_engine_i.h:43
bool onCaptureVideoFrame(agora::rtc::VIDEO_SOURCE_TYPE type, VideoFrame &videoFrame) final
Definition media_engine_i.h:37
bool onPreEncodeVideoFrame(agora::rtc::VIDEO_SOURCE_TYPE type, VideoFrame &videoFrame) final
Definition media_engine_i.h:38
virtual bool onRenderVideoFrame(const char *channelId, rtc::uid_t remoteUid, webrtc::VideoFrame &videoFrame)
Definition media_engine_i.h:50
virtual bool onMediaPlayerVideoFrame(webrtc::VideoFrame &videoFrame, int mediaPlayerId)
Definition media_engine_i.h:54
virtual ~IVideoFrameObserverEx()
Definition media_engine_i.h:35
bool onRenderVideoFrame(const char *channelId, rtc::uid_t remoteUid, VideoFrame &videoFrame) final
Definition media_engine_i.h:40
Definition AgoraMediaBase.h:1664
media::base::VideoFrame VideoFrame
Definition AgoraMediaBase.h:1666
Definition media_engine_i.h:21
bool isExternal() final
Definition media_engine_i.h:25
void onFrame(const VideoFrame *frame) final
Definition media_engine_i.h:24
virtual void onFrame(const webrtc::VideoFrame &frame)=0
virtual ~IVideoFrameObserverEx()
Definition media_engine_i.h:23
Definition AgoraMediaBase.h:1106
Definition NGIAgoraAudioDeviceManager.h:16
Definition content_inspect_i.h:15
Definition AgoraExtensions.h:5
unsigned int uid_t
Definition AgoraMediaBase.h:28
VIDEO_SOURCE_TYPE
Definition AgoraMediaBase.h:68
Definition AgoraAtomicOps.h:21
Definition AgoraMediaBase.h:963
Definition IAgoraRtcEngineEx.h:20
Definition AgoraBase.h:2175
Definition AgoraBase.h:1960