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

Unified Diff: content/renderer/media/media_stream_constraints_util_unittest.cc

Issue 2870413004: Detect frames from rotated devices in VideoTrackAdapter on Android. (Closed)
Patch Set: address comment by tommi@ Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/renderer/media/media_stream_constraints_util_unittest.cc
diff --git a/content/renderer/media/media_stream_constraints_util_unittest.cc b/content/renderer/media/media_stream_constraints_util_unittest.cc
index 750ceeb79f069070981ab15cb47d1b071073475f..3fa2411545d30e72d48cd317b460f3dcd09ab47d 100644
--- a/content/renderer/media/media_stream_constraints_util_unittest.cc
+++ b/content/renderer/media/media_stream_constraints_util_unittest.cc
@@ -125,7 +125,7 @@ TEST_F(MediaStreamConstraintsUtilTest, VideoTrackAdapterSettingsUnconstrained) {
MockConstraintFactory constraint_factory;
auto result = SelectVideoTrackAdapterSettings(
constraint_factory.CreateWebMediaConstraints().Basic(), resolution_set,
- frame_rate_set, SourceFormat());
+ frame_rate_set, SourceFormat(), false);
EXPECT_EQ(kSourceHeight, result.max_height);
EXPECT_EQ(kSourceWidth, result.max_width);
EXPECT_EQ(0.0, result.min_aspect_ratio);
@@ -140,7 +140,7 @@ TEST_F(MediaStreamConstraintsUtilTest, VideoTrackAdapterSettingsUnconstrained) {
constraint_factory.basic().height.SetIdeal(kIdealHeight);
auto result = SelectVideoTrackAdapterSettings(
constraint_factory.CreateWebMediaConstraints().Basic(), resolution_set,
- frame_rate_set, SourceFormat());
+ frame_rate_set, SourceFormat(), false);
EXPECT_EQ(kIdealHeight, result.max_height);
EXPECT_EQ(std::round(kIdealHeight * kSourceAspectRatio), result.max_width);
EXPECT_EQ(0.0, result.min_aspect_ratio);
@@ -155,7 +155,7 @@ TEST_F(MediaStreamConstraintsUtilTest, VideoTrackAdapterSettingsUnconstrained) {
constraint_factory.basic().width.SetIdeal(kIdealWidth);
auto result = SelectVideoTrackAdapterSettings(
constraint_factory.CreateWebMediaConstraints().Basic(), resolution_set,
- frame_rate_set, SourceFormat());
+ frame_rate_set, SourceFormat(), false);
EXPECT_EQ(std::round(kIdealWidth / kSourceAspectRatio), result.max_height);
EXPECT_EQ(kIdealWidth, result.max_width);
EXPECT_EQ(0.0, result.min_aspect_ratio);
@@ -170,7 +170,7 @@ TEST_F(MediaStreamConstraintsUtilTest, VideoTrackAdapterSettingsUnconstrained) {
constraint_factory.basic().aspect_ratio.SetIdeal(kIdealAspectRatio);
auto result = SelectVideoTrackAdapterSettings(
constraint_factory.CreateWebMediaConstraints().Basic(), resolution_set,
- frame_rate_set, SourceFormat());
+ frame_rate_set, SourceFormat(), false);
EXPECT_EQ(kSourceHeight, result.max_height);
EXPECT_EQ(std::round(kSourceHeight * kIdealAspectRatio), result.max_width);
EXPECT_EQ(0.0, result.min_aspect_ratio);
@@ -185,7 +185,7 @@ TEST_F(MediaStreamConstraintsUtilTest, VideoTrackAdapterSettingsUnconstrained) {
constraint_factory.basic().frame_rate.SetIdeal(kIdealFrameRate);
auto result = SelectVideoTrackAdapterSettings(
constraint_factory.CreateWebMediaConstraints().Basic(), resolution_set,
- frame_rate_set, SourceFormat());
+ frame_rate_set, SourceFormat(), false);
EXPECT_EQ(kSourceHeight, result.max_height);
EXPECT_EQ(kSourceWidth, result.max_width);
EXPECT_EQ(0.0, result.min_aspect_ratio);
@@ -207,7 +207,7 @@ TEST_F(MediaStreamConstraintsUtilTest, VideoTrackAdapterSettingsUnconstrained) {
constraint_factory.basic().frame_rate.SetIdeal(kIdealFrameRate);
auto result = SelectVideoTrackAdapterSettings(
constraint_factory.CreateWebMediaConstraints().Basic(), resolution_set,
- frame_rate_set, SourceFormat());
+ frame_rate_set, SourceFormat(), false);
EXPECT_EQ(kIdealHeight, result.max_height);
EXPECT_EQ(kIdealWidth, result.max_width);
EXPECT_EQ(0.0, result.min_aspect_ratio);
@@ -234,7 +234,7 @@ TEST_F(MediaStreamConstraintsUtilTest, VideoTrackAdapterSettingsConstrained) {
MockConstraintFactory constraint_factory;
auto result = SelectVideoTrackAdapterSettings(
constraint_factory.CreateWebMediaConstraints().Basic(), resolution_set,
- frame_rate_set, SourceFormat());
+ frame_rate_set, SourceFormat(), false);
EXPECT_EQ(kSourceHeight, result.max_height);
EXPECT_EQ(kSourceWidth, result.max_width);
EXPECT_EQ(kMinAspectRatio, result.min_aspect_ratio);
@@ -251,7 +251,7 @@ TEST_F(MediaStreamConstraintsUtilTest, VideoTrackAdapterSettingsConstrained) {
constraint_factory.basic().height.SetIdeal(kIdealHeight);
auto result = SelectVideoTrackAdapterSettings(
constraint_factory.CreateWebMediaConstraints().Basic(), resolution_set,
- frame_rate_set, SourceFormat());
+ frame_rate_set, SourceFormat(), false);
EXPECT_EQ(kMinHeight, result.max_height);
// kMinWidth > kMinHeight * kNativeAspectRatio
EXPECT_EQ(kMinWidth, result.max_width);
@@ -271,7 +271,7 @@ TEST_F(MediaStreamConstraintsUtilTest, VideoTrackAdapterSettingsConstrained) {
constraint_factory.basic().height.SetIdeal(kIdealHeight);
auto result = SelectVideoTrackAdapterSettings(
constraint_factory.CreateWebMediaConstraints().Basic(), resolution_set,
- frame_rate_set, SourceFormat());
+ frame_rate_set, SourceFormat(), false);
EXPECT_EQ(kIdealHeight, result.max_height);
EXPECT_EQ(std::round(kIdealHeight * kSourceAspectRatio), result.max_width);
EXPECT_EQ(kMinAspectRatio, result.min_aspect_ratio);
@@ -288,7 +288,7 @@ TEST_F(MediaStreamConstraintsUtilTest, VideoTrackAdapterSettingsConstrained) {
constraint_factory.basic().height.SetIdeal(kIdealHeight);
auto result = SelectVideoTrackAdapterSettings(
constraint_factory.CreateWebMediaConstraints().Basic(), resolution_set,
- frame_rate_set, SourceFormat());
+ frame_rate_set, SourceFormat(), false);
EXPECT_EQ(kMaxHeight, result.max_height);
EXPECT_EQ(std::round(kMaxHeight * kSourceAspectRatio), result.max_width);
EXPECT_EQ(kMinAspectRatio, result.min_aspect_ratio);
@@ -305,7 +305,7 @@ TEST_F(MediaStreamConstraintsUtilTest, VideoTrackAdapterSettingsConstrained) {
constraint_factory.basic().width.SetIdeal(kIdealWidth);
auto result = SelectVideoTrackAdapterSettings(
constraint_factory.CreateWebMediaConstraints().Basic(), resolution_set,
- frame_rate_set, SourceFormat());
+ frame_rate_set, SourceFormat(), false);
EXPECT_EQ(std::round(kMinWidth / kSourceAspectRatio), result.max_height);
EXPECT_EQ(kMinWidth, result.max_width);
EXPECT_EQ(kMinAspectRatio, result.min_aspect_ratio);
@@ -324,7 +324,7 @@ TEST_F(MediaStreamConstraintsUtilTest, VideoTrackAdapterSettingsConstrained) {
constraint_factory.basic().width.SetIdeal(kIdealWidth);
auto result = SelectVideoTrackAdapterSettings(
constraint_factory.CreateWebMediaConstraints().Basic(), resolution_set,
- frame_rate_set, SourceFormat());
+ frame_rate_set, SourceFormat(), false);
EXPECT_EQ(std::round(kIdealWidth / kSourceAspectRatio), result.max_height);
EXPECT_EQ(kIdealWidth, result.max_width);
EXPECT_EQ(kMinAspectRatio, result.min_aspect_ratio);
@@ -341,7 +341,7 @@ TEST_F(MediaStreamConstraintsUtilTest, VideoTrackAdapterSettingsConstrained) {
constraint_factory.basic().width.SetIdeal(kIdealWidth);
auto result = SelectVideoTrackAdapterSettings(
constraint_factory.CreateWebMediaConstraints().Basic(), resolution_set,
- frame_rate_set, SourceFormat());
+ frame_rate_set, SourceFormat(), false);
// kMaxHeight < kMaxWidth / kNativeAspectRatio
EXPECT_EQ(kMaxHeight, result.max_height);
EXPECT_EQ(kMaxWidth, result.max_width);
@@ -359,7 +359,7 @@ TEST_F(MediaStreamConstraintsUtilTest, VideoTrackAdapterSettingsConstrained) {
constraint_factory.basic().aspect_ratio.SetIdeal(kIdealAspectRatio);
auto result = SelectVideoTrackAdapterSettings(
constraint_factory.CreateWebMediaConstraints().Basic(), resolution_set,
- frame_rate_set, SourceFormat());
+ frame_rate_set, SourceFormat(), false);
// Desired point is (kNativeWidth/kMinAspectRatio, kNativeWidth), but it
// is outside the size constraints. Closest to that while maintaining the
// same aspect ratio is (kMaxHeight, kMaxHeight * kMinAspectRatio).
@@ -381,7 +381,7 @@ TEST_F(MediaStreamConstraintsUtilTest, VideoTrackAdapterSettingsConstrained) {
constraint_factory.basic().aspect_ratio.SetIdeal(kIdealAspectRatio);
auto result = SelectVideoTrackAdapterSettings(
constraint_factory.CreateWebMediaConstraints().Basic(), resolution_set,
- frame_rate_set, SourceFormat());
+ frame_rate_set, SourceFormat(), false);
EXPECT_EQ(std::round(kSourceWidth / kIdealAspectRatio), result.max_height);
EXPECT_EQ(kSourceWidth, result.max_width);
EXPECT_EQ(kMinAspectRatio, result.min_aspect_ratio);
@@ -398,7 +398,7 @@ TEST_F(MediaStreamConstraintsUtilTest, VideoTrackAdapterSettingsConstrained) {
constraint_factory.basic().aspect_ratio.SetIdeal(kIdealAspectRatio);
auto result = SelectVideoTrackAdapterSettings(
constraint_factory.CreateWebMediaConstraints().Basic(), resolution_set,
- frame_rate_set, SourceFormat());
+ frame_rate_set, SourceFormat(), false);
EXPECT_EQ(kSourceHeight, result.max_height);
EXPECT_EQ(std::round(kSourceHeight * kMaxAspectRatio), result.max_width);
EXPECT_EQ(kMinAspectRatio, result.min_aspect_ratio);
@@ -415,7 +415,7 @@ TEST_F(MediaStreamConstraintsUtilTest, VideoTrackAdapterSettingsConstrained) {
constraint_factory.basic().frame_rate.SetIdeal(kIdealFrameRate);
auto result = SelectVideoTrackAdapterSettings(
constraint_factory.CreateWebMediaConstraints().Basic(), resolution_set,
- frame_rate_set, SourceFormat());
+ frame_rate_set, SourceFormat(), false);
EXPECT_EQ(kSourceHeight, result.max_height);
EXPECT_EQ(kSourceWidth, result.max_width);
EXPECT_EQ(kMinAspectRatio, result.min_aspect_ratio);
@@ -434,7 +434,7 @@ TEST_F(MediaStreamConstraintsUtilTest, VideoTrackAdapterSettingsConstrained) {
constraint_factory.basic().frame_rate.SetIdeal(kIdealFrameRate);
auto result = SelectVideoTrackAdapterSettings(
constraint_factory.CreateWebMediaConstraints().Basic(), resolution_set,
- frame_rate_set, SourceFormat());
+ frame_rate_set, SourceFormat(), false);
EXPECT_EQ(kSourceHeight, result.max_height);
EXPECT_EQ(kSourceWidth, result.max_width);
EXPECT_EQ(kMinAspectRatio, result.min_aspect_ratio);
@@ -451,7 +451,7 @@ TEST_F(MediaStreamConstraintsUtilTest, VideoTrackAdapterSettingsConstrained) {
constraint_factory.basic().frame_rate.SetIdeal(kIdealFrameRate);
auto result = SelectVideoTrackAdapterSettings(
constraint_factory.CreateWebMediaConstraints().Basic(), resolution_set,
- frame_rate_set, SourceFormat());
+ frame_rate_set, SourceFormat(), false);
EXPECT_EQ(kSourceHeight, result.max_height);
EXPECT_EQ(kSourceWidth, result.max_width);
EXPECT_EQ(kMinAspectRatio, result.min_aspect_ratio);
@@ -482,7 +482,7 @@ TEST_F(MediaStreamConstraintsUtilTest, VideoTrackAdapterSettingsConstrained) {
constraint_factory.basic().frame_rate.SetIdeal(kIdealFrameRate);
auto result = SelectVideoTrackAdapterSettings(
constraint_factory.CreateWebMediaConstraints().Basic(), resolution_set,
- frame_rate_set, SourceFormat());
+ frame_rate_set, SourceFormat(), false);
EXPECT_EQ(kIdealHeight, result.max_height);
EXPECT_EQ(kIdealWidth, result.max_width);
EXPECT_EQ(kMinAspectRatio, result.min_aspect_ratio);
@@ -507,7 +507,7 @@ TEST_F(MediaStreamConstraintsUtilTest, VideoTrackAdapterSettingsConstrained) {
constraint_factory.basic().frame_rate.SetIdeal(kIdealFrameRate);
auto result = SelectVideoTrackAdapterSettings(
constraint_factory.CreateWebMediaConstraints().Basic(), resolution_set,
- frame_rate_set, SourceFormat());
+ frame_rate_set, SourceFormat(), false);
EXPECT_EQ(kMaxHeight, result.max_height);
EXPECT_EQ(kMaxWidth, result.max_width);
EXPECT_EQ(kMinAspectRatio, result.min_aspect_ratio);
@@ -521,7 +521,7 @@ TEST_F(MediaStreamConstraintsUtilTest, VideoTrackAdapterSettingsConstrained) {
MockConstraintFactory constraint_factory;
auto result = SelectVideoTrackAdapterSettings(
constraint_factory.CreateWebMediaConstraints().Basic(), resolution_set,
- frame_rate_set, SourceFormat());
+ frame_rate_set, SourceFormat(), false);
EXPECT_EQ(kSourceHeight, result.max_height);
EXPECT_EQ(kSourceWidth, result.max_width);
EXPECT_EQ(kMinAspectRatio, result.min_aspect_ratio);
@@ -540,7 +540,7 @@ TEST_F(MediaStreamConstraintsUtilTest, VideoTrackAdapterSettingsConstrained) {
MockConstraintFactory constraint_factory;
auto result = SelectVideoTrackAdapterSettings(
constraint_factory.CreateWebMediaConstraints().Basic(), resolution_set,
- frame_rate_set, SourceFormat());
+ frame_rate_set, SourceFormat(), false);
EXPECT_EQ(kSourceHeight, result.max_height);
EXPECT_EQ(kSourceWidth, result.max_width);
EXPECT_EQ(kMinAspectRatio, result.min_aspect_ratio);
@@ -551,4 +551,63 @@ TEST_F(MediaStreamConstraintsUtilTest, VideoTrackAdapterSettingsConstrained) {
}
}
+TEST_F(MediaStreamConstraintsUtilTest,
+ VideoTrackAdapterSettingsExpectedNativeSize) {
+ ResolutionSet resolution_set;
+ DoubleRangeSet frame_rate_set;
+
+ {
+ MockConstraintFactory constraint_factory;
+ auto result = SelectVideoTrackAdapterSettings(
+ constraint_factory.CreateWebMediaConstraints().Basic(), resolution_set,
+ frame_rate_set, SourceFormat(), false);
+ EXPECT_EQ(kSourceHeight, result.max_height);
+ EXPECT_EQ(kSourceWidth, result.max_width);
+ EXPECT_EQ(0.0, result.min_aspect_ratio);
+ EXPECT_EQ(HUGE_VAL, result.max_aspect_ratio);
+ EXPECT_EQ(0.0, result.max_frame_rate);
+ EXPECT_FALSE(result.expected_native_size);
+ }
+
+ {
+ MockConstraintFactory constraint_factory;
+ auto result = SelectVideoTrackAdapterSettings(
+ constraint_factory.CreateWebMediaConstraints().Basic(), resolution_set,
+ frame_rate_set, SourceFormat(), true);
+ EXPECT_EQ(kSourceHeight, result.max_height);
+ EXPECT_EQ(kSourceWidth, result.max_width);
+ EXPECT_EQ(0.0, result.min_aspect_ratio);
+ EXPECT_EQ(HUGE_VAL, result.max_aspect_ratio);
+ EXPECT_EQ(0.0, result.max_frame_rate);
+ EXPECT_TRUE(result.expected_native_size);
+ EXPECT_EQ(gfx::Size(kSourceWidth, kSourceHeight),
+ *result.expected_native_size);
+ }
+
+ // Ideals supplied.
+ {
+ const int kIdealHeight = 400;
+ const int kIdealWidth = 600;
+ const int kIdealAspectRatio = 2.0;
+ const double kIdealFrameRate = 33;
+ MockConstraintFactory constraint_factory;
+ constraint_factory.basic().height.SetIdeal(kIdealHeight);
+ constraint_factory.basic().width.SetIdeal(kIdealWidth);
+ // Ideal aspect ratio is ignored if ideal width and height are supplied.
+ constraint_factory.basic().aspect_ratio.SetIdeal(kIdealAspectRatio);
+ constraint_factory.basic().frame_rate.SetIdeal(kIdealFrameRate);
+ auto result = SelectVideoTrackAdapterSettings(
+ constraint_factory.CreateWebMediaConstraints().Basic(), resolution_set,
+ frame_rate_set, SourceFormat(), true);
+ EXPECT_EQ(kIdealHeight, result.max_height);
+ EXPECT_EQ(kIdealWidth, result.max_width);
+ EXPECT_EQ(0.0, result.min_aspect_ratio);
+ EXPECT_EQ(HUGE_VAL, result.max_aspect_ratio);
+ EXPECT_EQ(kIdealFrameRate, result.max_frame_rate);
+ EXPECT_TRUE(result.expected_native_size);
+ EXPECT_EQ(gfx::Size(kSourceWidth, kSourceHeight),
+ *result.expected_native_size);
+ }
+}
+
} // namespace content

Powered by Google App Engine
This is Rietveld 408576698