Beispiel #1
0
        private async Task <string> RenderManifest(MediaManifest manifest)
        {
            var outputStream = new MemoryStream();

            await new MediaManifestWriter(manifest, outputStream).Render();
            outputStream.Position = 0;
            return(Encoding.ASCII.GetString(outputStream.ToArray()));
        }
Beispiel #2
0
        public async Task WritesManifestHeader(int version, PlaylistType playlistType, double targetDuration, ServerControl?serverControl, double?partDuration, Start?start, Map?map, Encryption?encryption, string expected)
        {
            var manifest = new MediaManifest(
                version,
                playlistType,
                targetDuration,
                serverControl,
                partDuration,
                start,
                map,
                encryption
                );

            Assert.Equal(expected, await RenderManifest(manifest));
        }
        public async Task MediaManifest()
        {
            var manifest = new MediaManifest(version: 8, playlistType: PlaylistType.VOD, targetDuration: 2.0);

            for (var i = 0; i < 1000; i++)
            {
                manifest.Add(new MediaFile
                {
                    Path     = $"{i}.ts",
                    Duration = 2.0
                });
            }
            var stream = new MemoryStream();
            var writer = new MediaManifestWriter(manifest, stream);
            await writer.Render();
        }
Beispiel #4
0
        public async Task WritesDiscontinuitySequence()
        {
            var manifest = new MediaManifest(
                version: 8,
                playlistType: PlaylistType.EVENT,
                targetDuration: 10
                );

            manifest.AddAndIncrementSequence(new Discontinuity());
            manifest.AddAndIncrementSequence(new Discontinuity());


            AssertEqualWithNewline(@"#EXTM3U
#EXT-X-PLAYLIST-TYPE:EVENT
#EXT-X-TARGETDURATION:10
#EXT-X-VERSION:8
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-DISCONTINUITY-SEQUENCE:2", await RenderManifest(manifest));
        }
Beispiel #5
0
        public async Task WritesMediaSequence()
        {
            var manifest = new MediaManifest(
                version: 8,
                playlistType: PlaylistType.EVENT,
                targetDuration: 10
                );

            manifest.Add(new MediaFile {
                Path = "test.mp4", Duration = 10
            });
            manifest.AddAndIncrementSequence(new MediaFile {
                Path = "test2.mp4", Duration = 10
            });


            AssertEqualWithNewline(@"#EXTM3U
#EXT-X-PLAYLIST-TYPE:EVENT
#EXT-X-TARGETDURATION:10
#EXT-X-VERSION:8
#EXT-X-MEDIA-SEQUENCE:1
#EXTINF:10.0,
test2.mp4", await RenderManifest(manifest));
        }