1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- #ifndef MODULES_VIDEO_CODING_RECEIVER_H_
- #define MODULES_VIDEO_CODING_RECEIVER_H_
- #include <memory>
- #include <vector>
- #include "modules/video_coding/event_wrapper.h"
- #include "modules/video_coding/include/video_coding.h"
- #include "modules/video_coding/include/video_coding_defines.h"
- #include "modules/video_coding/jitter_buffer.h"
- #include "modules/video_coding/packet.h"
- #include "modules/video_coding/timing.h"
- namespace webrtc {
- class Clock;
- class VCMEncodedFrame;
- class VCMReceiver {
- public:
- VCMReceiver(VCMTiming* timing, Clock* clock);
-
-
-
-
- VCMReceiver(VCMTiming* timing,
- Clock* clock,
- std::unique_ptr<EventWrapper> receiver_event,
- std::unique_ptr<EventWrapper> jitter_buffer_event);
- ~VCMReceiver();
- int32_t InsertPacket(const VCMPacket& packet);
- VCMEncodedFrame* FrameForDecoding(uint16_t max_wait_time_ms,
- bool prefer_late_decoding);
- void ReleaseFrame(VCMEncodedFrame* frame);
-
- void SetNackSettings(size_t max_nack_list_size,
- int max_packet_age_to_nack,
- int max_incomplete_time_ms);
- std::vector<uint16_t> NackList(bool* request_key_frame);
- private:
- Clock* const clock_;
- VCMJitterBuffer jitter_buffer_;
- VCMTiming* timing_;
- std::unique_ptr<EventWrapper> render_wait_event_;
- int max_video_delay_ms_;
- };
- }
- #endif
|