Rialto  0.1
Rialto media pipeline API
IMediaPipeline.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_H_
21 #define FIREBOLT_RIALTO_I_MEDIA_PIPELINE_H_
22 
31 #include <stdint.h>
32 
33 #include <algorithm>
34 #include <memory>
35 #include <string>
36 #include <vector>
37 
38 #include "IMediaPipelineClient.h"
39 #include "MediaCommon.h"
40 
41 namespace firebolt::rialto
42 {
43 class IMediaPipeline;
44 
49 {
50 public:
51  IMediaPipelineFactory() = default;
52  virtual ~IMediaPipelineFactory() = default;
53 
59  static std::shared_ptr<IMediaPipelineFactory> createFactory();
60 
69  virtual std::unique_ptr<IMediaPipeline> createMediaPipeline(std::weak_ptr<IMediaPipelineClient> client,
70  const VideoRequirements &videoRequirements) const = 0;
71 };
72 
80 {
81 public:
82  IMediaPipeline() = default;
83  virtual ~IMediaPipeline() = default;
84 
85  IMediaPipeline(const IMediaPipeline &) = delete;
86  IMediaPipeline &operator=(const IMediaPipeline &) = delete;
87  IMediaPipeline(IMediaPipeline &&) = delete;
88  IMediaPipeline &operator=(IMediaPipeline &&) = delete;
89 
94  {
95  public:
99  virtual ~MediaSource() {}
100 
104  virtual std::unique_ptr<MediaSource> copy() const = 0;
105 
109  virtual MediaSourceType getType() const { return MediaSourceType::UNKNOWN; }
110 
114  std::string getMimeType() const { return m_mimeType; }
115 
119  bool getHasDrm() const { return m_hasDrm; }
120 
125 
129  int32_t getId() const { return m_id; }
130 
134  void setId(int32_t id) { m_id = id; }
135 
136  protected:
144  explicit MediaSource(SourceConfigType configType = SourceConfigType::UNKNOWN,
145  const std::string &mimeType = std::string(), bool hasDrm = true)
146  : m_id(0), m_configType(configType), m_mimeType(mimeType), m_hasDrm(hasDrm)
147  {
148  }
152  int32_t m_id;
153 
158 
162  std::string m_mimeType;
163 
167  bool m_hasDrm;
168  };
169 
174  class MediaSourceAV : public MediaSource
175  {
176  public:
177  ~MediaSourceAV() {}
178  std::unique_ptr<MediaSource> copy() const { return std::make_unique<MediaSourceAV>(*this); }
179 
184 
188  const std::shared_ptr<CodecData> &getCodecData() const { return m_codecData; }
189 
194 
195  protected:
206  explicit MediaSourceAV(SourceConfigType configType = SourceConfigType::UNKNOWN,
207  const std::string &mimeType = std::string(), bool hasDrm = true,
208  SegmentAlignment alignment = SegmentAlignment::UNDEFINED,
209  StreamFormat streamFormat = StreamFormat::UNDEFINED,
210  const std::shared_ptr<CodecData> &codecData = nullptr)
211  : MediaSource(configType, mimeType, hasDrm), m_alignment(alignment), m_streamFormat(streamFormat),
212  m_codecData(codecData)
213  {
214  }
219 
224 
228  std::shared_ptr<CodecData> m_codecData;
229  };
230 
237  {
238  public:
249  MediaSourceAudio(const std::string &mimeType, bool hasDrm = true, const AudioConfig &audioConfig = AudioConfig(),
250  SegmentAlignment alignment = SegmentAlignment::UNDEFINED,
251  StreamFormat streamFormat = StreamFormat::UNDEFINED,
252  const std::shared_ptr<CodecData> &codecData = nullptr)
253  : MediaSourceAV(SourceConfigType::AUDIO, mimeType, hasDrm, alignment, streamFormat, codecData),
254  m_audioConfig(audioConfig)
255  {
256  }
257 
258  ~MediaSourceAudio() {}
259 
260  MediaSourceType getType() const override { return MediaSourceType::AUDIO; }
261  std::unique_ptr<MediaSource> copy() const override { return std::make_unique<MediaSourceAudio>(*this); }
262 
268  const AudioConfig &getAudioConfig() const { return m_audioConfig; }
269 
270  protected:
275  };
276 
283  {
284  public:
296  MediaSourceVideo(const std::string &mimeType, bool hasDrm = true,
297  int32_t width = firebolt::rialto::kUndefinedSize,
298  int32_t height = firebolt::rialto::kUndefinedSize,
299  SegmentAlignment alignment = SegmentAlignment::UNDEFINED,
300  StreamFormat streamFormat = StreamFormat::UNDEFINED,
301  const std::shared_ptr<CodecData> &codecData = nullptr)
302  : MediaSourceAV(SourceConfigType::VIDEO, mimeType, hasDrm, alignment, streamFormat, codecData),
303  m_width(width), m_height(height)
304  {
305  }
306  ~MediaSourceVideo() {}
307 
308  MediaSourceType getType() const override { return MediaSourceType::VIDEO; }
309  std::unique_ptr<MediaSource> copy() const { return std::make_unique<MediaSourceVideo>(*this); }
310 
316  int32_t getWidth() const { return m_width; }
317 
323  int32_t getHeight() const { return m_height; }
324 
325  protected:
338  MediaSourceVideo(SourceConfigType sourceConfigType, const std::string &mimeType, bool hasDrm = true,
339  int32_t width = firebolt::rialto::kUndefinedSize,
340  int32_t height = firebolt::rialto::kUndefinedSize,
341  SegmentAlignment alignment = SegmentAlignment::UNDEFINED,
342  StreamFormat streamFormat = StreamFormat::UNDEFINED,
343  const std::shared_ptr<CodecData> &codecData = nullptr)
344  : MediaSourceAV(sourceConfigType, mimeType, hasDrm, alignment, streamFormat, codecData), m_width(width),
345  m_height(height)
346  {
347  }
348 
349  private:
353  int m_width;
354 
358  int m_height;
359  };
360 
366  {
367  public:
380  MediaSourceVideoDolbyVision(const std::string &mimeType, int32_t dolbyVisionProfile, bool hasDrm = true,
381  int32_t width = firebolt::rialto::kUndefinedSize,
382  int32_t height = firebolt::rialto::kUndefinedSize,
383  SegmentAlignment alignment = SegmentAlignment::UNDEFINED,
384  StreamFormat streamFormat = StreamFormat::UNDEFINED,
385  const std::shared_ptr<CodecData> &codecData = nullptr)
386  : MediaSourceVideo(SourceConfigType::VIDEO_DOLBY_VISION, mimeType, hasDrm, width, height, alignment,
387  streamFormat, codecData),
388  m_dolbyVisionProfile(dolbyVisionProfile)
389  {
390  }
392  std::unique_ptr<MediaSource> copy() const { return std::make_unique<MediaSourceVideoDolbyVision>(*this); }
393 
399  uint32_t getDolbyVisionProfile() const { return m_dolbyVisionProfile; }
400 
401  protected:
406  };
407 
412  {
413  public:
420  MediaSourceSubtitle(const std::string &mimeType, const std::string &textTrackIdentifier)
421  : MediaSource(SourceConfigType::SUBTITLE, mimeType, false), m_textTrackIdentifier(textTrackIdentifier)
422  {
423  }
424 
425  ~MediaSourceSubtitle() {}
426 
427  MediaSourceType getType() const override { return MediaSourceType::SUBTITLE; }
428  std::unique_ptr<MediaSource> copy() const override { return std::make_unique<MediaSourceSubtitle>(*this); }
429 
435  const std::string &getTextTrackIdentifier() const { return m_textTrackIdentifier; }
436 
437  protected:
442  };
443 
448  {
449  public:
458  MediaSegment(int32_t sourceId = 0, MediaSourceType type = MediaSourceType::UNKNOWN, int64_t timeStamp = 0,
459  int64_t duration = 0)
460  : m_sourceId(sourceId), m_type(type), m_data(nullptr), m_dataLength(0u), m_timeStamp(timeStamp),
462  m_alignment(SegmentAlignment::UNDEFINED), m_cipherMode(CipherMode::UNKNOWN), m_crypt(0), m_skip(0),
464  {
465  }
466 
470  virtual ~MediaSegment() {}
471 
477  virtual std::unique_ptr<MediaSegment> copy() const { return std::make_unique<MediaSegment>(*this); }
478 
484  int32_t getId() const { return m_sourceId; }
485 
491  MediaSourceType getType() const { return m_type; }
492 
498  const uint8_t *getData() const { return m_data; }
499 
505  uint32_t getDataLength() const { return m_dataLength; }
506 
512  int64_t getTimeStamp() const { return m_timeStamp; }
513 
517  void setTimeStamp(int64_t timeStamp) { m_timeStamp = timeStamp; }
518 
524  int64_t getDuration() const { return m_duration; }
525 
531  const std::vector<uint8_t> &getExtraData() const { return m_extraData; }
532 
538  bool isEncrypted() const { return m_encrypted; }
539 
545  const int32_t getMediaKeySessionId() const { return m_mediaKeySessionId; }
546 
552  const std::vector<uint8_t> &getKeyId() const { return m_keyId; }
553 
559  const std::vector<uint8_t> &getInitVector() const { return m_initVector; }
560 
566  const std::vector<SubSamplePair> &getSubSamples() const { return m_subSamples; }
567 
573  const uint32_t getInitWithLast15() const { return m_initWithLast15; }
574 
581 
587  const std::shared_ptr<CodecData> &getCodecData() const { return m_codecData; }
588 
594  const CipherMode &getCipherMode() const { return m_cipherMode; }
595 
604  const bool getEncryptionPattern(uint32_t &crypt, uint32_t &skip) const
605  {
606  crypt = m_crypt;
607  skip = m_skip;
608  return m_encryptionPatternSet;
609  }
610 
611  protected:
615  int32_t m_sourceId;
616 
621 
625  const uint8_t *m_data;
626 
630  uint32_t m_dataLength;
631 
635  int64_t m_timeStamp;
636 
640  int64_t m_duration;
641 
645  std::shared_ptr<CodecData> m_codecData;
646 
650  std::vector<uint8_t> m_extraData;
651 
656 
661 
665  std::vector<uint8_t> m_keyId;
666 
670  std::vector<uint8_t> m_initVector;
671 
675  std::vector<SubSamplePair> m_subSamples;
676 
682 
687 
692 
696  uint32_t m_crypt;
697 
701  uint32_t m_skip;
702 
707 
708  public:
721  bool setData(uint32_t dataLength, const uint8_t *data)
722  {
723  m_dataLength = dataLength;
724  m_data = data;
725  return true;
726  }
727 
733  bool setExtraData(const std::vector<uint8_t> &extraData)
734  {
735  m_extraData = extraData;
736  return true;
737  }
738 
744  void setSegmentAlignment(const SegmentAlignment &alignment) { m_alignment = alignment; }
745 
753  void setCodecData(const std::shared_ptr<CodecData> &codecData) { m_codecData = codecData; }
754 
760  void setEncrypted(bool encrypted) { m_encrypted = encrypted; }
761 
767  void setMediaKeySessionId(int32_t mksId) { m_mediaKeySessionId = mksId; }
768 
774  void setKeyId(const std::vector<uint8_t> &keyId) { m_keyId = keyId; }
775 
781  void setInitVector(const std::vector<uint8_t> &initVector) { m_initVector = initVector; }
782 
789  void addSubSample(size_t numClearBytes, size_t numEncryptedBytes)
790  {
791  m_subSamples.emplace_back(SubSamplePair{numClearBytes, numEncryptedBytes});
792  }
793 
799  void setInitWithLast15(uint32_t initWithLast15) { m_initWithLast15 = initWithLast15; }
800 
806  void setCipherMode(CipherMode cipherMode) { m_cipherMode = cipherMode; }
807 
814  void setEncryptionPattern(uint32_t crypt, uint32_t skip)
815  {
816  m_crypt = crypt;
817  m_skip = skip;
818  m_encryptionPatternSet = true;
819  }
820 
824  void copy(const MediaSegment &other);
825  };
826 
831  {
832  public:
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)
846  : MediaSegment(sourceId, MediaSourceType::AUDIO, timeStamp, duration), m_sampleRate(sampleRate),
847  m_numberOfChannels(numberOfChannels), m_clippingStart(clippingStart), m_clippingEnd(clippingEnd)
848  {
849  }
850 
855  {
856  m_sampleRate = other.m_sampleRate;
858  }
859 
865  std::unique_ptr<MediaSegment> copy() const override { return std::make_unique<MediaSegmentAudio>(*this); }
866 
872  int32_t getSampleRate() const { return m_sampleRate; }
873 
879  int32_t getNumberOfChannels() const { return m_numberOfChannels; }
880 
886  uint64_t getClippingStart() const { return m_clippingStart; }
887 
893  uint64_t getClippingEnd() const { return m_clippingEnd; }
894 
901  {
902  copy(other);
903  return *this;
904  }
905 
906  protected:
910  void copy(const MediaSegmentAudio &other);
911 
915  int32_t m_sampleRate;
916 
921 
925  uint64_t m_clippingStart;
926 
930  uint64_t m_clippingEnd;
931  };
932 
937  {
938  public:
949  MediaSegmentVideo(int32_t sourceId = 0, int64_t timeStamp = 0, int64_t duration = 0,
950  int32_t width = firebolt::rialto::kUndefinedSize,
951  int32_t height = firebolt::rialto::kUndefinedSize,
954  : MediaSegment(sourceId, MediaSourceType::VIDEO, timeStamp, duration), m_width(width), m_height(height),
955  m_frameRate(frameRate)
956  {
957  }
958 
963  {
964  m_width = other.m_width;
965  m_height = other.m_height;
966  m_frameRate = other.m_frameRate;
967  }
968 
974  std::unique_ptr<MediaSegment> copy() const override { return std::make_unique<MediaSegmentVideo>(*this); }
975 
981  int32_t getWidth() const { return m_width; }
982 
988  int32_t getHeight() const { return m_height; }
989 
996 
1003  {
1004  copy(other);
1005  return *this;
1006  }
1007 
1008  protected:
1012  void copy(const MediaSegmentVideo &other);
1013 
1017  int32_t m_width;
1018 
1022  int32_t m_height;
1023 
1028  };
1029 
1033  typedef std::vector<std::unique_ptr<MediaSegment>> MediaSegmentVector;
1034 
1040  virtual std::weak_ptr<IMediaPipelineClient> getClient() = 0;
1041 
1056  virtual bool load(MediaType type, const std::string &mimeType, const std::string &url) = 0;
1057 
1070  virtual bool attachSource(const std::unique_ptr<MediaSource> &source) = 0;
1071 
1084  virtual bool removeSource(int32_t id) = 0;
1085 
1097  virtual bool allSourcesAttached() = 0;
1098 
1111  virtual bool play() = 0;
1112 
1125  virtual bool pause() = 0;
1126 
1139  virtual bool stop() = 0;
1140 
1151  virtual bool setPlaybackRate(double rate) = 0;
1152 
1173  virtual bool setPosition(int64_t position) = 0;
1174 
1184  virtual bool getPosition(int64_t &position) = 0;
1185 
1197  virtual bool getStats(int32_t sourceId, uint64_t &renderedFrames, uint64_t &droppedFrames) = 0;
1198 
1209  virtual bool setImmediateOutput(int32_t sourceId, bool immediateOutput) = 0;
1210 
1221  virtual bool getImmediateOutput(int32_t sourceId, bool &immediateOutput) = 0;
1222 
1233  virtual bool setVideoWindow(uint32_t x, uint32_t y, uint32_t width, uint32_t height) = 0;
1234 
1253  virtual bool haveData(MediaSourceStatus status, uint32_t needDataRequestId) = 0;
1254 
1273  virtual AddSegmentStatus addSegment(uint32_t needDataRequestId, const std::unique_ptr<MediaSegment> &mediaSegment) = 0;
1274 
1278  virtual bool renderFrame() = 0;
1279 
1290  virtual bool setVolume(double targetVolume, uint32_t volumeDuration = 0,
1291  EaseType easeType = EaseType::EASE_LINEAR) = 0;
1292 
1300  virtual bool getVolume(double &currentVolume) = 0;
1301 
1312  virtual bool setMute(int32_t sourceId, bool mute) = 0;
1313 
1322  virtual bool getMute(int32_t sourceId, bool &mute) = 0;
1323 
1331  virtual bool setTextTrackIdentifier(const std::string &textTrackIdentifier) = 0;
1332 
1340  virtual bool getTextTrackIdentifier(std::string &textTrackIdentifier) = 0;
1341 
1351  virtual bool setLowLatency(bool lowLatency) = 0;
1352 
1362  virtual bool setSync(bool sync) = 0;
1363 
1371  virtual bool getSync(bool &sync) = 0;
1372 
1382  virtual bool setSyncOff(bool syncOff) = 0;
1383 
1395  virtual bool setStreamSyncMode(int32_t sourceId, int32_t streamSyncMode) = 0;
1396 
1404  virtual bool getStreamSyncMode(int32_t &streamSyncMode) = 0;
1405 
1416  virtual bool flush(int32_t sourceId, bool resetTime) = 0;
1417 
1431  virtual bool setSourcePosition(int32_t sourceId, int64_t position, bool resetTime = false, double appliedRate = 1.0,
1432  uint64_t stopPosition = kUndefinedPosition) = 0;
1433 
1446  virtual bool processAudioGap(int64_t position, uint32_t duration, int64_t discontinuityGap, bool audioAac) = 0;
1447 
1458  virtual bool setBufferingLimit(uint32_t limitBufferingMs) = 0;
1459 
1470  virtual bool getBufferingLimit(uint32_t &limitBufferingMs) = 0;
1471 
1482  virtual bool setUseBuffering(bool useBuffering) = 0;
1483 
1493  virtual bool getUseBuffering(bool &useBuffering) = 0;
1494 
1504  virtual bool switchSource(const std::unique_ptr<MediaSource> &source) = 0;
1505 };
1506 
1507 }; // namespace firebolt::rialto
1508 
1509 #endif // FIREBOLT_RIALTO_I_MEDIA_PIPELINE_H_
firebolt::rialto::IMediaPipelineFactory
IMediaPipeline factory class, returns a concrete implementation of IMediaPipeline.
Definition: IMediaPipeline.h:48
firebolt::rialto::IMediaPipeline::MediaSource::setId
void setId(int32_t id)
Set the source id.
Definition: IMediaPipeline.h:134
firebolt::rialto::IMediaPipeline::getVolume
virtual bool getVolume(double &currentVolume)=0
Get current audio level. Fetches the current volume level for the pipeline.
firebolt::rialto::IMediaPipeline::MediaSegment::~MediaSegment
virtual ~MediaSegment()
Virtual destructor.
Definition: IMediaPipeline.h:470
firebolt::rialto::IMediaPipeline::MediaSourceAudio::getAudioConfig
const AudioConfig & getAudioConfig() const
Gets the audio specific configuration.
Definition: IMediaPipeline.h:268
firebolt::rialto::IMediaPipeline::MediaSegment::m_mediaKeySessionId
int32_t m_mediaKeySessionId
Key session ID to use for decryption - only required for Netflix.
Definition: IMediaPipeline.h:660
firebolt::rialto::IMediaPipeline::MediaSegment::getSegmentAlignment
const SegmentAlignment getSegmentAlignment() const
Returns the segment alignment.
Definition: IMediaPipeline.h:580
firebolt::rialto::IMediaPipeline::setSyncOff
virtual bool setSyncOff(bool syncOff)=0
Set sync off property on the audio decoder. Default false.
firebolt::rialto::IMediaPipeline::getSync
virtual bool getSync(bool &sync)=0
Get sync property on the audio sink.
firebolt::rialto::IMediaPipeline::MediaSegment::m_dataLength
uint32_t m_dataLength
The data length.
Definition: IMediaPipeline.h:630
firebolt::rialto::IMediaPipeline::MediaSegment::setInitWithLast15
void setInitWithLast15(uint32_t initWithLast15)
Sets initWithLast15 value.
Definition: IMediaPipeline.h:799
firebolt::rialto::IMediaPipeline::MediaSegment::m_subSamples
std::vector< SubSamplePair > m_subSamples
The sub-sample pairs.
Definition: IMediaPipeline.h:675
firebolt::rialto::IMediaPipeline
The definition of the IMediaPipeline interface.
Definition: IMediaPipeline.h:79
firebolt::rialto::IMediaPipeline::MediaSourceAV::copy
std::unique_ptr< MediaSource > copy() const
Create a copy.
Definition: IMediaPipeline.h:178
firebolt::rialto::IMediaPipeline::MediaSegment::m_alignment
SegmentAlignment m_alignment
The alignment of media segment.
Definition: IMediaPipeline.h:686
firebolt::rialto::IMediaPipeline::MediaSourceAV
A class that represents media source audio and video derived from MediaSource class,...
Definition: IMediaPipeline.h:174
firebolt::rialto::IMediaPipeline::switchSource
virtual bool switchSource(const std::unique_ptr< MediaSource > &source)=0
Switches a source stream.
firebolt::rialto::MediaSourceStatus
MediaSourceStatus
The media source status. This is the status of the source after a read.
Definition: MediaCommon.h:115
firebolt::rialto::IMediaPipeline::MediaSourceVideo::getHeight
int32_t getHeight() const
Gets the height of the video.
Definition: IMediaPipeline.h:323
firebolt::rialto::IMediaPipeline::MediaSegmentVector
std::vector< std::unique_ptr< MediaSegment > > MediaSegmentVector
A vector that contains one or more media segments.
Definition: IMediaPipeline.h:1033
firebolt::rialto::IMediaPipeline::setStreamSyncMode
virtual bool setStreamSyncMode(int32_t sourceId, int32_t streamSyncMode)=0
Set stream sync mode property on the audio decoder or video filter. Default 0.
firebolt::rialto::IMediaPipeline::MediaSegment::setEncrypted
void setEncrypted(bool encrypted)
Sets the encrypted flag.
Definition: IMediaPipeline.h:760
firebolt::rialto::IMediaPipeline::MediaSegment::getMediaKeySessionId
const int32_t getMediaKeySessionId() const
Returns the media key session id. Empty if unencrypted.
Definition: IMediaPipeline.h:545
firebolt::rialto::IMediaPipeline::MediaSourceVideoDolbyVision::copy
std::unique_ptr< MediaSource > copy() const
Create a copy.
Definition: IMediaPipeline.h:392
firebolt::rialto::IMediaPipeline::MediaSourceVideo::getType
MediaSourceType getType() const override
Return the source type.
Definition: IMediaPipeline.h:308
firebolt::rialto::IMediaPipeline::MediaSegmentVideo::getWidth
int32_t getWidth() const
Return the video width.
Definition: IMediaPipeline.h:981
firebolt::rialto::IMediaPipeline::MediaSourceSubtitle::copy
std::unique_ptr< MediaSource > copy() const override
Create a copy.
Definition: IMediaPipeline.h:428
firebolt::rialto::IMediaPipeline::MediaSegmentAudio::getClippingEnd
uint64_t getClippingEnd() const
Return the amount of audio to clip from end of buffer.
Definition: IMediaPipeline.h:893
firebolt::rialto::IMediaPipeline::MediaSegment::m_cipherMode
CipherMode m_cipherMode
Cipher mode of the sample.
Definition: IMediaPipeline.h:691
firebolt::rialto::Fraction
Fraction type.
Definition: MediaCommon.h:420
firebolt::rialto::IMediaPipeline::setLowLatency
virtual bool setLowLatency(bool lowLatency)=0
Set low latency property on the audio sink. Default false.
firebolt::rialto::IMediaPipeline::MediaSourceSubtitle::getTextTrackIdentifier
const std::string & getTextTrackIdentifier() const
Get the Text Track Identifier object.
Definition: IMediaPipeline.h:435
firebolt::rialto::IMediaPipeline::MediaSourceAV::m_codecData
std::shared_ptr< CodecData > m_codecData
Additional data for decoder.
Definition: IMediaPipeline.h:228
firebolt::rialto::IMediaPipeline::MediaSegment::setCipherMode
void setCipherMode(CipherMode cipherMode)
Sets the cipher mode for common encryption.
Definition: IMediaPipeline.h:806
firebolt::rialto::IMediaPipeline::MediaSourceVideoDolbyVision::getDolbyVisionProfile
uint32_t getDolbyVisionProfile() const
Gets the dolby vision profile.
Definition: IMediaPipeline.h:399
firebolt::rialto::IMediaPipeline::MediaSourceAudio::getType
MediaSourceType getType() const override
Return the source type.
Definition: IMediaPipeline.h:260
firebolt::rialto::IMediaPipeline::MediaSegmentVideo::m_frameRate
firebolt::rialto::Fraction m_frameRate
The fractional framerate of the sample.
Definition: IMediaPipeline.h:1027
firebolt::rialto::IMediaPipeline::MediaSource::m_configType
SourceConfigType m_configType
The source config type.
Definition: IMediaPipeline.h:157
firebolt::rialto::IMediaPipeline::MediaSourceVideoDolbyVision::m_dolbyVisionProfile
uint32_t m_dolbyVisionProfile
Variable that stores the Dolby Vision Profile.
Definition: IMediaPipeline.h:405
firebolt::rialto::IMediaPipeline::MediaSourceAV::getCodecData
const std::shared_ptr< CodecData > & getCodecData() const
Gets the codec data.
Definition: IMediaPipeline.h:188
firebolt::rialto::IMediaPipeline::setVolume
virtual bool setVolume(double targetVolume, uint32_t volumeDuration=0, EaseType easeType=EaseType::EASE_LINEAR)=0
Set the target volume level and transition duration with easing type. By default volume is set immedi...
firebolt::rialto::IMediaPipeline::haveData
virtual bool haveData(MediaSourceStatus status, uint32_t needDataRequestId)=0
Returns data requested using notifyNeedMediaData().
firebolt::rialto::IMediaPipeline::play
virtual bool play()=0
Starts playback of the media.
firebolt::rialto::IMediaPipelineFactory::createFactory
static std::shared_ptr< IMediaPipelineFactory > createFactory()
Create a IMediaPipelineFactory instance.
firebolt::rialto::IMediaPipeline::MediaSegment::m_initVector
std::vector< uint8_t > m_initVector
The encryption key initialisation vector.
Definition: IMediaPipeline.h:670
firebolt::rialto::IMediaPipeline::setTextTrackIdentifier
virtual bool setTextTrackIdentifier(const std::string &textTrackIdentifier)=0
Change Text Track Identifier.
firebolt::rialto::IMediaPipeline::MediaSegmentAudio::getClippingStart
uint64_t getClippingStart() const
Return the amount of audio to clip from start of buffer.
Definition: IMediaPipeline.h:886
firebolt::rialto::IMediaPipeline::MediaSegment::m_type
MediaSourceType m_type
The source type.
Definition: IMediaPipeline.h:620
firebolt::rialto::IMediaPipeline::MediaSegment::getInitVector
const std::vector< uint8_t > & getInitVector() const
Returns the initialisation vector. Empty if unencrypted.
Definition: IMediaPipeline.h:559
firebolt::rialto::IMediaPipeline::getStats
virtual bool getStats(int32_t sourceId, uint64_t &renderedFrames, uint64_t &droppedFrames)=0
Get stats for this source.
firebolt::rialto::IMediaPipeline::MediaSegment::m_encrypted
bool m_encrypted
Indicates the data is encrypted.
Definition: IMediaPipeline.h:655
firebolt::rialto::IMediaPipeline::MediaSegment::setTimeStamp
void setTimeStamp(int64_t timeStamp)
Sets the time stamp (value in nanoseconds).
Definition: IMediaPipeline.h:517
firebolt::rialto::IMediaPipeline::MediaSegment::MediaSegment
MediaSegment(int32_t sourceId=0, MediaSourceType type=MediaSourceType::UNKNOWN, int64_t timeStamp=0, int64_t duration=0)
Default constructor.
Definition: IMediaPipeline.h:458
firebolt::rialto::IMediaPipeline::MediaSourceAV::getSegmentAlignment
SegmentAlignment getSegmentAlignment() const
Gets the segment alignment.
Definition: IMediaPipeline.h:183
firebolt::rialto::IMediaPipeline::MediaSegmentVideo::operator=
MediaSegmentVideo & operator=(const MediaSegmentVideo &other)
Copy assignment operator.
Definition: IMediaPipeline.h:1002
firebolt::rialto::IMediaPipeline::MediaSegment::setKeyId
void setKeyId(const std::vector< uint8_t > &keyId)
Sets the key id.
Definition: IMediaPipeline.h:774
firebolt::rialto::MediaSourceType
MediaSourceType
The supported types of media source.
Definition: MediaCommon.h:72
firebolt::rialto::IMediaPipeline::MediaSourceAudio
A class that represents media source audio derived from MediaSource class, which represents the sourc...
Definition: IMediaPipeline.h:236
firebolt::rialto::IMediaPipeline::MediaSegmentVideo
A class that represents media source video data.
Definition: IMediaPipeline.h:936
firebolt::rialto::IMediaPipeline::load
virtual bool load(MediaType type, const std::string &mimeType, const std::string &url)=0
Loads the media and backend delegate.
firebolt::rialto::IMediaPipeline::MediaSegment::getEncryptionPattern
const bool getEncryptionPattern(uint32_t &crypt, uint32_t &skip) const
Gets the crypt & skip byte block for pattern encryption.
Definition: IMediaPipeline.h:604
firebolt::rialto::IMediaPipeline::MediaSource::getType
virtual MediaSourceType getType() const
Return the source type.
Definition: IMediaPipeline.h:109
firebolt::rialto::SourceConfigType
SourceConfigType
Shows the types of source configuration.
Definition: MediaCommon.h:83
firebolt::rialto::IMediaPipeline::MediaSourceAV::m_streamFormat
StreamFormat m_streamFormat
The stream format.
Definition: IMediaPipeline.h:223
firebolt::rialto::IMediaPipeline::MediaSegmentVideo::copy
std::unique_ptr< MediaSegment > copy() const override
Makes a shallow copy of the segment.
Definition: IMediaPipeline.h:974
firebolt::rialto::IMediaPipeline::MediaSegment::m_keyId
std::vector< uint8_t > m_keyId
The encryption key id.
Definition: IMediaPipeline.h:665
firebolt::rialto::SegmentAlignment
SegmentAlignment
The alignment of media segment.
Definition: MediaCommon.h:332
firebolt::rialto::IMediaPipeline::MediaSegment::m_extraData
std::vector< uint8_t > m_extraData
The data.
Definition: IMediaPipeline.h:650
firebolt::rialto::IMediaPipeline::setSync
virtual bool setSync(bool sync)=0
Set sync property on the audio sink. Default false.
firebolt::rialto::IMediaPipeline::MediaSegmentAudio::m_clippingStart
uint64_t m_clippingStart
The amount of audio to clip from start of buffer.
Definition: IMediaPipeline.h:925
firebolt::rialto::IMediaPipeline::MediaSegmentAudio::m_clippingEnd
uint64_t m_clippingEnd
The amount of audio to clip from end of buffer.
Definition: IMediaPipeline.h:930
firebolt::rialto::IMediaPipeline::MediaSegment::m_data
const uint8_t * m_data
The data.
Definition: IMediaPipeline.h:625
firebolt::rialto::IMediaPipeline::MediaSource::getId
int32_t getId() const
Return the source id.
Definition: IMediaPipeline.h:129
firebolt::rialto::IMediaPipeline::MediaSource::MediaSource
MediaSource(SourceConfigType configType=SourceConfigType::UNKNOWN, const std::string &mimeType=std::string(), bool hasDrm=true)
Default constructor.
Definition: IMediaPipeline.h:144
firebolt::rialto::IMediaPipeline::MediaSegment::setCodecData
void setCodecData(const std::shared_ptr< CodecData > &codecData)
Sets new codec_data for the segment.
Definition: IMediaPipeline.h:753
firebolt::rialto::IMediaPipeline::MediaSourceAV::MediaSourceAV
MediaSourceAV(SourceConfigType configType=SourceConfigType::UNKNOWN, const std::string &mimeType=std::string(), bool hasDrm=true, SegmentAlignment alignment=SegmentAlignment::UNDEFINED, StreamFormat streamFormat=StreamFormat::UNDEFINED, const std::shared_ptr< CodecData > &codecData=nullptr)
Default constructor.
Definition: IMediaPipeline.h:206
firebolt::rialto::IMediaPipeline::MediaSegment::setExtraData
bool setExtraData(const std::vector< uint8_t > &extraData)
Sets the extra data.
Definition: IMediaPipeline.h:733
firebolt::rialto::IMediaPipeline::processAudioGap
virtual bool processAudioGap(int64_t position, uint32_t duration, int64_t discontinuityGap, bool audioAac)=0
Process audio gap.
firebolt::rialto::IMediaPipeline::MediaSegmentAudio::m_sampleRate
int32_t m_sampleRate
The audio sample rate.
Definition: IMediaPipeline.h:915
firebolt::rialto::IMediaPipeline::MediaSegment::getTimeStamp
int64_t getTimeStamp() const
Returns the time stamp.
Definition: IMediaPipeline.h:512
firebolt::rialto::IMediaPipeline::MediaSegment::getDataLength
uint32_t getDataLength() const
Returns a the data length.
Definition: IMediaPipeline.h:505
firebolt::rialto::IMediaPipeline::setUseBuffering
virtual bool setUseBuffering(bool useBuffering)=0
Enables/disables the buffering option.
firebolt::rialto::IMediaPipeline::MediaSegmentVideo::getHeight
int32_t getHeight() const
Return the video height.
Definition: IMediaPipeline.h:988
firebolt::rialto::IMediaPipeline::MediaSource::getHasDrm
bool getHasDrm() const
Return if source has drm.
Definition: IMediaPipeline.h:119
firebolt::rialto::IMediaPipeline::MediaSegment::setMediaKeySessionId
void setMediaKeySessionId(int32_t mksId)
Sets the media key session id.
Definition: IMediaPipeline.h:767
firebolt::rialto::VideoRequirements
Video decoder requirements used to allocate a suitable decoder for a MediaPipeline session.
Definition: MediaCommon.h:255
firebolt::rialto::IMediaPipeline::MediaSource::m_hasDrm
bool m_hasDrm
Parameter to check if encrypted frames will be used for this source.
Definition: IMediaPipeline.h:167
firebolt::rialto::IMediaPipeline::MediaSegment::copy
virtual std::unique_ptr< MediaSegment > copy() const
Makes a shallow copy of the segment.
Definition: IMediaPipeline.h:477
firebolt::rialto::IMediaPipeline::MediaSegment::m_codecData
std::shared_ptr< CodecData > m_codecData
Additional data for decoder.
Definition: IMediaPipeline.h:645
firebolt::rialto::IMediaPipeline::MediaSourceVideo::MediaSourceVideo
MediaSourceVideo(const std::string &mimeType, bool hasDrm=true, int32_t width=firebolt::rialto::kUndefinedSize, int32_t height=firebolt::rialto::kUndefinedSize, SegmentAlignment alignment=SegmentAlignment::UNDEFINED, StreamFormat streamFormat=StreamFormat::UNDEFINED, const std::shared_ptr< CodecData > &codecData=nullptr)
Constructor for video specific configuration.
Definition: IMediaPipeline.h:296
firebolt::rialto::SubSamplePair
A pair describing the clear and encrypted bytes in a sub-sample.
Definition: MediaCommon.h:246
firebolt::rialto::IMediaPipeline::getUseBuffering
virtual bool getUseBuffering(bool &useBuffering)=0
Checks, if buffering is enabled.
firebolt::rialto::IMediaPipeline::MediaSegment::addSubSample
void addSubSample(size_t numClearBytes, size_t numEncryptedBytes)
Adds a sub-sample pair to the sub samples.
Definition: IMediaPipeline.h:789
firebolt::rialto::IMediaPipeline::attachSource
virtual bool attachSource(const std::unique_ptr< MediaSource > &source)=0
Attaches a source stream to the backend.
firebolt::rialto::IMediaPipeline::flush
virtual bool flush(int32_t sourceId, bool resetTime)=0
Flushes a source.
firebolt::rialto::IMediaPipeline::MediaSegment::setData
bool setData(uint32_t dataLength, const uint8_t *data)
Sets the segment data.
Definition: IMediaPipeline.h:721
firebolt::rialto::IMediaPipeline::setBufferingLimit
virtual bool setBufferingLimit(uint32_t limitBufferingMs)=0
Set buffering limit.
firebolt::rialto::IMediaPipeline::pause
virtual bool pause()=0
Pauses playback of the media.
firebolt::rialto::IMediaPipeline::MediaSourceSubtitle::m_textTrackIdentifier
std::string m_textTrackIdentifier
Variable that stores the text track identifier.
Definition: IMediaPipeline.h:441
firebolt::rialto::IMediaPipeline::renderFrame
virtual bool renderFrame()=0
Requests to render a prerolled frame.
firebolt::rialto::IMediaPipeline::MediaSource::getConfigType
SourceConfigType getConfigType() const
Return the source config type.
Definition: IMediaPipeline.h:124
firebolt::rialto::IMediaPipeline::MediaSegmentAudio::operator=
MediaSegmentAudio & operator=(const MediaSegmentAudio &other)
Copy assignment operator.
Definition: IMediaPipeline.h:900
firebolt::rialto::IMediaPipeline::getPosition
virtual bool getPosition(int64_t &position)=0
Get the playback position in nanoseconds.
firebolt::rialto::IMediaPipeline::setPlaybackRate
virtual bool setPlaybackRate(double rate)=0
Set the playback rate.
firebolt::rialto::EaseType
EaseType
Ease type for audio volume changes.
Definition: MediaCommon.h:456
firebolt::rialto::IMediaPipeline::MediaSegment::getId
int32_t getId() const
Return the source id.
Definition: IMediaPipeline.h:484
firebolt::rialto::IMediaPipeline::MediaSourceVideo::MediaSourceVideo
MediaSourceVideo(SourceConfigType sourceConfigType, const std::string &mimeType, bool hasDrm=true, int32_t width=firebolt::rialto::kUndefinedSize, int32_t height=firebolt::rialto::kUndefinedSize, SegmentAlignment alignment=SegmentAlignment::UNDEFINED, StreamFormat streamFormat=StreamFormat::UNDEFINED, const std::shared_ptr< CodecData > &codecData=nullptr)
Constructor for video specific configuration.
Definition: IMediaPipeline.h:338
firebolt::rialto::IMediaPipeline::setImmediateOutput
virtual bool setImmediateOutput(int32_t sourceId, bool immediateOutput)=0
Sets the "Immediate Output" property for this source.
firebolt::rialto::IMediaPipeline::getMute
virtual bool getMute(int32_t sourceId, bool &mute)=0
Get current mute status of the media source.
firebolt::rialto::MediaType
MediaType
The media type of media to be played.
Definition: MediaCommon.h:105
firebolt::rialto::IMediaPipeline::MediaSourceAV::getStreamFormat
StreamFormat getStreamFormat() const
Gets the stream format.
Definition: IMediaPipeline.h:193
firebolt::rialto::IMediaPipeline::MediaSegmentVideo::m_height
int32_t m_height
The video height in pixels.
Definition: IMediaPipeline.h:1022
firebolt::rialto::IMediaPipeline::MediaSegment::setSegmentAlignment
void setSegmentAlignment(const SegmentAlignment &alignment)
Sets the segment alignment.
Definition: IMediaPipeline.h:744
firebolt::rialto::IMediaPipeline::MediaSegment::setInitVector
void setInitVector(const std::vector< uint8_t > &initVector)
Sets the encryption initialisation vector.
Definition: IMediaPipeline.h:781
firebolt::rialto::IMediaPipeline::MediaSegment::getExtraData
const std::vector< uint8_t > & getExtraData() const
Returns a pointer to the extra data.
Definition: IMediaPipeline.h:531
firebolt::rialto::IMediaPipeline::addSegment
virtual AddSegmentStatus addSegment(uint32_t needDataRequestId, const std::unique_ptr< MediaSegment > &mediaSegment)=0
Adds a single segment to Rialto in response to notifyNeedData()
firebolt::rialto::IMediaPipeline::MediaSourceAV::m_alignment
SegmentAlignment m_alignment
The alignment of media segment.
Definition: IMediaPipeline.h:218
firebolt::rialto::IMediaPipeline::setSourcePosition
virtual bool setSourcePosition(int32_t sourceId, int64_t position, bool resetTime=false, double appliedRate=1.0, uint64_t stopPosition=kUndefinedPosition)=0
Set the source position in nanoseconds.
firebolt::rialto::IMediaPipeline::MediaSegmentVideo::m_width
int32_t m_width
The video width in pixels.
Definition: IMediaPipeline.h:1017
firebolt::rialto::IMediaPipeline::MediaSegment::m_encryptionPatternSet
bool m_encryptionPatternSet
Whether the encryption pattern has been set.
Definition: IMediaPipeline.h:706
firebolt::rialto::IMediaPipeline::MediaSegmentAudio
A class that represents media source audio data.
Definition: IMediaPipeline.h:830
firebolt::rialto::IMediaPipeline::MediaSourceSubtitle::getType
MediaSourceType getType() const override
Return the source type.
Definition: IMediaPipeline.h:427
firebolt::rialto::IMediaPipeline::MediaSource::~MediaSource
virtual ~MediaSource()
Virtual destructor.
Definition: IMediaPipeline.h:99
firebolt::rialto::IMediaPipeline::MediaSource::m_id
int32_t m_id
The source id. Parameter will be set by a successful call to attachSource()
Definition: IMediaPipeline.h:152
firebolt::rialto::AudioConfig
Audio specific configuration.
Definition: MediaCommon.h:220
firebolt::rialto::IMediaPipeline::MediaSegmentVideo::MediaSegmentVideo
MediaSegmentVideo(int32_t sourceId=0, int64_t timeStamp=0, int64_t duration=0, int32_t width=firebolt::rialto::kUndefinedSize, int32_t height=firebolt::rialto::kUndefinedSize, firebolt::rialto::Fraction frameRate={firebolt::rialto::kUndefinedSize, firebolt::rialto::kUndefinedSize})
Default constructor.
Definition: IMediaPipeline.h:949
firebolt::rialto::IMediaPipeline::MediaSegmentVideo::MediaSegmentVideo
MediaSegmentVideo(const MediaSegmentVideo &other)
Copy constructor.
Definition: IMediaPipeline.h:962
firebolt::rialto::IMediaPipeline::removeSource
virtual bool removeSource(int32_t id)=0
Unattaches a source.
firebolt::rialto::IMediaPipeline::MediaSegment::m_crypt
uint32_t m_crypt
Crypt byte block value.
Definition: IMediaPipeline.h:696
firebolt::rialto::IMediaPipeline::MediaSegment::m_initWithLast15
uint32_t m_initWithLast15
Whether decryption context needs to be initialized with last 15 bytes. Currently this only applies to...
Definition: IMediaPipeline.h:681
firebolt::rialto::IMediaPipeline::MediaSegment::setEncryptionPattern
void setEncryptionPattern(uint32_t crypt, uint32_t skip)
Sets the crypt & skip byte block for pattern encryption.
Definition: IMediaPipeline.h:814
firebolt::rialto::IMediaPipeline::MediaSource::getMimeType
std::string getMimeType() const
Return the MIME type.
Definition: IMediaPipeline.h:114
firebolt::rialto::IMediaPipeline::MediaSegmentVideo::getFrameRate
firebolt::rialto::Fraction getFrameRate() const
Return the video frameRate.
Definition: IMediaPipeline.h:995
firebolt::rialto::IMediaPipeline::setMute
virtual bool setMute(int32_t sourceId, bool mute)=0
Set mute status of pipeline.
firebolt::rialto::IMediaPipeline::MediaSegment::m_sourceId
int32_t m_sourceId
The source id.
Definition: IMediaPipeline.h:615
firebolt::rialto::CipherMode
CipherMode
Cipher mode for common encryption, see https://www.iso.org/obp/ui/#iso:std:iso-iec:23001:-7:ed-3:v1:e...
Definition: MediaCommon.h:408
firebolt::rialto::IMediaPipeline::getClient
virtual std::weak_ptr< IMediaPipelineClient > getClient()=0
Returns the media player client.
firebolt::rialto::IMediaPipeline::MediaSourceVideo::copy
std::unique_ptr< MediaSource > copy() const
Create a copy.
Definition: IMediaPipeline.h:309
firebolt::rialto::IMediaPipeline::MediaSegmentAudio::getNumberOfChannels
int32_t getNumberOfChannels() const
Return the number of audio channels.
Definition: IMediaPipeline.h:879
firebolt::rialto::IMediaPipeline::allSourcesAttached
virtual bool allSourcesAttached()=0
Notifies Rialto Server that all sources were attached.
firebolt::rialto::IMediaPipeline::MediaSegment::isEncrypted
bool isEncrypted() const
Indicates that the data is encrypted.
Definition: IMediaPipeline.h:538
firebolt::rialto::IMediaPipeline::setVideoWindow
virtual bool setVideoWindow(uint32_t x, uint32_t y, uint32_t width, uint32_t height)=0
Sets the coordinates of where the video should be displayed.
firebolt::rialto::IMediaPipeline::getStreamSyncMode
virtual bool getStreamSyncMode(int32_t &streamSyncMode)=0
Get stream sync mode property on the audio decoder.
firebolt::rialto::IMediaPipeline::MediaSourceSubtitle
A class that represents media source subtitle derived from media source video data.
Definition: IMediaPipeline.h:411
firebolt::rialto::IMediaPipeline::MediaSegmentAudio::copy
std::unique_ptr< MediaSegment > copy() const override
Makes a shallow copy of the segment.
Definition: IMediaPipeline.h:865
firebolt::rialto::IMediaPipeline::setPosition
virtual bool setPosition(int64_t position)=0
Set the playback position in nanoseconds.
firebolt::rialto::IMediaPipeline::MediaSourceAudio::MediaSourceAudio
MediaSourceAudio(const std::string &mimeType, bool hasDrm=true, const AudioConfig &audioConfig=AudioConfig(), SegmentAlignment alignment=SegmentAlignment::UNDEFINED, StreamFormat streamFormat=StreamFormat::UNDEFINED, const std::shared_ptr< CodecData > &codecData=nullptr)
Constructor for audio specific configuration.
Definition: IMediaPipeline.h:249
firebolt::rialto::IMediaPipeline::MediaSegment::getDuration
int64_t getDuration() const
Returns the duration.
Definition: IMediaPipeline.h:524
firebolt::rialto::IMediaPipeline::MediaSource::copy
virtual std::unique_ptr< MediaSource > copy() const =0
Create a copy.
firebolt::rialto::IMediaPipeline::MediaSourceVideoDolbyVision::MediaSourceVideoDolbyVision
MediaSourceVideoDolbyVision(const std::string &mimeType, int32_t dolbyVisionProfile, bool hasDrm=true, int32_t width=firebolt::rialto::kUndefinedSize, int32_t height=firebolt::rialto::kUndefinedSize, SegmentAlignment alignment=SegmentAlignment::UNDEFINED, StreamFormat streamFormat=StreamFormat::UNDEFINED, const std::shared_ptr< CodecData > &codecData=nullptr)
Constructor for dolby vision specific configuration.
Definition: IMediaPipeline.h:380
MediaCommon.h
firebolt::rialto::IMediaPipeline::MediaSegment::getType
MediaSourceType getType() const
The source type for the data.
Definition: IMediaPipeline.h:491
firebolt::rialto::IMediaPipeline::MediaSegment::getSubSamples
const std::vector< SubSamplePair > & getSubSamples() const
Returns the sub samples. Empty if unencrypted.
Definition: IMediaPipeline.h:566
firebolt::rialto::IMediaPipeline::MediaSegment::getCodecData
const std::shared_ptr< CodecData > & getCodecData() const
Gets the codec data.
Definition: IMediaPipeline.h:587
firebolt::rialto::kUndefinedSize
constexpr int32_t kUndefinedSize
The value of an undefined size.
Definition: MediaCommon.h:57
firebolt::rialto::IMediaPipeline::MediaSource::m_mimeType
std::string m_mimeType
The MIME type.
Definition: IMediaPipeline.h:162
firebolt::rialto::StreamFormat
StreamFormat
The Stream Format of media segment.
Definition: MediaCommon.h:342
firebolt::rialto::IMediaPipeline::MediaSourceVideoDolbyVision
A class that represents media source video dolby vision derived from media source video data.
Definition: IMediaPipeline.h:365
firebolt::rialto::IMediaPipeline::MediaSegment::m_skip
uint32_t m_skip
Skip byte block value.
Definition: IMediaPipeline.h:701
firebolt::rialto::IMediaPipeline::MediaSegment
A class that represents a media segment.
Definition: IMediaPipeline.h:447
IMediaPipelineClient.h
firebolt::rialto::IMediaPipeline::MediaSourceVideo::getWidth
int32_t getWidth() const
Gets the width of the video.
Definition: IMediaPipeline.h:316
firebolt::rialto::IMediaPipeline::MediaSegmentAudio::getSampleRate
int32_t getSampleRate() const
Return the audio sample rate.
Definition: IMediaPipeline.h:872
firebolt::rialto::IMediaPipeline::MediaSegmentAudio::m_numberOfChannels
int32_t m_numberOfChannels
The number of audio channels.
Definition: IMediaPipeline.h:920
firebolt::rialto::IMediaPipeline::MediaSourceAudio::m_audioConfig
AudioConfig m_audioConfig
Variable that stores the audio specific configuration.
Definition: IMediaPipeline.h:274
firebolt::rialto::IMediaPipeline::MediaSource
A class that represents a source of media data.
Definition: IMediaPipeline.h:93
firebolt::rialto::IMediaPipeline::MediaSegment::getKeyId
const std::vector< uint8_t > & getKeyId() const
Returns the key id. Empty if unencrypted.
Definition: IMediaPipeline.h:552
firebolt::rialto::AddSegmentStatus
AddSegmentStatus
AddSegmentStatus.
Definition: MediaCommon.h:235
firebolt::rialto::IMediaPipeline::MediaSegment::getInitWithLast15
const uint32_t getInitWithLast15() const
Returns the initWithLast15 value.
Definition: IMediaPipeline.h:573
firebolt::rialto::IMediaPipeline::MediaSegment::m_duration
int64_t m_duration
The duration.
Definition: IMediaPipeline.h:640
firebolt::rialto::IMediaPipeline::MediaSourceAudio::copy
std::unique_ptr< MediaSource > copy() const override
Create a copy.
Definition: IMediaPipeline.h:261
firebolt::rialto::IMediaPipeline::getTextTrackIdentifier
virtual bool getTextTrackIdentifier(std::string &textTrackIdentifier)=0
Get Text Track Identifier.
firebolt::rialto::IMediaPipeline::MediaSourceSubtitle::MediaSourceSubtitle
MediaSourceSubtitle(const std::string &mimeType, const std::string &textTrackIdentifier)
Construct a new Media Source Subtitle object.
Definition: IMediaPipeline.h:420
firebolt::rialto::IMediaPipeline::MediaSegmentAudio::MediaSegmentAudio
MediaSegmentAudio(const MediaSegmentAudio &other)
Copy constructor.
Definition: IMediaPipeline.h:854
firebolt::rialto::IMediaPipeline::getBufferingLimit
virtual bool getBufferingLimit(uint32_t &limitBufferingMs)=0
Get buffering limit.
firebolt::rialto::IMediaPipeline::MediaSegment::getCipherMode
const CipherMode & getCipherMode() const
Gets the cipher mode for common encryption.
Definition: IMediaPipeline.h:594
firebolt::rialto::IMediaPipeline::MediaSegment::getData
const uint8_t * getData() const
Returns a pointer to the data.
Definition: IMediaPipeline.h:498
firebolt::rialto::IMediaPipeline::MediaSegmentAudio::MediaSegmentAudio
MediaSegmentAudio(int32_t sourceId=0, int64_t timeStamp=0, int64_t duration=0, int32_t sampleRate=0, int32_t numberOfChannels=0, uint64_t clippingStart=0, uint64_t clippingEnd=0)
Default constructor.
Definition: IMediaPipeline.h:844
firebolt::rialto::IMediaPipeline::getImmediateOutput
virtual bool getImmediateOutput(int32_t sourceId, bool &immediateOutput)=0
Gets the "Immediate Output" property for this source.
firebolt::rialto::IMediaPipeline::stop
virtual bool stop()=0
Stops playback of the media.
firebolt::rialto::IMediaPipeline::MediaSegment::m_timeStamp
int64_t m_timeStamp
The time stamp.
Definition: IMediaPipeline.h:635
firebolt::rialto::IMediaPipeline::MediaSourceVideo
A class that represents media source video derived from MediaSource class, which represents the sourc...
Definition: IMediaPipeline.h:282
firebolt::rialto::IMediaPipelineFactory::createMediaPipeline
virtual std::unique_ptr< IMediaPipeline > createMediaPipeline(std::weak_ptr< IMediaPipelineClient > client, const VideoRequirements &videoRequirements) const =0
IMediaPipeline factory method, returns a concrete implementation of IMediaPipeline.