Skip to content

Commit

Permalink
Fix conflict when merging dev
Browse files Browse the repository at this point in the history
  • Loading branch information
aescarcha committed Jun 5, 2018
2 parents ea21de8 + da64a2b commit 6325e95
Show file tree
Hide file tree
Showing 19 changed files with 211 additions and 133 deletions.
3 changes: 3 additions & 0 deletions build/typings/index.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -205,6 +205,9 @@ declare namespace dashjs {
getSmallGapLimit(): number;
preload(): void;
reset(): void;
addABRCustomRule(type: string, rulename: string, rule: object): void;
removeABRCustomRule(rulename: string): void;
removeAllABRCustomRule(): void;
}

export interface MediaPlayerFactory {
Expand Down
8 changes: 6 additions & 2 deletions contrib/akamai/controlbar/ControlBar.js
Original file line number Diff line number Diff line change
Expand Up @@ -83,8 +83,8 @@ var ControlBar = function (dashjsMediaPlayer, displayUTCTimeCodes) {
fullscreenBtn = document.getElementById(getControlId("fullscreenBtn"));
timeDisplay = document.getElementById(getControlId("videoTime"));
durationDisplay = document.getElementById(getControlId("videoDuration"));
thumbnailContainer = document.getElementById(getControlId("thumbnail-container")),
thumbnailElem = document.getElementById(getControlId("thumbnail-elem"))
thumbnailContainer = document.getElementById(getControlId("thumbnail-container"));
thumbnailElem = document.getElementById(getControlId("thumbnail-elem"));
thumbnailTimeLabel = document.getElementById(getControlId("thumbnail-time-label"));
},

Expand Down Expand Up @@ -148,6 +148,10 @@ var ControlBar = function (dashjsMediaPlayer, displayUTCTimeCodes) {
seekbarBuffer.style.width = ((player.time() + getBufferLevel()) / player.duration() * 100) + '%';
}

if (seekbar.getAttribute('type') === 'range') {
seekbar.value = player.time();
}

}
},

Expand Down
3 changes: 3 additions & 0 deletions index.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -205,6 +205,9 @@ declare namespace dashjs {
getSmallGapLimit(): number;
preload(): void;
reset(): void;
addABRCustomRule(type: string, rulename: string, rule: object): void;
removeABRCustomRule(rulename: string): void;
removeAllABRCustomRule(): void;
}

export interface MediaPlayerFactory {
Expand Down
65 changes: 35 additions & 30 deletions samples/captioning/multi-track-captions.html
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@

player = dashjs.MediaPlayer().create();
player.initialize(videoElement, url, true);
player.attachVideoContainer(document.getElementById("videoContainer"));
player.attachTTMLRenderingDiv(TTMLRenderingDiv);
controlbar = new ControlBar(player); // Checkout ControlBar.js for more info on how to target/add text tracks to UI
controlbar.initialize();
Expand All @@ -37,44 +38,48 @@

<style>
video {
width: 640px;
height: 360px;
width: 100%;
}

.videoContainer{
.dash-video-player {
width: 640px;
}
</style>

<body onload="startVideo()">
<div class="videoContainer">
<video preload="auto" autoplay="true" > </video>
<div id="ttml-rendering-div"></div>
<div class="dash-video-player">
<div class="videoContainer" id="videoContainer">
<video preload="auto" autoplay="true" > </video>
<div id="ttml-rendering-div"></div>

<div id="videoController" class="video-controller unselectable">
<div id="playPauseBtn" class="btn-play-pause" title="Play/Pause">
<span id="iconPlayPause" class="icon-play"></span>
</div>
<span id="videoTime" class="time-display">00:00:00</span>
<div id="fullscreenBtn" class="btn-fullscreen control-icon-layout" title="Fullscreen">
<span class="icon-fullscreen-enter"></span>
</div>
<div id="bitrateListBtn" class="control-icon-layout" title="Bitrate List">
<span class="icon-bitrate"></span>
</div>
<input type="range" id="volumebar" class="volumebar" value="1" min="0" max="1" step=".01"/>
<div id="muteBtn" class="btn-mute control-icon-layout" title="Mute">
<span id="iconMute" class="icon-mute-off"></span>
</div>
<div id="trackSwitchBtn" class="control-icon-layout" title="A/V Tracks">
<span class="icon-tracks"></span>
</div>
<div id="captionBtn" class="btn-caption control-icon-layout" title="Closed Caption">
<span class="icon-caption"></span>
</div>
<span id="videoDuration" class="duration-display">00:00:00</span>
<div class="seekContainer">
<input type="range" id="seekbar" value="0" class="seekbar" min="0" step="0.01"/>
<div id="videoController" class="video-controller unselectable">
<div id="playPauseBtn" class="btn-play-pause" title="Play/Pause">
<span id="iconPlayPause" class="icon-play"></span>
</div>
<span id="videoTime" class="time-display">00:00:00</span>
<div id="fullscreenBtn" class="btn-fullscreen control-icon-layout" title="Fullscreen">
<span class="icon-fullscreen-enter"></span>
</div>
<div id="bitrateListBtn" class="control-icon-layout" title="Bitrate List">
<span class="icon-bitrate"></span>
</div>
<input type="range" id="volumebar" class="volumebar" value="1" min="0" max="1" step=".01"/>
<div id="muteBtn" class="btn-mute control-icon-layout" title="Mute">
<span id="iconMute" class="icon-mute-off"></span>
</div>
<div id="trackSwitchBtn" class="control-icon-layout" title="A/V Tracks">
<span class="icon-tracks"></span>
</div>
<div id="captionBtn" class="btn-caption control-icon-layout" title="Closed Caption">
<span class="icon-caption"></span>
</div>
<span id="videoDuration" class="duration-display">00:00:00</span>
<div class="seekContainer">
<div id="seekbar" class="seekbar seekbar-complete">
<div id="seekbar-buffer" class="seekbar seekbar-buffer"></div>
<div id="seekbar-play" class="seekbar seekbar-play"></div>
</div>
</div>
</div>
</div>
</div>
Expand Down
65 changes: 35 additions & 30 deletions samples/captioning/ttml-ebutt-sample.html
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@

player = dashjs.MediaPlayer().create();
player.initialize(videoElement, url, true);
player.attachVideoContainer(document.getElementById("videoContainer"));
player.attachTTMLRenderingDiv(TTMLRenderingDiv);
controlbar = new ControlBar(player); // Checkout ControlBar.js for more info on how to target/add text tracks to UI
controlbar.initialize();
Expand All @@ -42,43 +43,47 @@

<style>
video {
width: 640px;
height: 360px;
width: 100%;
}
.videoContainer{
.dash-video-player {
width: 640px;
}
</style>

<body onload="startVideo()">
<div class="videoContainer">
<video preload="auto" autoplay="true" > </video>
<div id="ttml-rendering-div"></div>
<div class="dash-video-player">
<div class="videoContainer" id="videoContainer">
<video preload="auto" autoplay="true" > </video>
<div id="ttml-rendering-div"></div>

<div id="videoController" class="video-controller unselectable">
<div id="playPauseBtn" class="btn-play-pause" title="Play/Pause">
<span id="iconPlayPause" class="icon-play"></span>
</div>
<span id="videoTime" class="time-display">00:00:00</span>
<div id="fullscreenBtn" class="btn-fullscreen control-icon-layout" title="Fullscreen">
<span class="icon-fullscreen-enter"></span>
</div>
<div id="bitrateListBtn" class="control-icon-layout" title="Bitrate List">
<span class="icon-bitrate"></span>
</div>
<input type="range" id="volumebar" class="volumebar" value="1" min="0" max="1" step=".01"/>
<div id="muteBtn" class="btn-mute control-icon-layout" title="Mute">
<span id="iconMute" class="icon-mute-off"></span>
</div>
<div id="trackSwitchBtn" class="control-icon-layout" title="A/V Tracks">
<span class="icon-tracks"></span>
</div>
<div id="captionBtn" class="btn-caption control-icon-layout" title="Closed Caption">
<span class="icon-caption"></span>
</div>
<span id="videoDuration" class="duration-display">00:00:00</span>
<div class="seekContainer">
<input type="range" id="seekbar" value="0" class="seekbar" min="0" step="0.01"/>
<div id="videoController" class="video-controller unselectable">
<div id="playPauseBtn" class="btn-play-pause" title="Play/Pause">
<span id="iconPlayPause" class="icon-play"></span>
</div>
<span id="videoTime" class="time-display">00:00:00</span>
<div id="fullscreenBtn" class="btn-fullscreen control-icon-layout" title="Fullscreen">
<span class="icon-fullscreen-enter"></span>
</div>
<div id="bitrateListBtn" class="control-icon-layout" title="Bitrate List">
<span class="icon-bitrate"></span>
</div>
<input type="range" id="volumebar" class="volumebar" value="1" min="0" max="1" step=".01"/>
<div id="muteBtn" class="btn-mute control-icon-layout" title="Mute">
<span id="iconMute" class="icon-mute-off"></span>
</div>
<div id="trackSwitchBtn" class="control-icon-layout" title="A/V Tracks">
<span class="icon-tracks"></span>
</div>
<div id="captionBtn" class="btn-caption control-icon-layout" title="Closed Caption">
<span class="icon-caption"></span>
</div>
<span id="videoDuration" class="duration-display">00:00:00</span>
<div class="seekContainer">
<div id="seekbar" class="seekbar seekbar-complete">
<div id="seekbar-buffer" class="seekbar seekbar-buffer"></div>
<div id="seekbar-play" class="seekbar seekbar-play"></div>
</div>
</div>
</div>
</div>
</div>
Expand Down
74 changes: 39 additions & 35 deletions samples/thumbnails/thumbnails.html
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
<head>
<meta charset="utf-8"/>
<title>Thumbnails Dash Demo</title>
<meta name="viewport" content="width=device-width, height=device-height, user-scalable=no">
<meta name="description" content="" />
<link rel="icon" type="image/x-icon" href="http://dashif.org/wp-content/uploads/2014/12/dashif.ico" />
<link rel="stylesheet" href="../../contrib/akamai/controlbar/controlbar.css">
Expand All @@ -23,17 +24,16 @@
player = dashjs.MediaPlayer({}).create();
player.initialize(video, url, true);

//player.attachVideoContainer(document.getElementById("videoContainer"));
player.attachVideoContainer(document.getElementById("videoContainer"));
controlbar = new ControlBar(player);
controlbar.initialize();
}
</script>

<style>
.videoContainer {
.dash-video-player {
position: relative;
width: 640px;
height: 360px;
margin: 0 auto;
}
.videoContainer video {
Expand All @@ -46,42 +46,46 @@
</style>

<body onload="startVideo()">
<div id="videoContainer" class="videoContainer">
<div class="dash-video-player">
<video controls="false"></video>
</div>
<div id="videoController" class="video-controller unselectable" ng-cloak>
<div id="playPauseBtn" class="btn-play-pause" data-toggle="tooltip" data-placement="bottom" title="Play/Pause">
<span id="iconPlayPause" class="icon-play"></span>
</div>
<span id="videoTime" class="time-display">00:00:00</span>
<div id="fullscreenBtn" class="btn-fullscreen control-icon-layout" data-toggle="tooltip" data-placement="bottom" title="Fullscreen">
<span class="icon-fullscreen-enter"></span>
</div>
<div id="bitrateListBtn" class="btn-bitrate control-icon-layout" data-toggle="tooltip" data-placement="bottom" title="Bitrate List">
<span class="icon-bitrate"></span>
</div>
<input type="range" id="volumebar" class="volumebar" value="1" min="0" max="1" step=".01"/>
<div id="muteBtn" class="btn-mute control-icon-layout" data-toggle="tooltip" data-placement="bottom" title="Mute">
<span id="iconMute" class="icon-mute-off"></span>
</div>
<div id="trackSwitchBtn" class="btn-track-switch control-icon-layout" data-toggle="tooltip" data-placement="bottom" title="Track List">
<span class="icon-tracks"></span>
</div>
<div id="captionBtn" class="btn-caption control-icon-layout" data-toggle="tooltip" data-placement="bottom" title="Closed Caption / Subtitles">
<span class="icon-caption"></span>
</div>
<span id="videoDuration" class="duration-display">00:00:00</span>
<div class="seekContainer">
<input type="range" id="seekbar" value="0" class="seekbar" min="0" step="0.01"/>
</div>
<div id="thumbnail-container" class="thumbnail-container">
<div id="thumbnail-elem" class="thumbnail-elem">
<div class="dash-video-player">
<div id="videoContainer" class="videoContainer">
<video></video>
<div id="videoController" class="video-controller unselectable" ng-cloak>
<div id="playPauseBtn" class="btn-play-pause" data-toggle="tooltip" data-placement="bottom" title="Play/Pause">
<span id="iconPlayPause" class="icon-play"></span>
</div>
<span id="videoTime" class="time-display">00:00:00</span>
<div id="fullscreenBtn" class="btn-fullscreen control-icon-layout" data-toggle="tooltip" data-placement="bottom" title="Fullscreen">
<span class="icon-fullscreen-enter"></span>
</div>
<div id="bitrateListBtn" class="btn-bitrate control-icon-layout" data-toggle="tooltip" data-placement="bottom" title="Bitrate List">
<span class="icon-bitrate"></span>
</div>
<input type="range" id="volumebar" class="volumebar" value="1" min="0" max="1" step=".01"/>
<div id="muteBtn" class="btn-mute control-icon-layout" data-toggle="tooltip" data-placement="bottom" title="Mute">
<span id="iconMute" class="icon-mute-off"></span>
</div>
<div id="trackSwitchBtn" class="btn-track-switch control-icon-layout" data-toggle="tooltip" data-placement="bottom" title="Track List">
<span class="icon-tracks"></span>
</div>
<div id="captionBtn" class="btn-caption control-icon-layout" data-toggle="tooltip" data-placement="bottom" title="Closed Caption / Subtitles">
<span class="icon-caption"></span>
</div>
<span id="videoDuration" class="duration-display">00:00:00</span>
<!--<div class="seekContainer">--> <!-- Traditional range bar, lacks the buffered bar -->
<!--<input type="range" id="seekbar" value="0" class="seekbar seekbar-complete" min="0" step="0.01"/>-->
<!--</div>-->
<div class="seekContainer">
<div id="seekbar" class="seekbar seekbar-complete">
<div id="seekbar-buffer" class="seekbar seekbar-buffer"></div>
<div id="seekbar-play" class="seekbar seekbar-play"></div>
</div>
</div>
<div id="thumbnail-container" class="thumbnail-container">
<div id="thumbnail-elem" class="thumbnail-elem"></div>
<div id="thumbnail-time-label" class="thumbnail-time-label"></div>
</div>
</div>
</div>
</div>

</body>
</html>
3 changes: 3 additions & 0 deletions src/streaming/ManifestLoader.js
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,9 @@ function ManifestLoader(config) {
httpLoader.load({
request: request,
success: function (data, textStatus, responseURL) {
// Manage situations in which success is called after calling reset
if (!xlinkController) return;

let actualUrl,
baseUri,
manifest;
Expand Down
4 changes: 2 additions & 2 deletions src/streaming/MediaPlayerFactory.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ function MediaPlayerFactory() {
* @returns {MediaPlayer|null}
*/
function create(video, source, context) {
if (!video || video.nodeName !== 'VIDEO') return null;
if (!video || !(/^VIDEO$/i).test(video.nodeName)) return null;

if (video._dashjs_player) return video._dashjs_player;

Expand Down Expand Up @@ -80,7 +80,7 @@ function MediaPlayerFactory() {
}

function findVideo(el) {
if (el.nodeName.toLowerCase() === 'video') {
if ((/^VIDEO$/i).test(el.nodeName)) {
return el;
} else {
return findVideo(el.parentNode);
Expand Down

0 comments on commit 6325e95

Please sign in to comment.