Home | History | Annotate | Download | only in base
      1 // Copyright (c) 2012 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/media_switches.h"
      6 
      7 namespace switches {
      8 
      9 // Allow users to specify a custom buffer size for debugging purpose.
     10 const char kAudioBufferSize[] = "audio-buffer-size";
     11 
     12 // Set number of threads to use for video decoding.
     13 const char kVideoThreads[] = "video-threads";
     14 
     15 // Bypass autodetection of the upper limit on resolution of streams that can
     16 // be hardware decoded.
     17 const char kIgnoreResolutionLimitsForAcceleratedVideoDecode[] =
     18     "ignore-resolution-limits-for-accelerated-video-decode";
     19 
     20 #if defined(OS_ANDROID)
     21 // Disables the infobar popup for accessing protected media identifier.
     22 const char kDisableInfobarForProtectedMediaIdentifier[] =
     23     "disable-infobar-for-protected-media-identifier";
     24 
     25 // Enables use of non-compositing MediaDrm decoding by default for Encrypted
     26 // Media Extensions implementation.
     27 const char kMediaDrmEnableNonCompositing[] = "mediadrm-enable-non-compositing";
     28 #endif
     29 
     30 #if defined(OS_LINUX) || defined(OS_FREEBSD) || defined(OS_SOLARIS)
     31 // The Alsa device to use when opening an audio input stream.
     32 const char kAlsaInputDevice[] = "alsa-input-device";
     33 // The Alsa device to use when opening an audio stream.
     34 const char kAlsaOutputDevice[] = "alsa-output-device";
     35 #endif
     36 
     37 #if defined(OS_MACOSX)
     38 // AVFoundation is available in versions 10.7 and onwards, and is to be used
     39 // http://crbug.com/288562 for both audio and video device monitoring and for
     40 // video capture. Being a dynamically loaded NSBundle and library, it hits the
     41 // Chrome startup time (http://crbug.com/311325 and http://crbug.com/311437);
     42 // for experimentation purposes, in particular library load time issue, the
     43 // usage of this library can be enabled by using this flag.
     44 const char kEnableAVFoundation[] = "enable-avfoundation";
     45 
     46 // QTKit is the media capture API predecessor to AVFoundation, available up and
     47 // until Mac OS X 10.9 (despite being deprecated in this last one). This flag
     48 // is used for troubleshooting and testing, and forces QTKit in builds and
     49 // configurations where AVFoundation would be used otherwise.
     50 const char kForceQTKit[] = "force-qtkit";
     51 #endif
     52 
     53 #if defined(OS_WIN)
     54 // Use exclusive mode audio streaming for Windows Vista and higher.
     55 // Leads to lower latencies for audio streams which uses the
     56 // AudioParameters::AUDIO_PCM_LOW_LATENCY audio path.
     57 // See http://msdn.microsoft.com/en-us/library/windows/desktop/dd370844.aspx
     58 // for details.
     59 const char kEnableExclusiveAudio[] = "enable-exclusive-audio";
     60 
     61 // Used to troubleshoot problems with different video capture implementations
     62 // on Windows.  By default we use the Media Foundation API on Windows 7 and up,
     63 // but specifying this switch will force use of DirectShow always.
     64 // See bug: http://crbug.com/268412
     65 const char kForceDirectShowVideoCapture[] = "force-directshow";
     66 
     67 // Force the use of MediaFoundation for video capture. This is only supported in
     68 // Windows 7 and above. Used, like |kForceDirectShowVideoCapture|, to
     69 // troubleshoot problems in Windows platforms.
     70 const char kForceMediaFoundationVideoCapture[] = "force-mediafoundation";
     71 
     72 // Use Windows WaveOut/In audio API even if Core Audio is supported.
     73 const char kForceWaveAudio[] = "force-wave-audio";
     74 
     75 // Instead of always using the hardware channel layout, check if a driver
     76 // supports the source channel layout.  Avoids outputting empty channels and
     77 // permits drivers to enable stereo to multichannel expansion.  Kept behind a
     78 // flag since some drivers lie about supported layouts and hang when used.  See
     79 // http://crbug.com/259165 for more details.
     80 const char kTrySupportedChannelLayouts[] = "try-supported-channel-layouts";
     81 
     82 // Number of buffers to use for WaveOut.
     83 const char kWaveOutBuffers[] = "waveout-buffers";
     84 #endif
     85 
     86 #if defined(USE_CRAS)
     87 // Use CRAS, the ChromeOS audio server.
     88 const char kUseCras[] = "use-cras";
     89 #endif
     90 
     91 // Use fake device for Media Stream to replace actual camera and microphone.
     92 const char kUseFakeDeviceForMediaStream[] = "use-fake-device-for-media-stream";
     93 
     94 // Use a raw video file as fake video capture device.
     95 const char kUseFileForFakeVideoCapture[] = "use-file-for-fake-video-capture";
     96 
     97 }  // namespace switches
     98