2
* Copyright (C) 2015 Canonical, Ltd.
4
* This program is free software: you can redistribute it and/or modify it
5
* under the terms of the GNU General Public License version 3, as published
6
* by the Free Software Foundation.
8
* This program is distributed in the hope that it will be useful, but
9
* WITHOUT ANY WARRANTY; without even the implied warranties of
10
* MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
11
* PURPOSE. See the GNU General Public License for more details.
13
* You should have received a copy of the GNU General Public License along
14
* with this program. If not, see <http://www.gnu.org/licenses/>.
18
#ifndef MCS_MIR_SOURCEMEDIAMANAGERNEXT_H_
19
#define MCS_MIR_SOURCEMEDIAMANAGERNEXT_H_
23
#include "mcs/basesourcemediamanager.h"
25
#include "mcs/common/executor.h"
27
#include "mcs/video/baseencoder.h"
29
#include "mcs/streaming/mediasender.h"
31
#include "mcs/mir/screencast.h"
32
#include "mcs/mir/streamrenderer.h"
37
class SourceMediaManager : public mcs::BaseSourceMediaManager {
39
typedef std::shared_ptr<SourceMediaManager> Ptr;
47
static Ptr Create(const std::string &remote_address);
49
~SourceMediaManager();
52
void Pause() override;
53
void Teardown() override;
54
bool IsPaused() const override;
56
void SendIDRPicture() override;
58
int GetLocalRtpPort() const override;
61
SourceMediaManager(const std::string &remote_address);
67
bool Configure() override;
70
std::string remote_address_;
72
mcs::video::BaseEncoder::Ptr encoder_;
73
mcs::common::Executor::Ptr encoder_executor_;
74
mcs::mir::Screencast::Ptr connector_;
75
mcs::mir::StreamRenderer::Ptr renderer_;
76
mcs::streaming::MediaSender::Ptr sender_;