http://www.mediawiki.org/wiki/Special:Code/MediaWiki/69061
Revision: 69061
Author: dale
Date: 2010-07-05 18:35:54 +0000 (Mon, 05 Jul 2010)
Log Message:
-----------
improved clipBegin support
Modified Paths:
--------------
branches/MwEmbedStandAlone/modules/Sequencer/mw.FirefoggRender.js
branches/MwEmbedStandAlone/modules/SmilPlayer/mw.EmbedPlayerSmil.js
branches/MwEmbedStandAlone/modules/SmilPlayer/mw.Smil.js
branches/MwEmbedStandAlone/modules/SmilPlayer/mw.SmilAnimate.js
branches/MwEmbedStandAlone/modules/SmilPlayer/mw.SmilBody.js
branches/MwEmbedStandAlone/modules/SmilPlayer/tests/VideoClipBegin.html
branches/MwEmbedStandAlone/modules/SmilPlayer/tests/VideoClipBeginSmil.xml
branches/MwEmbedStandAlone/modules/SmilPlayer/tests/VideoCrossFade.html
Modified: branches/MwEmbedStandAlone/modules/Sequencer/mw.FirefoggRender.js
===================================================================
--- branches/MwEmbedStandAlone/modules/Sequencer/mw.FirefoggRender.js
2010-07-05 17:28:54 UTC (rev 69060)
+++ branches/MwEmbedStandAlone/modules/Sequencer/mw.FirefoggRender.js
2010-07-05 18:35:54 UTC (rev 69061)
@@ -87,7 +87,10 @@
// Start rendering
doRender: function() {
var _this = this;
-
+ // Make sure we get a target destination
+ if( !_this.fogg.saveVideoAs() ){
+ return false;
+ }
// Set the render time to "startTime" of the render request
this.renderTime = this.startTime;
@@ -118,12 +121,10 @@
// Update previusAudioTime
previusAudioTime = currentAudio.startTime +
currentAudio.duration;
- }
-
- // Now issue the save video as call
- _this.fogg.saveVideoAs();
-
- _this.doNextFrame();
+ }
+ // Now issue the save video as call
+ _this.doNextFrame();
+ return true;
},
/**
Modified: branches/MwEmbedStandAlone/modules/SmilPlayer/mw.EmbedPlayerSmil.js
===================================================================
--- branches/MwEmbedStandAlone/modules/SmilPlayer/mw.EmbedPlayerSmil.js
2010-07-05 17:28:54 UTC (rev 69060)
+++ branches/MwEmbedStandAlone/modules/SmilPlayer/mw.EmbedPlayerSmil.js
2010-07-05 18:35:54 UTC (rev 69061)
@@ -99,7 +99,7 @@
// If no render target exist create one:
$j( this ).html(
$j( '<div />')
- .attr('id', 'smilCanvas_' + this.id )
+ .attr( 'id', 'smilCanvas_' + this.id )
.css( {
'width' : '100%',
'height' : '100%',
Modified: branches/MwEmbedStandAlone/modules/SmilPlayer/mw.Smil.js
===================================================================
--- branches/MwEmbedStandAlone/modules/SmilPlayer/mw.Smil.js 2010-07-05
17:28:54 UTC (rev 69060)
+++ branches/MwEmbedStandAlone/modules/SmilPlayer/mw.Smil.js 2010-07-05
18:35:54 UTC (rev 69061)
@@ -326,22 +326,24 @@
* DIGIT ::= [0-9]
*
* @param {mixed} timeValue time value of smil structure
- * @ return {float} Seconds from time value
+ * @return {float} Seconds from time value, if timeValue is empty or
null return 0
*/
parseTime : function( timeValue ){
- // If timeValue is already a number return seconds:
+ if( !timeValue )
+ return 0;
+
+ // If timeValue is already a clean number of seconds, return
seconds:
if( ! isNaN( timeValue ) ){
return parseFloat( timeValue );
}
- // Trim whitespace
+ // Trim whitespace if empty return zero
timeValue = $j.trim( timeValue );
- if( timeValue == '' ){
- mw.log("Error: Empty time value ");
+ if( timeValue == '' ){
return 0;
}
// First check for hh:mm:ss time:
- if ( timeValue.split( ':' ).length == 3 || timeValue.split(
':' ).length == 2 ) {
+ if ( timeValue.split( ':' ).length == 3 || timeValue.split(
':' ).length == 2 ) {
return mw.npt2seconds( timeValue );
}
Modified: branches/MwEmbedStandAlone/modules/SmilPlayer/mw.SmilAnimate.js
===================================================================
--- branches/MwEmbedStandAlone/modules/SmilPlayer/mw.SmilAnimate.js
2010-07-05 17:28:54 UTC (rev 69060)
+++ branches/MwEmbedStandAlone/modules/SmilPlayer/mw.SmilAnimate.js
2010-07-05 18:35:54 UTC (rev 69061)
@@ -331,7 +331,7 @@
if( !animateInRange ) {
if( animateTime == 0 ) {
// just a hack for now ( should read from
previous animation or from source attribute
- //this.updateElementLayout( smilImgElement, {
'top':1,'left':1,'width':1, 'height':1 } );
+ // this.updateElementLayout( smilImgElement, {
'top':1,'left':1,'width':1, 'height':1 } );
var $target = $j( '#' + this.smil.getAssetId(
smilImgElement ));
$target.css( {
'top' : '0px',
Modified: branches/MwEmbedStandAlone/modules/SmilPlayer/mw.SmilBody.js
===================================================================
--- branches/MwEmbedStandAlone/modules/SmilPlayer/mw.SmilBody.js
2010-07-05 17:28:54 UTC (rev 69060)
+++ branches/MwEmbedStandAlone/modules/SmilPlayer/mw.SmilBody.js
2010-07-05 18:35:54 UTC (rev 69061)
@@ -28,7 +28,8 @@
'audio' : 'ref',
'img' : 'ref',
'textstream' : 'ref',
- 'video' : 'ref'
+ 'video' : 'ref',
+ 'smiltext' : 'ref'
},
// Constructor:
@@ -162,7 +163,7 @@
'src' : _this.smil.getAssetUrl (
$node.attr('src') ),
'duration' : _this.getNodeDuration(
$node ),
'startTime' : $node.data( 'startOffset'
),
- 'offset' : 0 // have to add in
media-offset support
+ 'offset' : _this.smil.parseTime(
$node.attr( 'clipBegin') )
};
// If audioTimeline is empty insert directly
Modified:
branches/MwEmbedStandAlone/modules/SmilPlayer/tests/VideoClipBegin.html
===================================================================
--- branches/MwEmbedStandAlone/modules/SmilPlayer/tests/VideoClipBegin.html
2010-07-05 17:28:54 UTC (rev 69060)
+++ branches/MwEmbedStandAlone/modules/SmilPlayer/tests/VideoClipBegin.html
2010-07-05 18:35:54 UTC (rev 69061)
@@ -18,24 +18,18 @@
$j('#videoClipBegin').get(0).load();
return false;
});
- $j('#renderToFile').click(function(){
- $j(this).empty().unbind().after(
- $j('<span />').text( ' ' ),
- $j('<span />').attr('id',
'targetFoggStatus' )
- );
-
+ $j('#renderToFile').click(function(){
// xxx for local rendering 'AddMedia.firefogg'
is overkill
- // but will have to clean up modularity later
-
+ // but will have to clean up modularity later
mw.load(
['AddMedia.firefogg','mw.FirefoggRender'],function(){
var foggRender =
$j('#videoClipBegin').firefoggRender({
'statusTarget':
'#targetFoggStatus'
});
- foggRender.doRender();
-
- $j('#renderToFile').text('Stop
Render').click(function(){
- foggRender.stopRender();
- });
+ if( foggRender.doRender() ){
+ $j('#renderToFile').text('Stop
Render').click(function(){
+
foggRender.stopRender();
+ });
+ }
})
return false;
});
@@ -52,7 +46,7 @@
<p></p>seek to <input id="seekInputTime" size="4" value = "6"></input><span
id="seekInProgress" style="display: none"> Seeking<blink>...</blink></span>
<br/>
<a id="startBuffer" href="#">Start buffering</a> <br>
-<a id="renderToFile" href="#">Render to file</a>
+<a id="renderToFile" href="#">Render to file</a> <span
id="targetFoggStatus"></span>
</td>
<td valign="top">
Sample playlist code:
Modified:
branches/MwEmbedStandAlone/modules/SmilPlayer/tests/VideoClipBeginSmil.xml
===================================================================
--- branches/MwEmbedStandAlone/modules/SmilPlayer/tests/VideoClipBeginSmil.xml
2010-07-05 17:28:54 UTC (rev 69060)
+++ branches/MwEmbedStandAlone/modules/SmilPlayer/tests/VideoClipBeginSmil.xml
2010-07-05 18:35:54 UTC (rev 69061)
@@ -14,14 +14,14 @@
<seq>
<video
src="http://upload.wikimedia.org/wikipedia/commons/9/94/Folgers.ogv"
- dur="2s"
- clipBegin = "16s"
- />
+ dur="5s"
+ clipBegin = "17s"
+ />
<video
src="http://upload.wikimedia.org/wikipedia/commons/1/14/Independence_Day%2C_1940_Promotion.ogv"
- dur="5s"
+ dur="1s"
/>
-
+
<video
src="http://upload.wikimedia.org/wikipedia/commons/1/14/Independence_Day%2C_1940_Promotion.ogv"
transIn="fromBlack"
dur="2s"
@@ -34,17 +34,16 @@
/>
<video
src="http://upload.wikimedia.org/wikipedia/commons/1/14/Independence_Day%2C_1940_Promotion.ogv"
- dur="5"
+ dur="2"
clipBegin = "18"
/>
- <!-- where does quality come from
<video
src="http://upload.wikimedia.org/wikipedia/commons/8/8b/Yochai_Benkler_-_On_Autonomy%2C_Control_and_Cultural_Experience.ogg"
transIn="fromBlack"
- dur="27"
+ dur="10"
clipBegin = "0:3:43"
- />
- -->
+ />
+
</seq>
</body>
Modified:
branches/MwEmbedStandAlone/modules/SmilPlayer/tests/VideoCrossFade.html
===================================================================
--- branches/MwEmbedStandAlone/modules/SmilPlayer/tests/VideoCrossFade.html
2010-07-05 17:28:54 UTC (rev 69060)
+++ branches/MwEmbedStandAlone/modules/SmilPlayer/tests/VideoCrossFade.html
2010-07-05 18:35:54 UTC (rev 69061)
@@ -18,24 +18,18 @@
$j('#videoCrossfade').get(0).load();
return false;
});
- $j('#renderToFile').click(function(){
- $j(this).empty().unbind().after(
- $j('<span />').text( ' ' ),
- $j('<span />').attr('id',
'targetFoggStatus' )
- );
-
+ $j('#renderToFile').click(function(){
// xxx for local rendering 'AddMedia.firefogg'
is overkill
- // but will have to clean up modularity later
-
+ // but will have to clean up modularity later
mw.load(
['AddMedia.firefogg','mw.FirefoggRender'],function(){
- var foggRender =
$j('#videoCrossfade').firefoggRender({
+ var foggRender =
$j('#videoClipBegin').firefoggRender({
'statusTarget':
'#targetFoggStatus'
});
- foggRender.doRender();
-
- $j('#renderToFile').text('Stop
Render').click(function(){
- foggRender.stopRender();
- });
+ if( foggRender.doRender() ){
+ $j('#renderToFile').text('Stop
Render').click(function(){
+
foggRender.stopRender();
+ });
+ }
})
return false;
});
@@ -52,7 +46,7 @@
<p></p>seek to <input id="seekInputTime" size="4" value = "6"></input><span
id="seekInProgress" style="display: none"> Seeking<blink>...</blink></span>
<br/>
<a id="startBuffer" href="#">Start buffering</a> <br>
-<a id="renderToFile" href="#">Render to file</a>
+<a id="renderToFile" href="#">Render to file</a> <span
id="targetFoggStatus"></span>
</td>
<td valign="top">
Sample playlist code:
_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs