1
    2
    3
    4
    5
    6
    7
    8
    9
   10
   11
   12
   13
   14
   15
   16
   17
   18
   19
   20
   21
   22
   23
   24
   25
   26
   27
   28
   29
   30
   31
   32
   33
   34
   35
   36
   37
   38
   39
   40
   41
   42
   43
   44
   45
   46
   47
   48
   49
   50
   51
   52
   53
   54
   55
   56
   57
   58
   59
   60
   61
   62
   63
   64
   65
   66
   67
   68
   69
   70
   71
   72
   73
   74
   75
   76
   77
   78
   79

media / base / container_names.h [blame]

// Copyright 2013 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef MEDIA_BASE_CONTAINER_NAMES_H_
#define MEDIA_BASE_CONTAINER_NAMES_H_

#include <stdint.h>

#include "media/base/media_export.h"

namespace media {

namespace container_names {

// This is the set of input container formats detected for logging purposes. Not
// all of these are enabled (and it varies by product). Any additions need to be
// done at the end of the list (before CONTAINER_MAX). This list must be kept in
// sync with the enum definition "MediaContainers" in
// tools/metrics/histograms/histograms.xml.
//
// GENERATED_JAVA_ENUM_PACKAGE: org.chromium.media
// GENERATED_JAVA_PREFIX_TO_STRIP: CONTAINER_
enum class MediaContainerName {
  kContainerUnknown,       // Unknown
  kContainerAAC,           // AAC (Advanced Audio Coding)
  kContainerAC3,           // AC-3
  kContainerAIFF,          // AIFF (Audio Interchange File Format)
  kContainerAMR,           // AMR (Adaptive Multi-Rate Audio)
  kContainerAPE,           // APE (Monkey's Audio)
  kContainerASF,           // ASF (Advanced / Active Streaming Format)
  kContainerASS,           // SSA (SubStation Alpha) subtitle
  kContainerAVI,           // AVI (Audio Video Interleaved)
  kContainerBink,          // Bink
  kContainerCAF,           // CAF (Apple Core Audio Format)
  kContainerDTS,           // DTS
  kContainerDTSHD,         // DTS-HD
  kContainerDV,            // DV (Digital Video)
  kContainerDXA,           // DXA
  kContainerEAC3,          // Enhanced AC-3
  kContainerFLAC,          // FLAC (Free Lossless Audio Codec)
  kContainerFLV,           // FLV (Flash Video)
  kContainerGSM,           // GSM (Global System for Mobile Audio)
  kContainerH261,          // H.261
  kContainerH263,          // H.263
  kContainerH264,          // H.264
  kContainerHLS,           // HLS (Apple HTTP Live Streaming PlayList)
  kContainerIRCAM,         // Berkeley/IRCAM/CARL Sound Format
  kContainerMJPEG,         // MJPEG video
  kContainerMOV,           // QuickTime / MOV / MPEG4
  kContainerMP3,           // MP3 (MPEG audio layer 2/3)
  kContainerMPEG2PS,       // MPEG-2 Program Stream
  kContainerMPEG2TS,       // MPEG-2 Transport Stream
  kContainerMPEG4BS,       // MPEG-4 Bitstream
  kContainerOgg,           // Ogg
  kContainerRM,            // RM (RealMedia)
  kContainerSRT,           // SRT (SubRip subtitle)
  kContainerSWF,           // SWF (ShockWave Flash)
  kContainerVC1,           // VC-1
  kContainerWAV,           // WAV / WAVE (Waveform Audio)
  kContainerWEBM,          // Matroska / WebM
  kContainerWTV,           // WTV (Windows Television)
  kContainerDASH,          // DASH (MPEG-DASH)
  kContainerSmoothStream,  // SmoothStreaming
  kMaxValue = kContainerSmoothStream,  // Must be last
};

// Minimum size considered for processing.
enum { kMinimumContainerSize = 12 };

// Determine the container type.
MEDIA_EXPORT MediaContainerName DetermineContainer(const uint8_t* buffer,
                                                   int buffer_size);

}  // namespace container_names

}  // namespace media

#endif  // MEDIA_BASE_CONTAINER_NAMES_H_