[M120 Migration][MM][CAPI] Fix the logic for media using capi player.
[platform/framework/web/chromium-efl.git] / media / mojo / services / mojo_video_encoder_metrics_provider_service.h
1 // Copyright 2023 The Chromium Authors
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #ifndef MEDIA_MOJO_SERVICES_MOJO_VIDEO_ENCODER_METRICS_PROVIDER_SERVICE_H_
6 #define MEDIA_MOJO_SERVICES_MOJO_VIDEO_ENCODER_METRICS_PROVIDER_SERVICE_H_
7
8 #include "media/mojo/mojom/video_encoder_metrics_provider.mojom.h"
9 #include "media/mojo/services/media_mojo_export.h"
10 #include "services/metrics/public/cpp/ukm_source_id.h"
11
12 namespace media {
13
14 // See mojom::VideoEncoderMetricsProvider for documentation.
15 class MEDIA_MOJO_EXPORT MojoVideoEncoderMetricsProviderService
16     : public mojom::VideoEncoderMetricsProvider {
17  public:
18   static void Create(
19       ukm::SourceId source_id,
20       mojo::PendingReceiver<mojom::VideoEncoderMetricsProvider> receiver);
21
22   ~MojoVideoEncoderMetricsProviderService() override;
23
24   // mojom::VideoEncoderMetricsProvider implementation.
25   void Initialize(uint64_t encoder_id,
26                   mojom::VideoEncoderUseCase encoder_use_case,
27                   VideoCodecProfile codec_profile,
28                   const gfx::Size& encode_size,
29                   bool is_hardware_encoder,
30                   SVCScalabilityMode svc_mode) override;
31   void SetEncodedFrameCount(uint64_t encoder_id,
32                             uint64_t num_encoded_frames) override;
33   void SetError(uint64_t encoder_id, const EncoderStatus& status) override;
34   void Complete(uint64_t encoder_id) override;
35
36  private:
37   class EncoderMetricsHandler;
38
39   explicit MojoVideoEncoderMetricsProviderService(ukm::SourceId source_id);
40
41   const ukm::SourceId source_id_;
42
43   std::map<uint64_t, EncoderMetricsHandler> encoders_;
44 };
45 }  // namespace media
46 #endif  // MEDIA_MOJO_SERVICES_VIDEO_ENCODER_METRICS_PROVIDER_H_