Index: webrtc/video/vie_encoder.cc |
diff --git a/webrtc/video/vie_encoder.cc b/webrtc/video/vie_encoder.cc |
index 24b8ce3cd1c4e392d2a0fef1ec8ffb8f00a4050b..f587765deaf506624b2e0cffa09fa2cb36511095 100644 |
--- a/webrtc/video/vie_encoder.cc |
+++ b/webrtc/video/vie_encoder.cc |
@@ -427,6 +427,22 @@ 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) { |
pbos-webrtc
2016/04/05 13:31:28
This isn't done on a known thread, for simulcast w
sprang_webrtc
2016/04/05 16:00:53
Ah. I'm assuming now that callbacks are at least n
|
+ int layer = rtp_video_hdr->simulcastIdx; |
+ if (file_writers_[layer] == nullptr) { |
+ uint64_t instance_id = reinterpret_cast<uint64_t>(this); |
+ std::ostringstream oss; |
+ oss << "bitstream_" << instance_id << "_" << layer << ".ivf"; |
+ file_writers_[layer] = |
+ IvfFileWriter::Open(oss.str().c_str(), rtp_video_hdr->codec); |
+ } |
+ if (file_writers_[layer].get() != nullptr) { |
+ bool ok = file_writers_[layer]->WriteFrame(encoded_image); |
+ RTC_DCHECK(ok); |
+ } |
+ } |
+ |
return success ? 0 : -1; |
} |