23 April 2020

New QC test for cue-insertions

Added new QC test for CUE-inserts validation.

QC Auto

Test NameConditionsValue
CUE-inserts validationIncluded only if custom <ad_break /> or <cue_insert /> set in request<cue_insert /> block parameters from request

Manual Test

<?xml version="1.0"?>
<query>
    <userid><<id>></userid> <!-- required-->
    <userkey><<key>></userkey> <!-- required-->
    <action>AddMedia</action>
    <source>[SourceFile|SourcePlaylist]</source><!-- required -->
    <format>
        <output>[qc_check|advanced_hls|advanced_fmp4|fmp4_hls]</output><!-- required -->
        <!-- Format fields -->
        <qc> 
            <qc_match_cue_inserts>
                <severity>[fatal|warning]</severity>
                <cue_insert>
                    <start>[StartTime]</start>
                    <end>[EndTime]</end>
                    <duration>[BreakDuration]</duration>
                    <drop_segments>[yes|no]</drop_segments>
                    <!-- multiple marker_type parameters may be included -->
                    <marker_type>[MarkerType]</marker_type>
                    <marker_type>[MarkerType2]</marker_type>
                    <marker_type>[MarkerTypeN]</marker_type>
                    <id>[BreakID]</id>
                    <!-- multiple upid_data sections may be included -->
                    <upid_data>
                        <segmentation_upid_type>[SegmentationUPIDType]<segmentation_upid_type>
                        <segmentation_upid>[SegmentationUPID]<segmentation_upid>
                    </upid_data>
                    <upid_data>
                        <!-- upid_data params -->
                    </upid_data>
                </cue_insert>
                <cue_insert>
                    <!-- cue_insert params -->
                </cue_insert>
            </qc_match_cue_inserts>
        </qc>
        <stream>
            <qc> 
                <qc_match_cue_inserts>
                    <severity>[fatal|warning]</severity>
                    <cue_insert>
                        <start>[StartTime]</start>
                        <end>[EndTime]</end>
                        <duration>[BreakDuration]</duration>
                        <drop_segments>[yes|no]</drop_segments>
                        <!-- multiple marker_type parameters may be included -->
                        <marker_type>[MarkerType]</marker_type>
                        <marker_type>[MarkerType2]</marker_type>
                        <marker_type>[MarkerTypeN]</marker_type>
                        <id>[BreakID]</id>
                        <!-- multiple upid_data sections may be included -->
                        <upid_data>
                            <segmentation_upid_type>[SegmentationUPIDType]<segmentation_upid_type>
                            <segmentation_upid>[SegmentationUPID]<segmentation_upid>
                        </upid_data>
                        <upid_data>
                            <!-- upid_data params -->
                        </upid_data>
                    </cue_insert>
                    <cue_insert>
                        <!-- cue_insert params -->
                    </cue_insert>
                </qc_match_cue_inserts>
            </qc>
        </stream>
        <stream>
            <!-- stream params -->
        </stream>
    </format>
</query>
{
    "query": {
        "userid": "<<id>>", // required
        "userkey": "<<key>>", // required
        "action": "AddMedia", // required
        "format": {
            "output": "[qc_check|advanced_hls|advanced_fmp4|fmp4_hls]",
            "qc": {
                "qc_match_cue_inserts": {
                    "severity": "[fatal|warning]",
                    "cue_insert": [
                        {
                            "start": "[StartTime]",
                            "end": "[EndTime]",
                            "duration": "[BreakDuration]",
                            "drop_segments": "[yes|no]",
                            "marker_type": [
                                "[MarkerType1]",
                                "[MarkerType2]",
                                "[MarkerTypeN]"
                            ],
                            "id": "[BreakID]",
                            "upid_data": [
                                {
                                    "segmentation_upid_type": "[SegmentationUPIDType]",
                                    "segmentation_upid": "[SegmentationUPID]",
                                },
                                {
                                    // upid_data params
                                }
                            ]
                        },
                        {
                            // cue_insert params
                        }
                    ]
                }
            }
            "stream": [{
                "qc": {
                    "qc_match_cue_inserts": {
                        "severity": "[fatal|warning]",
                        "cue_insert": [
                            {
                                "start": "[StartTime]",
                                "end": "[EndTime]",
                                "duration": "[BreakDuration]",
                                "drop_segments": "[yes|no]",
                                "marker_type": [
                                    "[MarkerType1]",
                                    "[MarkerType2]",
                                    "[MarkerTypeN]"
                                ],
                                "id": "[BreakID]",
                                "upid_data": [
                                    {
                                        "segmentation_upid_type": "[SegmentationUPIDType]",
                                        "segmentation_upid": "[SegmentationUPID]",
                                    },
                                    {
                                        // upid_data params
                                    }
                                ]
                            },
                            {
                                // cue_insert params
                            }
                        ]
                    }
                }
            }]
        }
    }
}
ParameterDescriptionAllowed ValuesDefault Values
marker_typeBreak Marker Type scte35-opening-credit — expects #EXT-X-SCTE35 opening credits tag.
scte35-closing-credit — expects #EXT-X-SCTE35 closing credits tag.
scte35-chapter-marker — expects #EXT-X-SCTE35 chapter marker tag.
scte35-content-identification — expects #EXT-X-SCTE35 content identification tag.
none
idMarker ID attributePositive integernone
startExpect cue IN marker in it's value position of manifest positive float number in seconds
timecode in format HH:MM:SS[:;]FF
HH – hours
MM – minutes
SS – seconds
FF – frames
[:;] – : – non drop-frame, ; – drop-frame;
none
endExpect cue OUT marker in it's value position of manifest positive float number in seconds
timecode in format HH:MM:SS[:;]FF
HH – hours
MM – minutes
SS – seconds
FF – frames
[:;] – : – non drop-frame, ; – drop-frame;
none
durationExpect the break duration in seconds. positive float number in seconds
string in format HH:MM:SS[:;]FF
HH – hours
MM – minutes
SS – seconds
FF – frames
[:;] – : – non drop-frame, ; – drop-frame;
none
drop_segmentsExpect whether or not to drop segments during a break.yes, nono
## upid_data parameters
segmentation_upid_typeUPID typePositive integer number.none
segmentation_upidUnique UPID string for cueValid UPID stringnone

AWS Assume Role support for sources and destinations

Added support of AWS Assume Role for sources and destinations.

<?xml version="1.0"?>
<query>
    <userid><<id>></userid> <!-- required-->
    <userkey><<key>></userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <source>http://[bucket].s3.amazonaws.com/[SourceFile]?assume_role=[AssumedRoleUser]&amp;external_id=[ExternalID]</source> <!-- required-->
    <format>
        <output>[OutputFormat]</output> <!-- required-->
        <destination>http://[bucket].s3.amazonaws.com/[DestinationFile]?assume_role=[AssumedRoleUser]&amp;external_id=[ExternalID]</destination>
    </format>
</query>
{
    "query": {
        "userid": "<<id>>", // required
        "userkey": "<<key>>", // required
        "action": "[Action]", // required
        "source": "http://[bucket].s3.amazonaws.com/[SourceFile]?assume_role=[AssumedRoleUser]&external_id=[ExternalID]", // required
        "format": {
            "output": "[OutputFormat]", // required
            "destination": "http://[bucket].s3.amazonaws.com/[DestinationFile]?assume_role=[AssumedRoleUser]&external_id=[ExternalID]"
        }
    }
}
URL TypeDescription
Amazon Web Services (S3)* http://[bucket].s3.amazonaws.com/[filename]?assume_role=[AssumedRoleUser]&external_id=[ExternalID]
— Assume Role for specified user and set External ID.