blob: e2f137d67dd9c9f90927e36c0367dacee8a45af7 [file] [log] [blame]
// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "media/base/video_types.h"
#include "base/logging.h"
namespace media {
std::string VideoPixelFormatToString(VideoPixelFormat format) {
switch (format) {
case PIXEL_FORMAT_UNKNOWN:
return "PIXEL_FORMAT_UNKNOWN";
case PIXEL_FORMAT_I420:
return "PIXEL_FORMAT_I420";
case PIXEL_FORMAT_YV12:
return "PIXEL_FORMAT_YV12";
case PIXEL_FORMAT_YV16:
return "PIXEL_FORMAT_YV16";
case PIXEL_FORMAT_YV12A:
return "PIXEL_FORMAT_YV12A";
case PIXEL_FORMAT_YV24:
return "PIXEL_FORMAT_YV24";
case PIXEL_FORMAT_NV12:
return "PIXEL_FORMAT_NV12";
case PIXEL_FORMAT_NV21:
return "PIXEL_FORMAT_NV21";
case PIXEL_FORMAT_UYVY:
return "PIXEL_FORMAT_UYVY";
case PIXEL_FORMAT_YUY2:
return "PIXEL_FORMAT_YUY2";
case PIXEL_FORMAT_ARGB:
return "PIXEL_FORMAT_ARGB";
case PIXEL_FORMAT_XRGB:
return "PIXEL_FORMAT_XRGB";
case PIXEL_FORMAT_RGB24:
return "PIXEL_FORMAT_RGB24";
case PIXEL_FORMAT_RGB32:
return "PIXEL_FORMAT_RGB32";
case PIXEL_FORMAT_MJPEG:
return "PIXEL_FORMAT_MJPEG";
case PIXEL_FORMAT_MT21:
return "PIXEL_FORMAT_MT21";
}
NOTREACHED() << "Invalid VideoPixelFormat provided: " << format;
return "";
}
bool IsYuvPlanar(VideoPixelFormat format) {
switch (format) {
case PIXEL_FORMAT_YV12:
case PIXEL_FORMAT_I420:
case PIXEL_FORMAT_YV16:
case PIXEL_FORMAT_YV12A:
case PIXEL_FORMAT_YV24:
case PIXEL_FORMAT_NV12:
case PIXEL_FORMAT_NV21:
case PIXEL_FORMAT_MT21:
return true;
case PIXEL_FORMAT_UNKNOWN:
case PIXEL_FORMAT_UYVY:
case PIXEL_FORMAT_YUY2:
case PIXEL_FORMAT_ARGB:
case PIXEL_FORMAT_XRGB:
case PIXEL_FORMAT_RGB24:
case PIXEL_FORMAT_RGB32:
case PIXEL_FORMAT_MJPEG:
return false;
}
return false;
}
bool IsOpaque(VideoPixelFormat format) {
switch (format) {
case PIXEL_FORMAT_UNKNOWN:
case PIXEL_FORMAT_I420:
case PIXEL_FORMAT_YV12:
case PIXEL_FORMAT_YV16:
case PIXEL_FORMAT_YV24:
case PIXEL_FORMAT_NV12:
case PIXEL_FORMAT_NV21:
case PIXEL_FORMAT_UYVY:
case PIXEL_FORMAT_YUY2:
case PIXEL_FORMAT_XRGB:
case PIXEL_FORMAT_RGB24:
case PIXEL_FORMAT_MJPEG:
case PIXEL_FORMAT_MT21:
return true;
case PIXEL_FORMAT_YV12A:
case PIXEL_FORMAT_ARGB:
case PIXEL_FORMAT_RGB32:
break;
}
return false;
}
} // namespace media