37 lines
1021 B
C++
37 lines
1021 B
C++
|
/**
|
||
|
* Copyright (c) 2023 Arda Cinar
|
||
|
*
|
||
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
||
|
*/
|
||
|
|
||
|
#ifndef RTC_PLI_RESPONDER_H
|
||
|
#define RTC_PLI_RESPONDER_H
|
||
|
|
||
|
#if RTC_ENABLE_MEDIA
|
||
|
|
||
|
#include "mediahandler.hpp"
|
||
|
#include "utils.hpp"
|
||
|
|
||
|
namespace rtc {
|
||
|
|
||
|
/// Responds to PLI and FIR messages sent by the receiver. The sender should respond to these
|
||
|
/// messages by sending an intra.
|
||
|
class RTC_CPP_EXPORT PliHandler final : public MediaHandler {
|
||
|
rtc::synchronized_callback<> mOnPli;
|
||
|
|
||
|
public:
|
||
|
/// Constructs the PLIResponder object to notify whenever a new intra frame is requested
|
||
|
/// @param onPli The callback that gets called whenever an intra frame is requested by the receiver
|
||
|
PliHandler(std::function<void(void)> onPli);
|
||
|
|
||
|
void incoming(message_vector &messages, const message_callback &send) override;
|
||
|
};
|
||
|
|
||
|
}
|
||
|
|
||
|
#endif // RTC_ENABLE_MEDIA
|
||
|
|
||
|
#endif // RTC_PLI_RESPONDER_H
|