Revert-Remove-flags-to-enable-disable-AImageReader.patch 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. From: csagan5 <32685696+csagan5@users.noreply.github.com>
  2. Date: Tue, 5 May 2020 07:26:55 +0200
  3. Subject: Revert "Remove flags to enable/disable AImageReader."
  4. This reverts commit 463fa0f2e3b9e418bc26e2c8954463f0b0f76634.
  5. ---
  6. .../service/image_reader_gl_owner_unittest.cc | 5 +++++
  7. gpu/config/gpu_finch_features.cc | 4 ++++
  8. gpu/config/gpu_finch_features.h | 1 +
  9. gpu/ipc/service/stream_texture_android.cc | 10 ++++++++--
  10. media/base/media_switches.cc | 4 ++++
  11. media/base/media_switches.h | 1 +
  12. media/gpu/android/video_frame_factory_impl.cc | 3 ++-
  13. 7 files changed, 25 insertions(+), 3 deletions(-)
  14. diff --git a/gpu/command_buffer/service/image_reader_gl_owner_unittest.cc b/gpu/command_buffer/service/image_reader_gl_owner_unittest.cc
  15. --- a/gpu/command_buffer/service/image_reader_gl_owner_unittest.cc
  16. +++ b/gpu/command_buffer/service/image_reader_gl_owner_unittest.cc
  17. @@ -8,10 +8,12 @@
  18. #include <memory>
  19. #include <utility>
  20. +#include "base/test/scoped_feature_list.h"
  21. #include "base/test/task_environment.h"
  22. #include "gpu/command_buffer/service/abstract_texture.h"
  23. #include "gpu/command_buffer/service/image_reader_gl_owner.h"
  24. #include "gpu/command_buffer/service/mock_abstract_texture.h"
  25. +#include "media/base/media_switches.h"
  26. #include "testing/gtest/include/gtest/gtest.h"
  27. #include "ui/gl/gl_bindings.h"
  28. #include "ui/gl/gl_context_egl.h"
  29. @@ -30,6 +32,8 @@ class ImageReaderGLOwnerTest : public testing::Test {
  30. if (!IsImageReaderSupported())
  31. return;
  32. + scoped_feature_list_.InitAndEnableFeature(media::kAImageReaderVideoOutput);
  33. +
  34. gl::init::InitializeStaticGLBindingsImplementation(
  35. gl::kGLImplementationEGLGLES2, false);
  36. gl::init::InitializeGLOneOffPlatformImplementation(false, false, true);
  37. @@ -69,6 +73,7 @@ class ImageReaderGLOwnerTest : public testing::Test {
  38. return base::android::AndroidImageReader::GetInstance().IsSupported();
  39. }
  40. + base::test::ScopedFeatureList scoped_feature_list_;
  41. scoped_refptr<TextureOwner> image_reader_;
  42. GLuint texture_id_ = 0;
  43. diff --git a/gpu/config/gpu_finch_features.cc b/gpu/config/gpu_finch_features.cc
  44. --- a/gpu/config/gpu_finch_features.cc
  45. +++ b/gpu/config/gpu_finch_features.cc
  46. @@ -13,6 +13,10 @@
  47. namespace features {
  48. #if defined(OS_ANDROID)
  49. +// Use android AImageReader when playing videos with MediaPlayer.
  50. +const base::Feature kAImageReaderMediaPlayer{"AImageReaderMediaPlayer",
  51. + base::FEATURE_ENABLED_BY_DEFAULT};
  52. +
  53. // Used only by webview to disable SurfaceControl.
  54. const base::Feature kDisableSurfaceControlForWebview{
  55. "DisableSurfaceControlForWebview", base::FEATURE_DISABLED_BY_DEFAULT};
  56. diff --git a/gpu/config/gpu_finch_features.h b/gpu/config/gpu_finch_features.h
  57. --- a/gpu/config/gpu_finch_features.h
  58. +++ b/gpu/config/gpu_finch_features.h
  59. @@ -17,6 +17,7 @@ namespace features {
  60. // All features in alphabetical order. The features should be documented
  61. // alongside the definition of their values in the .cc file.
  62. #if defined(OS_ANDROID)
  63. +GPU_EXPORT extern const base::Feature kAImageReaderMediaPlayer;
  64. GPU_EXPORT extern const base::Feature kDisableSurfaceControlForWebview;
  65. #endif // defined(OS_ANDROID)
  66. diff --git a/gpu/ipc/service/stream_texture_android.cc b/gpu/ipc/service/stream_texture_android.cc
  67. --- a/gpu/ipc/service/stream_texture_android.cc
  68. +++ b/gpu/ipc/service/stream_texture_android.cc
  69. @@ -51,8 +51,14 @@ TextureOwner::Mode GetTextureOwnerMode() {
  70. const bool a_image_reader_supported =
  71. base::android::AndroidImageReader::GetInstance().IsSupported();
  72. - return a_image_reader_supported ? TextureOwner::Mode::kAImageReaderInsecure
  73. - : TextureOwner::Mode::kSurfaceTextureInsecure;
  74. + // TODO(vikassoni) : Currently we have 2 different flags to enable/disable
  75. + // AImageReader - one for MCVD and other for MediaPlayer here. Merge those 2
  76. + // flags into a single flag. Keeping the 2 flags separate for now since finch
  77. + // experiment using this flag is in progress.
  78. + return a_image_reader_supported && base::FeatureList::IsEnabled(
  79. + features::kAImageReaderMediaPlayer)
  80. + ? TextureOwner::Mode::kAImageReaderInsecure
  81. + : TextureOwner::Mode::kSurfaceTextureInsecure;
  82. }
  83. } // namespace
  84. diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc
  85. --- a/media/base/media_switches.cc
  86. +++ b/media/base/media_switches.cc
  87. @@ -519,6 +519,10 @@ const base::Feature kMediaDrmPreprovisioning{"MediaDrmPreprovisioning",
  88. const base::Feature kMediaDrmPreprovisioningAtStartup{
  89. "MediaDrmPreprovisioningAtStartup", base::FEATURE_ENABLED_BY_DEFAULT};
  90. +// Enables the Android Image Reader path for Video decoding(for AVDA and MCVD)
  91. +const base::Feature kAImageReaderVideoOutput{"AImageReaderVideoOutput",
  92. + base::FEATURE_ENABLED_BY_DEFAULT};
  93. +
  94. // Prevents using SurfaceLayer for videos. This is meant to be used by embedders
  95. // that cannot support SurfaceLayer at the moment.
  96. const base::Feature kDisableSurfaceLayerForVideo{
  97. diff --git a/media/base/media_switches.h b/media/base/media_switches.h
  98. --- a/media/base/media_switches.h
  99. +++ b/media/base/media_switches.h
  100. @@ -184,6 +184,7 @@ MEDIA_EXPORT extern const base::Feature kMediaControlsExpandGesture;
  101. MEDIA_EXPORT extern const base::Feature kMediaDrmPersistentLicense;
  102. MEDIA_EXPORT extern const base::Feature kMediaDrmPreprovisioning;
  103. MEDIA_EXPORT extern const base::Feature kMediaDrmPreprovisioningAtStartup;
  104. +MEDIA_EXPORT extern const base::Feature kAImageReaderVideoOutput;
  105. MEDIA_EXPORT extern const base::Feature kDisableSurfaceLayerForVideo;
  106. MEDIA_EXPORT extern const base::Feature kCanPlayHls;
  107. MEDIA_EXPORT extern const base::Feature kPictureInPictureAPI;
  108. diff --git a/media/gpu/android/video_frame_factory_impl.cc b/media/gpu/android/video_frame_factory_impl.cc
  109. --- a/media/gpu/android/video_frame_factory_impl.cc
  110. +++ b/media/gpu/android/video_frame_factory_impl.cc
  111. @@ -41,7 +41,8 @@ gpu::TextureOwner::Mode GetTextureOwnerMode(
  112. switch (overlay_mode) {
  113. case VideoFrameFactory::OverlayMode::kDontRequestPromotionHints:
  114. case VideoFrameFactory::OverlayMode::kRequestPromotionHints:
  115. - return a_image_reader_supported
  116. + return a_image_reader_supported && base::FeatureList::IsEnabled(
  117. + media::kAImageReaderVideoOutput)
  118. ? gpu::TextureOwner::Mode::kAImageReaderInsecure
  119. : gpu::TextureOwner::Mode::kSurfaceTextureInsecure;
  120. case VideoFrameFactory::OverlayMode::kSurfaceControlSecure:
  121. --
  122. 2.17.1