Revert "RtpEncodingParameters::request_resolution patch 1"
This reverts commit ef7359e679e579ccb79afacf5c42e8c6020124e2.
Reason for revert: Breaks downstream test
Original change's description:
> RtpEncodingParameters::request_resolution patch 1
>
> This patch adds RtpEncodingParameters::request_resolution
> with documentation and plumming. No behaviour is changed yet.
>
> Bug: webrtc:14451
> Change-Id: I1f4f83a312ee8c293e3d8f02b950751e62048304
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/276262
> Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
> Reviewed-by: Henrik Boström <hbos@webrtc.org>
> Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
> Reviewed-by: Tomas Gunnarsson <tommi@webrtc.org>
> Commit-Queue: Jonas Oreland <jonaso@webrtc.org>
> Cr-Commit-Position: refs/heads/main@{#38172}
Bug: webrtc:14451
Change-Id: I4b9590e23ec38e9e1c2e51a4600ef96b129439f2
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/276541
Commit-Queue: Björn Terelius <terelius@webrtc.org>
Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
Reviewed-by: Jonas Oreland <jonaso@webrtc.org>
Owners-Override: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#38176}
diff --git a/api/BUILD.gn b/api/BUILD.gn
index 5bf7396..9445e3c 100644
--- a/api/BUILD.gn
+++ b/api/BUILD.gn
@@ -454,7 +454,6 @@
"../rtc_base:checks",
"../rtc_base:stringutils",
"../rtc_base/system:rtc_export",
- "video:resolution",
"video_codecs:scalability_mode",
]
absl_deps = [
diff --git a/api/rtp_parameters.h b/api/rtp_parameters.h
index 0d3c9df..e311577 100644
--- a/api/rtp_parameters.h
+++ b/api/rtp_parameters.h
@@ -23,7 +23,6 @@
#include "api/media_types.h"
#include "api/priority.h"
#include "api/rtp_transceiver_direction.h"
-#include "api/video/resolution.h"
#include "api/video_codecs/scalability_mode.h"
#include "rtc_base/system/rtc_export.h"
@@ -503,24 +502,6 @@
// https://w3c.github.io/webrtc-svc/#rtcrtpencodingparameters
absl::optional<std::string> scalability_mode;
- // Requested encode resolution.
- //
- // This field provides an alternative to `scale_resolution_down_by`
- // that is not dependent on the video source.
- //
- // When setting requested_resolution it is not necessary to adapt the
- // video source using OnOutputFormatRequest, since the VideoStreamEncoder
- // will apply downscaling if necessary. requested_resolution will also be
- // propagated to the video source, this allows downscaling earlier in the
- // pipeline which can be beneficial if the source is consumed by multiple
- // encoders, but is not strictly necessary.
- //
- // The `requested_resolution` is subject to resource adaptation.
- //
- // It is an error to set both `requested_resolution` and
- // `scale_resolution_down_by`.
- absl::optional<Resolution> requested_resolution;
-
// For an RtpSender, set to true to cause this encoding to be encoded and
// sent, and false for it not to be encoded and sent. This allows control
// across multiple encodings of a sender for turning simulcast layers on and
@@ -546,8 +527,7 @@
num_temporal_layers == o.num_temporal_layers &&
scale_resolution_down_by == o.scale_resolution_down_by &&
active == o.active && rid == o.rid &&
- adaptive_ptime == o.adaptive_ptime &&
- requested_resolution == o.requested_resolution;
+ adaptive_ptime == o.adaptive_ptime;
}
bool operator!=(const RtpEncodingParameters& o) const {
return !(*this == o);
diff --git a/api/video/BUILD.gn b/api/video/BUILD.gn
index ee62abd..060b9e4 100644
--- a/api/video/BUILD.gn
+++ b/api/video/BUILD.gn
@@ -131,11 +131,6 @@
public = [ "render_resolution.h" ]
}
-rtc_source_set("resolution") {
- visibility = [ "*" ]
- public = [ "resolution.h" ]
-}
-
rtc_library("encoded_image") {
visibility = [ "*" ]
sources = [
diff --git a/api/video/recordable_encoded_frame.h b/api/video/recordable_encoded_frame.h
index 47ea23f..702f4d7 100644
--- a/api/video/recordable_encoded_frame.h
+++ b/api/video/recordable_encoded_frame.h
@@ -24,7 +24,6 @@
class RecordableEncodedFrame {
public:
// Encoded resolution in pixels
- // TODO(bugs.webrtc.org/12114) : remove in favor of Resolution.
struct EncodedResolution {
bool empty() const { return width == 0 && height == 0; }
diff --git a/api/video/render_resolution.h b/api/video/render_resolution.h
index fcf4f12..edcf8f8 100644
--- a/api/video/render_resolution.h
+++ b/api/video/render_resolution.h
@@ -13,7 +13,6 @@
namespace webrtc {
-// TODO(bugs.webrtc.org/12114) : remove in favor of Resolution.
class RenderResolution {
public:
constexpr RenderResolution() = default;
diff --git a/api/video/resolution.h b/api/video/resolution.h
deleted file mode 100644
index 99cb622..0000000
--- a/api/video/resolution.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Copyright (c) 2022 The WebRTC project authors. All Rights Reserved.
- *
- * Use of this source code is governed by a BSD-style license
- * that can be found in the LICENSE file in the root of the source
- * tree. An additional intellectual property rights grant can be found
- * in the file PATENTS. All contributing project authors may
- * be found in the AUTHORS file in the root of the source tree.
- */
-
-#ifndef API_VIDEO_RESOLUTION_H_
-#define API_VIDEO_RESOLUTION_H_
-
-namespace webrtc {
-
-// A struct representing a video resolution in pixels.
-struct Resolution {
- int width = 0;
- int height = 0;
-};
-
-inline bool operator==(const Resolution& lhs, const Resolution& rhs) {
- return lhs.width == rhs.width && lhs.height == rhs.height;
-}
-
-inline bool operator!=(const Resolution& lhs, const Resolution& rhs) {
- return !(lhs == rhs);
-}
-
-} // namespace webrtc
-
-#endif // API_VIDEO_RESOLUTION_H_
diff --git a/api/video/video_source_interface.h b/api/video/video_source_interface.h
index 72937c7..5eb4ebf 100644
--- a/api/video/video_source_interface.h
+++ b/api/video/video_source_interface.h
@@ -80,24 +80,6 @@
// Note that the `resolutions` can change while frames are in flight and
// should only be used as a hint when constructing the webrtc::VideoFrame.
std::vector<FrameSize> resolutions;
-
- // This is the resolution requested by the user using RtpEncodingParameters.
- absl::optional<FrameSize> requested_resolution;
-
- // `active` : is (any) of the layers/sink(s) active.
- bool is_active = false;
-
- // This sub-struct contains information computed by VideoBroadcaster
- // that aggregates several VideoSinkWants (and sends them to
- // AdaptedVideoTrackSource).
- struct Aggregates {
- // `active_without_requested_resolution` is set by VideoBroadcaster
- // when aggregating sink wants if there exists any sink (encoder) that is
- // active but has not set the `requested_resolution`, i.e is relying on
- // OnOutputFormatRequest to handle encode resolution.
- bool any_active_without_requested_resolution = false;
- };
- absl::optional<Aggregates> aggregates;
};
inline bool operator==(const VideoSinkWants::FrameSize& a,
@@ -105,11 +87,6 @@
return a.width == b.width && a.height == b.height;
}
-inline bool operator!=(const VideoSinkWants::FrameSize& a,
- const VideoSinkWants::FrameSize& b) {
- return !(a == b);
-}
-
template <typename VideoFrameT>
class VideoSourceInterface {
public:
diff --git a/api/video_codecs/BUILD.gn b/api/video_codecs/BUILD.gn
index d6b7392..3f933b9 100644
--- a/api/video_codecs/BUILD.gn
+++ b/api/video_codecs/BUILD.gn
@@ -84,7 +84,6 @@
"../units:data_rate",
"../video:encoded_image",
"../video:render_resolution",
- "../video:resolution",
"../video:video_bitrate_allocation",
"../video:video_codec_constants",
"../video:video_frame",
diff --git a/api/video_codecs/video_encoder_config.h b/api/video_codecs/video_encoder_config.h
index 3d1b176..86d89d5 100644
--- a/api/video_codecs/video_encoder_config.h
+++ b/api/video_codecs/video_encoder_config.h
@@ -18,7 +18,6 @@
#include "absl/types/optional.h"
#include "api/scoped_refptr.h"
-#include "api/video/resolution.h"
#include "api/video_codecs/scalability_mode.h"
#include "api/video_codecs/sdp_video_format.h"
#include "api/video_codecs/video_codec.h"
@@ -33,11 +32,10 @@
VideoStream(const VideoStream& other);
std::string ToString() const;
- // Width/Height in pixels.
- // This is the actual width and height used to configure encoder,
- // which might be less than `requested_resolution` due to adaptation
- // or due to the source providing smaller frames than requested.
+ // Width in pixels.
size_t width;
+
+ // Height in pixels.
size_t height;
// Frame rate in fps.
@@ -71,17 +69,6 @@
// If this stream is enabled by the user, or not.
bool active;
-
- // An optional user supplied max_frame_resolution
- // than can be set independently of (adapted) VideoSource.
- // This value is set from RtpEncodingParameters::requested_resolution
- // (i.e. used for signaling app-level settings).
- //
- // The actual encode resolution is in `width` and `height`,
- // which can be lower than requested_resolution,
- // e.g. if source only provides lower resolution or
- // if resource adaptation is active.
- absl::optional<Resolution> requested_resolution;
};
class VideoEncoderConfig {