Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / third_party / WebKit / public / platform / WebMediaRecorderHandler.h
blob309f1da0af96f9c1b0ef237be3fb2655252e7256
1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef WebMediaRecorderHandler_h
6 #define WebMediaRecorderHandler_h
8 #include "WebCommon.h"
10 namespace blink {
12 class WebMediaRecorderHandlerClient;
13 class WebMediaStream;
14 class WebString;
16 // Platform interface of a MediaRecorder.
17 class BLINK_PLATFORM_EXPORT WebMediaRecorderHandler {
18 public:
19 virtual ~WebMediaRecorderHandler() = default;
20 virtual bool initialize(WebMediaRecorderHandlerClient* client, const WebMediaStream& stream, const WebString& mimeType) { return false; }
21 virtual bool start() { return false; }
22 virtual bool start(int timeslice) { return false; }
23 virtual void stop() {}
24 virtual void pause() {}
25 virtual void resume() {}
27 // MediaRecorder API canRecordMimeType() is a tristate in which the returned
28 // value 'probably' means that "the user agent is confident that mimeType
29 // represents a type that it can record" [1], but a number of reasons might
30 // prevent a firm answer at this stage, so a boolean is a better option,
31 // because "Implementors are encouraged to return "maybe" unless the type
32 // can be confidently established as being supported or not." [1].
33 // [1] https://w3c.github.io/mediacapture-record/MediaRecorder.html#methods
34 virtual bool canSupportMimeType(const WebString& mimeType) { return false; }
37 } // namespace blink
39 #endif // WebMediaRecorderHandler_h