Line data Source code
1 : /*
2 : * If not stated otherwise in this file or this component's LICENSE file the
3 : * following copyright and licenses apply:
4 : *
5 : * Copyright 2022 Sky UK
6 : *
7 : * Licensed under the Apache License, Version 2.0 (the "License");
8 : * you may not use this file except in compliance with the License.
9 : * You may obtain a copy of the License at
10 : *
11 : * http://www.apache.org/licenses/LICENSE-2.0
12 : *
13 : * Unless required by applicable law or agreed to in writing, software
14 : * distributed under the License is distributed on an "AS IS" BASIS,
15 : * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 : * See the License for the specific language governing permissions and
17 : * limitations under the License.
18 : */
19 :
20 : #ifndef FIREBOLT_RIALTO_CLIENT_MEDIA_CAPABILITIES_H_
21 : #define FIREBOLT_RIALTO_CLIENT_MEDIA_CAPABILITIES_H_
22 :
23 : #include "IMediaCapabilities.h"
24 : #include "IMediaCapabilitiesIpcFactory.h"
25 : #include <memory>
26 :
27 : namespace firebolt::rialto
28 : {
29 : /**
30 : * @brief IMediaCapabilitiesFactory factory class definition.
31 : */
32 : class MediaCapabilitiesFactory : public IMediaCapabilitiesFactory
33 : {
34 : public:
35 1 : MediaCapabilitiesFactory() = default;
36 2 : ~MediaCapabilitiesFactory() override = default;
37 :
38 : std::unique_ptr<IMediaCapabilities> createMediaCapabilities() const override;
39 : };
40 :
41 : }; // namespace firebolt::rialto
42 :
43 : namespace firebolt::rialto::client
44 : {
45 : /**
46 : * @brief The definition of the MediaCapabilities.
47 : */
48 : class MediaCapabilities : public IMediaCapabilities
49 : {
50 : public:
51 : /**
52 : * @brief The constructor.
53 : *
54 : * @param[in] mediaCapabilitiesIpcFactory : The media capabilities ipc factory.
55 : */
56 : explicit MediaCapabilities(const std::shared_ptr<IMediaCapabilitiesIpcFactory> &mediaCapabilitiesIpcFactory);
57 :
58 : /**
59 : * @brief Virtual destructor.
60 : */
61 : ~MediaCapabilities() override;
62 :
63 : common::AudioDecoderCapabilities getSupportedAudioCapabilities() override;
64 : common::VideoDecoderCapabilities getSupportedVideoCapabilities() override;
65 :
66 : private:
67 : /**
68 : * @brief The ipc implementation of the media capabilities.
69 : */
70 : std::unique_ptr<IMediaCapabilities> m_mediaCapabilitiesIpc;
71 : };
72 :
73 : } // namespace firebolt::rialto::client
74 :
75 : #endif // FIREBOLT_RIALTO_CLIENT_MEDIA_CAPABILITIES_H_
|