17d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved. 27d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 37d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)// found in the LICENSE file. 47d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 57d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#ifndef MEDIA_BASE_SAMPLE_FORMAT_H 67d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#define MEDIA_BASE_SAMPLE_FORMAT_H 77d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 87d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#include "media/base/media_export.h" 97d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 107d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)namespace media { 117d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 127d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)enum SampleFormat { 137d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) // These values are histogrammed over time; do not change their ordinal 147d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) // values. When deleting a sample format replace it with a dummy value; when 15a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) // adding a sample format, do so at the bottom before kSampleFormatMax, and 16a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) // update the value of kSampleFormatMax. 177d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) kUnknownSampleFormat = 0, 187d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) kSampleFormatU8, // Unsigned 8-bit w/ bias of 128. 197d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) kSampleFormatS16, // Signed 16-bit. 207d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) kSampleFormatS32, // Signed 32-bit. 217d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) kSampleFormatF32, // Float 32-bit. 227d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) kSampleFormatPlanarS16, // Signed 16-bit planar. 237d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) kSampleFormatPlanarF32, // Float 32-bit planar. 247d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 25a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) // Must always be equal to largest value ever logged. 26a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) kSampleFormatMax = kSampleFormatPlanarF32, 277d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)}; 287d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 297d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)// Returns the number of bytes used per channel for the specified 307d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)// |sample_format|. 317d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)MEDIA_EXPORT int SampleFormatToBytesPerChannel(SampleFormat sample_format); 327d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 333240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch// Returns the name of the sample format as a string 343240926e260ce088908e02ac07a6cf7b0c0cbf44Ben MurdochMEDIA_EXPORT const char* SampleFormatToString(SampleFormat sample_format); 353240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch 367d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)} // namespace media 377d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 387d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#endif // MEDIA_BASE_SAMPLE_FORMAT_H 39