Class: AWSCDK::MediaPackage::CfnOriginEndpoint::HlsPackageProperty

Inherits:
Jsii::Struct
  • Object
show all
Defined in:
media_package/cfn_origin_endpoint.rb

Overview

Parameters for Apple HLS packaging.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(ad_markers: nil, ads_on_delivery_restrictions: nil, ad_triggers: nil, encryption: nil, include_dvb_subtitles: nil, include_iframe_only_stream: nil, playlist_type: nil, playlist_window_seconds: nil, program_date_time_interval_seconds: nil, segment_duration_seconds: nil, stream_selection: nil, use_audio_rendition_group: nil) ⇒ HlsPackageProperty

Returns a new instance of HlsPackageProperty.

Parameters:

  • ad_markers (String, nil) (defaults to: nil)

    Controls how ad markers are included in the packaged endpoint.

  • ads_on_delivery_restrictions (String, nil) (defaults to: nil)

    The flags on SCTE-35 segmentation descriptors that have to be present for AWS Elemental MediaPackage to insert ad markers in the output manifest.

  • ad_triggers (Array<String>, nil) (defaults to: nil)

    Specifies the SCTE-35 message types that AWS Elemental MediaPackage treats as ad markers in the output manifest.

  • encryption (AWSCDK::IResolvable, AWSCDK::MediaPackage::CfnOriginEndpoint::HlsEncryptionProperty, nil) (defaults to: nil)

    Parameters for encrypting content.

  • include_dvb_subtitles (Boolean, AWSCDK::IResolvable, nil) (defaults to: nil)

    When enabled, MediaPackage passes through digital video broadcasting (DVB) subtitles into the output.

  • include_iframe_only_stream (Boolean, AWSCDK::IResolvable, nil) (defaults to: nil)

    Only applies to stream sets with a single video track.

  • playlist_type (String, nil) (defaults to: nil)

    When specified as either event or vod , a corresponding EXT-X-PLAYLIST-TYPE entry is included in the media playlist.

  • playlist_window_seconds (Numeric, nil) (defaults to: nil)

    Time window (in seconds) contained in each parent manifest.

  • program_date_time_interval_seconds (Numeric, nil) (defaults to: nil)

    Inserts EXT-X-PROGRAM-DATE-TIME tags in the output manifest at the interval that you specify.

  • segment_duration_seconds (Numeric, nil) (defaults to: nil)

    Duration (in seconds) of each fragment.

  • stream_selection (AWSCDK::IResolvable, AWSCDK::MediaPackage::CfnOriginEndpoint::StreamSelectionProperty, nil) (defaults to: nil)

    Limitations for outputs from the endpoint, based on the video bitrate.

  • use_audio_rendition_group (Boolean, AWSCDK::IResolvable, nil) (defaults to: nil)

    When true, AWS Elemental MediaPackage bundles all audio tracks in a rendition group.



1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
# File 'media_package/cfn_origin_endpoint.rb', line 1475

def initialize(ad_markers: nil, ads_on_delivery_restrictions: nil, ad_triggers: nil, encryption: nil, include_dvb_subtitles: nil, include_iframe_only_stream: nil, playlist_type: nil, playlist_window_seconds: nil, program_date_time_interval_seconds: nil, segment_duration_seconds: nil, stream_selection: nil, use_audio_rendition_group: nil)
  @ad_markers = ad_markers
  Jsii::Type.check_type(@ad_markers, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "adMarkers") unless @ad_markers.nil?
  @ads_on_delivery_restrictions = ads_on_delivery_restrictions
  Jsii::Type.check_type(@ads_on_delivery_restrictions, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "adsOnDeliveryRestrictions") unless @ads_on_delivery_restrictions.nil?
  @ad_triggers = ad_triggers
  Jsii::Type.check_type(@ad_triggers, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7InByaW1pdGl2ZSI6InN0cmluZyJ9LCJraW5kIjoiYXJyYXkifX0=")), "adTriggers") unless @ad_triggers.nil?
  @encryption = encryption.is_a?(Hash) ? ::AWSCDK::MediaPackage::CfnOriginEndpoint::HlsEncryptionProperty.new(**encryption.transform_keys(&:to_sym)) : encryption
  Jsii::Type.check_type(@encryption, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19tZWRpYXBhY2thZ2UuQ2ZuT3JpZ2luRW5kcG9pbnQuSGxzRW5jcnlwdGlvblByb3BlcnR5In1dfX0=")), "encryption") unless @encryption.nil?
  @include_dvb_subtitles = include_dvb_subtitles
  Jsii::Type.check_type(@include_dvb_subtitles, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3sicHJpbWl0aXZlIjoiYm9vbGVhbiJ9LHsiZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifV19fQ==")), "includeDvbSubtitles") unless @include_dvb_subtitles.nil?
  @include_iframe_only_stream = include_iframe_only_stream
  Jsii::Type.check_type(@include_iframe_only_stream, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3sicHJpbWl0aXZlIjoiYm9vbGVhbiJ9LHsiZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifV19fQ==")), "includeIframeOnlyStream") unless @include_iframe_only_stream.nil?
  @playlist_type = playlist_type
  Jsii::Type.check_type(@playlist_type, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "playlistType") unless @playlist_type.nil?
  @playlist_window_seconds = playlist_window_seconds
  Jsii::Type.check_type(@playlist_window_seconds, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJudW1iZXIifQ==")), "playlistWindowSeconds") unless @playlist_window_seconds.nil?
  @program_date_time_interval_seconds = program_date_time_interval_seconds
  Jsii::Type.check_type(@program_date_time_interval_seconds, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJudW1iZXIifQ==")), "programDateTimeIntervalSeconds") unless @program_date_time_interval_seconds.nil?
  @segment_duration_seconds = segment_duration_seconds
  Jsii::Type.check_type(@segment_duration_seconds, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJudW1iZXIifQ==")), "segmentDurationSeconds") unless @segment_duration_seconds.nil?
  @stream_selection = stream_selection.is_a?(Hash) ? ::AWSCDK::MediaPackage::CfnOriginEndpoint::StreamSelectionProperty.new(**stream_selection.transform_keys(&:to_sym)) : stream_selection
  Jsii::Type.check_type(@stream_selection, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19tZWRpYXBhY2thZ2UuQ2ZuT3JpZ2luRW5kcG9pbnQuU3RyZWFtU2VsZWN0aW9uUHJvcGVydHkifV19fQ==")), "streamSelection") unless @stream_selection.nil?
  @use_audio_rendition_group = use_audio_rendition_group
  Jsii::Type.check_type(@use_audio_rendition_group, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3sicHJpbWl0aXZlIjoiYm9vbGVhbiJ9LHsiZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifV19fQ==")), "useAudioRenditionGroup") unless @use_audio_rendition_group.nil?
end

Instance Attribute Details

#ad_markersString? (readonly)

Controls how ad markers are included in the packaged endpoint.

Valid values:

  • NONE - Omits all SCTE-35 ad markers from the output.
  • PASSTHROUGH - Creates a copy in the output of the SCTE-35 ad markers (comments) taken directly from the input manifest.
  • SCTE35_ENHANCED - Generates ad markers and blackout tags in the output based on the SCTE-35 messages from the input manifest.


1512
1513
1514
# File 'media_package/cfn_origin_endpoint.rb', line 1512

def ad_markers
  @ad_markers
end

#ad_triggersArray<String>? (readonly)

Specifies the SCTE-35 message types that AWS Elemental MediaPackage treats as ad markers in the output manifest.

Valid values:

  • BREAK
  • DISTRIBUTOR_ADVERTISEMENT
  • DISTRIBUTOR_OVERLAY_PLACEMENT_OPPORTUNITY
  • DISTRIBUTOR_PLACEMENT_OPPORTUNITY
  • PROVIDER_ADVERTISEMENT
  • PROVIDER_OVERLAY_PLACEMENT_OPPORTUNITY
  • PROVIDER_PLACEMENT_OPPORTUNITY
  • SPLICE_INSERT


1535
1536
1537
# File 'media_package/cfn_origin_endpoint.rb', line 1535

def ad_triggers
  @ad_triggers
end

#ads_on_delivery_restrictionsString? (readonly)

The flags on SCTE-35 segmentation descriptors that have to be present for AWS Elemental MediaPackage to insert ad markers in the output manifest.

For information about SCTE-35 in AWS Elemental MediaPackage , see SCTE-35 Message Options in AWS Elemental MediaPackage .



1519
1520
1521
# File 'media_package/cfn_origin_endpoint.rb', line 1519

def ads_on_delivery_restrictions
  @ads_on_delivery_restrictions
end

#encryptionAWSCDK::IResolvable, ... (readonly)

Parameters for encrypting content.



1540
1541
1542
# File 'media_package/cfn_origin_endpoint.rb', line 1540

def encryption
  @encryption
end

#include_dvb_subtitlesBoolean, ... (readonly)

When enabled, MediaPackage passes through digital video broadcasting (DVB) subtitles into the output.



1545
1546
1547
# File 'media_package/cfn_origin_endpoint.rb', line 1545

def include_dvb_subtitles
  @include_dvb_subtitles
end

#include_iframe_only_streamBoolean, ... (readonly)

Only applies to stream sets with a single video track.

When true, the stream set includes an additional I-frame only stream, along with the other tracks. If false, this extra stream is not included.



1552
1553
1554
# File 'media_package/cfn_origin_endpoint.rb', line 1552

def include_iframe_only_stream
  @include_iframe_only_stream
end

#playlist_typeString? (readonly)

When specified as either event or vod , a corresponding EXT-X-PLAYLIST-TYPE entry is included in the media playlist.

Indicates if the playlist is live-to-VOD content.



1559
1560
1561
# File 'media_package/cfn_origin_endpoint.rb', line 1559

def playlist_type
  @playlist_type
end

#playlist_window_secondsNumeric? (readonly)

Time window (in seconds) contained in each parent manifest.



1564
1565
1566
# File 'media_package/cfn_origin_endpoint.rb', line 1564

def playlist_window_seconds
  @playlist_window_seconds
end

#program_date_time_interval_secondsNumeric? (readonly)

Inserts EXT-X-PROGRAM-DATE-TIME tags in the output manifest at the interval that you specify.

Irrespective of this parameter, if any ID3Timed metadata is in the HLS input, it is passed through to the HLS output.

Omit this attribute or enter 0 to indicate that the EXT-X-PROGRAM-DATE-TIME tags are not included in the manifest.



1573
1574
1575
# File 'media_package/cfn_origin_endpoint.rb', line 1573

def program_date_time_interval_seconds
  @program_date_time_interval_seconds
end

#segment_duration_secondsNumeric? (readonly)

Duration (in seconds) of each fragment.

Actual fragments are rounded to the nearest multiple of the source fragment duration.



1580
1581
1582
# File 'media_package/cfn_origin_endpoint.rb', line 1580

def segment_duration_seconds
  @segment_duration_seconds
end

#stream_selectionAWSCDK::IResolvable, ... (readonly)

Limitations for outputs from the endpoint, based on the video bitrate.



1585
1586
1587
# File 'media_package/cfn_origin_endpoint.rb', line 1585

def stream_selection
  @stream_selection
end

#use_audio_rendition_groupBoolean, ... (readonly)

When true, AWS Elemental MediaPackage bundles all audio tracks in a rendition group.

All other tracks in the stream can be used with any audio rendition from the group.



1592
1593
1594
# File 'media_package/cfn_origin_endpoint.rb', line 1592

def use_audio_rendition_group
  @use_audio_rendition_group
end

Class Method Details

.jsii_propertiesObject



1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
# File 'media_package/cfn_origin_endpoint.rb', line 1594

def self.jsii_properties
  {
    :ad_markers => "adMarkers",
    :ads_on_delivery_restrictions => "adsOnDeliveryRestrictions",
    :ad_triggers => "adTriggers",
    :encryption => "encryption",
    :include_dvb_subtitles => "includeDvbSubtitles",
    :include_iframe_only_stream => "includeIframeOnlyStream",
    :playlist_type => "playlistType",
    :playlist_window_seconds => "playlistWindowSeconds",
    :program_date_time_interval_seconds => "programDateTimeIntervalSeconds",
    :segment_duration_seconds => "segmentDurationSeconds",
    :stream_selection => "streamSelection",
    :use_audio_rendition_group => "useAudioRenditionGroup",
  }
end

Instance Method Details

#to_jsiiObject



1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
# File 'media_package/cfn_origin_endpoint.rb', line 1611

def to_jsii
  result = {}
  result.merge!({
    "adMarkers" => @ad_markers,
    "adsOnDeliveryRestrictions" => @ads_on_delivery_restrictions,
    "adTriggers" => @ad_triggers,
    "encryption" => @encryption,
    "includeDvbSubtitles" => @include_dvb_subtitles,
    "includeIframeOnlyStream" => @include_iframe_only_stream,
    "playlistType" => @playlist_type,
    "playlistWindowSeconds" => @playlist_window_seconds,
    "programDateTimeIntervalSeconds" => @program_date_time_interval_seconds,
    "segmentDurationSeconds" => @segment_duration_seconds,
    "streamSelection" => @stream_selection,
    "useAudioRenditionGroup" => @use_audio_rendition_group,
  })
  result.compact
end