blob: 8c7c7a7708457da38a15a7584abc8951d9e4fd30 [file] [log] [blame]
// Copyright (c) 2011 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.
// Contains limit definition constants for the media subsystem.
#ifndef COBALT_MEDIA_BASE_LIMITS_H_
#define COBALT_MEDIA_BASE_LIMITS_H_
namespace cobalt {
namespace media {
namespace limits {
enum {
// Maximum possible dimension (width or height) for any video.
kMaxDimension = (1 << 15) - 1, // 32767
// Maximum possible canvas size (width multiplied by height) for any video.
kMaxCanvas = (1 << (14 * 2)), // 16384 x 16384
// Total number of video frames which are populating in the pipeline.
kMaxVideoFrames = 4,
// The following limits are used by AudioParameters::IsValid().
//
// A few notes on sample rates of common formats:
// - AAC files are limited to 96 kHz.
// - MP3 files are limited to 48 kHz.
// - Vorbis used to be limited to 96 kHz, but no longer has that
// restriction.
// - Most PC audio hardware is limited to 192 kHz, some specialized DAC
// devices will use 384 kHz though.
kMaxSampleRate = 384000,
kMinSampleRate = 3000,
kMaxChannels = 32,
kMaxBytesPerSample = 4,
kMaxBitsPerSample = kMaxBytesPerSample * 8,
kMaxSamplesPerPacket = kMaxSampleRate,
kMaxPacketSizeInBytes =
kMaxBytesPerSample * kMaxChannels * kMaxSamplesPerPacket,
// This limit is used by ParamTraits<VideoCaptureParams>.
kMaxFramesPerSecond = 1000,
// Maximum lengths for various EME API parameters. These are checks to
// prevent unnecessarily large parameters from being passed around, and the
// lengths are somewhat arbitrary as the EME spec doesn't specify any limits.
kMinCertificateLength = 128,
kMaxCertificateLength = 16 * 1024,
kMaxSessionIdLength = 512,
kMinKeyIdLength = 1,
kMaxKeyIdLength = 512,
kMaxKeyIds = 128,
kMaxInitDataLength = 64 * 1024, // 64 KB
kMaxSessionResponseLength = 64 * 1024, // 64 KB
kMaxKeySystemLength = 256,
};
} // namespace limits
} // namespace media
} // namespace cobalt
#endif // COBALT_MEDIA_BASE_LIMITS_H_