Index: media/base/video_capture_types.h |
diff --git a/media/base/video_capture_types.h b/media/base/video_capture_types.h |
index 463873f0a58daf8c052afd356c0268e774778746..c849ed7b35f9673d9112da267904754c9aafd25e 100644 |
--- a/media/base/video_capture_types.h |
+++ b/media/base/video_capture_types.h |
@@ -34,19 +34,24 @@ enum VideoPixelFormat { |
PIXEL_FORMAT_MAX, |
}; |
-// Policies for capture devices that has source content with dynamic resolution. |
+// Policies for capture devices that have source content that varies in size. |
+// It is up to the implementation how the captured content will be transformed |
+// (e.g., scaling and/or letterboxing) in order to produce video frames that |
+// strictly adheree to one of these policies. |
enum ResolutionChangePolicy { |
// Capture device outputs a fixed resolution all the time. The resolution of |
// the first frame is the resolution for all frames. |
- // It is implementation specific for the capture device to scale, letter-box |
- // and pillar-box. The only guarantee is that resolution will never change. |
- RESOLUTION_POLICY_FIXED, |
+ RESOLUTION_POLICY_FIXED_RESOLUTION, |
- // Capture device outputs frames with dynamic resolution. The width and height |
- // will not exceed the maximum dimensions specified. The typical scenario is |
- // the frames will have the same aspect ratio as the original content and |
- // scaled down to fit inside the limit. |
- RESOLUTION_POLICY_DYNAMIC_WITHIN_LIMIT, |
+ // Capture device is allowed to output frames of varying resolutions. The |
+ // width and height will not exceed the maximum dimensions specified. The |
+ // aspect ratio of the frames will match the aspect ratio of the maximum |
+ // dimensions as closely as possible. |
+ RESOLUTION_POLICY_FIXED_ASPECT_RATIO, |
+ |
+ // Capture device is allowed to output frames of varying resolutions not |
+ // exceeding the maximum dimensions specified. |
+ RESOLUTION_POLICY_ANY_WITHIN_LIMIT, |
RESOLUTION_POLICY_LAST, |
}; |
@@ -77,6 +82,12 @@ class MEDIA_EXPORT VideoCaptureFormat { |
// in media::Limits. |
bool IsValid() const; |
+ bool operator==(const VideoCaptureFormat& other) const { |
+ return frame_size == other.frame_size && |
+ frame_rate == other.frame_rate && |
+ pixel_format == other.pixel_format; |
+ } |
+ |
gfx::Size frame_size; |
float frame_rate; |
VideoPixelFormat pixel_format; |
@@ -92,6 +103,11 @@ class MEDIA_EXPORT VideoCaptureParams { |
public: |
VideoCaptureParams(); |
+ bool operator==(const VideoCaptureParams& other) const { |
+ return requested_format == other.requested_format && |
+ resolution_change_policy == other.resolution_change_policy; |
+ } |
+ |
// Requests a resolution and format at which the capture will occur. |
VideoCaptureFormat requested_format; |