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.
4
5#include "media/base/sample_format.h"
6
7#include "base/logging.h"
8
9namespace media {
10
11int SampleFormatToBytesPerChannel(SampleFormat sample_format) {
12  switch (sample_format) {
13    case kUnknownSampleFormat:
14      return 0;
15    case kSampleFormatU8:
16      return 1;
17    case kSampleFormatS16:
18    case kSampleFormatPlanarS16:
19      return 2;
20    case kSampleFormatS32:
21    case kSampleFormatF32:
22    case kSampleFormatPlanarF32:
23      return 4;
24  }
25
26  NOTREACHED() << "Invalid sample format provided: " << sample_format;
27  return 0;
28}
29
30const char* SampleFormatToString(SampleFormat sample_format) {
31  switch(sample_format) {
32    case kUnknownSampleFormat:
33      return "Unknown sample format";
34    case kSampleFormatU8:
35      return "Unsigned 8-bit with bias of 128";
36    case kSampleFormatS16:
37      return "Signed 16-bit";
38    case kSampleFormatS32:
39      return "Signed 32-bit";
40    case kSampleFormatF32:
41      return "Float 32-bit";
42    case kSampleFormatPlanarS16:
43      return "Signed 16-bit planar";
44    case kSampleFormatPlanarF32:
45      return "Float 32-bit planar";
46  }
47  NOTREACHED() << "Invalid sample format provided: " << sample_format;
48  return "";
49}
50
51}  // namespace media
52