20#ifndef FIREBOLT_RIALTO_I_MEDIA_PIPELINE_H_
21#define FIREBOLT_RIALTO_I_MEDIA_PIPELINE_H_
42namespace firebolt::rialto
70 virtual std::unique_ptr<IMediaPipeline>
createMediaPipeline(std::weak_ptr<IMediaPipelineClient> client,
105 virtual std::unique_ptr<MediaSource>
copy()
const = 0;
146 const std::string &mimeType = std::string(),
bool hasDrm =
true)
179 std::unique_ptr<MediaSource>
copy()
const {
return std::make_unique<MediaSourceAV>(*
this); }
208 const std::string &mimeType = std::string(),
bool hasDrm =
true,
211 const std::shared_ptr<CodecData> &codecData =
nullptr)
253 const std::shared_ptr<CodecData> &codecData =
nullptr)
262 std::unique_ptr<MediaSource>
copy()
const override {
return std::make_unique<MediaSourceAudio>(*
this); }
298 int32_t width = firebolt::rialto::kUndefinedSize,
299 int32_t height = firebolt::rialto::kUndefinedSize,
302 const std::shared_ptr<CodecData> &codecData =
nullptr)
304 m_width(width), m_height(height)
310 std::unique_ptr<MediaSource>
copy()
const {
return std::make_unique<MediaSourceVideo>(*
this); }
340 int32_t width = firebolt::rialto::kUndefinedSize,
341 int32_t height = firebolt::rialto::kUndefinedSize,
344 const std::shared_ptr<CodecData> &codecData =
nullptr)
345 :
MediaSourceAV(sourceConfigType, mimeType, hasDrm, alignment, streamFormat, codecData), m_width(width),
382 int32_t width = firebolt::rialto::kUndefinedSize,
383 int32_t height = firebolt::rialto::kUndefinedSize,
386 const std::shared_ptr<CodecData> &codecData =
nullptr)
388 streamFormat, codecData),
393 std::unique_ptr<MediaSource>
copy()
const {
return std::make_unique<MediaSourceVideoDolbyVision>(*
this); }
429 std::unique_ptr<MediaSource>
copy()
const override {
return std::make_unique<MediaSourceSubtitle>(*
this); }
460 int64_t duration = 0)
478 virtual std::unique_ptr<MediaSegment>
copy()
const {
return std::make_unique<MediaSegment>(*
this); }
734 bool setData(uint32_t dataLength,
const uint8_t *data)
734 bool setData(uint32_t dataLength,
const uint8_t *data) {
…}
864 MediaSegmentAudio(int32_t sourceId = 0, int64_t timeStamp = 0, int64_t duration = 0, int32_t sampleRate = 0,
865 int32_t numberOfChannels = 0, uint64_t clippingStart = 0, uint64_t clippingEnd = 0)
864 MediaSegmentAudio(int32_t sourceId = 0, int64_t timeStamp = 0, int64_t duration = 0, int32_t sampleRate = 0, {
…}
885 std::unique_ptr<MediaSegment>
copy()
const override {
return std::make_unique<MediaSegmentAudio>(*
this); }
970 int32_t width = firebolt::rialto::kUndefinedSize,
971 int32_t height = firebolt::rialto::kUndefinedSize,
994 std::unique_ptr<MediaSegment>
copy()
const override {
return std::make_unique<MediaSegmentVideo>(*
this); }
1060 virtual std::weak_ptr<IMediaPipelineClient>
getClient() = 0;
1076 virtual bool load(
MediaType type,
const std::string &mimeType,
const std::string &url) = 0;
1217 virtual bool getStats(int32_t sourceId, uint64_t &renderedFrames, uint64_t &droppedFrames) = 0;
1253 virtual bool setVideoWindow(uint32_t x, uint32_t y, uint32_t width, uint32_t height) = 0;
1310 virtual bool setVolume(
double targetVolume, uint32_t volumeDuration = 0,
1311 EaseType easeType = EaseType::EASE_LINEAR) = 0;
1332 virtual bool setMute(int32_t sourceId,
bool mute) = 0;
1342 virtual bool getMute(int32_t sourceId,
bool &mute) = 0;
1437 virtual bool flush(int32_t sourceId,
bool resetTime,
bool &async) = 0;
1452 virtual bool setSourcePosition(int32_t sourceId, int64_t position,
bool resetTime =
false,
double appliedRate = 1.0,
1453 uint64_t stopPosition = kUndefinedPosition) = 0;
1467 virtual bool processAudioGap(int64_t position, uint32_t duration, int64_t discontinuityGap,
bool audioAac) = 0;
Audio specific configuration.
Definition MediaCommon.h:221
Fraction type.
Definition MediaCommon.h:426
A pair describing the clear and encrypted bytes in a sub-sample.
Definition MediaCommon.h:250
Video decoder requirements used to allocate a suitable decoder for a MediaPipeline session.
Definition MediaCommon.h:259