| Index: media/gpu/avda_overlay_helper_impl.h
|
| diff --git a/media/gpu/avda_overlay_helper_impl.h b/media/gpu/avda_overlay_helper_impl.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..9e9f43884a1471b71c7807cf3f818eede9d38b73
|
| --- /dev/null
|
| +++ b/media/gpu/avda_overlay_helper_impl.h
|
| @@ -0,0 +1,61 @@
|
| +// Copyright 2017 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#ifndef MEDIA_GPU_AVDA_OVERLAY_HELPER_IMPL_H_
|
| +#define MEDIA_GPU_AVDA_OVERLAY_HELPER_IMPL_H_
|
| +
|
| +#include "base/bind.h"
|
| +#include "base/macros.h"
|
| +#include "base/memory/weak_ptr.h"
|
| +#include "media/base/android/android_overlay.h"
|
| +#include "media/base/android/android_overlay_factory.h"
|
| +#include "media/gpu/avda_overlay_helper.h"
|
| +#include "media/gpu/media_gpu_export.h"
|
| +
|
| +namespace media {
|
| +
|
| +// Implementation of AVDAOverlayHelper.
|
| +class MEDIA_GPU_EXPORT AVDAOverlayHelperImpl : public AVDAOverlayHelper {
|
| + public:
|
| + AVDAOverlayHelperImpl();
|
| + ~AVDAOverlayHelperImpl() override;
|
| +
|
| + // AVDAOverlayHelper
|
| + void Startup(const UseOverlayCB& use_overlay_cb,
|
| + const UseSurfaceTextureCB& use_surface_texture_cb,
|
| + const StopUsingOverlayImmediatelyCB& stop_immediately_cb,
|
| + std::unique_ptr<AndroidOverlayFactory> initial_factory) override;
|
| + void OnOverlayFactory(
|
| + std::unique_ptr<AndroidOverlayFactory> factory) override;
|
| +
|
| + private:
|
| + // AndroidOverlay callbacks.
|
| + void OnOverlayReady(AndroidOverlay*);
|
| + void OnOverlayFailed(AndroidOverlay*);
|
| + void OnSurfaceDestroyed(AndroidOverlay*);
|
| +
|
| + // Client callbacks.
|
| + UseOverlayCB use_overlay_cb_;
|
| + UseSurfaceTextureCB use_surface_texture_cb_;
|
| + StopUsingOverlayImmediatelyCB stop_immediately_cb_;
|
| +
|
| + // Current overlay that we've consructed but haven't received ready / failed
|
| + // callbacks yet. Will be nullptr if we haven't constructed one, or if we
|
| + // sent it to the client already once it became ready to use.
|
| + std::unique_ptr<AndroidOverlay> overlay_;
|
| +
|
| + // If true, we owe the client notification about whether to use an overlay
|
| + // or a surface texture.
|
| + bool client_notification_pending_ = false;
|
| +
|
| + std::unique_ptr<AndroidOverlayFactory> overlay_factory_;
|
| +
|
| + base::WeakPtrFactory<AVDAOverlayHelperImpl> weak_factory_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(AVDAOverlayHelperImpl);
|
| +};
|
| +
|
| +} // namespace media
|
| +
|
| +#endif // MEDIA_GPU_AVDA_OVERLAY_HELPER_IMPL_H_
|
|
|