Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(468)

Unified Diff: webrtc/modules/video_coding/video_coding_impl.h

Issue 1853813002: Add support for writing raw encoder output to .ivf files. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Set pre-decode image callback on construction Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: webrtc/modules/video_coding/video_coding_impl.h
diff --git a/webrtc/modules/video_coding/video_coding_impl.h b/webrtc/modules/video_coding/video_coding_impl.h
index 581eb4ecdeebcbe97a49b11d1ef6009f9731805c..6143e2246a5d7ebc552113c3fc42ee76385b8ef5 100644
--- a/webrtc/modules/video_coding/video_coding_impl.h
+++ b/webrtc/modules/video_coding/video_coding_impl.h
@@ -16,6 +16,7 @@
#include <memory>
#include <vector>
+#include "webrtc/frame_callback.h"
#include "webrtc/base/onetimeevent.h"
#include "webrtc/base/thread_annotations.h"
#include "webrtc/base/thread_checker.h"
@@ -29,7 +30,6 @@
#include "webrtc/modules/video_coding/timing.h"
#include "webrtc/modules/video_coding/utility/qp_parser.h"
#include "webrtc/system_wrappers/include/clock.h"
-#include "webrtc/system_wrappers/include/critical_section_wrapper.h"
namespace webrtc {
@@ -103,12 +103,12 @@ class VideoSender {
Clock* const clock_;
- std::unique_ptr<CriticalSectionWrapper> process_crit_sect_;
+ rtc::CriticalSection process_crit_;
rtc::CriticalSection encoder_crit_;
VCMGenericEncoder* _encoder;
VCMEncodedFrameCallback _encodedFrameCallback GUARDED_BY(encoder_crit_);
media_optimization::MediaOptimization _mediaOpt;
- VCMSendStatisticsCallback* _sendStatsCallback GUARDED_BY(process_crit_sect_);
+ VCMSendStatisticsCallback* _sendStatsCallback GUARDED_BY(process_crit_);
VCMCodecDataBase _codecDataBase GUARDED_BY(encoder_crit_);
bool frame_dropper_enabled_ GUARDED_BY(encoder_crit_);
VCMProcessTimer _sendStatsTimer;
@@ -133,7 +133,8 @@ class VideoReceiver {
VideoReceiver(Clock* clock,
EventFactory* event_factory,
NackSender* nack_sender = nullptr,
- KeyFrameRequestSender* keyframe_request_sender = nullptr);
+ KeyFrameRequestSender* keyframe_request_sender = nullptr,
pbos-webrtc 2016/04/13 22:01:14 no default arguments
sprang_webrtc 2016/04/14 07:36:23 Done.
+ EncodedImageCallback* pre_decode_image_callback = nullptr);
~VideoReceiver();
int32_t RegisterReceiveCodec(const VideoCodec* receiveCodec,
@@ -179,42 +180,36 @@ class VideoReceiver {
int64_t TimeUntilNextProcess();
void Process();
- void RegisterPreDecodeImageCallback(EncodedImageCallback* observer);
void TriggerDecoderShutdown();
protected:
int32_t Decode(const webrtc::VCMEncodedFrame& frame)
- EXCLUSIVE_LOCKS_REQUIRED(_receiveCritSect);
+ EXCLUSIVE_LOCKS_REQUIRED(receive_crit_);
int32_t RequestKeyFrame();
int32_t RequestSliceLossIndication(const uint64_t pictureID) const;
private:
Clock* const clock_;
- std::unique_ptr<CriticalSectionWrapper> process_crit_sect_;
- CriticalSectionWrapper* _receiveCritSect;
+ rtc::CriticalSection process_crit_;
+ rtc::CriticalSection receive_crit_;
VCMTiming _timing;
VCMReceiver _receiver;
VCMDecodedFrameCallback _decodedFrameCallback;
- VCMFrameTypeCallback* _frameTypeCallback GUARDED_BY(process_crit_sect_);
- VCMReceiveStatisticsCallback* _receiveStatsCallback
- GUARDED_BY(process_crit_sect_);
- VCMDecoderTimingCallback* _decoderTimingCallback
- GUARDED_BY(process_crit_sect_);
- VCMPacketRequestCallback* _packetRequestCallback
- GUARDED_BY(process_crit_sect_);
+ VCMFrameTypeCallback* _frameTypeCallback GUARDED_BY(process_crit_);
+ VCMReceiveStatisticsCallback* _receiveStatsCallback GUARDED_BY(process_crit_);
+ VCMDecoderTimingCallback* _decoderTimingCallback GUARDED_BY(process_crit_);
+ VCMPacketRequestCallback* _packetRequestCallback GUARDED_BY(process_crit_);
VCMRenderBufferSizeCallback* render_buffer_callback_
- GUARDED_BY(process_crit_sect_);
+ GUARDED_BY(process_crit_);
pbos-webrtc 2016/04/13 22:01:14 git cl format
sprang_webrtc 2016/04/14 07:36:23 That's already the output from git cl format.
VCMGenericDecoder* _decoder;
-#ifdef DEBUG_DECODER_BIT_STREAM
- FILE* _bitStreamBeforeDecoder;
-#endif
+
VCMFrameBuffer _frameFromFile;
- bool _scheduleKeyRequest GUARDED_BY(process_crit_sect_);
- bool drop_frames_until_keyframe_ GUARDED_BY(process_crit_sect_);
- size_t max_nack_list_size_ GUARDED_BY(process_crit_sect_);
+ bool _scheduleKeyRequest GUARDED_BY(process_crit_);
+ bool drop_frames_until_keyframe_ GUARDED_BY(process_crit_);
+ size_t max_nack_list_size_ GUARDED_BY(process_crit_);
- VCMCodecDataBase _codecDataBase GUARDED_BY(_receiveCritSect);
- EncodedImageCallback* pre_decode_image_callback_ GUARDED_BY(_receiveCritSect);
+ VCMCodecDataBase _codecDataBase GUARDED_BY(receive_crit_);
+ EncodedImageCallback* pre_decode_image_callback_;
VCMProcessTimer _receiveStatsTimer;
VCMProcessTimer _retransmissionTimer;

Powered by Google App Engine
This is Rietveld 408576698