|
Add metadata to media::VideoFrame and plumb it through IPC/MediaStream.
This change has three main goals: First, to be able to pass extra
information associated with each VideoFrame from the capture source to
the downstream consumers (see bugs for details). Second, to eliminate
redundancies in the current MediaStreamVideoSink API; specifically,
media::VideoFrame contains most of the same properties as
media::VideoCaptureFormat. Third, to fully support the separate
VideoFrame concepts of "coded size" versus "visible size" in the capture
pipeline, rather than force all producers/consumers to deal with packed
data. (Using packed frame sizes can be suboptimal for performance in
some use cases.)
The metadata is stored in a base::DictionaryValue owned by
media::VideoFrame to allow for structured data passing. DictionaryValue
is a great choice since an efficient IPC (de)serialization
implementation already exists, and the metadata can be easily
pretty-printed for logging where needed. Also, it's logical for
VideoFrame to own the metadata, as both need to be passed/shared
together across threads without copying.
Finally, this change includes one new use of the metadata as a
motivation for its existence: The tab/desktop capture code now includes
capture timing information, which will allow Cast streaming sessions to
be analyzed for user experience improvements. In the future, some of
the special-use-case data members in VideoFrame should be moved into
the metadata.
BUG= 461116, 462101
Committed: https://crrev.com/78807dc7968c9a397326aef113435cbca486f96c
Cr-Commit-Position: refs/heads/master@{#318954}
Total comments: 2
Total comments: 4
Total comments: 4
|
Unified diffs |
Side-by-side diffs |
Delta from patch set |
Stats (+749 lines, -441 lines) |
Patch |
|
M |
chrome/renderer/media/cast_receiver_session_delegate.cc
|
View
|
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
|
M |
chrome/renderer/media/cast_rtp_stream.cc
|
View
|
|
1 chunk |
+0 lines, -1 line |
0 comments
|
Download
|
|
M |
content/browser/media/capture/content_video_capture_device_core.h
|
View
|
1
2
3
4
5
6
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
|
M |
content/browser/media/capture/content_video_capture_device_core.cc
|
View
|
1
2
3
4
5
6
7
|
5 chunks |
+15 lines, -8 lines |
0 comments
|
Download
|
|
M |
content/browser/media/capture/desktop_capture_device_aura_unittest.cc
|
View
|
|
1 chunk |
+1 line, -2 lines |
0 comments
|
Download
|
|
M |
content/browser/media/capture/desktop_capture_device_unittest.cc
|
View
|
|
1 chunk |
+1 line, -2 lines |
0 comments
|
Download
|
|
M |
content/browser/media/capture/web_contents_video_capture_device_unittest.cc
|
View
|
1
2
3
4
5
|
1 chunk |
+7 lines, -4 lines |
0 comments
|
Download
|
|
M |
content/browser/renderer_host/media/video_capture_controller.h
|
View
|
|
1 chunk |
+0 lines, -1 line |
0 comments
|
Download
|
|
M |
content/browser/renderer_host/media/video_capture_controller.cc
|
View
|
1
2
3
4
5
|
9 chunks |
+36 lines, -18 lines |
0 comments
|
Download
|
|
M |
content/browser/renderer_host/media/video_capture_controller_event_handler.h
|
View
|
1
|
2 chunks |
+13 lines, -7 lines |
0 comments
|
Download
|
|
M |
content/browser/renderer_host/media/video_capture_controller_unittest.cc
|
View
|
|
11 chunks |
+14 lines, -35 lines |
0 comments
|
Download
|
|
M |
content/browser/renderer_host/media/video_capture_host.h
|
View
|
|
2 chunks |
+16 lines, -11 lines |
0 comments
|
Download
|
|
M |
content/browser/renderer_host/media/video_capture_host.cc
|
View
|
|
5 chunks |
+37 lines, -16 lines |
0 comments
|
Download
|
|
M |
content/browser/renderer_host/media/video_capture_host_unittest.cc
|
View
|
|
6 chunks |
+39 lines, -40 lines |
0 comments
|
Download
|
|
M |
content/browser/renderer_host/media/video_capture_manager_unittest.cc
|
View
|
|
1 chunk |
+14 lines, -10 lines |
0 comments
|
Download
|
|
M |
content/common/media/video_capture_messages.h
|
View
|
|
2 chunks |
+22 lines, -12 lines |
0 comments
|
Download
|
|
M |
content/renderer/media/media_stream_video_capture_source_unittest.cc
|
View
|
1
2
3
4
5
|
2 chunks |
+19 lines, -8 lines |
0 comments
|
Download
|
|
M |
content/renderer/media/media_stream_video_track.cc
|
View
|
|
2 chunks |
+2 lines, -7 lines |
0 comments
|
Download
|
|
M |
content/renderer/media/media_stream_video_track_unittest.cc
|
View
|
|
1 chunk |
+0 lines, -1 line |
0 comments
|
Download
|
|
M |
content/renderer/media/mock_media_stream_video_sink.h
|
View
|
1
2
3
4
5
6
|
1 chunk |
+2 lines, -4 lines |
0 comments
|
Download
|
|
M |
content/renderer/media/mock_media_stream_video_sink.cc
|
View
|
|
1 chunk |
+0 lines, -1 line |
0 comments
|
Download
|
|
M |
content/renderer/media/mock_media_stream_video_source.h
|
View
|
|
1 chunk |
+0 lines, -5 lines |
0 comments
|
Download
|
|
M |
content/renderer/media/mock_media_stream_video_source.cc
|
View
|
|
1 chunk |
+1 line, -11 lines |
0 comments
|
Download
|
|
M |
content/renderer/media/rtc_video_renderer.h
|
View
|
|
1 chunk |
+0 lines, -1 line |
0 comments
|
Download
|
|
M |
content/renderer/media/rtc_video_renderer.cc
|
View
|
|
2 chunks |
+1 line, -2 lines |
0 comments
|
Download
|
|
M |
content/renderer/media/video_capture_impl.h
|
View
|
|
2 chunks |
+6 lines, -7 lines |
0 comments
|
Download
|
|
M |
content/renderer/media/video_capture_impl.cc
|
View
|
1
2
3
4
5
|
5 chunks |
+15 lines, -20 lines |
0 comments
|
Download
|
|
M |
content/renderer/media/video_capture_impl_manager_unittest.cc
|
View
|
|
1 chunk |
+1 line, -2 lines |
0 comments
|
Download
|
|
M |
content/renderer/media/video_capture_impl_unittest.cc
|
View
|
|
1 chunk |
+1 line, -2 lines |
0 comments
|
Download
|
|
M |
content/renderer/media/video_capture_message_filter.h
|
View
|
|
3 chunks |
+16 lines, -16 lines |
0 comments
|
Download
|
|
M |
content/renderer/media/video_capture_message_filter.cc
|
View
|
|
2 chunks |
+18 lines, -16 lines |
0 comments
|
Download
|
|
M |
content/renderer/media/video_capture_message_filter_unittest.cc
|
View
|
|
4 chunks |
+55 lines, -41 lines |
0 comments
|
Download
|
|
M |
content/renderer/media/video_source_handler.cc
|
View
|
|
2 chunks |
+3 lines, -6 lines |
0 comments
|
Download
|
|
M |
content/renderer/media/video_track_adapter.h
|
View
|
|
1 chunk |
+0 lines, -1 line |
0 comments
|
Download
|
|
M |
content/renderer/media/video_track_adapter.cc
|
View
|
1
2
3
4
5
6
7
8
|
6 chunks |
+12 lines, -16 lines |
0 comments
|
Download
|
|
M |
content/renderer/media/webrtc/media_stream_remote_video_source.cc
|
View
|
1
2
3
4
5
6
7
8
|
2 chunks |
+6 lines, -16 lines |
0 comments
|
Download
|
|
M |
content/renderer/media/webrtc/video_destination_handler.cc
|
View
|
|
4 chunks |
+7 lines, -16 lines |
0 comments
|
Download
|
|
M |
content/renderer/media/webrtc/webrtc_video_track_adapter.cc
|
View
|
|
2 chunks |
+4 lines, -9 lines |
0 comments
|
Download
|
|
M |
content/renderer/pepper/pepper_media_stream_video_track_host.h
|
View
|
|
1 chunk |
+0 lines, -1 line |
0 comments
|
Download
|
|
M |
content/renderer/pepper/pepper_media_stream_video_track_host.cc
|
View
|
|
8 chunks |
+24 lines, -34 lines |
0 comments
|
Download
|
|
M |
content/renderer/pepper/pepper_platform_video_capture.h
|
View
|
|
1 chunk |
+0 lines, -1 line |
0 comments
|
Download
|
|
M |
content/renderer/pepper/pepper_platform_video_capture.cc
|
View
|
|
1 chunk |
+1 line, -2 lines |
0 comments
|
Download
|
|
M |
content/renderer/pepper/pepper_video_capture_host.h
|
View
|
|
1 chunk |
+1 line, -2 lines |
0 comments
|
Download
|
|
M |
content/renderer/pepper/pepper_video_capture_host.cc
|
View
|
1
2
3
4
5
|
3 chunks |
+14 lines, -8 lines |
0 comments
|
Download
|
|
M |
media/base/BUILD.gn
|
View
|
1
2
3
4
|
2 chunks |
+4 lines, -0 lines |
0 comments
|
Download
|
|
M |
media/base/video_capturer_source.h
|
View
|
|
1 chunk |
+0 lines, -1 line |
0 comments
|
Download
|
|
M |
media/base/video_frame.h
|
View
|
1
2
3
4
5
|
3 chunks |
+12 lines, -0 lines |
0 comments
|
Download
|
|
A |
media/base/video_frame_metadata.h
|
View
|
1
2
3
4
|
1 chunk |
+70 lines, -0 lines |
0 comments
|
Download
|
|
A |
media/base/video_frame_metadata.cc
|
View
|
1
2
3
4
5
|
1 chunk |
+125 lines, -0 lines |
0 comments
|
Download
|
|
M |
media/base/video_frame_unittest.cc
|
View
|
1
2
3
4
|
1 chunk |
+79 lines, -0 lines |
0 comments
|
Download
|
|
M |
media/cast/sender/video_sender.cc
|
View
|
1
2
3
4
5
|
2 chunks |
+25 lines, -9 lines |
0 comments
|
Download
|
|
M |
media/media.gyp
|
View
|
1
2
3
4
5
6
7
8
|
2 chunks |
+4 lines, -0 lines |
0 comments
|
Download
|
|
M |
media/video/capture/fake_video_capture_device_unittest.cc
|
View
|
|
2 chunks |
+2 lines, -3 lines |
0 comments
|
Download
|
|
M |
media/video/capture/video_capture_device.h
|
View
|
1
2
3
4
5
6
|
1 chunk |
+0 lines, -1 line |
0 comments
|
Download
|
|
M |
media/video/capture/video_capture_device_unittest.cc
|
View
|
|
2 chunks |
+2 lines, -3 lines |
0 comments
|
Download
|
Total messages: 40 (10 generated)
|