Rialto
0.1
Rialto media pipeline API
|
Go to the documentation of this file.
20 #ifndef FIREBOLT_RIALTO_I_MEDIA_PIPELINE_H_
21 #define FIREBOLT_RIALTO_I_MEDIA_PIPELINE_H_
41 namespace firebolt::rialto
59 static std::shared_ptr<IMediaPipelineFactory>
createFactory();
69 virtual std::unique_ptr<IMediaPipeline>
createMediaPipeline(std::weak_ptr<IMediaPipelineClient> client,
104 virtual std::unique_ptr<MediaSource>
copy()
const = 0;
145 const std::string &mimeType = std::string(),
bool hasDrm =
true)
178 std::unique_ptr<MediaSource>
copy()
const {
return std::make_unique<MediaSourceAV>(*
this); }
207 const std::string &mimeType = std::string(),
bool hasDrm =
true,
210 const std::shared_ptr<CodecData> &codecData =
nullptr)
252 const std::shared_ptr<CodecData> &codecData =
nullptr)
261 std::unique_ptr<MediaSource>
copy()
const override {
return std::make_unique<MediaSourceAudio>(*
this); }
297 int32_t width = firebolt::rialto::kUndefinedSize,
298 int32_t height = firebolt::rialto::kUndefinedSize,
301 const std::shared_ptr<CodecData> &codecData =
nullptr)
303 m_width(width), m_height(height)
309 std::unique_ptr<MediaSource>
copy()
const {
return std::make_unique<MediaSourceVideo>(*
this); }
339 int32_t width = firebolt::rialto::kUndefinedSize,
340 int32_t height = firebolt::rialto::kUndefinedSize,
343 const std::shared_ptr<CodecData> &codecData =
nullptr)
344 :
MediaSourceAV(sourceConfigType, mimeType, hasDrm, alignment, streamFormat, codecData), m_width(width),
381 int32_t width = firebolt::rialto::kUndefinedSize,
382 int32_t height = firebolt::rialto::kUndefinedSize,
385 const std::shared_ptr<CodecData> &codecData =
nullptr)
387 streamFormat, codecData),
392 std::unique_ptr<MediaSource>
copy()
const {
return std::make_unique<MediaSourceVideoDolbyVision>(*
this); }
428 std::unique_ptr<MediaSource>
copy()
const override {
return std::make_unique<MediaSourceSubtitle>(*
this); }
459 int64_t duration = 0)
477 virtual std::unique_ptr<MediaSegment>
copy()
const {
return std::make_unique<MediaSegment>(*
this); }
721 bool setData(uint32_t dataLength,
const uint8_t *data)
844 MediaSegmentAudio(int32_t sourceId = 0, int64_t timeStamp = 0, int64_t duration = 0, int32_t sampleRate = 0,
845 int32_t numberOfChannels = 0, uint64_t clippingStart = 0, uint64_t clippingEnd = 0)
865 std::unique_ptr<MediaSegment>
copy()
const override {
return std::make_unique<MediaSegmentAudio>(*
this); }
950 int32_t width = firebolt::rialto::kUndefinedSize,
951 int32_t height = firebolt::rialto::kUndefinedSize,
974 std::unique_ptr<MediaSegment>
copy()
const override {
return std::make_unique<MediaSegmentVideo>(*
this); }
1040 virtual std::weak_ptr<IMediaPipelineClient>
getClient() = 0;
1056 virtual bool load(
MediaType type,
const std::string &mimeType,
const std::string &url) = 0;
1070 virtual bool attachSource(
const std::unique_ptr<MediaSource> &source) = 0;
1111 virtual bool play() = 0;
1125 virtual bool pause() = 0;
1139 virtual bool stop() = 0;
1197 virtual bool getStats(int32_t sourceId, uint64_t &renderedFrames, uint64_t &droppedFrames) = 0;
1233 virtual bool setVideoWindow(uint32_t x, uint32_t y, uint32_t width, uint32_t height) = 0;
1290 virtual bool setVolume(
double targetVolume, uint32_t volumeDuration = 0,
1291 EaseType easeType = EaseType::EASE_LINEAR) = 0;
1300 virtual bool getVolume(
double ¤tVolume) = 0;
1312 virtual bool setMute(int32_t sourceId,
bool mute) = 0;
1322 virtual bool getMute(int32_t sourceId,
bool &mute) = 0;
1362 virtual bool setSync(
bool sync) = 0;
1371 virtual bool getSync(
bool &sync) = 0;
1416 virtual bool flush(int32_t sourceId,
bool resetTime) = 0;
1431 virtual bool setSourcePosition(int32_t sourceId, int64_t position,
bool resetTime =
false,
double appliedRate = 1.0,
1432 uint64_t stopPosition = kUndefinedPosition) = 0;
1446 virtual bool processAudioGap(int64_t position, uint32_t duration, int64_t discontinuityGap,
bool audioAac) = 0;
1504 virtual bool switchSource(
const std::unique_ptr<MediaSource> &source) = 0;
1509 #endif // FIREBOLT_RIALTO_I_MEDIA_PIPELINE_H_
Fraction type.
Definition: MediaCommon.h:420
Video decoder requirements used to allocate a suitable decoder for a MediaPipeline session.
Definition: MediaCommon.h:255
A pair describing the clear and encrypted bytes in a sub-sample.
Definition: MediaCommon.h:246
Audio specific configuration.
Definition: MediaCommon.h:220