diff --git a/src/lib/vast.js b/src/lib/vast.js index c9ffd6f..073a478 100644 --- a/src/lib/vast.js +++ b/src/lib/vast.js @@ -49,10 +49,6 @@ export default class Vast { return this.loadedElements['MediaFiles'].videos(); } - asHLSUrl() { - return this.loadedElements['MediaFiles'].asHLSUrl(); - } - clickthroughUrl() { return this.loadedElements['Clickthrough'].clickthroughUrl(); } diff --git a/src/lib/vast_elements/media_files.js b/src/lib/vast_elements/media_files.js index f88e586..aca5223 100644 --- a/src/lib/vast_elements/media_files.js +++ b/src/lib/vast_elements/media_files.js @@ -26,48 +26,11 @@ class MediaFile { return NodeValue.fromElement(this.element); } - codec() { - switch (this.mimeType()) { - case 'video/mp4': - case 'video/3gpp': - return 'mp4v'; - break; - case 'video/webm': - return 'vp8'; - break; - default: - throw TypeError('Unknown mime type ' + this.mimeType()); - } - } - isVideoType() { return this.mimeType().match(/^video\//); } } -// -class HlsMasterPlaylistFile { - constructor(videos = []) { - this.videos = videos; - } - - contents() { - let contents = []; - contents.push('#EXTM3U'); - - contents = [ - contents, - ...this.videos.map(v => { - return `#EXT-X-STREAM-INF:BANDWIDTH=${v.bitrate() * - 1024},RESOLUTION=${v.width()}x${v.height()},CODEC=${v.codec()}\n${v.url()}`; - }), - ]; - - return contents.join('\n'); - } - // ---- -} - export default class MediaFiles extends VastElementBase { // Think of this as the constructor setup() { @@ -93,9 +56,4 @@ export default class MediaFiles extends VastElementBase { return v.isVideoType(); }); } - - asHLSUrl() { - const hlsMaker = new HlsMasterPlaylistFile(this.videos()); - return 'data:application/x-mpegURL;base64,' + btoa(hlsMaker.contents()); - } } diff --git a/test/vast_elements/media_files.spec.js b/test/vast_elements/media_files.spec.js index c9ff5aa..1eceb55 100644 --- a/test/vast_elements/media_files.spec.js +++ b/test/vast_elements/media_files.spec.js @@ -49,27 +49,3 @@ describe('Media Files extension', () => { expect(video.width()).toBe(640); }); }); - -describe('MediaFile to HLS Url', () => { - let xmlString; - let vast; - - beforeAll(() => { - xmlString = fs.readFileSync('./test/fixtures/vast.xml'); - vast = new Vast({ xml: xmlString }); - }); - - it('should return a data url', () => { - expect(vast.asHLSUrl()).toBeDefined(); - expect(vast.asHLSUrl()).toMatch(/^data:application\/x-mpegURL/); - }); - - it('should conform to m3u8 headers', () => { - const dataUrl = vast.asHLSUrl(); - const contents = atob(dataUrl.split(',')[1]); - expect(contents).toMatch(/^#EXTM3U/); - const contentArrayAsLines = contents.split('\n'); - expect(contentArrayAsLines[1]).toBe('#EXT-X-STREAM-INF:BANDWIDTH=268288,RESOLUTION=640x360,CODEC=mp4v'); - expect(contentArrayAsLines[2]).toBe(vast.videos()[0].url()); - }); -});