1 // Copyright 2013 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 #include "media/video/capture/video_capture_types.h"
7 #include "base/logging.h"
8 #include "base/strings/stringprintf.h"
9 #include "media/base/limits.h"
13 VideoCaptureFormat::VideoCaptureFormat()
14 : frame_rate(0.0f), pixel_format(PIXEL_FORMAT_UNKNOWN) {}
16 VideoCaptureFormat::VideoCaptureFormat(const gfx::Size& frame_size,
18 VideoPixelFormat pixel_format)
19 : frame_size(frame_size),
20 frame_rate(frame_rate),
21 pixel_format(pixel_format) {}
23 bool VideoCaptureFormat::IsValid() const {
24 return (frame_size.width() < media::limits::kMaxDimension) &&
25 (frame_size.height() < media::limits::kMaxDimension) &&
26 (frame_size.GetArea() >= 0) &&
27 (frame_size.GetArea() < media::limits::kMaxCanvas) &&
28 (frame_rate >= 0.0f) &&
29 (frame_rate < media::limits::kMaxFramesPerSecond) &&
30 (pixel_format >= PIXEL_FORMAT_UNKNOWN) &&
31 (pixel_format < PIXEL_FORMAT_MAX);
34 std::string VideoCaptureFormat::ToString() const {
35 return base::StringPrintf("resolution: %s, fps: %f, pixel format: %s",
36 frame_size.ToString().c_str(),
38 PixelFormatToString(pixel_format).c_str());
41 std::string VideoCaptureFormat::PixelFormatToString(VideoPixelFormat format) {
43 case PIXEL_FORMAT_UNKNOWN:
45 case PIXEL_FORMAT_I420:
47 case PIXEL_FORMAT_YUY2:
49 case PIXEL_FORMAT_UYVY:
51 case PIXEL_FORMAT_RGB24:
53 case PIXEL_FORMAT_ARGB:
55 case PIXEL_FORMAT_MJPEG:
57 case PIXEL_FORMAT_NV21:
59 case PIXEL_FORMAT_YV12:
61 case PIXEL_FORMAT_TEXTURE:
63 case PIXEL_FORMAT_MAX:
66 NOTREACHED() << "Invalid VideoPixelFormat provided: " << format;
70 VideoCaptureParams::VideoCaptureParams()
71 : resolution_change_policy(RESOLUTION_POLICY_FIXED) {}