Index: webrtc/video/vie_encoder.cc |
diff --git a/webrtc/video/vie_encoder.cc b/webrtc/video/vie_encoder.cc |
index 24b8ce3cd1c4e392d2a0fef1ec8ffb8f00a4050b..6e87b353a74024f4febf5bbef7c6186be4978f3a 100644 |
--- a/webrtc/video/vie_encoder.cc |
+++ b/webrtc/video/vie_encoder.cc |
@@ -427,6 +427,29 @@ int32_t ViEEncoder::SendData(const uint8_t payload_type, |
encoded_image.capture_time_ms_, encoded_image._buffer, |
encoded_image._length, fragmentation_header, rtp_video_hdr); |
overuse_detector_->FrameSent(encoded_image._timeStamp); |
+ |
+ if (kEnableFrameRecording) { |
+ int layer = rtp_video_hdr->simulcastIdx; |
+ IvfFileWriter* file_writer; |
+ { |
+ rtc::CritScope lock(&data_cs_); |
+ if (file_writers_[layer] == nullptr) { |
+ std::ostringstream oss; |
+ oss << "send_bitstream_ssrc"; |
+ for (uint32_t ssrc : ssrcs_) |
+ oss << "_" << ssrc; |
+ oss << "_layer" << layer << ".ivf"; |
+ file_writers_[layer] = |
+ IvfFileWriter::Open(oss.str(), rtp_video_hdr->codec); |
+ } |
+ file_writer = file_writers_[layer].get(); |
+ } |
+ if (file_writer) { |
+ bool ok = file_writer->WriteFrame(encoded_image); |
+ RTC_DCHECK(ok); |
+ } |
+ } |
+ |
return success ? 0 : -1; |
} |