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

Issue 1853813002: Add support for writing raw encoder output to .ivf files. (Closed)

Created:
4 years, 8 months ago by sprang_webrtc
Modified:
4 years, 8 months ago
Reviewers:
pbos-webrtc, mflodman
CC:
webrtc-reviews_webrtc.org, tterriberry_mozilla.com, zhengzhonghou_agora.io, video-team_agora.io, stefan-webrtc, mflodman
Base URL:
https://chromium.googlesource.com/external/webrtc.git@master
Target Ref:
refs/pending/heads/master
Project:
webrtc
Visibility:
Public.

Description

Add support for writing raw encoder output to .ivf files. Also refactor GenericEncoder to use these file writers, and remove use of preprocessor to enable file writing. BUG= Committed: https://crrev.com/3911c26bc01fa4d5236c6d84b6d7a1e3443a79ba Cr-Commit-Position: refs/heads/master@{#12372}

Patch Set 1 #

Patch Set 2 : Cleanup #

Total comments: 2

Patch Set 3 : Moved file recording to ViEEncoder #

Total comments: 8

Patch Set 4 : Addressed comments #

Patch Set 5 : Use rtc::StreamInterface instead of FILE, add simple tests #

Patch Set 6 : Added checks #

Total comments: 10

Patch Set 7 : Some cleanup, use ntp timestamps when possible #

Patch Set 8 : Test, bugfix for timestamp handling #

Patch Set 9 : Removed dependency on rtc_base #

Patch Set 10 : Added support for file writing on the receive side as well #

Patch Set 11 : Fixed cast, removed use of stdnam #

Patch Set 12 : Fix type mismatch in test #

Total comments: 2

Patch Set 13 : Changed out path for test files #

Total comments: 12

Patch Set 14 : Moved receive recording to VideoReceiveStream #

Patch Set 15 : Set pre-decode image callback on construction #

Total comments: 6

Patch Set 16 : Addressed comments #

Patch Set 17 : Rebase #

Unified diffs Side-by-side diffs Delta from patch set Stats (+667 lines, -280 lines) Patch
M webrtc/modules/modules.gyp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 chunk +1 line, -0 lines 0 comments Download
M webrtc/modules/video_coding/BUILD.gn View 1 chunk +2 lines, -0 lines 0 comments Download
M webrtc/modules/video_coding/generic_encoder.h View 1 2 3 4 5 6 7 3 chunks +32 lines, -75 lines 0 comments Download
M webrtc/modules/video_coding/generic_encoder.cc View 1 2 3 11 chunks +48 lines, -78 lines 0 comments Download
M webrtc/modules/video_coding/include/video_coding.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 2 chunks +2 lines, -3 lines 0 comments Download
A webrtc/modules/video_coding/utility/ivf_file_writer.h View 1 2 3 4 5 6 7 8 1 chunk +56 lines, -0 lines 0 comments Download
A webrtc/modules/video_coding/utility/ivf_file_writer.cc View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +197 lines, -0 lines 0 comments Download
A webrtc/modules/video_coding/utility/ivf_file_writer_unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +176 lines, -0 lines 0 comments Download
M webrtc/modules/video_coding/utility/video_coding_utility.gyp View 1 chunk +2 lines, -0 lines 0 comments Download
M webrtc/modules/video_coding/video_coding_impl.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 5 chunks +18 lines, -23 lines 0 comments Download
M webrtc/modules/video_coding/video_coding_impl.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 7 chunks +11 lines, -10 lines 0 comments Download
M webrtc/modules/video_coding/video_receiver.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 28 chunks +54 lines, -85 lines 0 comments Download
M webrtc/modules/video_coding/video_receiver_unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 chunk +1 line, -1 line 0 comments Download
M webrtc/modules/video_coding/video_sender.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 3 chunks +2 lines, -3 lines 0 comments Download
M webrtc/video/video_receive_stream.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 2 chunks +3 lines, -0 lines 0 comments Download
M webrtc/video/video_receive_stream.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 6 chunks +33 lines, -2 lines 0 comments Download
M webrtc/video/vie_encoder.h View 1 2 3 3 chunks +6 lines, -0 lines 0 comments Download
M webrtc/video/vie_encoder.cc View 1 2 3 4 5 6 7 8 9 1 chunk +23 lines, -0 lines 0 comments Download

Messages

Total messages: 28 (7 generated)
sprang_webrtc
4 years, 8 months ago (2016-04-01 15:35:57 UTC) #2
pbos-webrtc
https://codereview.webrtc.org/1853813002/diff/20001/webrtc/modules/video_coding/generic_encoder.h File webrtc/modules/video_coding/generic_encoder.h (right): https://codereview.webrtc.org/1853813002/diff/20001/webrtc/modules/video_coding/generic_encoder.h#newcode79 webrtc/modules/video_coding/generic_encoder.h:79: static const bool kEnableFrameRecording = false; I think this ...
4 years, 8 months ago (2016-04-04 11:22:23 UTC) #3
sprang_webrtc
https://codereview.webrtc.org/1853813002/diff/20001/webrtc/modules/video_coding/generic_encoder.h File webrtc/modules/video_coding/generic_encoder.h (right): https://codereview.webrtc.org/1853813002/diff/20001/webrtc/modules/video_coding/generic_encoder.h#newcode79 webrtc/modules/video_coding/generic_encoder.h:79: static const bool kEnableFrameRecording = false; On 2016/04/04 11:22:23, ...
4 years, 8 months ago (2016-04-05 10:35:38 UTC) #4
pbos-webrtc
https://codereview.webrtc.org/1853813002/diff/40001/webrtc/modules/video_coding/generic_encoder.h File webrtc/modules/video_coding/generic_encoder.h (right): https://codereview.webrtc.org/1853813002/diff/40001/webrtc/modules/video_coding/generic_encoder.h#newcode78 webrtc/modules/video_coding/generic_encoder.h:78: VideoRotation _rotation; Can you git cl format this entire ...
4 years, 8 months ago (2016-04-05 13:31:28 UTC) #5
sprang_webrtc
https://codereview.webrtc.org/1853813002/diff/40001/webrtc/modules/video_coding/generic_encoder.h File webrtc/modules/video_coding/generic_encoder.h (right): https://codereview.webrtc.org/1853813002/diff/40001/webrtc/modules/video_coding/generic_encoder.h#newcode78 webrtc/modules/video_coding/generic_encoder.h:78: VideoRotation _rotation; On 2016/04/05 13:31:27, pbos-webrtc wrote: > Can ...
4 years, 8 months ago (2016-04-05 16:00:53 UTC) #6
sprang_webrtc
Added tests. ptal
4 years, 8 months ago (2016-04-06 15:55:33 UTC) #7
pbos-webrtc
https://codereview.webrtc.org/1853813002/diff/100001/webrtc/modules/video_coding/generic_encoder.h File webrtc/modules/video_coding/generic_encoder.h (right): https://codereview.webrtc.org/1853813002/diff/100001/webrtc/modules/video_coding/generic_encoder.h#newcode2 webrtc/modules/video_coding/generic_encoder.h:2: * Copyright (c) 2012 The WebRTC project authors. All ...
4 years, 8 months ago (2016-04-07 16:16:04 UTC) #8
pbos-webrtc
lgtm, I trust you on the rest
4 years, 8 months ago (2016-04-07 16:16:15 UTC) #9
sprang_webrtc
I had to rework this to not depend on rtc_base, and extended file recording to ...
4 years, 8 months ago (2016-04-11 15:57:28 UTC) #10
mflodman
https://codereview.webrtc.org/1853813002/diff/220001/webrtc/modules/video_coding/utility/ivf_file_writer.cc File webrtc/modules/video_coding/utility/ivf_file_writer.cc (right): https://codereview.webrtc.org/1853813002/diff/220001/webrtc/modules/video_coding/utility/ivf_file_writer.cc#newcode64 webrtc/modules/video_coding/utility/ivf_file_writer.cc:64: ByteWriter<uint16_t>::WriteLittleEndian(&ivf_header[4], 0); // Verison. Verison typo.
4 years, 8 months ago (2016-04-12 08:02:38 UTC) #12
mflodman
Then ViEEncoder LGTM when pbos is happy.
4 years, 8 months ago (2016-04-12 08:05:49 UTC) #13
pbos-webrtc
https://codereview.webrtc.org/1853813002/diff/240001/webrtc/modules/video_coding/video_coding_impl.h File webrtc/modules/video_coding/video_coding_impl.h (right): https://codereview.webrtc.org/1853813002/diff/240001/webrtc/modules/video_coding/video_coding_impl.h#newcode195 webrtc/modules/video_coding/video_coding_impl.h:195: rtc::CriticalSection process_lock_; s/lock/crit for consistency https://codereview.webrtc.org/1853813002/diff/240001/webrtc/modules/video_coding/video_coding_impl.h#newcode222 webrtc/modules/video_coding/video_coding_impl.h:222: rtc::CriticalSection file_write_lock_; ...
4 years, 8 months ago (2016-04-12 11:20:56 UTC) #14
pbos-webrtc
https://codereview.webrtc.org/1853813002/diff/240001/webrtc/modules/video_coding/video_receiver.cc File webrtc/modules/video_coding/video_receiver.cc (right): https://codereview.webrtc.org/1853813002/diff/240001/webrtc/modules/video_coding/video_receiver.cc#newcode562 webrtc/modules/video_coding/video_receiver.cc:562: pre_decode_image_callback_ = observer; Actually, can we require this to ...
4 years, 8 months ago (2016-04-12 11:22:34 UTC) #15
sprang_webrtc
https://codereview.webrtc.org/1853813002/diff/220001/webrtc/modules/video_coding/utility/ivf_file_writer.cc File webrtc/modules/video_coding/utility/ivf_file_writer.cc (right): https://codereview.webrtc.org/1853813002/diff/220001/webrtc/modules/video_coding/utility/ivf_file_writer.cc#newcode64 webrtc/modules/video_coding/utility/ivf_file_writer.cc:64: ByteWriter<uint16_t>::WriteLittleEndian(&ivf_header[4], 0); // Verison. On 2016/04/12 08:02:38, mflodman wrote: ...
4 years, 8 months ago (2016-04-12 14:06:18 UTC) #16
pbos-webrtc
lgtm https://codereview.webrtc.org/1853813002/diff/280001/webrtc/modules/video_coding/video_coding_impl.h File webrtc/modules/video_coding/video_coding_impl.h (right): https://codereview.webrtc.org/1853813002/diff/280001/webrtc/modules/video_coding/video_coding_impl.h#newcode136 webrtc/modules/video_coding/video_coding_impl.h:136: KeyFrameRequestSender* keyframe_request_sender = nullptr, no default arguments https://codereview.webrtc.org/1853813002/diff/280001/webrtc/modules/video_coding/video_coding_impl.h#newcode203 ...
4 years, 8 months ago (2016-04-13 22:01:14 UTC) #17
sprang_webrtc
https://codereview.webrtc.org/1853813002/diff/280001/webrtc/modules/video_coding/video_coding_impl.h File webrtc/modules/video_coding/video_coding_impl.h (right): https://codereview.webrtc.org/1853813002/diff/280001/webrtc/modules/video_coding/video_coding_impl.h#newcode136 webrtc/modules/video_coding/video_coding_impl.h:136: KeyFrameRequestSender* keyframe_request_sender = nullptr, On 2016/04/13 22:01:14, pbos-webrtc wrote: ...
4 years, 8 months ago (2016-04-14 07:36:23 UTC) #18
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1853813002/320001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1853813002/320001
4 years, 8 months ago (2016-04-14 14:28:36 UTC) #21
commit-bot: I haz the power
Try jobs failed on following builders: win_baremetal on tryserver.webrtc (JOB_TIMED_OUT, no build URL)
4 years, 8 months ago (2016-04-14 16:29:20 UTC) #23
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1853813002/320001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1853813002/320001
4 years, 8 months ago (2016-04-15 08:11:40 UTC) #25
commit-bot: I haz the power
Committed patchset #17 (id:320001)
4 years, 8 months ago (2016-04-15 08:24:19 UTC) #26
commit-bot: I haz the power
4 years, 8 months ago (2016-04-15 08:24:29 UTC) #28
Message was sent while issue was closed.
Patchset 17 (id:??) landed as
https://crrev.com/3911c26bc01fa4d5236c6d84b6d7a1e3443a79ba
Cr-Commit-Position: refs/heads/master@{#12372}

Powered by Google App Engine
This is Rietveld 408576698