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

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: Changed out path for test files 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..f66e3aa3d982908a1b63cf725ca878dcd09d0de2 100644
--- a/webrtc/modules/video_coding/video_coding_impl.h
+++ b/webrtc/modules/video_coding/video_coding_impl.h
@@ -27,9 +27,9 @@
#include "webrtc/modules/video_coding/media_optimization.h"
#include "webrtc/modules/video_coding/receiver.h"
#include "webrtc/modules/video_coding/timing.h"
+#include "webrtc/modules/video_coding/utility/ivf_file_writer.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_lock_;
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_lock_);
VCMCodecDataBase _codecDataBase GUARDED_BY(encoder_crit_);
bool frame_dropper_enabled_ GUARDED_BY(encoder_crit_);
VCMProcessTimer _sendStatsTimer;
@@ -184,43 +184,44 @@ class VideoReceiver {
protected:
int32_t Decode(const webrtc::VCMEncodedFrame& frame)
- EXCLUSIVE_LOCKS_REQUIRED(_receiveCritSect);
+ EXCLUSIVE_LOCKS_REQUIRED(receive_lock_);
int32_t RequestKeyFrame();
int32_t RequestSliceLossIndication(const uint64_t pictureID) const;
private:
+ static const bool kEnableFrameRecording = false;
+
Clock* const clock_;
- std::unique_ptr<CriticalSectionWrapper> process_crit_sect_;
- CriticalSectionWrapper* _receiveCritSect;
+ rtc::CriticalSection process_lock_;
pbos-webrtc 2016/04/12 11:20:55 s/lock/crit for consistency
sprang_webrtc 2016/04/12 14:06:17 Done.
+ rtc::CriticalSection receive_lock_;
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_lock_);
+ VCMReceiveStatisticsCallback* _receiveStatsCallback GUARDED_BY(process_lock_);
+ VCMDecoderTimingCallback* _decoderTimingCallback GUARDED_BY(process_lock_);
+ VCMPacketRequestCallback* _packetRequestCallback GUARDED_BY(process_lock_);
VCMRenderBufferSizeCallback* render_buffer_callback_
- GUARDED_BY(process_crit_sect_);
+ GUARDED_BY(process_lock_);
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_lock_);
+ bool drop_frames_until_keyframe_ GUARDED_BY(process_lock_);
+ size_t max_nack_list_size_ GUARDED_BY(process_lock_);
- VCMCodecDataBase _codecDataBase GUARDED_BY(_receiveCritSect);
- EncodedImageCallback* pre_decode_image_callback_ GUARDED_BY(_receiveCritSect);
+ VCMCodecDataBase _codecDataBase GUARDED_BY(receive_lock_);
+ EncodedImageCallback* pre_decode_image_callback_ GUARDED_BY(receive_lock_);
VCMProcessTimer _receiveStatsTimer;
VCMProcessTimer _retransmissionTimer;
VCMProcessTimer _keyRequestTimer;
QpParser qp_parser_;
ThreadUnsafeOneTimeEvent first_frame_received_;
+
+ rtc::CriticalSection file_write_lock_;
pbos-webrtc 2016/04/12 11:20:55 crit_, but I think all of this should be moved to
sprang_webrtc 2016/04/12 14:06:17 Done.
+ uint32_t ssrc_;
pbos-webrtc 2016/04/12 11:20:55 There shouldn't be a SSRC for a video-coding modul
sprang_webrtc 2016/04/12 14:06:17 Acknowledged.
+ std::unique_ptr<IvfFileWriter> file_writer_ GUARDED_BY(file_write_lock_);
};
} // namespace vcm

Powered by Google App Engine
This is Rietveld 408576698