/* Copyright (C) 2014-2022 FastoGT. All right reserved. This file is part of fastocloud. fastocloud is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. fastocloud is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with fastocloud. If not, see . */ #pragma once #include #include // for element_id_t, VIDEO_PAY_NAME_1U #include "stream/elements/element.h" // for Element (ptr only), SupportedElements:... #include "stream/elements/pay/pay.h" // for ElementRtpPay #include "stream/stypes.h" namespace fastocloud { namespace stream { namespace elements { namespace pay { class ElementRtpMPEG2Pay : public ElementRtpPay { public: typedef ElementRtpPay base_class; using base_class::base_class; }; class ElementRtpH264Pay : public ElementRtpPay { public: typedef ElementRtpPay base_class; using base_class::base_class; }; class ElementRtpH265Pay : public ElementRtpPay { public: typedef ElementRtpPay base_class; using base_class::base_class; }; template T* make_video_pay(element_id_t pay_id) { return make_element(common::MemSPrintf(VIDEO_PAY_NAME_1U, pay_id)); } ElementRtpMPEG2Pay* make_mpeg2_pay(guint pt, element_id_t pay_id); ElementRtpH264Pay* make_h264_pay(guint pt, element_id_t pay_id); ElementRtpH265Pay* make_h265_pay(guint pt, element_id_t pay_id); Element* make_video_pay(const std::string& pay, const std::string& name); } // namespace pay } // namespace elements } // namespace stream } // namespace fastocloud