blob: 7d1d8eb1329e3b01d17a2c3ce207a283ee22d958 [file] [log] [blame]
// Copyright (c) 2013 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 THIRD_PARTY_BLINK_RENDERER_MODULES_MEDIASTREAM_MOCK_MEDIA_STREAM_REGISTRY_H_
#define THIRD_PARTY_BLINK_RENDERER_MODULES_MEDIASTREAM_MOCK_MEDIA_STREAM_REGISTRY_H_
#include <string>
#include "base/optional.h"
#include "third_party/blink/renderer/modules/mediastream/mock_media_stream_video_source.h"
#include "third_party/blink/renderer/platform/mediastream/media_stream_descriptor.h"
namespace blink {
class VideoTrackAdapterSettings;
// This class encapsulates creation of a Blink MediaStream having inside the
// necessary Blink and Chromium, track and source. The Chrome Video source is
// a mock.
class MockMediaStreamRegistry final {
public:
MockMediaStreamRegistry();
void Init();
// Returns the native mock vidoe source for optional use in tests.
MockMediaStreamVideoSource* AddVideoTrack(
const std::string& track_id,
const VideoTrackAdapterSettings& adapter_settings,
const base::Optional<bool>& noise_reduction,
bool is_screen_cast,
double min_frame_rate);
MockMediaStreamVideoSource* AddVideoTrack(const std::string& track_id);
void AddAudioTrack(const std::string& track_id);
MediaStreamDescriptor* test_stream() const { return descriptor_.Get(); }
void reset() { descriptor_ = nullptr; }
private:
Persistent<MediaStreamDescriptor> descriptor_;
};
} // namespace blink
#endif // THIRD_PARTY_BLINK_RENDERER_MODULES_MEDIASTREAM_MOCK_MEDIA_STREAM_REGISTRY_H_