Skip to content

Commit

Permalink
add fragment duration in HLSPlayMetrics
Browse files Browse the repository at this point in the history
  • Loading branch information
mangui committed Apr 8, 2015
1 parent 0485c43 commit 1695c63
Show file tree
Hide file tree
Showing 5 changed files with 15 additions and 9 deletions.
6 changes: 3 additions & 3 deletions examples/chromeless/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -346,6 +346,8 @@ <h3> Test Videos </h3>
document.getElementById('mediaInfo').rows[Y_MAX_BUFFER].cells[X_MAX_BUFFER].innerHTML = api.getMaxBufferLength().toFixed(2);
},
onVideoSize: function(instanceId, width, height) {
var event = {time : new Date() - startDate, type : "resize", name : width + 'x' + height};
events.video.push(event);
var state = api.getCapLeveltoStage();
if(!state) {
var ratio = width / height;
Expand All @@ -357,8 +359,6 @@ <h3> Test Videos </h3>
api.flashObject.height = height;
var canvas = document.getElementById('buffered_c');
canvas.width = width;
var event = {time : new Date() - startDate, type : "reize", name : width + 'x' + height};
events.video.push(event);
}
},
onComplete: function(instanceId) {
Expand Down Expand Up @@ -446,7 +446,7 @@ <h3> Test Videos </h3>
refreshCanvas();
},
onFragmentPlaying: function(instanceId, playmetrics) {
var event = {time : new Date() - startDate, type : "playing frag", name : playmetrics.seqnum + '@' + playmetrics.level};
var event = {time : new Date() - startDate, type : "playing frag", name : playmetrics.seqnum + '@' + playmetrics.level, duration : playmetrics.duration*1000};
events.video.push(event);
},
onPosition: function(instanceId, timemetrics) {
Expand Down
3 changes: 3 additions & 0 deletions examples/libs/canvas.js
Original file line number Diff line number Diff line change
Expand Up @@ -432,6 +432,9 @@
//draw event rectangle
x_start = networkChartStart + networkChartWidth*(event.time-minTime)/(maxTime-minTime);
if(event.duration) {
if(event.type && event.type.indexOf("playing frag") !==-1) {
ctx.fillStyle = "green";
}
x_w = networkChartWidth*event.duration/(maxTime-minTime);
} else {
x_w = 1;
Expand Down
4 changes: 3 additions & 1 deletion src/org/mangui/hls/event/HLSPlayMetrics.as
Original file line number Diff line number Diff line change
Expand Up @@ -7,16 +7,18 @@ package org.mangui.hls.event {
public var level : int;
public var seqnum : int;
public var continuity_counter : int;
public var duration : Number;
public var audio_only : Boolean;
public var program_date : Number;
public var video_width : int;
public var video_height : int;
public var tag_list : Array;

public function HLSPlayMetrics(level : int, seqnum : int, cc : int, audio_only : Boolean, program_date : Number, video_width : int, video_height : int, tag_list : Array) {
public function HLSPlayMetrics(level : int, seqnum : int, cc : int, duration : Number, audio_only : Boolean, program_date : Number, video_width : int, video_height : int, tag_list : Array) {
this.level = level;
this.seqnum = seqnum;
this.continuity_counter = cc;
this.duration = duration;
this.audio_only = audio_only;
this.program_date = program_date;
this.video_width = video_width;
Expand Down
1 change: 1 addition & 0 deletions src/org/mangui/hls/model/Fragment.as
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ package org.mangui.hls.model {
data.writeObject(this.level);
data.writeObject(this.seqnum);
data.writeObject(this.continuity);
data.writeObject(this.duration);
data.writeObject(this.program_date);
data.writeObject(!this.data.video_found);
data.writeObject(this.data.video_width);
Expand Down
10 changes: 5 additions & 5 deletions src/org/mangui/hls/stream/HLSNetStream.as
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,9 @@ package org.mangui.hls.stream {
import org.mangui.hls.utils.Log;
}
/** Class that overrides standard flash.net.NetStream class, keeps the buffer filled, handles seek and play state
*
*
* play state transition :
* FROM TO condition
* FROM TO condition
* HLSPlayStates.IDLE HLSPlayStates.PLAYING_BUFFERING play()/play2()/seek() called
* HLSPlayStates.PLAYING_BUFFERING HLSPlayStates.PLAYING buflen > minBufferLength
* HLSPlayStates.PAUSED_BUFFERING HLSPlayStates.PAUSED buflen > minBufferLength
Expand Down Expand Up @@ -67,7 +67,7 @@ package org.mangui.hls.stream {
super.client = _client;
};

public function onHLSFragmentChange(level : int, seqnum : int, cc : int, audio_only : Boolean, program_date : Number, width : int, height : int, ... tags) : void {
public function onHLSFragmentChange(level : int, seqnum : int, cc : int, duration : Number, audio_only : Boolean, program_date : Number, width : int, height : int, ... tags) : void {
CONFIG::LOGGING {
Log.debug("playing fragment(level/sn/cc):" + level + "/" + seqnum + "/" + cc);
}
Expand All @@ -79,7 +79,7 @@ package org.mangui.hls.stream {
Log.debug("custom tag:" + tags[i]);
}
}
_hls.dispatchEvent(new HLSEvent(HLSEvent.FRAGMENT_PLAYING, new HLSPlayMetrics(level, seqnum, cc, audio_only, program_date, width, height, tag_list)));
_hls.dispatchEvent(new HLSEvent(HLSEvent.FRAGMENT_PLAYING, new HLSPlayMetrics(level, seqnum, cc, duration, audio_only, program_date, width, height, tag_list)));
}

// function is called by SCRIPT in FLV
Expand Down Expand Up @@ -303,7 +303,7 @@ package org.mangui.hls.stream {
}
_streamBuffer.seek(position);
_setSeekState(HLSSeekStates.SEEKING);
/* if HLS was in paused state before seeking,
/* if HLS was in paused state before seeking,
* switch to paused buffering state
* otherwise, switch to playing buffering state
*/
Expand Down

0 comments on commit 1695c63

Please sign in to comment.