Ocean
MFAudio.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_MF_AUDIO_H
9 #define META_OCEAN_MEDIA_MF_AUDIO_H
10 
14 
15 #include "ocean/media/Audio.h"
16 
17 namespace Ocean
18 {
19 
20 namespace Media
21 {
22 
23 namespace MediaFoundation
24 {
25 
26 /**
27  * This class implements a Media Foundation audio object.
28  * @ingroup mediamf
29  */
30 class OCEAN_MEDIA_MF_EXPORT MFAudio :
31  public virtual MFFiniteMedium,
32  public virtual MFSoundMedium,
33  public virtual Audio
34 {
35  friend class MFLibrary;
36 
37  public:
38 
39  /**
40  * Clones this medium and returns a new independent instance of this medium.
41  * @see Medium::clone().
42  */
43  MediumRef clone() const override;
44 
45  protected:
46 
47  /**
48  * Creates a new audio by a given url.
49  * @param url The URL of the audio
50  */
51  explicit MFAudio(const std::string& url);
52 
53  /**
54  * Destructs a MFAudio object.
55  */
56  ~MFAudio() override;
57 
58  /**
59  * Creates and builds the topology of this object.
60  * @see MFMedium::createTopology().
61  */
62  bool createTopology(const bool respectPlaybackTime) override;
63 
64  /**
65  * Releases the topology.
66  */
67  void releaseTopology() override;
68 };
69 
70 }
71 
72 }
73 
74 }
75 
76 #endif // META_OCEAN_MEDIA_DS_AUDIO_H
This class is the base class for all audio mediums.
Definition: Audio.h:38
This class implements a Media Foundation audio object.
Definition: MFAudio.h:34
MediumRef clone() const override
Clones this medium and returns a new independent instance of this medium.
~MFAudio() override
Destructs a MFAudio object.
void releaseTopology() override
Releases the topology.
bool createTopology(const bool respectPlaybackTime) override
Creates and builds the topology of this object.
MFAudio(const std::string &url)
Creates a new audio by a given url.
This class is the base class for all Media Foundation finite mediums.
Definition: MFFiniteMedium.h:34
This class implements the MediaFoundation library.
Definition: MFLibrary.h:30
This class is the base class for all MediaFoundation sound mediums.
Definition: MFSoundMedium.h:34
This template class implements a object reference with an internal reference counter.
Definition: base/ObjectRef.h:58
The namespace covering the entire Ocean framework.
Definition: Accessor.h:15