// media/mojo/mojom/demuxer_stream.mojom-blink-test-utils.h is auto generated by mojom_bindings_generator.py, do not edit

// Copyright 2019 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef MEDIA_MOJO_MOJOM_DEMUXER_STREAM_MOJOM_BLINK_TEST_UTILS_H_
#define MEDIA_MOJO_MOJOM_DEMUXER_STREAM_MOJOM_BLINK_TEST_UTILS_H_

#include "media/mojo/mojom/demuxer_stream.mojom-blink.h"
#include "third_party/blink/public/platform/web_common.h"


namespace media::mojom::blink {


class BLINK_PLATFORM_EXPORT DemuxerStreamInterceptorForTesting : public DemuxerStream {
  virtual DemuxerStream* GetForwardingInterface() = 0;
  void Initialize(InitializeCallback callback) override;
  void Read(uint32_t count, ReadCallback callback) override;
  void EnableBitstreamConverter() override;
};
class BLINK_PLATFORM_EXPORT DemuxerStreamAsyncWaiter {
 public:
  explicit DemuxerStreamAsyncWaiter(DemuxerStream* proxy);

  DemuxerStreamAsyncWaiter(const DemuxerStreamAsyncWaiter&) = delete;
  DemuxerStreamAsyncWaiter& operator=(const DemuxerStreamAsyncWaiter&) = delete;

  ~DemuxerStreamAsyncWaiter();
  void Initialize(
      DemuxerStream::Type* out_type, ::mojo::ScopedDataPipeConsumerHandle* out_pipe, ::media::mojom::blink::AudioDecoderConfigPtr* out_audio_config, ::media::mojom::blink::VideoDecoderConfigPtr* out_video_config);
  
  void Read(
      uint32_t count, DemuxerStream::Status* out_status, ::blink::Vector<::media::mojom::blink::DecoderBufferPtr>* out_batch_buffers, ::media::mojom::blink::AudioDecoderConfigPtr* out_audio_config, ::media::mojom::blink::VideoDecoderConfigPtr* out_video_config);
  

 private:
  DemuxerStream* const proxy_;
};




}  // media::mojom::blink

#endif  // MEDIA_MOJO_MOJOM_DEMUXER_STREAM_MOJOM_BLINK_TEST_UTILS_H_