DummyM3u8Factory::createM3u8Content()   A
last analyzed

Complexity

Conditions 3
Paths 3

Size

Total Lines 49
Code Lines 13

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 7
CRAP Score 3

Importance

Changes 0
Metric Value
dl 0
loc 49
ccs 7
cts 7
cp 1
rs 9.2258
c 0
b 0
f 0
cc 3
eloc 13
nc 3
nop 2
crap 3
1
<?php
2
3
/*
4
 * This file is part of the PhpM3u8 package.
5
 *
6
 * (c) Chrisyue <http://chrisyue.com/>
7
 *
8
 * For the full copyright and license information, please view the LICENSE
9
 * file that was distributed with this source code.
10
 */
11
12
namespace Chrisyue\PhpM3u8\tests;
13
14
use Chrisyue\PhpM3u8\M3u8;
15
use Chrisyue\PhpM3u8\Segment;
16
use Chrisyue\PhpM3u8\Tag\KeyTag;
17
18
class DummyM3u8Factory
19
{
20 1
    public static function createM3u8($version = 3, $isMasterPlaylist = false)
21
    {
22 1
        if ($isMasterPlaylist) {
23 1
            $m3u8 = new M3u8();
24 1
            $m3u8->getVersionTag()->setVersion($version);
25 1
            $segment = new Segment($version);
26 1
            $segment->getStreamInfTag()->setProgramId(1)
27 1
                ->setBandwidth(1500)
28 1
                ->setResolution('1280x720')
29 1
                ->setCodecs(['avc1.42e00a', 'mp4a.40.2']);
30 1
            $segment->getUri()->setUri('http://example.com/low/index.m3u8');
31 1
            $m3u8->getSegments()->add($segment);
32
33 1
            return $m3u8;
34
        }
35
36 1
        $m3u8 = new M3u8();
37 1
        $m3u8->getVersionTag()->setVersion($version);
38 1
        $m3u8->getMediaSequenceTag()->setMediaSequence(33);
39 1
        $m3u8->getDiscontinuitySequenceTag()->setDiscontinuitySequence(3);
40 1
        $m3u8->getTargetDurationTag()->setTargetDuration(12);
41 1
        $m3u8->getPlaylistTypeTag()->setPlaylistType('VOD');
42 1
        $m3u8->getEndlistTag()->setEndless(true);
43
44 1
        $segment = new Segment($version);
45 1
        $keyTag = new KeyTag();
46 1
        $keyTag->setMethod('AES-128')->setUri('key')->setIV('0xF85A5066CCB442181ACACA2E862A34DC');
47 1
        $segment->getKeyTags()->add($keyTag);
48 1
        $keyTag = new KeyTag();
49 1
        $keyTag->setMethod('SAMPLE-AES')->setUri('key2')->setIV('0xF85A5066CCB442181ACACA2E862A34DC')
50 1
            ->setKeyFormat('com.apple')->setKeyFormatVersions([1]);
51 1
        $segment->getKeyTags()->add($keyTag);
52
53 1
        $segment->getExtinfTag()->setDuration(12)->setTitle('hello world');
54 1
        $segment->getByteRangeTag()->setLength(10000)->setOffset(100);
55 1
        $segment->getUri()->setUri('stream33.ts');
56 1
        $segment->getProgramDateTimeTag()->setProgramDateTime(new \DateTime('2010-02-19T14:54:23.031+08:00'));
57 1
        $m3u8->getSegments()->add($segment);
58
59 1
        $segment = new Segment($version);
60 1
        $segment->getExtinfTag()->setDuration(10);
61 1
        $segment->getDiscontinuityTag()->setDiscontinuity(true);
62 1
        $segment->getUri()->setUri('video01.ts');
63 1
        $m3u8->getSegments()->add($segment);
64
65 1
        return $m3u8;
66
    }
67
68 2
    public static function createM3u8Content($version = 3, $isMasterPlaylist = false)
69
    {
70 2
        if ($isMasterPlaylist) {
71
            return <<<M3U8
72
#EXTM3U
73
#EXT-X-VERSION:$version
74
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1500,RESOLUTION=1280x720,CODECS="avc1.42e00a,mp4a.40.2"
75 2
http://example.com/low/index.m3u8
76 2
M3U8;
77
        }
78
79 2
        if ($version < 3) {
80
            return <<<'M3U8'
81
#EXTM3U
82
#EXT-X-VERSION:2
83
#EXT-X-TARGETDURATION:12
84
#EXT-X-MEDIA-SEQUENCE:33
85
#EXT-X-DISCONTINUITY-SEQUENCE:3
86
#EXT-X-PLAYLIST-TYPE:VOD
87
#EXT-X-KEY:METHOD=AES-128,URI="key",IV=0xF85A5066CCB442181ACACA2E862A34DC
88
#EXT-X-KEY:METHOD=SAMPLE-AES,URI="key2",IV=0xF85A5066CCB442181ACACA2E862A34DC,KEYFORMAT="com.apple",KEYFORMATVERSIONS="1"
89
#EXTINF:12,hello world
90
#EXT-X-BYTERANGE:10000@100
91
#EXT-X-PROGRAM-DATE-TIME:2010-02-19T14:54:23.031+08:00
92
stream33.ts
93
#EXTINF:10,
94
#EXT-X-DISCONTINUITY
95
video01.ts
96 1
M3U8;
97
        }
98
99
        return <<<'M3U8'
100
#EXTM3U
101
#EXT-X-VERSION:3
102
#EXT-X-TARGETDURATION:12
103
#EXT-X-MEDIA-SEQUENCE:33
104
#EXT-X-DISCONTINUITY-SEQUENCE:3
105
#EXT-X-PLAYLIST-TYPE:VOD
106
#EXT-X-KEY:METHOD=AES-128,URI="key",IV=0xF85A5066CCB442181ACACA2E862A34DC
107
#EXT-X-KEY:METHOD=SAMPLE-AES,URI="key2",IV=0xF85A5066CCB442181ACACA2E862A34DC,KEYFORMAT="com.apple",KEYFORMATVERSIONS="1"
108
#EXTINF:12.000,hello world
109
#EXT-X-BYTERANGE:10000@100
110
#EXT-X-PROGRAM-DATE-TIME:2010-02-19T14:54:23.031+08:00
111
stream33.ts
112
#EXTINF:10.000,
113
#EXT-X-DISCONTINUITY
114
video01.ts
115 1
M3U8;
116
    }
117
}
118