Agora Java API Reference for Android
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 "api/video/video_frame.h"
10 #include "IAgoraMediaEngine.h"
11 
12 namespace agora {
13 namespace media {
14 namespace base {
16  public:
17  virtual ~IVideoFrameObserverEx() {}
18  void onFrame(const VideoFrame* frame) final {}
19  bool isExternal() final { return false; }
20  virtual void onFrame(const webrtc::VideoFrame& frame) = 0;
21 };
22 }
23 
28  public:
29  virtual ~IVideoFrameObserverEx() {}
30 
31  bool onCaptureVideoFrame(VideoFrame& videoFrame) final { return false; }
32  bool onSecondaryCameraCaptureVideoFrame(VideoFrame& videoFrame) final { return false; }
33 
34  bool onScreenCaptureVideoFrame(VideoFrame& videoFrame) final { return false; }
35  bool onSecondaryScreenCaptureVideoFrame(VideoFrame& videoFrame) final { return false; }
36 
37  bool onRenderVideoFrame(rtc::uid_t uid, rtc::conn_id_t connectionId,
38  VideoFrame& videoFrame) final { return false; }
39  bool onTranscodedVideoFrame(VideoFrame& videoFrame) final { return false; }
40  bool onMediaPlayerVideoFrame(VideoFrame& videoFrame, int mediaPlayerId) final { return false; }
41  bool isExternal() final { return false; }
42 
43  virtual bool onCaptureVideoFrame(webrtc::VideoFrame& videoFrame) = 0;
44  virtual bool onSecondaryCameraCaptureVideoFrame(webrtc::VideoFrame& videoFrame) = 0;
45 
46  virtual bool onScreenCaptureVideoFrame(webrtc::VideoFrame& videoFrame) = 0;
47  virtual bool onSecondaryScreenCaptureVideoFrame(webrtc::VideoFrame& videoFrame) = 0;
48 
49  virtual bool onRenderVideoFrame(rtc::uid_t uid, rtc::conn_id_t connectionId,
50  const webrtc::VideoFrame& videoFrame) = 0;
51  virtual bool onTranscodedVideoFrame(webrtc::VideoFrame& videoFrame) = 0;
52  virtual bool onMediaPlayerVideoFrame(webrtc::VideoFrame& videoFrame, int mediaPlayerId) = 0;
53 };
54 
58 class IMediaEngineEx : public IMediaEngine {
59  public:
60  virtual int pushVideoFrameEx(const webrtc::VideoFrame& frame,
61  rtc::conn_id_t connectionId = rtc::DEFAULT_CONNECTION_ID) = 0;
62 
63  protected:
64  ~IMediaEngineEx() override = default;
65 };
66 
67 } // namespace media
68 } // namespace agora
agora::media::base::VideoFrame
Definition: AgoraMediaBase.h:378
agora::media::IVideoFrameObserverEx
Definition: media_engine_i.h:27
agora::media::base::IVideoFrameObserver
Definition: AgoraMediaBase.h:458
agora::media::IVideoFrameObserver
Definition: AgoraMediaBase.h:603
agora::media::base::IVideoFrameObserverEx
Definition: media_engine_i.h:15
agora::media::IMediaEngineEx
Definition: media_engine_i.h:58
agora::media::IVideoFrameObserverEx::onMediaPlayerVideoFrame
bool onMediaPlayerVideoFrame(VideoFrame &videoFrame, int mediaPlayerId) final
Definition: media_engine_i.h:40
agora::media::IVideoFrameObserverEx::onCaptureVideoFrame
bool onCaptureVideoFrame(VideoFrame &videoFrame) final
Definition: media_engine_i.h:31
agora::media::IVideoFrameObserverEx::onScreenCaptureVideoFrame
bool onScreenCaptureVideoFrame(VideoFrame &videoFrame) final
Definition: media_engine_i.h:34
agora::media::IMediaEngine
Definition: IAgoraMediaEngine.h:30
agora::media::base::IVideoFrameObserverEx::onFrame
void onFrame(const VideoFrame *frame) final
Definition: media_engine_i.h:18
agora::media::IVideoFrameObserverEx::isExternal
bool isExternal() final
Definition: media_engine_i.h:41
agora::media::IVideoFrameObserverEx::onRenderVideoFrame
bool onRenderVideoFrame(rtc::uid_t uid, rtc::conn_id_t connectionId, VideoFrame &videoFrame) final
Definition: media_engine_i.h:37