Index: content/renderer/media/media_stream_video_source.h |
diff --git a/content/renderer/media/media_stream_video_source.h b/content/renderer/media/media_stream_video_source.h |
index 031f9f0a075beabae856990e2abdfa6996041c53..28fa6eb8bc44476409c1c330f27925cc167f4e16 100644 |
--- a/content/renderer/media/media_stream_video_source.h |
+++ b/content/renderer/media/media_stream_video_source.h |
@@ -5,17 +5,17 @@ |
#ifndef CONTENT_RENDERER_MEDIA_MEDIA_STREAM_VIDEO_SOURCE_H_ |
#define CONTENT_RENDERER_MEDIA_MEDIA_STREAM_VIDEO_SOURCE_H_ |
-#include <string> |
+#include <memory> |
#include <vector> |
#include "base/compiler_specific.h" |
#include "base/macros.h" |
#include "base/memory/weak_ptr.h" |
#include "base/message_loop/message_loop.h" |
+#include "base/optional.h" |
#include "base/threading/non_thread_safe.h" |
#include "content/common/content_export.h" |
#include "content/common/media/video_capture.h" |
-#include "content/public/renderer/media_stream_video_sink.h" |
#include "content/renderer/media/media_stream_source.h" |
#include "content/renderer/media/secure_display_link_tracker.h" |
#include "media/base/video_frame.h" |
@@ -28,6 +28,9 @@ namespace content { |
class MediaStreamVideoTrack; |
class VideoTrackAdapter; |
+struct VideoTrackAdapterSettings; |
+ |
+CONTENT_EXPORT bool IsOldVideoConstraints(); |
// MediaStreamVideoSource is an interface used for sending video frames to a |
// MediaStreamVideoTrack. |
@@ -69,9 +72,14 @@ class CONTENT_EXPORT MediaStreamVideoSource |
// Puts |track| in the registered tracks list. |
void AddTrack(MediaStreamVideoTrack* track, |
+ const VideoTrackAdapterSettings& track_adapter_settings, |
const VideoCaptureDeliverFrameCB& frame_callback, |
- const blink::WebMediaConstraints& constraints, |
const ConstraintsCallback& callback); |
+ // TODO(guidou): Remove this method. http://crbug.com/706408 |
+ void AddTrackLegacy(MediaStreamVideoTrack* track, |
+ const VideoCaptureDeliverFrameCB& frame_callback, |
+ const blink::WebMediaConstraints& constraints, |
+ const ConstraintsCallback& callback); |
void RemoveTrack(MediaStreamVideoTrack* track); |
// Called by |track| to notify the source whether it has any paths to a |
@@ -86,7 +94,7 @@ class CONTENT_EXPORT MediaStreamVideoSource |
// Returns the task runner where video frames will be delivered on. |
base::SingleThreadTaskRunner* io_task_runner() const; |
- const media::VideoCaptureFormat* GetCurrentFormat() const; |
+ base::Optional<media::VideoCaptureFormat> GetCurrentFormat() const; |
base::WeakPtr<MediaStreamVideoSource> GetWeakPtr() { |
return weak_factory_.GetWeakPtr(); |
@@ -107,18 +115,26 @@ class CONTENT_EXPORT MediaStreamVideoSource |
// width set as a mandatory constraint if set when calling |
// MediaStreamVideoSource::AddTrack. If max height and max width is not set |
// |max_requested_height| and |max_requested_width| are 0. |
+ // TODO(guidou): Remove when the standard constraints code stabilizes. |
+ // http://crbug.com/706408 |
virtual void GetCurrentSupportedFormats( |
int max_requested_width, |
int max_requested_height, |
double max_requested_frame_rate, |
const VideoCaptureDeviceFormatsCB& callback) = 0; |
+ // TODO(guidou): Rename to GetCurrentFormat. http://crbug.com/706804 |
+ virtual base::Optional<media::VideoCaptureFormat> GetCurrentFormatImpl() |
+ const; |
+ |
// An implementation must start capturing frames using the requested |
// |format|. The fulfilled |constraints| are provided as additional context, |
// and may be used to modify the behavior of the source. When the source has |
// started or the source failed to start OnStartDone must be called. An |
// implementation must call |frame_callback| on the IO thread with the |
// captured frames. |
+ // TODO(guidou): Remove |format| and |constraints| parameters. |
+ // http://crbug.com/706408 |
virtual void StartSourceImpl( |
const media::VideoCaptureFormat& format, |
const blink::WebMediaConstraints& constraints, |
@@ -142,6 +158,7 @@ class CONTENT_EXPORT MediaStreamVideoSource |
enum State { |
NEW, |
+ // TODO(guidou): Remove this state. http://crbug.com/706408 |
RETRIEVING_CAPABILITIES, |
STARTING, |
STARTED, |
@@ -165,13 +182,16 @@ class CONTENT_EXPORT MediaStreamVideoSource |
// if the capture delegate has started and the constraints provided in |
// AddTrack match the format that was used to start the device. |
// Note that it must be ok to delete the MediaStreamVideoSource object |
- // in the context of the callback. If gUM fail, the implementation will |
+ // in the context of the callback. If gUM fails, the implementation will |
// simply drop the references to the blink source and track which will lead |
- // to that this object is deleted. |
+ // to this object being deleted. |
void FinalizeAddTrack(); |
+ // TODO(guidou): Remove this method. http://crbug.com/706408 |
+ void FinalizeAddTrackLegacy(); |
State state_; |
+ // TODO(guidou): Remove this field. http://crbug.com/706408 |
media::VideoCaptureFormat current_format_; |
struct TrackDescriptor { |
@@ -179,12 +199,21 @@ class CONTENT_EXPORT MediaStreamVideoSource |
const VideoCaptureDeliverFrameCB& frame_callback, |
const blink::WebMediaConstraints& constraints, |
const ConstraintsCallback& callback); |
- TrackDescriptor(const TrackDescriptor& other); |
+ TrackDescriptor(MediaStreamVideoTrack* track, |
+ const VideoCaptureDeliverFrameCB& frame_callback, |
+ std::unique_ptr<VideoTrackAdapterSettings> adapter_settings, |
+ const ConstraintsCallback& callback); |
+ TrackDescriptor(TrackDescriptor&& other); |
+ TrackDescriptor& operator=(TrackDescriptor&& other); |
~TrackDescriptor(); |
MediaStreamVideoTrack* track; |
VideoCaptureDeliverFrameCB frame_callback; |
+ // TODO(guidou): remove this field. http://crbug.com/706408 |
blink::WebMediaConstraints constraints; |
+ // TODO(guidou): Make |adapter_settings| a regular field instead of a |
+ // unique_ptr. |
+ std::unique_ptr<VideoTrackAdapterSettings> adapter_settings; |
ConstraintsCallback callback; |
}; |
std::vector<TrackDescriptor> track_descriptors_; |