Shaka Packager SDK
Classes | Public Attributes | Static Public Attributes | List of all members
shaka::MpdParams Struct Reference

DASH MPD related parameters. More...

#include <mpd_params.h>

Classes

struct  UtcTiming
 UTCTimings. For dynamic MPD only. More...
 

Public Attributes

std::string mpd_output
 MPD output file path.
 
std::vector< std::string > base_urls
 
double min_buffer_time = 2.0
 
double minimum_update_period = 0
 
double suggested_presentation_delay = kSuggestedPresentationDelayNotSet
 
double time_shift_buffer_depth = 0
 
size_t preserved_segments_outside_live_window = 0
 
std::vector< UtcTimingutc_timings
 
std::string default_language
 
std::string default_text_language
 
bool generate_static_live_mpd = false
 
bool generate_dash_if_iop_compliant_mpd = true
 Try to generate DASH-IF IOP compliant MPD.
 
bool allow_approximate_segment_timeline = false
 
double target_segment_duration = 0
 
bool allow_codec_switching = false
 
bool include_mspr_pro = true
 
bool use_segment_list = false
 

Static Public Attributes

static constexpr double kSuggestedPresentationDelayNotSet = 0
 

Detailed Description

DASH MPD related parameters.

Definition at line 16 of file mpd_params.h.

Member Data Documentation

◆ allow_approximate_segment_timeline

bool shaka::MpdParams::allow_approximate_segment_timeline = false

For live profile only. If enabled, segments with close duration (i.e. with difference less than one sample) are considered to have the same duration. This enables MPD generator to generate less SegmentTimeline entries. If all segments are of the same duration except the last one, we will do further optimization to use SegmentTemplate@duration instead and omit SegmentTimeline completely. Ignored if $Time$ is used in segment template, since $Time$ requires accurate Segment Timeline.

Definition at line 76 of file mpd_params.h.

◆ allow_codec_switching

bool shaka::MpdParams::allow_codec_switching = false

If enabled, allow switching between different codecs, if they have the same language, media type (audio, video etc) and container type.

Definition at line 85 of file mpd_params.h.

◆ base_urls

std::vector<std::string> shaka::MpdParams::base_urls

BaseURLs for the MPD. The values will be added as <BaseURL> element(s) under the <MPD> element.

Definition at line 21 of file mpd_params.h.

◆ default_language

std::string shaka::MpdParams::default_language

The tracks tagged with this language will have <Role ... value="main" /> in the manifest. This allows the player to choose the correct default language for the content. This applies to both audio and text tracks. The default language for text tracks can be overriden by 'default_text_language'.

Definition at line 58 of file mpd_params.h.

◆ default_text_language

std::string shaka::MpdParams::default_text_language

Same as above, but this overrides the default language for text tracks, i.e. subtitles or close-captions.

Definition at line 61 of file mpd_params.h.

◆ generate_static_live_mpd

bool shaka::MpdParams::generate_static_live_mpd = false

Generate static MPD for live profile. Note that this flag has no effect for on-demand profile, in which case static MPD is always used.

Definition at line 64 of file mpd_params.h.

◆ include_mspr_pro

bool shaka::MpdParams::include_mspr_pro = true

If enabled, PlayReady Object <mspr:pro> will be inserted into <ContentProtection ...> element alongside with <cenc:pssh> when using PlayReady protection system.

Definition at line 89 of file mpd_params.h.

◆ kSuggestedPresentationDelayNotSet

constexpr double shaka::MpdParams::kSuggestedPresentationDelayNotSet = 0
staticconstexpr

Set MPD@suggestedPresentationDelay attribute. For 'dynamic' media presentations, it specifies a delay, in seconds, to be added to the media presentation time. The attribute is not set if the value is 0; the client is expected to choose a suitable value in this case.

Definition at line 35 of file mpd_params.h.

◆ min_buffer_time

double shaka::MpdParams::min_buffer_time = 2.0

Set MPD@minBufferTime attribute, which specifies, in seconds, a common duration used in the definition of the MPD representation data rate. A client can be assured of having enough data for continous playout providing playout begins at min_buffer_time after the first bit is received.

Definition at line 27 of file mpd_params.h.

◆ minimum_update_period

double shaka::MpdParams::minimum_update_period = 0

Set MPD@minimumUpdatePeriod attribute, which indicates to the player how often to refresh the MPD in seconds. For dynamic MPD only.

Definition at line 30 of file mpd_params.h.

◆ preserved_segments_outside_live_window

size_t shaka::MpdParams::preserved_segments_outside_live_window = 0

Segments outside the live window (defined by 'time_shift_buffer_depth' above) are automatically removed except for the most recent X segments defined by this parameter. This is needed to accommodate latencies in various stages of content serving pipeline, so that the segments stay accessible as they may still be accessed by the player. The segments are not removed if the value is zero.

Definition at line 46 of file mpd_params.h.

◆ target_segment_duration

double shaka::MpdParams::target_segment_duration = 0

This is the target segment duration requested by the user. The actual segment duration may be different to the target segment duration. This parameter is included here to calculate the approximate SegmentTimeline if it is enabled. It will be populated from segment duration specified in ChunkingParams if not specified.

Definition at line 82 of file mpd_params.h.

◆ time_shift_buffer_depth

double shaka::MpdParams::time_shift_buffer_depth = 0

Set MPD@timeShiftBufferDepth attribute, which is the guaranteed duration of the time shifting buffer for 'dynamic' media presentations, in seconds.

Definition at line 39 of file mpd_params.h.

◆ use_segment_list

bool shaka::MpdParams::use_segment_list = false

Uses SegmentList instead of SegmentBase. Use this if the content is huge and the total number of (sub)segment references is greater than what the sidx atom allows (65535).

Definition at line 93 of file mpd_params.h.


The documentation for this struct was generated from the following file: