media.h revision c2e0dbddbe15c98d52c4786dac06cb8952a8ae6d
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// Contains code that should be used for initializing, or querying the state
6// of the media library as a whole.
7
8#ifndef MEDIA_BASE_MEDIA_H_
9#define MEDIA_BASE_MEDIA_H_
10
11#include "media/base/media_export.h"
12
13namespace base {
14class FilePath;
15}
16
17namespace media {
18
19// Attempts to initialize the media library (loading DLLs, DSOs, etc.).
20//
21// If |module_dir| is the empty string, then the system default library paths
22// are searched for the dynamic libraries.  If a |module_dir| is provided, then
23// only the specified |module_dir| will be searched for the dynamic libraries.
24//
25// If multiple initializations are attempted with different |module_dir|s
26// specified then the first one to succeed remains effective for the lifetime
27// of the process.
28//
29// Returns true if everything was successfully initialized, false otherwise.
30MEDIA_EXPORT bool InitializeMediaLibrary(const base::FilePath& module_dir);
31
32// Helper function for unit tests to avoid boiler plate code everywhere. This
33// function will crash if it fails to load the media library. This ensures tests
34// fail if the media library is not available.
35MEDIA_EXPORT void InitializeMediaLibraryForTesting();
36
37// Use this if you need to check whether the media library is initialized
38// for the this process, without actually trying to initialize it.
39MEDIA_EXPORT bool IsMediaLibraryInitialized();
40
41}  // namespace media
42
43#endif  // MEDIA_BASE_MEDIA_H_
44