| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 #include <libdrm/drm_fourcc.h> | 5 #include <libdrm/drm_fourcc.h> |
| 6 #include <linux/videodev2.h> | 6 #include <linux/videodev2.h> |
| 7 #include <string.h> | 7 #include <string.h> |
| 8 | 8 |
| 9 #include "base/numerics/safe_conversions.h" | 9 #include "base/numerics/safe_conversions.h" |
| 10 #include "build/build_config.h" | 10 #include "build/build_config.h" |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 44 case V4L2_PIX_FMT_NV12M: | 44 case V4L2_PIX_FMT_NV12M: |
| 45 return PIXEL_FORMAT_NV12; | 45 return PIXEL_FORMAT_NV12; |
| 46 | 46 |
| 47 case V4L2_PIX_FMT_MT21: | 47 case V4L2_PIX_FMT_MT21: |
| 48 return PIXEL_FORMAT_MT21; | 48 return PIXEL_FORMAT_MT21; |
| 49 | 49 |
| 50 case V4L2_PIX_FMT_YUV420: | 50 case V4L2_PIX_FMT_YUV420: |
| 51 case V4L2_PIX_FMT_YUV420M: | 51 case V4L2_PIX_FMT_YUV420M: |
| 52 return PIXEL_FORMAT_I420; | 52 return PIXEL_FORMAT_I420; |
| 53 | 53 |
| 54 case V4L2_PIX_FMT_YVU420: |
| 55 return PIXEL_FORMAT_YV12; |
| 56 |
| 54 case V4L2_PIX_FMT_RGB32: | 57 case V4L2_PIX_FMT_RGB32: |
| 55 return PIXEL_FORMAT_ARGB; | 58 return PIXEL_FORMAT_ARGB; |
| 56 | 59 |
| 57 default: | 60 default: |
| 58 LOG(FATAL) << "Add more cases as needed"; | 61 LOG(FATAL) << "Add more cases as needed"; |
| 59 return PIXEL_FORMAT_UNKNOWN; | 62 return PIXEL_FORMAT_UNKNOWN; |
| 60 } | 63 } |
| 61 } | 64 } |
| 62 | 65 |
| 63 // static | 66 // static |
| 64 uint32_t V4L2Device::VideoPixelFormatToV4L2PixFmt(VideoPixelFormat format) { | 67 uint32_t V4L2Device::VideoPixelFormatToV4L2PixFmt(VideoPixelFormat format) { |
| 65 switch (format) { | 68 switch (format) { |
| 66 case PIXEL_FORMAT_NV12: | 69 case PIXEL_FORMAT_NV12: |
| 67 return V4L2_PIX_FMT_NV12M; | 70 return V4L2_PIX_FMT_NV12M; |
| 68 | 71 |
| 69 case PIXEL_FORMAT_MT21: | 72 case PIXEL_FORMAT_MT21: |
| 70 return V4L2_PIX_FMT_MT21; | 73 return V4L2_PIX_FMT_MT21; |
| 71 | 74 |
| 72 case PIXEL_FORMAT_I420: | 75 case PIXEL_FORMAT_I420: |
| 73 return V4L2_PIX_FMT_YUV420M; | 76 return V4L2_PIX_FMT_YUV420M; |
| 74 | 77 |
| 78 case PIXEL_FORMAT_YV12: |
| 79 return V4L2_PIX_FMT_YVU420; |
| 80 |
| 75 default: | 81 default: |
| 76 LOG(FATAL) << "Add more cases as needed"; | 82 LOG(FATAL) << "Add more cases as needed"; |
| 77 return 0; | 83 return 0; |
| 78 } | 84 } |
| 79 } | 85 } |
| 80 | 86 |
| 81 // static | 87 // static |
| 82 uint32_t V4L2Device::VideoCodecProfileToV4L2PixFmt(VideoCodecProfile profile, | 88 uint32_t V4L2Device::VideoCodecProfileToV4L2PixFmt(VideoCodecProfile profile, |
| 83 bool slice_based) { | 89 bool slice_based) { |
| 84 if (profile >= H264PROFILE_MIN && profile <= H264PROFILE_MAX) { | 90 if (profile >= H264PROFILE_MIN && profile <= H264PROFILE_MAX) { |
| (...skipping 18 matching lines...) Expand all Loading... |
| 103 uint32_t V4L2Device::V4L2PixFmtToDrmFormat(uint32_t format) { | 109 uint32_t V4L2Device::V4L2PixFmtToDrmFormat(uint32_t format) { |
| 104 switch (format) { | 110 switch (format) { |
| 105 case V4L2_PIX_FMT_NV12: | 111 case V4L2_PIX_FMT_NV12: |
| 106 case V4L2_PIX_FMT_NV12M: | 112 case V4L2_PIX_FMT_NV12M: |
| 107 return DRM_FORMAT_NV12; | 113 return DRM_FORMAT_NV12; |
| 108 | 114 |
| 109 case V4L2_PIX_FMT_YUV420: | 115 case V4L2_PIX_FMT_YUV420: |
| 110 case V4L2_PIX_FMT_YUV420M: | 116 case V4L2_PIX_FMT_YUV420M: |
| 111 return DRM_FORMAT_YUV420; | 117 return DRM_FORMAT_YUV420; |
| 112 | 118 |
| 119 case V4L2_PIX_FMT_YVU420: |
| 120 return DRM_FORMAT_YVU420; |
| 121 |
| 113 case V4L2_PIX_FMT_RGB32: | 122 case V4L2_PIX_FMT_RGB32: |
| 114 return DRM_FORMAT_ARGB8888; | 123 return DRM_FORMAT_ARGB8888; |
| 115 | 124 |
| 116 default: | 125 default: |
| 117 DVLOG(1) << "Add more cases as needed"; | 126 DVLOG(1) << "Add more cases as needed"; |
| 118 return 0; | 127 return 0; |
| 119 } | 128 } |
| 120 } | 129 } |
| 121 | 130 |
| 122 // static | 131 // static |
| (...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 306 const auto iter = std::find_if( | 315 const auto iter = std::find_if( |
| 307 supported_profiles.begin(), supported_profiles.end(), | 316 supported_profiles.begin(), supported_profiles.end(), |
| 308 [profile](const VideoDecodeAccelerator::SupportedProfile& p) { | 317 [profile](const VideoDecodeAccelerator::SupportedProfile& p) { |
| 309 return profile == p.profile; | 318 return profile == p.profile; |
| 310 }); | 319 }); |
| 311 | 320 |
| 312 return iter != supported_profiles.end(); | 321 return iter != supported_profiles.end(); |
| 313 } | 322 } |
| 314 | 323 |
| 315 } // namespace media | 324 } // namespace media |
| OLD | NEW |