Intended to make copy construction and assignment of EncodedImage
cheaper, but otherwise not have any effect on users of the class.
Bug: webrtc:9378, chromium:931692
Change-Id: I22cf8c05f6ef7b7b5cf7ef08fd0dfc5c61211196
Reviewed-on: https://webrtc-review.googlesource.com/c/123442
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26760}
The needed constant kMaxSpatialLayers is now moved to
video_codec_constants.h.
Bug: webrtc:8311
Change-Id: Iefde2e0668ce6a8d262d2747ad497ae8891873f9
Reviewed-on: https://webrtc-review.googlesource.com/c/123181
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26739}
Reland with fixes for failing chromium tests.
Propagate VideoFrame::UpdateRect to encoder
Accumulate it in all places where frames can be dropped before they reach the encoder.
Reset UpdateRect in VideoBroadcaster if frame the previous frame is dropped.
No accumulation is done here since it's supposed to be a brief occasion then configuration have changed.
Original Reviewed-on: https://webrtc-review.googlesource.com/c/123102
Bug: webrtc:10310
Change-Id: I18be73f47f227d6392bf9cb220b549ced225714f
Reviewed-on: https://webrtc-review.googlesource.com/c/123230
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26738}
Accumulate it in all places where frames can be dropped before they reach
the encoder.
Reset UpdateRect in VideoBroadcaster if frame the previous frame is dropped.
No accumulation is done here since it's supposed to be a brief occusion then
configuration have changed.
Bug: webrtc:10310
Change-Id: I2813ecd009eb730bd99ffa0a02f979091b56bf80
Reviewed-on: https://webrtc-review.googlesource.com/c/123102
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26711}
This reverts commit 12e5d392cc8fc0ba7a04587c190daa4232e412bb.
Reason for revert: Partial Capture API is not needed, according to new info from the Chrome team.
Original change's description:
> Reland "Partial frame capture API part 1"
>
> Reland with fixes to undefined behavior.
>
> Define new optional struct in VideoFrame to signal that the frame is a
> changed part of a whole picture and add a flag to signal that partial
> update may be issued by the VideoFrame source.
>
> Also, fix too strict assumptions in FrameBuffers PasteFrom methods.
> Also, add ability to set a new buffer in video frame.
>
> Original Reviewed-on: https://webrtc-review.googlesource.com/c/120405
>
> Bug: webrtc:10152
> Change-Id: I85790dfc7cec2f23abfe9d6cd18dc76a0c343bc0
> Reviewed-on: https://webrtc-review.googlesource.com/c/120780
> Reviewed-by: Niels Moller <nisse@webrtc.org>
> Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
> Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#26493}
TBR=ilnik@webrtc.org,nisse@webrtc.org,sprang@webrtc.org
# Not skipping CQ checks because original CL landed > 1 day ago.
Bug: webrtc:10152
Change-Id: I1c1dd51a8b5a09f743f212336beb01447f60f26e
Reviewed-on: https://webrtc-review.googlesource.com/c/122092
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26638}
This reverts commit 126648763184b7e224d6c4a2f85efb4a9307378f.
Reason for revert: Partial Capture API is not needed, according to new info from the Chrome team.
Original change's description:
> Partial frame capture API part 3
>
> Implement utility for applying partial updates to video frames.
>
> Bug: webrtc:10152
> Change-Id: I295fa9f792b96bbf1140a13f1f04e4f9deaccd5c
> Reviewed-on: https://webrtc-review.googlesource.com/c/120408
> Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
> Reviewed-by: Niels Moller <nisse@webrtc.org>
> Reviewed-by: Erik Språng <sprang@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#26522}
TBR=ilnik@webrtc.org,nisse@webrtc.org,sprang@webrtc.org
# Not skipping CQ checks because original CL landed > 1 day ago.
Bug: webrtc:10152
Change-Id: I9d7c79ca571a44a419102871d3106e7065638433
Reviewed-on: https://webrtc-review.googlesource.com/c/122089
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26630}
Reland with fixes to undefined behavior.
Define new optional struct in VideoFrame to signal that the frame is a
changed part of a whole picture and add a flag to signal that partial
update may be issued by the VideoFrame source.
Also, fix too strict assumptions in FrameBuffers PasteFrom methods.
Also, add ability to set a new buffer in video frame.
Original Reviewed-on: https://webrtc-review.googlesource.com/c/120405
Bug: webrtc:10152
Change-Id: I85790dfc7cec2f23abfe9d6cd18dc76a0c343bc0
Reviewed-on: https://webrtc-review.googlesource.com/c/120780
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26493}
This reverts commit 8a21e1c9c95c9b9b570c84bdfeda0315ede9dc29.
Reason for revert: breaks buildbots
Original change's description:
> Partial frame capture API part 1
>
> Define new optional struct in VideoFrame to signal that the frame is a
> changed part of a whole picture and add a flag to signal that partial
> update may be issued by the VideoFrame source.
>
> Also, fix too strict assumptions in FrameBuffers PasteFrom methods.
> Also, add ability to set a new buffer in video frame.
>
>
> Bug: webrtc:10152
> Change-Id: Ie0da418fd60bc7a34334329292e0b860ec388788
> Reviewed-on: https://webrtc-review.googlesource.com/c/120405
> Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
> Reviewed-by: Erik Språng <sprang@webrtc.org>
> Reviewed-by: Niels Moller <nisse@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#26489}
TBR=ilnik@webrtc.org,nisse@webrtc.org,sprang@webrtc.org
Change-Id: Ibf61f28e529a444882962b984474d4849bb44e4b
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:10152
Reviewed-on: https://webrtc-review.googlesource.com/c/120760
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26490}
Define new optional struct in VideoFrame to signal that the frame is a
changed part of a whole picture and add a flag to signal that partial
update may be issued by the VideoFrame source.
Also, fix too strict assumptions in FrameBuffers PasteFrom methods.
Also, add ability to set a new buffer in video frame.
Bug: webrtc:10152
Change-Id: Ie0da418fd60bc7a34334329292e0b860ec388788
Reviewed-on: https://webrtc-review.googlesource.com/c/120405
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26489}
kMaxSimulcastStreams, kMaxSpatialLayers and kMaxTemporalStreams don't
really beling on VideoBitrateAllocation.
common_types.h is going away and it feels dubious to requrie include
of the full VideoEncoder api to use them. Therefore moving them into a
seprate file/target.
Also includes some remaining cleanup of includes.
Bug: webrtc:9271
Change-Id: I7ded3d97a9a835ac756159700774445a2b93a697
Reviewed-on: https://webrtc-review.googlesource.com/c/117305
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26299}
Use size() accessor function. Also replace most nearby uses of _buffer
with data().
Bug: webrtc:9378
Change-Id: I1ac3459612f7c6151bd057d05448da1c4e1c6e3d
Reviewed-on: https://webrtc-review.googlesource.com/c/116783
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26273}
CallTest, VideoQualityTest and VideoAnalyzer used test::TestVideoCapturer
as an interface for video sources. Change to use VideoSourceInterface instead,
since that's all they need.
This is a preparation for making test::VcmCapturer usable as a
VideoTrackSource, and replace use of cricket::VideoCapturer in example code.
Bug: webrtc:6353
Change-Id: I445f5f6f9b7342230b89f53a5722df9c9e92834f
Reviewed-on: https://webrtc-review.googlesource.com/c/114881
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26047}
- Add chroma siting to color space RTP extension.
- Use 16 bits for max/min luminance.
- Change denominator of chromaticity and luminance.
- Add RTC_DCHECKs to protect against overflows.
Bug: webrtc:8651
Change-Id: If8b95bad6241381224eaba9c5bccce06a65a9195
Reviewed-on: https://webrtc-review.googlesource.com/c/113804
Commit-Queue: Johannes Kron <kron@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25990}
- Enable vp9 flexible mode in VideoEngine if 3 spatial layers are set.
- Enable flexible mode in loopback tools and quality tests.
- Reset first active spatial layer on keyframe in encoder.
- Ensure duplicate references are not set by the sender in video header.
- Set references manually for flexible mode in vp9 encoder.
- Delay new activated layers until next base layer frame.
- On receive side put each spatial layer as a separate frame to FrameBuffer
and return several frames combined from FrameBuffer.
Bug: webrtc:10049,webrtc:9794,webrtc:9784
Change-Id: I01e69f134cc145deba666ccc92deb1d37a324ede
Reviewed-on: https://webrtc-review.googlesource.com/c/112289
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25895}
This setter method is intended to replace all direct assignments to
the |_size| member. A later cl will make that member private, and
rename it to |capacity_|.
Bug: webrtc:9378
Change-Id: I37e9eb54d1c72bcd4cb8a1cfef34bbc6c209bd0d
Reviewed-on: https://webrtc-review.googlesource.com/c/113060
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25894}
kInvalid does not have a corresponding entry in the standard is therefore removed.
kUNSPECIFIED should be used instead.
Bug: webrtc:8651
Change-Id: Iee8cd85830aedaa4a9102251121b9975d40fa5e2
Reviewed-on: https://webrtc-review.googlesource.com/c/112421
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Johannes Kron <kron@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25871}
Deleted from subclass video_coding::EncodedFrame. Also delete Length
and SetLength methods on the intermediate class
video_coding::VCMEncodedFrame.
Bug: webrtc:9378
Change-Id: I3c90b14735f622f50b2f403f79072e22fc025d11
Reviewed-on: https://webrtc-review.googlesource.com/c/112131
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25838}
Only caller was the RtpFrameObject constructor, so it's
not needed in the interface.
To be able to delete downstream overrides, add a temporary
default implementation. Method will be completely deleted in part 2.
Bug: webrtc:9378
Change-Id: I9083b6284313b6ebce854c6f2cec4617953331d9
Reviewed-on: https://webrtc-review.googlesource.com/c/112128
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25822}
Color space information will be transmitted as uint8_t. It's therefore
necessary to convert from uint8_t to the corresponding enums.
Bug: webrtc:8651
Change-Id: Ib7e7f9f6b4d7e0c291d283822180144944f3ea1e
Reviewed-on: https://webrtc-review.googlesource.com/c/111757
Commit-Queue: Johannes Kron <kron@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25797}
Move HdrMetadata to ColorSpace as part of preparing for joint transmission
of these two objects.
Bug: webrtc:8651
Change-Id: Ie948011a2c0106d5967cb5ef3b9565217e798272
Reviewed-on: https://webrtc-review.googlesource.com/c/111481
Commit-Queue: Johannes Kron <kron@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25730}
This CL changes the color space enum indices to have the same
values as specified in H264. The reason for this is to simplify
a coming transmission protocol for color space information.
Bug: webrtc:8651
Change-Id: I16fccae137f75d96ed925ed1421b111ec29ae7c9
Reviewed-on: https://webrtc-review.googlesource.com/c/111245
Commit-Queue: Johannes Kron <kron@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Emircan Uysaler <emircan@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25697}
Compared the original CL: https://webrtc-review.googlesource.com/c/src/+/94782
This new CL added backward compatible functions to WebRtcMediaEngineFactory so that internal projects will not be broken.
Because of that, now we can revert all the changes to SDK and PeerConnection and do it in following CLs. This makes this CL cleaner.
One temporary disadvantage of this is the media engine now need to take a dependency onto builtin video bitrate factory, but practically it just moved code around and should not result in a large binary size change. We can remove this dependency later if needed.
Bug: webrtc:9513
Change-Id: I38708762ff365e4ca05974b99fac71edc739a756
Reviewed-on: https://webrtc-review.googlesource.com/c/109040
Commit-Queue: Jiawei Ou <ouj@fb.com>
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Seth Hampson <shampson@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25574}