Ocean
Loading...
Searching...
No Matches
Media.h
Go to the documentation of this file.
1/*
2 * Copyright (c) Meta Platforms, Inc. and affiliates.
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 */
7
8#ifndef META_OCEAN_MEDIA_MEDIA_H
9#define META_OCEAN_MEDIA_MEDIA_H
10
11#include "ocean/base/Base.h"
13
14namespace Ocean
15{
16
17namespace Media
18{
19
20/**
21 * @defgroup media Ocean Media Abstraction Library
22 * @{
23 * The Ocean Media Library provides access to individual media objects.
24 * Media object can provide visual or/and audio content or can capture visual or/and audio content.<br>
25 *
26 * The base class for all media objects providing content is the Medium class.<br>
27 * All Medium classes are designed to provide the content in real-time.<br>
28 * There can be finite Medium objects like movie or audio files or there can be infinite Medium objects like live video streams or live camera streams.<br>
29 * @see Medium, Image, Movie, Audio, FiniteMedium.
30 *
31 * The base class for all media objects capturing content is the Recorder class.<br>
32 * Whether a Recorder is able to capture content in real-time depends on the underlying hardware and the underlying encoder technology.<br>
33 * @see Recorder, MovieRecorder.
34 *
35 * Further, this library provides an abstract frame provider interface allowing random access for visual content of finite media objects.<br>
36 * @see MediaFrameProviderInterface.
37 *
38 * This library is mainly an abstraction layer for the media objects.<br>
39 * The actual implementation of the media objects is lokated in separate libraries allowing to realize individual media libraries on individual hardware platforms.<br>
40 * However, the actual implementation is hided from the user so that any kind of media object from any kind of media library can be applied by the same functions and interfaces.<br>
41 * Any derived media library implements a Library class which registers all supported media objects and media types at the media Manager of this abstraction library.<br>
42 * This manager provides the unique access to all media objects.<br>
43 * @see Manager, Library.
44 *
45 * The Utilities class provides simple helper functions to receive e.g., the visual content from an image file.
46 *
47 * The library is platform independent.
48 * @}
49 */
50
51/**
52 * @namespace Ocean::Media Namespace of the Media library.<p>
53 * The Namespace Ocean::Media is used in the entire Ocean Media Library.
54 */
55
56// Defines OCEAN_MEDIA_EXPORT for dll export and import.
57#if defined(_WINDOWS) && defined(OCEAN_RUNTIME_SHARED)
58 #ifdef USE_OCEAN_MEDIA_EXPORT
59 #define OCEAN_MEDIA_EXPORT __declspec(dllexport)
60 #else
61 #define OCEAN_MEDIA_EXPORT __declspec(dllimport)
62 #endif
63#else
64 #define OCEAN_MEDIA_EXPORT
65#endif
66
67}
68
69}
70
71#endif // META_OCEAN_MEDIA_MEDIA_H
The namespace covering the entire Ocean framework.
Definition Accessor.h:15