123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- #ifndef MODULES_VIDEO_CODING_VIDEO_RECEIVER2_H_
- #define MODULES_VIDEO_CODING_VIDEO_RECEIVER2_H_
- #include "modules/video_coding/decoder_database.h"
- #include "modules/video_coding/encoded_frame.h"
- #include "modules/video_coding/generic_decoder.h"
- #include "modules/video_coding/timing.h"
- #include "rtc_base/thread_checker.h"
- #include "system_wrappers/include/clock.h"
- namespace webrtc {
- class VideoReceiver2 {
- public:
- VideoReceiver2(Clock* clock, VCMTiming* timing);
- ~VideoReceiver2();
- int32_t RegisterReceiveCodec(uint8_t payload_type,
- const VideoCodec* receiveCodec,
- int32_t numberOfCores);
- void RegisterExternalDecoder(VideoDecoder* externalDecoder,
- uint8_t payloadType);
- int32_t RegisterReceiveCallback(VCMReceiveCallback* receiveCallback);
- int32_t Decode(const webrtc::VCMEncodedFrame* frame);
-
-
-
- void DecoderThreadStarting();
- void DecoderThreadStopped();
- private:
-
-
-
-
-
- bool IsDecoderThreadRunning();
- rtc::ThreadChecker construction_thread_checker_;
- rtc::ThreadChecker decoder_thread_checker_;
- Clock* const clock_;
- VCMTiming* timing_;
- VCMDecodedFrameCallback decodedFrameCallback_;
-
-
-
- VCMDecoderDataBase codecDataBase_;
- #if RTC_DCHECK_IS_ON
- bool decoder_thread_is_running_ = false;
- #endif
- };
- }
- #endif
|