Rialto  0.1
Rialto media pipeline API
IMediaPipelineCapabilities.h
Go to the documentation of this file.
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_I_MEDIA_PIPELINE_CAPABILITIES_H_
21 #define FIREBOLT_RIALTO_I_MEDIA_PIPELINE_CAPABILITIES_H_
22 
29 #include "MediaCommon.h"
30 #include <memory>
31 #include <string>
32 #include <vector>
33 
34 namespace firebolt::rialto
35 {
36 class IMediaPipelineCapabilities;
37 
42 {
43 public:
45  virtual ~IMediaPipelineCapabilitiesFactory() = default;
46 
52  static std::shared_ptr<IMediaPipelineCapabilitiesFactory> createFactory();
53 
59  virtual std::unique_ptr<IMediaPipelineCapabilities> createMediaPipelineCapabilities() const = 0;
60 };
61 
69 {
70 public:
71  IMediaPipelineCapabilities() = default;
72  virtual ~IMediaPipelineCapabilities() = default;
73 
75  IMediaPipelineCapabilities &operator=(const IMediaPipelineCapabilities &) = delete;
78 
86  virtual std::vector<std::string> getSupportedMimeTypes(MediaSourceType sourceType) = 0;
87 
98  virtual bool isMimeTypeSupported(const std::string &mimeType) = 0;
99 
108  virtual std::vector<std::string> getSupportedProperties(MediaSourceType mediaType,
109  const std::vector<std::string> &propertyNames) = 0;
110 };
111 
112 }; // namespace firebolt::rialto
113 
114 #endif // FIREBOLT_RIALTO_I_MEDIA_PIPELINE_CAPABILITIES_H_
firebolt::rialto::IMediaPipelineCapabilities::isMimeTypeSupported
virtual bool isMimeTypeSupported(const std::string &mimeType)=0
Indicates if the specified mime type is supported.
firebolt::rialto::IMediaPipelineCapabilitiesFactory::createMediaPipelineCapabilities
virtual std::unique_ptr< IMediaPipelineCapabilities > createMediaPipelineCapabilities() const =0
Creates the IMediaPipelineCapabilities object.
firebolt::rialto::MediaSourceType
MediaSourceType
The supported types of media source.
Definition: MediaCommon.h:72
firebolt::rialto::IMediaPipelineCapabilities::getSupportedMimeTypes
virtual std::vector< std::string > getSupportedMimeTypes(MediaSourceType sourceType)=0
Returns the MSE mime types supported by Rialto for sourceType.
firebolt::rialto::IMediaPipelineCapabilitiesFactory
IMediaPipelineCapabilities factory class, for getting the IMediaPipelineCapabilities object.
Definition: IMediaPipelineCapabilities.h:41
firebolt::rialto::IMediaPipelineCapabilities::getSupportedProperties
virtual std::vector< std::string > getSupportedProperties(MediaSourceType mediaType, const std::vector< std::string > &propertyNames)=0
Check sinks and decoders for supported properties.
MediaCommon.h
firebolt::rialto::IMediaPipelineCapabilitiesFactory::createFactory
static std::shared_ptr< IMediaPipelineCapabilitiesFactory > createFactory()
Gets the IMediaPipelineCapabilitiesFactory instance.
firebolt::rialto::IMediaPipelineCapabilities
The definition of the IMediaPipelineCapabilities interface.
Definition: IMediaPipelineCapabilities.h:68