Files
vimix/SrtReceiverSource.cpp
Bruno Herbelin 9ed76ae4da Finalizing implementation of SrtReceiverSource
Added icons, unified UI, loading and saving in XML.
2022-01-24 23:06:47 +01:00

57 lines
1.2 KiB
C++

#include "Log.h"
#include "Decorations.h"
#include "Visitor.h"
#include "SrtReceiverSource.h"
SrtReceiverSource::SrtReceiverSource(uint64_t id) : StreamSource(id)
{
// create stream
stream_ = new Stream;
// set symbol
symbol_ = new Symbol(Symbol::RECEIVE, glm::vec3(0.75f, 0.75f, 0.01f));
symbol_->scale_.y = 1.5f;
}
void SrtReceiverSource::setConnection(const std::string &ip, const std::string &port)
{
// TODO add check on wellformed IP and PORT
ip_ = ip;
port_ = port;
Log::Notify("Creating Source SRT receiving from '%s'", uri().c_str());
std::string description = "srtsrc uri=" + uri() + " ! tsdemux ! decodebin ! videoconvert";
// open gstreamer
stream_->open(description);
stream_->play(true);
// will be ready after init and one frame rendered
ready_ = false;
}
std::string SrtReceiverSource::uri() const
{
return std::string("srt://") + ip_ + ":" + port_;
}
void SrtReceiverSource::accept(Visitor& v)
{
Source::accept(v);
if (!failed())
v.visit(*this);
}
glm::ivec2 SrtReceiverSource::icon() const
{
return glm::ivec2(ICON_SOURCE_SRT);
}
std::string SrtReceiverSource::info() const
{
return std::string("SRT receiver from '") + uri() + "'";
}