Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef MEDIA_BASE_VIDEO_CAPTURE_TYPES_H_ | 5 #ifndef MEDIA_BASE_VIDEO_CAPTURE_TYPES_H_ |
| 6 #define MEDIA_BASE_VIDEO_CAPTURE_TYPES_H_ | 6 #define MEDIA_BASE_VIDEO_CAPTURE_TYPES_H_ |
| 7 | 7 |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "media/base/media_export.h" | 10 #include "media/base/media_export.h" |
| (...skipping 10 matching lines...) Expand all Loading... | |
| 21 PIXEL_FORMAT_I420, | 21 PIXEL_FORMAT_I420, |
| 22 PIXEL_FORMAT_YV12, | 22 PIXEL_FORMAT_YV12, |
| 23 PIXEL_FORMAT_NV12, | 23 PIXEL_FORMAT_NV12, |
| 24 PIXEL_FORMAT_NV21, | 24 PIXEL_FORMAT_NV21, |
| 25 PIXEL_FORMAT_UYVY, | 25 PIXEL_FORMAT_UYVY, |
| 26 PIXEL_FORMAT_YUY2, | 26 PIXEL_FORMAT_YUY2, |
| 27 PIXEL_FORMAT_RGB24, | 27 PIXEL_FORMAT_RGB24, |
| 28 PIXEL_FORMAT_RGB32, | 28 PIXEL_FORMAT_RGB32, |
| 29 PIXEL_FORMAT_ARGB, | 29 PIXEL_FORMAT_ARGB, |
| 30 PIXEL_FORMAT_MJPEG, | 30 PIXEL_FORMAT_MJPEG, |
| 31 PIXEL_FORMAT_TEXTURE, // Capture format as a GL texture. | |
| 32 PIXEL_FORMAT_GPUMEMORYBUFFER, | |
| 33 PIXEL_FORMAT_UNKNOWN, // Color format not set. | 31 PIXEL_FORMAT_UNKNOWN, // Color format not set. |
| 34 PIXEL_FORMAT_MAX, | 32 PIXEL_FORMAT_MAX, |
| 35 }; | 33 }; |
| 36 | 34 |
| 35 enum VideoPixelStorage { | |
| 36 PIXEL_STORAGE_CPU, | |
| 37 PIXEL_STORAGE_TEXTURE, | |
|
hubbe
2015/06/16 21:11:35
Does PIXEL_FORMAT_???? make any sense if the stora
mcasas
2015/06/16 23:14:01
Done.
| |
| 38 PIXEL_STORAGE_GPUMEMORYBUFFER, | |
| 39 }; | |
| 40 | |
| 37 // Policies for capture devices that have source content that varies in size. | 41 // Policies for capture devices that have source content that varies in size. |
| 38 // It is up to the implementation how the captured content will be transformed | 42 // It is up to the implementation how the captured content will be transformed |
| 39 // (e.g., scaling and/or letterboxing) in order to produce video frames that | 43 // (e.g., scaling and/or letterboxing) in order to produce video frames that |
| 40 // strictly adheree to one of these policies. | 44 // strictly adheree to one of these policies. |
| 41 enum ResolutionChangePolicy { | 45 enum ResolutionChangePolicy { |
| 42 // Capture device outputs a fixed resolution all the time. The resolution of | 46 // Capture device outputs a fixed resolution all the time. The resolution of |
| 43 // the first frame is the resolution for all frames. | 47 // the first frame is the resolution for all frames. |
| 44 RESOLUTION_POLICY_FIXED_RESOLUTION, | 48 RESOLUTION_POLICY_FIXED_RESOLUTION, |
| 45 | 49 |
| 46 // Capture device is allowed to output frames of varying resolutions. The | 50 // Capture device is allowed to output frames of varying resolutions. The |
| (...skipping 16 matching lines...) Expand all Loading... | |
| 63 // Video capture format specification. | 67 // Video capture format specification. |
| 64 // This class is used by the video capture device to specify the format of every | 68 // This class is used by the video capture device to specify the format of every |
| 65 // frame captured and returned to a client. It is also used to specify a | 69 // frame captured and returned to a client. It is also used to specify a |
| 66 // supported capture format by a device. | 70 // supported capture format by a device. |
| 67 class MEDIA_EXPORT VideoCaptureFormat { | 71 class MEDIA_EXPORT VideoCaptureFormat { |
| 68 public: | 72 public: |
| 69 VideoCaptureFormat(); | 73 VideoCaptureFormat(); |
| 70 VideoCaptureFormat(const gfx::Size& frame_size, | 74 VideoCaptureFormat(const gfx::Size& frame_size, |
| 71 float frame_rate, | 75 float frame_rate, |
| 72 VideoPixelFormat pixel_format); | 76 VideoPixelFormat pixel_format); |
| 77 VideoCaptureFormat(const gfx::Size& frame_size, | |
| 78 float frame_rate, | |
| 79 VideoPixelFormat pixel_format, | |
| 80 VideoPixelStorage pixel_storage); | |
| 73 | 81 |
| 74 std::string ToString() const; | 82 std::string ToString() const; |
| 75 static std::string PixelFormatToString(VideoPixelFormat format); | 83 static std::string PixelFormatToString(VideoPixelFormat format); |
| 84 static std::string PixelStorageToString(VideoPixelStorage storage); | |
| 76 | 85 |
| 77 // Returns the required buffer size to hold an image of a given | 86 // Returns the required buffer size to hold an image of a given |
| 78 // VideoCaptureFormat with no padding and tightly packed. | 87 // VideoCaptureFormat with no padding and tightly packed. |
| 79 size_t ImageAllocationSize() const; | 88 size_t ImageAllocationSize() const; |
| 80 | 89 |
| 81 // Checks that all values are in the expected range. All limits are specified | 90 // Checks that all values are in the expected range. All limits are specified |
| 82 // in media::Limits. | 91 // in media::Limits. |
| 83 bool IsValid() const; | 92 bool IsValid() const; |
| 84 | 93 |
| 85 bool operator==(const VideoCaptureFormat& other) const { | 94 bool operator==(const VideoCaptureFormat& other) const { |
| 86 return frame_size == other.frame_size && | 95 return frame_size == other.frame_size && |
| 87 frame_rate == other.frame_rate && | 96 frame_rate == other.frame_rate && |
| 88 pixel_format == other.pixel_format; | 97 pixel_format == other.pixel_format; |
| 89 } | 98 } |
| 90 | 99 |
| 91 gfx::Size frame_size; | 100 gfx::Size frame_size; |
| 92 float frame_rate; | 101 float frame_rate; |
| 93 VideoPixelFormat pixel_format; | 102 VideoPixelFormat pixel_format; |
| 103 VideoPixelStorage pixel_storage; | |
| 94 }; | 104 }; |
| 95 | 105 |
| 96 typedef std::vector<VideoCaptureFormat> VideoCaptureFormats; | 106 typedef std::vector<VideoCaptureFormat> VideoCaptureFormats; |
| 97 | 107 |
| 98 // Parameters for starting video capture. | 108 // Parameters for starting video capture. |
| 99 // This class is used by the client of a video capture device to specify the | 109 // This class is used by the client of a video capture device to specify the |
| 100 // format of frames in which the client would like to have captured frames | 110 // format of frames in which the client would like to have captured frames |
| 101 // returned. | 111 // returned. |
| 102 class MEDIA_EXPORT VideoCaptureParams { | 112 class MEDIA_EXPORT VideoCaptureParams { |
| 103 public: | 113 public: |
| 104 VideoCaptureParams(); | 114 VideoCaptureParams(); |
| 105 | 115 |
| 106 bool operator==(const VideoCaptureParams& other) const { | 116 bool operator==(const VideoCaptureParams& other) const { |
| 107 return requested_format == other.requested_format && | 117 return requested_format == other.requested_format && |
| 108 resolution_change_policy == other.resolution_change_policy; | 118 resolution_change_policy == other.resolution_change_policy; |
| 109 } | 119 } |
| 110 | 120 |
| 111 // Requests a resolution and format at which the capture will occur. | 121 // Requests a resolution and format at which the capture will occur. |
| 112 VideoCaptureFormat requested_format; | 122 VideoCaptureFormat requested_format; |
| 113 | 123 |
| 114 // Policy for resolution change. | 124 // Policy for resolution change. |
| 115 ResolutionChangePolicy resolution_change_policy; | 125 ResolutionChangePolicy resolution_change_policy; |
| 116 }; | 126 }; |
| 117 | 127 |
| 118 } // namespace media | 128 } // namespace media |
| 119 | 129 |
| 120 #endif // MEDIA_BASE_VIDEO_CAPTURE_TYPES_H_ | 130 #endif // MEDIA_BASE_VIDEO_CAPTURE_TYPES_H_ |
| OLD | NEW |